2 * $Source: /cvs/cvsroot/d2x/arch/ggi/event.c,v $
5 * $Date: 2001-10-24 09:25:05 $
7 * GGI Event related stuff
9 * $Log: not supported by cvs2svn $
10 * Revision 1.3 2001/01/29 14:03:57 bradleyb
11 * Fixed build, minor fixes
27 static int initialised=0;
31 extern ggi_visual_t *screenvis;
35 extern void keyboard_handler(int key, ubyte state);
36 extern void mouse_handler_button(int button, ubyte state);
37 extern void mouse_handler_relative(int x, int y);
38 extern void mouse_handler_absolute(int x, int y);
50 // Error("GII error: no inputs (perhaps you need to set GII_INPUT env var)\n");
55 giiEventPoll(inputs, emAll, &tv);
57 n = giiEventsQueued(inputs, emAll);
61 giiEventRead(inputs, &event, emAll);
62 switch (event.any.type)
65 keyboard_handler(event.key.label, 1);
68 keyboard_handler(event.key.label, 0);
71 mouse_handler_absolute(event.pmove.x, event.pmove.y);
74 mouse_handler_relative(event.pmove.x, event.pmove.y);
76 case evPtrButtonPress:
77 mouse_handler_button(event.pbutton.button - 1, 1);
79 case evPtrButtonRelease:
80 mouse_handler_button(event.pbutton.button - 1, 0);
96 int gii_xwin_initialized=0;
97 #include <ggi/input/xwin.h>
98 //void lock_nothing(void){return;}
99 void init_gii_xwin(Display *disp,Window win){
100 printf("gii xwin %i %i\n",initialised,gii_xwin_initialized);
103 if (gii_xwin_initialized){
105 gii_xwin_cmddata_setparam *giiargs=(gii_xwin_cmddata_setparam *) &ev.cmd.data;
106 memset(&ev,0,sizeof(gii_cmd_nodata_event)+sizeof(gii_xwin_cmddata_setparam));
107 ev.cmd.code=GII_CMDCODE_XWINSETPARAM;
108 ev.any.type = evCommand;
109 ev.any.size=sizeof(gii_cmd_nodata_event)+sizeof(gii_xwin_cmddata_setparam);
111 giiargs->ptralwaysrel=1;
112 giiEventSend(inputs,&ev);
115 gii_inputxwin_arg giiargs;
116 memset(&giiargs,0,sizeof(giiargs));
119 giiargs.ptralwaysrel=1;
120 //giiargs.gglock=lock_nothing;
121 inputs2=giiOpen("xwin",&giiargs,NULL);
123 gii_xwin_initialized=1;
125 inputs=giiJoinInputs(inputs,inputs2);
138 inputs = ggiJoinInputs(screenvis, NULL);
140 inputs=giiOpen(NULL);