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);
26 tAxWin3_Widget *gMainWindow_Root;
27 tHWND gMainWindow_MenuBar;
28 tAxWin3_Widget *gMainWindow_Toolbar;
29 tHWND gMainWindow_TextArea;
32 int main(int argc, char *argv[])
36 // --- Build up window
37 gMainWindow = AxWin3_Widget_CreateWindow(NULL, 700, 400, ELEFLAG_VERTICAL);
38 AxWin3_SetWindowTitle(gMainWindow, "Acess Text Editor"); // TODO: Update title with other info
39 gMainWindow_Root = AxWin3_Widget_GetRoot(gMainWindow);
41 //gMainWindow_MenuBar = AxWin3_Menu_Create(gMainWindow);
42 //AxWin3_Widget_AddWidget_SubWindow(gMainWindow_Root, gMainWindow_MenuBar);
43 // TODO: Populate menu
46 gMainWindow_Toolbar = AxWin3_Widget_AddWidget(gMainWindow_Root, ELETYPE_TOOLBAR, ELEFLAG_NOSTRETCH, "Toolbar");
47 add_toolbar_button(gMainWindow_Toolbar, "BtnNew", Toolbar_New);
48 add_toolbar_button(gMainWindow_Toolbar, "BtnOpen", Toolbar_Open);
49 add_toolbar_button(gMainWindow_Toolbar, "BtnSave", Toolbar_Save);
50 AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, 0, "");
51 add_toolbar_button(gMainWindow_Toolbar, "BtnUndo", NULL);
52 add_toolbar_button(gMainWindow_Toolbar, "BtnRedo", NULL);
53 AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, 0, "");
54 add_toolbar_button(gMainWindow_Toolbar, "BtnCut", NULL);
55 add_toolbar_button(gMainWindow_Toolbar, "BtnCopy", NULL);
56 add_toolbar_button(gMainWindow_Toolbar, "BtnPaste", NULL);
57 AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, 0, "");
58 add_toolbar_button(gMainWindow_Toolbar, "BtnSearch", NULL);
59 add_toolbar_button(gMainWindow_Toolbar, "BtnReplace", NULL);
63 gMainWindow_TextArea = AxWin3_RichText_CreateWindow(gMainWindow, 0);
64 AxWin3_Widget_AddWidget_SubWindow(gMainWindow_Root, gMainWindow_TextArea, 0, "TextArea");
65 AxWin3_RichText_SetKeyHandler (gMainWindow_TextArea, TextArea_KeyHandler);
66 AxWin3_RichText_SetMouseHandler (gMainWindow_TextArea, TextArea_MouseHandler);
67 AxWin3_RichText_SetBackground (gMainWindow_TextArea, 0xFFFFFF);
68 AxWin3_RichText_SetDefaultColour(gMainWindow_TextArea, 0x000000);
69 AxWin3_RichText_SetFont (gMainWindow_TextArea, "#monospace", 10);
70 AxWin3_RichText_SetCursorPos (gMainWindow_TextArea, 0, 0);
71 AxWin3_RichText_SetCursorType (gMainWindow_TextArea, AXWIN3_RICHTEXT_CURSOR_VLINE);
72 AxWin3_RichText_SetCursorBlink (gMainWindow_TextArea, 1);
75 AxWin3_RichText_SetLineCount(gMainWindow_TextArea, 3);
76 AxWin3_RichText_SendLine(gMainWindow_TextArea, 0, "First line!");
77 AxWin3_RichText_SendLine(gMainWindow_TextArea, 2, "Third line! \x01""ff0000A red");
80 AxWin3_ShowWindow(gMainWindow_TextArea, 1);
83 AxWin3_MoveWindow(gMainWindow, 50, 50);
84 AxWin3_ShowWindow(gMainWindow, 1);
85 AxWin3_FocusWindow(gMainWindow);
93 int TextArea_KeyHandler(tHWND Window, int bPress, uint32_t KeySym, uint32_t Translated)
98 int TextArea_MouseHandler(tHWND Window, int bPress, int Button, int Row, int Col)
103 void add_toolbar_button(tAxWin3_Widget *Toolbar, const char *Ident, tAxWin3_Widget_FireCb Callback)
105 tAxWin3_Widget *btn = AxWin3_Widget_AddWidget(Toolbar, ELETYPE_BUTTON, ELEFLAG_NOSTRETCH, Ident);
106 tAxWin3_Widget *txt = AxWin3_Widget_AddWidget(btn, ELETYPE_TEXT, 0, Ident);
107 // TODO: Get image / text using `Ident` as a lookup key
108 AxWin3_Widget_SetText(txt, Ident);
109 AxWin3_Widget_SetFireHandler(btn, Callback);
112 int Toolbar_New(tAxWin3_Widget *Widget)
116 int Toolbar_Open(tAxWin3_Widget *Widget)
120 int Toolbar_Save(tAxWin3_Widget *Widget)