don't include "cvs" in the version (not using cvs anymore :D)
[blackbox.git] / lib / EventHandler.hh
blobbaea76d310c53709a4837b43901ef06fda1bd9d5
1 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
2 // EventHandler.hh for Blackbox - an X11 Window manager
3 // Copyright (c) 2001 - 2005 Sean 'Shaleh' Perry <shaleh@debian.org>
4 // Copyright (c) 1997 - 2000, 2002 - 2005
5 // Bradley T Hughes <bhughes at trolltech.com>
6 //
7 // Permission is hereby granted, free of charge, to any person obtaining a
8 // copy of this software and associated documentation files (the "Software"),
9 // to deal in the Software without restriction, including without limitation
10 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 // and/or sell copies of the Software, and to permit persons to whom the
12 // Software is furnished to do so, subject to the following conditions:
14 // The above copyright notice and this permission notice shall be included in
15 // all copies or substantial portions of the Software.
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 // DEALINGS IN THE SOFTWARE.
25 #ifndef __EventHandler_hh
26 #define __EventHandler_hh
28 #include <X11/Xlib.h>
30 namespace bt {
33 The abstract event handler. You must register your event handler
34 with the application object. See
35 bt::Application::insertEventHandler() and
36 bt::Application::removeEventHandler().
38 class EventHandler
40 public:
41 inline virtual ~EventHandler(void)
42 { }
44 // Mouse button press.
45 inline virtual void buttonPressEvent(const XButtonEvent * const)
46 { }
47 // Mouse button release.
48 inline virtual void buttonReleaseEvent(const XButtonEvent * const)
49 { }
50 // Mouse movement.
51 inline virtual void motionNotifyEvent(const XMotionEvent * const)
52 { }
53 // Key press.
54 inline virtual void keyPressEvent(const XKeyEvent * const)
55 { }
56 // Key release.
57 inline virtual void keyReleaseEvent(const XKeyEvent * const)
58 { }
60 // Window configure (size, position, stacking, etc.).
61 inline virtual void configureNotifyEvent(const XConfigureEvent * const)
62 { }
63 // Window shown.
64 inline virtual void mapNotifyEvent(const XMapEvent * const)
65 { }
66 // Window hidden.
67 inline virtual void unmapNotifyEvent(const XUnmapEvent * const)
68 { }
69 // Window reparented.
70 inline virtual void reparentNotifyEvent(const XReparentEvent * const)
71 { }
72 // Window destroyed.
73 inline virtual void destroyNotifyEvent(const XDestroyWindowEvent * const)
74 { }
76 // Mouse entered window.
77 inline virtual void enterNotifyEvent(const XCrossingEvent * const)
78 { }
79 // Mouse left window.
80 inline virtual void leaveNotifyEvent(const XCrossingEvent * const)
81 { }
83 // Window needs repainting.
84 inline virtual void exposeEvent(const XExposeEvent * const)
85 { }
87 // Window property changed/added/deleted.
88 inline virtual void propertyNotifyEvent(const XPropertyEvent * const)
89 { }
91 // Message passing.
92 inline virtual void clientMessageEvent(const XClientMessageEvent * const)
93 { }
95 // Window shape changed. (Note: we use XEvent instead of
96 // XShapeEvent to avoid the header.)
97 inline virtual void shapeEvent(const XEvent * const)
98 { }
100 protected:
101 inline EventHandler(void)
105 } // namespace bt
107 #endif // __EventHandler_hh