2 * $Source: /cvs/cvsroot/d2x/input/ggi_event.c,v $
5 * $Date: 2001-01-29 14:03:57 $
7 * GGI Event related stuff
9 * $Log: not supported by cvs2svn $
24 static int initialised=0;
28 extern ggi_visual_t *screenvis;
32 extern void keyboard_handler(int key, ubyte state);
33 extern void mouse_handler_button(int button, ubyte state);
34 extern void mouse_handler_relative(int x, int y);
35 extern void mouse_handler_absolute(int x, int y);
47 // Error("GII error: no inputs (perhaps you need to set GII_INPUT env var)\n");
52 giiEventPoll(inputs, emAll, &tv);
54 n = giiEventsQueued(inputs, emAll);
58 giiEventRead(inputs, &event, emAll);
59 switch (event.any.type)
62 keyboard_handler(event.key.label, 1);
65 keyboard_handler(event.key.label, 0);
68 mouse_handler_absolute(event.pmove.x, event.pmove.y);
71 mouse_handler_relative(event.pmove.x, event.pmove.y);
73 case evPtrButtonPress:
74 mouse_handler_button(event.pbutton.button - 1, 1);
76 case evPtrButtonRelease:
77 mouse_handler_button(event.pbutton.button - 1, 0);
93 int gii_xwin_initialized=0;
94 #include <ggi/input/xwin.h>
95 //void lock_nothing(void){return;}
96 void init_gii_xwin(Display *disp,Window win){
97 printf("gii xwin %i %i\n",initialised,gii_xwin_initialized);
100 if (gii_xwin_initialized){
102 gii_xwin_cmddata_setparam *giiargs=(gii_xwin_cmddata_setparam *) &ev.cmd.data;
103 memset(&ev,0,sizeof(gii_cmd_nodata_event)+sizeof(gii_xwin_cmddata_setparam));
104 ev.cmd.code=GII_CMDCODE_XWINSETPARAM;
105 ev.any.type = evCommand;
106 ev.any.size=sizeof(gii_cmd_nodata_event)+sizeof(gii_xwin_cmddata_setparam);
108 giiargs->ptralwaysrel=1;
109 giiEventSend(inputs,&ev);
112 gii_inputxwin_arg giiargs;
113 memset(&giiargs,0,sizeof(giiargs));
116 giiargs.ptralwaysrel=1;
117 //giiargs.gglock=lock_nothing;
118 inputs2=giiOpen("xwin",&giiargs,NULL);
120 gii_xwin_initialized=1;
122 inputs=giiJoinInputs(inputs,inputs2);
135 inputs = ggiJoinInputs(screenvis, NULL);
137 inputs=giiOpen(NULL);