#include <axwin3/menu.h>
#include <axwin3/richtext.h>
#include <stdio.h>
+#include "strings.h"
// === PROTOTYPES ===
int main(int argc, char *argv[]);
int Toolbar_New(tAxWin3_Widget *Widget);
int Toolbar_Open(tAxWin3_Widget *Widget);
int Toolbar_Save(tAxWin3_Widget *Widget);
+ int Toolbar_Close(tAxWin3_Widget *Widget);
// === GLOBALS ===
tHWND gMainWindow;
AxWin3_Connect(NULL);
// --- Build up window
- gMainWindow = AxWin3_Widget_CreateWindow(NULL, 700, 400, ELEFLAG_VERTICAL);
+ gMainWindow = AxWin3_Widget_CreateWindow(NULL, 500, 400, ELEFLAG_VERTICAL);
AxWin3_SetWindowTitle(gMainWindow, "Acess Text Editor"); // TODO: Update title with other info
gMainWindow_Root = AxWin3_Widget_GetRoot(gMainWindow);
// TODO: Populate menu
// Create toolbar
- gMainWindow_Toolbar = AxWin3_Widget_AddWidget(gMainWindow_Root, ELETYPE_TOOLBAR, ELEFLAG_NOSTRETCH, "Toolbar");
+ gMainWindow_Toolbar = AxWin3_Widget_AddWidget(gMainWindow_Root,
+ ELETYPE_TOOLBAR, ELEFLAG_NOSTRETCH, "Toolbar");
add_toolbar_button(gMainWindow_Toolbar, "BtnNew", Toolbar_New);
add_toolbar_button(gMainWindow_Toolbar, "BtnOpen", Toolbar_Open);
add_toolbar_button(gMainWindow_Toolbar, "BtnSave", Toolbar_Save);
- AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, 0, "");
+ add_toolbar_button(gMainWindow_Toolbar, "BtnClose", Toolbar_Close);
+ AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "");
add_toolbar_button(gMainWindow_Toolbar, "BtnUndo", NULL);
add_toolbar_button(gMainWindow_Toolbar, "BtnRedo", NULL);
- AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, 0, "");
+ AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "");
add_toolbar_button(gMainWindow_Toolbar, "BtnCut", NULL);
add_toolbar_button(gMainWindow_Toolbar, "BtnCopy", NULL);
add_toolbar_button(gMainWindow_Toolbar, "BtnPaste", NULL);
- AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, 0, "");
+ AxWin3_Widget_AddWidget(gMainWindow_Toolbar, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "");
add_toolbar_button(gMainWindow_Toolbar, "BtnSearch", NULL);
add_toolbar_button(gMainWindow_Toolbar, "BtnReplace", NULL);
// <testing>
AxWin3_RichText_SetLineCount(gMainWindow_TextArea, 3);
AxWin3_RichText_SendLine(gMainWindow_TextArea, 0, "First line!");
- AxWin3_RichText_SendLine(gMainWindow_TextArea, 2, "Third line!, should be a nice gap above");
+ AxWin3_RichText_SendLine(gMainWindow_TextArea, 2, "Third line! \x01""ff0000red\x01""00ff00green");
// </testing>
AxWin3_ShowWindow(gMainWindow_TextArea, 1);
// Main loop
AxWin3_MainLoop();
+ AxWin3_DestroyWindow(gMainWindow);
+
return 0;
}
void add_toolbar_button(tAxWin3_Widget *Toolbar, const char *Ident, tAxWin3_Widget_FireCb Callback)
{
tAxWin3_Widget *btn = AxWin3_Widget_AddWidget(Toolbar, ELETYPE_BUTTON, ELEFLAG_NOSTRETCH, Ident);
- tAxWin3_Widget *txt = AxWin3_Widget_AddWidget(btn, ELETYPE_TEXT, 0, Ident);
- // TODO: Get image / text using `Ident` as a lookup key
- AxWin3_Widget_SetText(txt, Ident);
+ const char *img = getimg(Ident);
+ if( img )
+ {
+ tAxWin3_Widget *txt = AxWin3_Widget_AddWidget(btn, ELETYPE_IMAGE, 0, Ident);
+ AxWin3_Widget_SetText(txt, img);
+ // TODO: tooltip?
+ }
+ else
+ {
+ tAxWin3_Widget *txt = AxWin3_Widget_AddWidget(btn, ELETYPE_TEXT, 0, Ident);
+ AxWin3_Widget_SetText(txt, getstr(Ident));
+ }
AxWin3_Widget_SetFireHandler(btn, Callback);
}
{
return 0;
}
+int Toolbar_Close(tAxWin3_Widget *Widget)
+{
+ AxWin3_StopMainLoop(1);
+ return 0;
+}