X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FInterface%2Fmain.c;h=5f323e46131c5a21a4887c60c5fe54d7ce3a0eb2;hb=b806b8f55067584cb90fe20277235369a1111c66;hp=b7c06ca8a9d4a67c9a6d9eadfa20c25b86a6ac63;hpb=5469fe753efcaccb07e7666c4b7d9b4a8d003808;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/Interface/main.c b/Usermode/Applications/axwin3_src/Interface/main.c index b7c06ca8..5f323e46 100644 --- a/Usermode/Applications/axwin3_src/Interface/main.c +++ b/Usermode/Applications/axwin3_src/Interface/main.c @@ -13,12 +13,16 @@ #define SIDEBAR_WIDTH 40 #define RUN_WIDTH 200 -#define RUN_HEIGHT 70 +#define RUN_HEIGHT 60 // === PROTOTYPES === void create_sidebar(void); void create_mainmenu(void); void create_run_dialog(void); +void mainmenu_run_dialog(void *unused); +void mainmenu_app_terminal(void *unused); +void mainmenu_app_textedit(void *unused); +void update_time(void); // === GLOBALS === tHWND gSidebar; @@ -26,8 +30,10 @@ tAxWin3_Widget *gSidebarRoot; tHWND gSystemMenu; tHWND gRunDialog; tAxWin3_Widget *gRunInput; +tAxWin3_Widget *gTimeDisplay; int giScreenWidth; int giScreenHeight; +char **gEnvion; // === CODE === int systembutton_fire(tAxWin3_Widget *Widget) @@ -37,8 +43,9 @@ int systembutton_fire(tAxWin3_Widget *Widget) return 0; } -int main(int argc, char *argv[]) +int main(int argc, char *argv[], char **envp) { + gEnvion = envp; // Connect to AxWin3 Server AxWin3_Connect(NULL); @@ -49,6 +56,10 @@ int main(int argc, char *argv[]) create_mainmenu(); create_run_dialog(); + AxWin3_RegisterAction(gSidebar, "Interface>Run", (tAxWin3_HotkeyCallback)mainmenu_run_dialog); + AxWin3_RegisterAction(gSidebar, "Interface>Terminal", (tAxWin3_HotkeyCallback)mainmenu_app_terminal); + AxWin3_RegisterAction(gSidebar, "Interface>TextEdit", (tAxWin3_HotkeyCallback)mainmenu_app_textedit); + // Idle loop AxWin3_MainLoop(); @@ -83,10 +94,15 @@ void create_sidebar(void) AxWin3_Widget_SetSize(ele, 4); // > Version/Time - ele = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_BOX, ELEFLAG_VERTICAL|ELEFLAG_NOSTRETCH, "Version/Time"); - txt = AxWin3_Widget_AddWidget(ele, ELETYPE_TEXT, ELEFLAG_NOSTRETCH, "Version String"); - AxWin3_Widget_SetSize(txt, 20); - AxWin3_Widget_SetText(txt, "3.0"); + ele = AxWin3_Widget_AddWidget(gSidebarRoot, + ELETYPE_BOX, + ELEFLAG_VERTICAL|ELEFLAG_ALIGN_CENTER|ELEFLAG_NOSTRETCH, + "Version/Time" + ); + gTimeDisplay = AxWin3_Widget_AddWidget(ele, ELETYPE_TEXT, ELEFLAG_NOSTRETCH, "Time"); + AxWin3_Widget_SetSize(gTimeDisplay, 20); + //AxWin3_Widget_SetText(gTimeDisplay, "--:--"); + update_time(); // Turn off decorations AxWin3_DecorateWindow(gSidebar, 0); @@ -96,15 +112,31 @@ void create_sidebar(void) } +void update_time(void) +{ + char tmpbuf[2+1+2+1] = "--:--"; + //strftime(tmpbuf, sizeof(tmpbuf), "%H:%M", NULL); + AxWin3_Widget_SetText(gTimeDisplay, tmpbuf); +} + void mainmenu_app_textedit(void *unused) { - _SysDebug("TODO: Launch text editor"); +// _SysDebug("TODO: Launch text editor"); + const char *args[] = {"ate",NULL}; + _SysSpawn("/Acess/Apps/AxWin/3.0/ate", args, (const char **)gEnvion, 0, NULL, NULL); +} + +void mainmenu_app_terminal(void *unused) +{ + _SysDebug("Launch terminal emulator"); + const char *args[] = {"terminal",NULL}; + _SysSpawn("/Acess/Apps/AxWin/3.0/terminal", args, (const char **)gEnvion, 0, NULL, NULL); } void mainmenu_run_dialog(void *unused) { - _SysDebug("TODO: Show run dialog"); AxWin3_ShowWindow(gRunDialog, 1); + AxWin3_FocusWindow(gRunDialog); } void create_mainmenu(void) @@ -112,19 +144,26 @@ void create_mainmenu(void) gSystemMenu = AxWin3_Menu_Create(NULL); AxWin3_Menu_AddItem(gSystemMenu, "Text &Editor\tWin+E", mainmenu_app_textedit, NULL, 0, NULL); + AxWin3_Menu_AddItem(gSystemMenu, "&Terminal Emulator\tWin+T", mainmenu_app_terminal, NULL, 0, NULL); AxWin3_Menu_AddItem(gSystemMenu, NULL, NULL, NULL, 0, NULL); - AxWin3_Menu_AddItem(gSystemMenu, "Run\tWin+R", mainmenu_run_dialog, NULL, 0, NULL); + AxWin3_Menu_AddItem(gSystemMenu, "&Run\tWin+R", mainmenu_run_dialog, NULL, 0, NULL); } +// -------------------------------------------------------------------- +// "Run" Dialog box +// -------------------------------------------------------------------- int run_dorun(tAxWin3_Widget *unused) { -// char *cmd = AxWin3_Widget_GetText(gRunInput); + _SysDebug("DoRun pressed"); + char *cmd = AxWin3_Widget_GetText(gRunInput); + _SysDebug("Command string '%s'", cmd); AxWin3_ShowWindow(gRunDialog, 0); return 0; } int run_close(tAxWin3_Widget *unused) { + _SysDebug("Run diaglog closed"); AxWin3_ShowWindow(gRunDialog, 0); return 0; } @@ -134,8 +173,10 @@ tAxWin3_Widget *make_textbutton(tAxWin3_Widget *Parent, const char *Label, tAxWi tAxWin3_Widget *ret, *txt; ret = AxWin3_Widget_AddWidget(Parent, ELETYPE_BUTTON, ELEFLAG_ALIGN_CENTER, "_btn"); AxWin3_Widget_SetFireHandler(ret, handler); + AxWin3_Widget_AddWidget(ret, ELETYPE_NONE, 0, "_spacer1"); txt = AxWin3_Widget_AddWidget(ret, ELETYPE_TEXT, ELEFLAG_NOSTRETCH|ELEFLAG_NOEXPAND, "_txt"); AxWin3_Widget_SetText(txt, Label); + AxWin3_Widget_AddWidget(ret, ELETYPE_NONE, 0, "_spacer2"); return ret; } @@ -145,14 +186,14 @@ void create_run_dialog(void) gRunDialog = AxWin3_Widget_CreateWindow(NULL, RUN_WIDTH, RUN_HEIGHT, ELEFLAG_VERTICAL); AxWin3_SetWindowTitle(gRunDialog, "Run Program..."); - AxWin3_MoveWindow(gRunDialog, giScreenWidth/2-RUN_WIDTH/2, giScreenHeight/2-RUN_HEIGHT/2); + root = AxWin3_Widget_GetRoot(gRunDialog); - gRunInput = AxWin3_Widget_AddWidget(root, ELETYPE_TEXTINPUT, 0, "Input"); + gRunInput = AxWin3_Widget_AddWidget(root, ELETYPE_TEXTINPUT, ELEFLAG_NOSTRETCH, "Input"); AxWin3_Widget_SetFireHandler(gRunInput, run_dorun); - box = AxWin3_Widget_AddWidget(root, ELETYPE_BOX, ELEFLAG_ALIGN_CENTER|ELEFLAG_NOSTRETCH, "Button Area"); + box = AxWin3_Widget_AddWidget(root, ELETYPE_BOX, ELEFLAG_ALIGN_CENTER, "Button Area"); make_textbutton(box, "Ok", run_dorun); make_textbutton(box, "Cancel", run_close); }