2 * Acess Text Editor (ATE)
3 * - By John Hodge (thePowersGang)
8 #include <axwin3/axwin.h>
9 #include <axwin3/widget.h>
10 #include <axwin3/menu.h>
11 #include <axwin3/richtext.h>
16 int main(int argc, char *argv[]);
17 int TextArea_KeyHandler(tHWND Window, int bPress, uint32_t KeySym, uint32_t Translated);
18 int TextArea_MouseHandler(tHWND Window, int bPress, int Button, int Row, int Col);
19 void add_toolbar_button(tAxWin3_Widget *Toolbar, const char *Ident, tAxWin3_Widget_FireCb Callback);
20 int Toolbar_New(tAxWin3_Widget *Widget);
21 int Toolbar_Open(tAxWin3_Widget *Widget);
22 int Toolbar_Save(tAxWin3_Widget *Widget);
23 int Toolbar_Close(tAxWin3_Widget *Widget);
27 tAxWin3_Widget *gMainWindow_Root;
28 tHWND gMainWindow_MenuBar;
29 tAxWin3_Widget *gMainWindow_Toolbar;
30 tHWND gMainWindow_TextArea;
33 int main(int argc, char *argv[])
37 // --- Build up window
38 gMainWindow = AxWin3_Widget_CreateWindow(NULL, 500, 400, ELEFLAG_VERTICAL);
39 AxWin3_SetWindowTitle(gMainWindow, "Acess Text Editor"); // TODO: Update title with other info
40 gMainWindow_Root = AxWin3_Widget_GetRoot(gMainWindow);
42 //gMainWindow_MenuBar = AxWin3_Menu_Create(gMainWindow);
43 //AxWin3_Widget_AddWidget_SubWindow(gMainWindow_Root, gMainWindow_MenuBar);
44 // TODO: Populate menu
47 gMainWindow_Toolbar = AxWin3_Widget_AddWidget(gMainWindow_Root,
48 ELETYPE_TOOLBAR, ELEFLAG_NOSTRETCH, "Toolbar");
49 add_toolbar_button(gMainWindow_Toolbar, "BtnNew", Toolbar_New);
50 add_toolbar_button(gMainWindow_Toolbar, "BtnOpen", Toolbar_Open);
51 add_toolbar_button(gMainWindow_Toolbar, "BtnSave", Toolbar_Save);
52 add_toolbar_button(gMainWindow_Toolbar, "BtnClose", Toolbar_Close);
53 AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "");
54 add_toolbar_button(gMainWindow_Toolbar, "BtnUndo", NULL);
55 add_toolbar_button(gMainWindow_Toolbar, "BtnRedo", NULL);
56 AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "");
57 add_toolbar_button(gMainWindow_Toolbar, "BtnCut", NULL);
58 add_toolbar_button(gMainWindow_Toolbar, "BtnCopy", NULL);
59 add_toolbar_button(gMainWindow_Toolbar, "BtnPaste", NULL);
60 AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "");
61 add_toolbar_button(gMainWindow_Toolbar, "BtnSearch", NULL);
62 add_toolbar_button(gMainWindow_Toolbar, "BtnReplace", NULL);
66 gMainWindow_TextArea = AxWin3_RichText_CreateWindow(gMainWindow, 0);
67 AxWin3_Widget_AddWidget_SubWindow(gMainWindow_Root, gMainWindow_TextArea, 0, "TextArea");
68 AxWin3_RichText_SetKeyHandler (gMainWindow_TextArea, TextArea_KeyHandler);
69 AxWin3_RichText_SetMouseHandler (gMainWindow_TextArea, TextArea_MouseHandler);
70 AxWin3_RichText_SetBackground (gMainWindow_TextArea, 0xFFFFFF);
71 AxWin3_RichText_SetDefaultColour(gMainWindow_TextArea, 0x000000);
72 AxWin3_RichText_SetFont (gMainWindow_TextArea, "#monospace", 10);
73 AxWin3_RichText_SetCursorPos (gMainWindow_TextArea, 0, 0);
74 AxWin3_RichText_SetCursorType (gMainWindow_TextArea, AXWIN3_RICHTEXT_CURSOR_VLINE);
75 AxWin3_RichText_SetCursorBlink (gMainWindow_TextArea, 1);
78 AxWin3_RichText_SetLineCount(gMainWindow_TextArea, 3);
79 AxWin3_RichText_SendLine(gMainWindow_TextArea, 0, "First line!");
80 AxWin3_RichText_SendLine(gMainWindow_TextArea, 2, "Third line! \x01""ff0000red\x01""00ff00green");
83 AxWin3_ShowWindow(gMainWindow_TextArea, 1);
86 AxWin3_MoveWindow(gMainWindow, 50, 50);
87 AxWin3_ShowWindow(gMainWindow, 1);
88 AxWin3_FocusWindow(gMainWindow);
93 AxWin3_DestroyWindow(gMainWindow);
98 int TextArea_KeyHandler(tHWND Window, int bPress, uint32_t KeySym, uint32_t Translated)
103 int TextArea_MouseHandler(tHWND Window, int bPress, int Button, int Row, int Col)
108 void add_toolbar_button(tAxWin3_Widget *Toolbar, const char *Ident, tAxWin3_Widget_FireCb Callback)
110 tAxWin3_Widget *btn = AxWin3_Widget_AddWidget(Toolbar, ELETYPE_BUTTON, ELEFLAG_NOSTRETCH, Ident);
111 const char *img = getimg(Ident);
114 tAxWin3_Widget *txt = AxWin3_Widget_AddWidget(btn, ELETYPE_IMAGE, 0, Ident);
115 AxWin3_Widget_SetText(txt, img);
120 tAxWin3_Widget *txt = AxWin3_Widget_AddWidget(btn, ELETYPE_TEXT, 0, Ident);
121 AxWin3_Widget_SetText(txt, getstr(Ident));
123 AxWin3_Widget_SetFireHandler(btn, Callback);
126 int Toolbar_New(tAxWin3_Widget *Widget)
130 int Toolbar_Open(tAxWin3_Widget *Widget)
134 int Toolbar_Save(tAxWin3_Widget *Widget)
138 int Toolbar_Close(tAxWin3_Widget *Widget)
140 AxWin3_StopMainLoop(1);