00001 // Copyright (c) 2003 - 2004 Anselm R. Garbe <anselmg at t-online.de> 00002 // See ../LICENSE.txt for license details. 00003 // 00004 // $Id: bar.h 2 2007-05-16 10:38:27Z eg $ 00005 00006 #ifndef __BAR_H 00007 #define __BAR_H 00008 00009 extern "C" { 00010 #include <X11/Xlib.h> 00011 } 00012 00013 #include "widget.h" 00014 00015 class Label; 00016 class Monitor; 00017 class Theme; 00018 00020 class Bar : public Widget { 00021 00022 public: 00023 00024 Bar(Monitor *monitor, Rectangle *rect); 00025 virtual ~Bar(); 00026 00027 virtual void illuminate() = 0; 00028 00029 virtual void handleButtonPress(XButtonEvent *event) = 0; 00030 virtual void handleButtonRelease(XButtonEvent *event) = 0; 00031 virtual void handleMotionNotify(XMotionEvent *event) = 0; 00032 00033 protected: 00034 00035 Label *label_; 00036 Theme *theme_; 00037 00039 void drawBorder(); 00040 bool isButtonVisible_; 00041 00042 private: 00043 00044 Rectangle borderRect_; 00045 }; 00046 00047 #endif // __BAR_H