X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FInterface%2Fmain.c;h=e39d9050f663d98a45325c7c4e3fb7d92fb7dadc;hb=3ad4532bb952dbcb28a2b9fa72d7f1f87b5f8fd4;hp=80bf3292e40f751f9f78ef87f3086984d6a42d0f;hpb=7c00f2f9205aeb803f0499c9e88c98048830bea6;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/Interface/main.c b/Usermode/Applications/axwin3_src/Interface/main.c index 80bf3292..e39d9050 100644 --- a/Usermode/Applications/axwin3_src/Interface/main.c +++ b/Usermode/Applications/axwin3_src/Interface/main.c @@ -19,6 +19,10 @@ 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,12 @@ tAxWin3_Widget *gSidebarRoot; tHWND gSystemMenu; tHWND gRunDialog; tAxWin3_Widget *gRunInput; + +tAxWin3_Widget *gWindowList; +tAxWin3_Widget *gTimeDisplay; int giScreenWidth; int giScreenHeight; +char **gEnvion; // === CODE === int systembutton_fire(tAxWin3_Widget *Widget) @@ -37,8 +45,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 +58,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(); @@ -76,7 +89,7 @@ void create_sidebar(void) AxWin3_Widget_SetSize(ele, 4); // TODO: Program list - ele = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_BOX, ELEFLAG_VERTICAL, "ProgramList"); + gWindowList = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_BOX, ELEFLAG_VERTICAL, "ProgramList"); // - Plain
style spacer ele = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "SideBar Spacer Top"); @@ -88,9 +101,10 @@ void create_sidebar(void) ELEFLAG_VERTICAL|ELEFLAG_ALIGN_CENTER|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"); + 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); @@ -100,19 +114,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("TODO: Launch terminal emulator"); + _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) { AxWin3_ShowWindow(gRunDialog, 1); + AxWin3_FocusWindow(gRunDialog); } void create_mainmenu(void) @@ -125,15 +151,25 @@ void create_mainmenu(void) 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); + + // TODO: Parse the command string into components + // TODO: Call _SysSpawn + AxWin3_ShowWindow(gRunDialog, 0); return 0; } int run_close(tAxWin3_Widget *unused) { + _SysDebug("Run diaglog closed"); AxWin3_ShowWindow(gRunDialog, 0); return 0; }