00001 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- 00002 00003 #ifdef HAVE_CONFIG_H 00004 # include "../config.h" 00005 #endif 00006 00007 #include "display.hh" 00008 #include "eventhandler.hh" 00009 00010 namespace otk { 00011 00012 EventHandler::EventHandler() 00013 { 00014 } 00015 00016 00017 EventHandler::~EventHandler() 00018 { 00019 } 00020 00021 00022 void EventHandler::handle(const XEvent &e) 00023 { 00024 switch(e.type){ 00025 case KeyPress: 00026 return keyPressHandler(e.xkey); 00027 case KeyRelease: 00028 return keyReleaseHandler(e.xkey); 00029 case ButtonPress: 00030 return buttonPressHandler(e.xbutton); 00031 case ButtonRelease: 00032 return buttonReleaseHandler(e.xbutton); 00033 case MotionNotify: 00034 return motionHandler(e.xmotion); 00035 case EnterNotify: 00036 return enterHandler(e.xcrossing); 00037 case LeaveNotify: 00038 return leaveHandler(e.xcrossing); 00039 case FocusIn: 00040 return focusHandler(e.xfocus); 00041 case FocusOut: 00042 return unfocusHandler(e.xfocus); 00043 case Expose: 00044 return exposeHandler(e.xexpose); 00045 case GraphicsExpose: 00046 return graphicsExposeHandler(e.xgraphicsexpose); 00047 case NoExpose: 00048 return noExposeEventHandler(e.xnoexpose); 00049 case CirculateRequest: 00050 return circulateRequestHandler(e.xcirculaterequest); 00051 case ConfigureRequest: 00052 return configureRequestHandler(e.xconfigurerequest); 00053 case MapRequest: 00054 return mapRequestHandler(e.xmaprequest); 00055 case ResizeRequest: 00056 return resizeRequestHandler(e.xresizerequest); 00057 case CirculateNotify: 00058 return circulateHandler(e.xcirculate); 00059 case ConfigureNotify: 00060 return configureHandler(e.xconfigure); 00061 case CreateNotify: 00062 return createHandler(e.xcreatewindow); 00063 case DestroyNotify: 00064 return destroyHandler(e.xdestroywindow); 00065 case GravityNotify: 00066 return gravityHandler(e.xgravity); 00067 case MapNotify: 00068 return mapHandler(e.xmap); 00069 case MappingNotify: 00070 return mappingHandler(e.xmapping); 00071 case ReparentNotify: 00072 return reparentHandler(e.xreparent); 00073 case UnmapNotify: 00074 return unmapHandler(e.xunmap); 00075 case VisibilityNotify: 00076 return visibilityHandler(e.xvisibility); 00077 case ColormapNotify: 00078 return colorMapHandler(e.xcolormap); 00079 case ClientMessage: 00080 return clientMessageHandler(e.xclient); 00081 case PropertyNotify: 00082 return propertyHandler(e.xproperty); 00083 case SelectionClear: 00084 return selectionClearHandler(e.xselectionclear); 00085 case SelectionNotify: 00086 return selectionHandler(e.xselection); 00087 case SelectionRequest: 00088 return selectionRequestHandler(e.xselectionrequest); 00089 default: 00090 #ifdef SHAPE 00091 if (e.type == display->shapeEventBase()) 00092 return shapeHandler((*(XShapeEvent*)&e)); 00093 #endif // SHAPE 00094 #ifdef XKB 00095 if (e.type == display->xkbEventBase()) 00096 return xkbHandler((*(XkbEvent*)&e)); 00097 #endif // XKB 00098 ; 00099 } 00100 } 00101 00102 00103 void EventHandler::clientMessageHandler(const XClientMessageEvent &) 00104 { 00105 00106 } 00107 00108 }