00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ATOMHANDLER_HH
00025 #define ATOMHANDLER_HH
00026
00027 #include <X11/Xlib.h>
00028
00029 class FluxboxWindow;
00030 class WinClient;
00031 class BScreen;
00032
00033 class AtomHandler {
00034 public:
00035
00036 virtual ~AtomHandler() { }
00037
00038 virtual void initForScreen(BScreen &screen) = 0;
00039 virtual void setupFrame(FluxboxWindow &win) = 0;
00040 virtual void setupClient(WinClient &winclient) = 0;
00041
00042 virtual void updateClientList(BScreen &screen) = 0;
00043 virtual void updateWorkspaceNames(BScreen &screen) = 0;
00044 virtual void updateCurrentWorkspace(BScreen &screen) = 0;
00045 virtual void updateWorkspaceCount(BScreen &screen) = 0;
00046
00047 virtual void updateFrameClose(FluxboxWindow &win) = 0;
00048 virtual void updateClientClose(WinClient &winclient) = 0;
00049 virtual void updateWorkspace(FluxboxWindow &win) = 0;
00050 virtual void updateState(FluxboxWindow &win) = 0;
00051 virtual void updateHints(FluxboxWindow &win) = 0;
00052 virtual void updateLayer(FluxboxWindow &win) = 0;
00053
00054 virtual bool checkClientMessage(const XClientMessageEvent &ce,
00055 BScreen * screen, WinClient * const winclient) = 0;
00056
00057 virtual bool propertyNotify(WinClient &winclient, Atom the_property) = 0;
00058
00060 bool update() const { return m_update; }
00061 protected:
00062 AtomHandler():m_update(true) { }
00063
00064 void disableUpdate() { m_update = false; }
00065 void enableUpdate() { m_update = true; }
00066 private:
00067 bool m_update;
00068 };
00069
00070 #endif // ATOMHANDLER_HH