UniWidgets  1.0.0
IndicatorBlink.h
00001 #ifndef _INDICATORBLINK_H
00002 #define _INDICATORBLINK_H
00003 // -------------------------------------------------------------------------
00004 #include <gtkmm.h>
00005 #include <gdkmm.h>
00006 #include <uniwidgets/SBlinker.h>
00007 #include <uniwidgets/USignals.h>
00008 #include <uniwidgets/ConfirmSignal.h>
00009 #include <components/Indicator.h>
00010 #include <global_macros.h>
00011 // -------------------------------------------------------------------------
00012 namespace UniWidgets
00013 {
00020 class IndicatorBlink : public Indicator
00021 {
00022 public:
00023     IndicatorBlink();
00024     explicit IndicatorBlink(Indicator::BaseObjectType* gobject);
00025     ~IndicatorBlink() {}
00026 
00027     void start_blink();             
00028     void stop_blink();              
00029     void set_state(bool newstate_);         
00030     void on_set_text_color(const long mode);    
00031     bool is_blinking();             
00032 protected:
00033     /* Methods */
00034     virtual bool on_expose_event(GdkEventExpose*);
00035     virtual void on_color_changed();        
00036     void on_map();
00037     void on_unmap();
00038 private:
00039     /* Variables */
00040     Gdk::Color font_color2;
00041     std::map<long , Gdk::Color> colors_;
00042     bool is_blinking_;
00043     bool state_;
00044     bool sleep_blinking_;
00045 
00046     /* Methods */
00047     static Blinker blinker;
00048     sigc::connection blink_connection_;
00049 
00050     /* Methods */
00051     void constructor();
00052     void blink(bool state,int time = DEFAULT_BLINK_TIME);
00053     DISALLOW_COPY_AND_ASSIGN(IndicatorBlink);
00054     /* Properties */
00055     ADD_PROPERTY( default_color, Gdk::Color )
00056     ADD_PROPERTY( warn_color, Gdk::Color )
00057     ADD_PROPERTY( alarm_color, Gdk::Color )
00058 };
00059 
00060 }
00061 #endif