00001 // Copyright (c) 2003 - 2004 Anselm R. Garbe <anselmg at t-online.de> 00002 // See ../LICENSE.txt for license details. 00003 // 00004 // $Id: clientbar.h 7 2007-05-24 11:03:53Z eg1981 $ 00005 00006 #ifndef __CLIENTBAR_H 00007 #define __CLIENTBAR_H 00008 00009 #include "bar.h" 00010 00011 class Menu; 00012 class Monitor; 00013 00017 class ClientBar : public Bar { 00018 00019 public: 00020 00021 enum Mode {PAGER, CLIENTINFO}; 00022 00023 ClientBar(Monitor *monitor, Rectangle *rect); 00024 00025 ~ClientBar(); 00026 00027 virtual void illuminate(); 00028 00029 virtual void handleMotionNotify(XMotionEvent *event); 00030 virtual void handleButtonPress(XButtonEvent *event); 00031 virtual void handleButtonRelease(XButtonEvent *event); 00032 00033 void toggleMenuMode(); 00034 void setMode(Mode mode); 00035 Mode mode() const; 00036 00037 Menu *menu() const; 00038 00039 private: 00040 00041 void updateClientInfo(); 00042 void updateClientPager(); 00043 void updateModeButton(); 00044 void updateMenuButton(); 00045 00046 void invokeClickedThing(int xPosition); 00047 bool isModeButtonPressed_; 00048 bool isMenuButtonPressed_; 00049 Mode mode_; 00050 Menu *menu_; 00051 }; 00052 00053 #endif // __CLIENTBAR_H