[GEM-cvs] Gem/src/Controls gemwindow.cpp,1.1.2.12,1.1.2.13
Brought to you by:
zmoelnig
From: IOhannes m z. <zmo...@us...> - 2004-12-07 11:52:15
|
Update of /cvsroot/pd-gem/Gem/src/Controls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10993 Modified Files: Tag: multiple_window gemwindow.cpp Log Message: output events through the outlet instead of dedicated objects ([gemmouse]) Index: gemwindow.cpp =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Controls/Attic/gemwindow.cpp,v retrieving revision 1.1.2.12 retrieving revision 1.1.2.13 diff -C2 -d -r1.1.2.12 -r1.1.2.13 *** gemwindow.cpp 9 Aug 2004 11:23:15 -0000 1.1.2.12 --- gemwindow.cpp 7 Dec 2004 11:52:03 -0000 1.1.2.13 *************** *** 115,118 **** --- 115,124 ---- } + + void gemwindow :: infoMess() + { + GemOutput::infoMess(); + } + ///////////////////////////////////////////////////////// // createMess *************** *** 138,142 **** clock_delay(m_windowClock, m_windowDelTime); } ! #elif unix void gemwindow::dispatchGemWindowMessages() { --- 144,149 ---- clock_delay(m_windowClock, m_windowDelTime); } ! #elif unix ! // i don't like that there is so much OS-specific code in here! (jmz) void gemwindow::dispatchGemWindowMessages() { *************** *** 147,181 **** XKeyEvent* kb = (XKeyEvent*)&event; XResizeRequestEvent *res = (XResizeRequestEvent*)&event; while (XCheckWindowEvent(win.dpy,win.win, ! ResizeRedirectMask | ! KeyPressMask | KeyReleaseMask | ! PointerMotionMask | ! ButtonMotionMask | ! ButtonPressMask | ! ButtonReleaseMask, &event)) { switch (event.type) { case ButtonPress: ! triggerButtonEvent(eb->button-1, 1, eb->x, eb->y); ! break; ! case ButtonRelease: ! triggerButtonEvent(eb->button-1, 0, eb->x, eb->y); ! break; ! case MotionNotify: ! triggerMotionEvent(eb->x, eb->y, m_width, m_height); ! break; ! case KeyPress: ! triggerKeyboardEvent(XKeysymToString(XKeycodeToKeysym(win.dpy, kb->keycode, 0)), kb->keycode, 1); break; case KeyRelease: ! triggerKeyboardEvent(XKeysymToString(XKeycodeToKeysym(win.dpy, kb->keycode, 0)), kb->keycode, 0); break; case ResizeRequest: ! XResizeWindow(win.dpy, win.win, res->width, res->height); resize(res->width, res->height); ! break; default: --- 154,217 ---- XKeyEvent* kb = (XKeyEvent*)&event; XResizeRequestEvent *res = (XResizeRequestEvent*)&event; + XConfigureEvent *cfg=(XConfigureEvent*)&event; + // how do we get focus changes ? while (XCheckWindowEvent(win.dpy,win.win, ! EnterWindowMask | LeaveWindowMask | ! StructureNotifyMask | // gets the offset ! ResizeRedirectMask | // gets resizing events ! KeyPressMask | KeyReleaseMask | // gets keyboard ! PointerMotionMask | // gets the mouse-pointer ! ButtonMotionMask | // gets drag-events ! ButtonPressMask | ButtonReleaseMask, // gets the mouse-button &event)) { + t_atom ap[3]; + int state=0; switch (event.type) { case ButtonPress: ! state=1; ! case ButtonRelease: ! SETSYMBOL(ap, gensym("btn")); ! SETFLOAT(ap+1, eb->button-1); ! SETFLOAT(ap+2, state); ! outlet_anything(m_outlet, gensym("mouse"), 3, ap); ! break; ! ! case MotionNotify: ! SETSYMBOL(ap, gensym("pos")); ! SETFLOAT(ap+1, eb->x); ! SETFLOAT(ap+2, eb->y); ! outlet_anything(m_outlet, gensym("mouse"), 3, ap); break; + + case EnterNotify: + state=1; + case LeaveNotify: + SETFLOAT(ap, state); + outlet_anything(m_outlet, gensym("focus"), 1, ap); + break; + + case KeyPress: + state=1; case KeyRelease: ! SETSYMBOL(ap, gensym(XKeysymToString(XKeycodeToKeysym(win.dpy, kb->keycode, 0)))); ! SETFLOAT(ap+1, kb->keycode); ! SETFLOAT(ap+2, state); ! outlet_anything(m_outlet, gensym("keyboard"), 3, ap); break; + case ResizeRequest: ! //XResizeWindow(win.dpy, win.win, res->width, res->height); /* this might loop! */ resize(res->width, res->height); ! SETFLOAT(ap, res->width); ! SETFLOAT(ap+1, res->height); ! outlet_anything(m_outlet, gensym("dimen"), 2, ap); ! break; ! case ConfigureNotify: ! SETFLOAT(ap+0, cfg->x); ! SETFLOAT(ap+1, cfg->y); ! outlet_anything(m_outlet, gensym("offset"), 2, ap); break; default: *************** *** 206,210 **** { if (ySize==0)ySize=1; - post("%X resize %d %d", this, xSize, ySize); float xDivy = (float)xSize / (float)ySize; m_height = ySize; --- 242,245 ---- *************** *** 449,453 **** clock_unset(m_windowClock); m_windowClock = NULL; - removeResizeCallback(resizeCallback, this->x_obj); --- 484,487 ---- |