1 #ifndef __WMSTATUS_H 2 #define __WMSTATUS_H 3 4 #include "ywindow.h" 5 #include "ytimer.h" 6 7 class YFrameWindow; 8 9 class YWindowManagerStatus: public YWindow { 10 public: 11 YWindowManagerStatus(); 12 virtual ~YWindowManagerStatus(); 13 14 virtual void configure(const YRect2& r2); handleExpose(const XExposeEvent & expose)15 virtual void handleExpose(const XExposeEvent& expose) {} 16 virtual void paint(Graphics &g, const YRect &r); repaint()17 virtual void repaint() { repaintSync(); } 18 virtual void repaintSync(); 19 20 void begin(); end()21 virtual void end() { hide(); } 22 23 virtual mstring getStatus() = 0; 24 virtual mstring longestStatus() = 0; 25 26 protected: setScreen(int screen)27 void setScreen(int screen) { fScreen = screen; } 28 static YColorName statusFg; 29 static YColorName statusBg; 30 static YFont statusFont; 31 32 private: 33 void configureStatus(); 34 int fScreen; 35 bool fConfigured; 36 }; 37 38 class MoveSizeStatus: public YWindowManagerStatus { 39 typedef YWindowManagerStatus super; 40 41 public: 42 MoveSizeStatus(); 43 virtual ~MoveSizeStatus(); 44 45 virtual void end(); 46 virtual mstring getStatus(); 47 virtual mstring longestStatus(); 48 49 void begin(YFrameWindow *frame); 50 void setStatus(YFrameWindow *frame, const YRect &r); 51 void setStatus(YFrameWindow *frame); 52 private: 53 54 int fX, fY, fW, fH; 55 }; 56 57 class WorkspaceStatus: public YWindowManagerStatus, public YTimerListener { 58 typedef YWindowManagerStatus super; 59 60 public: 61 WorkspaceStatus(); 62 virtual ~WorkspaceStatus(); 63 64 virtual void end(); 65 virtual mstring getStatus(); 66 virtual mstring longestStatus(); 67 68 void begin(long workspace); 69 virtual void setStatus(long workspace); 70 virtual bool handleTimer(YTimer *timer); 71 private: 72 WorkspaceStatus(YWindow *aParent, mstring templateString); 73 static mstring getStatus(const char* name); 74 75 long workspace; 76 YTimer timer; 77 }; 78 79 extern lazy<MoveSizeStatus> statusMoveSize; 80 extern lazy<WorkspaceStatus> statusWorkspace; 81 82 #endif 83 84 // vim: set sw=4 ts=4 et: 85