Usermode/axwin3 - Implimented terminal spawn command
[tpg/acess2.git] / Usermode / Applications / axwin3_src / Interface / main.c
index 80bf329..a098614 100644 (file)
@@ -19,6 +19,9 @@
 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);
 
 // === GLOBALS ===
 tHWND  gSidebar;
@@ -28,6 +31,7 @@ tHWND gRunDialog;
 tAxWin3_Widget *gRunInput;
  int   giScreenWidth;
  int   giScreenHeight;
+char   **gEnvion;
 
 // === CODE ===
 int systembutton_fire(tAxWin3_Widget *Widget)
@@ -37,8 +41,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 +54,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();
        
@@ -102,17 +111,22 @@ void create_sidebar(void)
 
 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 +139,21 @@ 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);
        AxWin3_ShowWindow(gRunDialog, 0);
        return 0;
 }
 
 int run_close(tAxWin3_Widget *unused)
 {
+       _SysDebug("Run diaglog closed");
        AxWin3_ShowWindow(gRunDialog, 0);
        return 0;
 }

UCC git Repository :: git.ucc.asn.au