UniWidgets  1.0.0
ImageBlink.h
00001 #ifndef _IMAGEBLINK_H
00002 #define _IMAGEBLINK_H
00003 // -------------------------------------------------------------------------
00004 #include <uniwidgets/SBlinker.h>
00005 #include <uniwidgets/USignals.h>
00006 #include <uniwidgets/ConfirmSignal.h>
00007 #include <components/Image.h>
00008 #include <plugins.h>
00009 // -------------------------------------------------------------------------
00010 namespace UniWidgets
00011 {
00017 class ImageBlink : public Image
00018 {
00019 public:
00020     ImageBlink();
00021     explicit ImageBlink(Image::BaseObjectType* gobject);
00022     virtual ~ImageBlink();
00023 
00024     /* Methods */
00025     virtual void start_blink();                 
00026     virtual void stop_blink();                  
00027     virtual bool is_blinking();                 
00028     virtual void set_blink_(bool value){blink_.set_value(value);}   
00029     virtual bool set_state(bool st);                
00031 protected:
00032     /* Event handlers */
00033     virtual bool on_expose_event(GdkEventExpose*);
00034     void on_map();
00035     void on_unmap();
00036 
00037 private:
00038     /* Variables */
00039     static Blinker blinker;
00040     Glib::RefPtr<Gdk::Pixbuf> image2_ref_;
00041     sigc::connection blink_connection_;
00042     bool is_blinking_;
00043     bool sleep_blinking_;
00044     /* FIXME: state_ is indicator of showing image (first or second).
00045      * This is not realy bool value !!! */
00046     bool state_;
00047 
00048     /* Methods */
00049     void constructor();
00050     void blink(bool state,int time = DEFAULT_BLINK_TIME);
00051 
00052     // Функция для
00053     void configure_blinktime();
00054 
00055     DISALLOW_COPY_AND_ASSIGN(ImageBlink);
00056     /* Properties */
00057     ADD_PROPERTY( image2_path, Glib::ustring )
00058     //Задаёт частоту мигания картинки
00059     ADD_PROPERTY( blinktime, int )
00060 };
00061 
00062 }
00063 
00064 #endif