Usermode/AxWin3 - Managed to pass input all the way back to client code :)
[tpg/acess2.git] / Usermode / Applications / axwin3_src / Interface / main.c
1 /*
2  * Acess2 GUI v3 User Interface
3  * - By John Hodge (thePowersGang)
4  *
5  * main.c
6  * - Interface core
7  */
8 #include <acess/sys.h>
9 #include <stdlib.h>
10 #include <axwin3/axwin.h>
11 #include <axwin3/widget.h>
12
13 #define SIDEBAR_WIDTH   36
14
15 // === PROTOTYPES ===
16 void    create_sidebar(void);
17
18 // === GLOBALS ===
19 tHWND   gSidebar;
20 tAxWin3_Widget  *gSidebarRoot;
21
22 // === CODE ===
23 int systembutton_fire(tAxWin3_Widget *Widget)
24 {
25         _SysDebug("SystemButton pressed");
26         return 0;
27 }
28
29 int main(int argc, char *argv[])
30 {
31         // Connect to AxWin3 Server
32         AxWin3_Connect(NULL);
33         
34         create_sidebar();
35         
36         // Idle loop
37         AxWin3_MainLoop();
38         
39         return 0;
40 }
41
42 void create_sidebar(void)
43 {
44         tAxWin3_Widget  *btn, *txt, *ele;
45
46         // Create sidebar
47         // TODO: Get screen dimensions somehow
48         gSidebar = AxWin3_Widget_CreateWindow(NULL, SIDEBAR_WIDTH, 480, ELEFLAG_VERTICAL);
49         AxWin3_MoveWindow(gSidebar, 0, 0);
50         gSidebarRoot = AxWin3_Widget_GetRoot(gSidebar); 
51
52         // - Main menu
53         btn = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_BUTTON, ELEFLAG_NOSTRETCH, "SystemButton");
54         AxWin3_Widget_SetSize(btn, SIDEBAR_WIDTH);
55         AxWin3_Widget_SetFireHandler(btn, systembutton_fire);
56         txt = AxWin3_Widget_AddWidget(btn, ELETYPE_IMAGE, 0, "SystemLogo");
57         AxWin3_Widget_SetText(txt, "file:///Acess/Apps/AxWin/3.0/AcessLogoSmall.sif");
58         
59         // - Plain <hr/> style spacer
60         ele = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "SideBar Spacer Top");
61         AxWin3_Widget_SetSize(ele, 4);
62
63         // TODO: Program list
64         ele = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_BOX, ELEFLAG_VERTICAL, "ProgramList");
65
66         // - Plain <hr/> style spacer
67         ele = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_SPACER, ELEFLAG_NOSTRETCH, "SideBar Spacer Top");
68         AxWin3_Widget_SetSize(ele, 4);
69
70         // > Version/Time
71         ele = AxWin3_Widget_AddWidget(gSidebarRoot, ELETYPE_BOX, ELEFLAG_VERTICAL|ELEFLAG_NOSTRETCH, "Version/Time");
72         txt = AxWin3_Widget_AddWidget(ele, ELETYPE_TEXT, ELEFLAG_NOSTRETCH, "Version String");
73         AxWin3_Widget_SetSize(txt, 20);
74         AxWin3_Widget_SetText(txt, "2.0");
75
76         // Show!
77         AxWin3_ShowWindow(gSidebar, 1); 
78         
79 }
80

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