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);                
00030   virtual bool can_blinking(){return true;}
00031 
00032 protected:
00033     /* Event handlers */
00034     virtual bool on_expose_event(GdkEventExpose*);
00035     void on_map();
00036     void on_unmap();
00037 
00038 private:
00039     /* Variables */
00040     static Blinker blinker;
00041     Glib::RefPtr<Gdk::Pixbuf> image2_ref_;
00042     sigc::connection blink_connection_;
00043     bool is_blinking_;
00044     bool sleep_blinking_;
00045     /* FIXME: state_ is indicator of showing image (first or second).
00046      * This is not realy bool value !!! */
00047     bool state_;
00048 
00049     /* Methods */
00050     void constructor();
00051     void blink(bool state,int time = DEFAULT_BLINK_TIME);
00052 
00053     // Функция для
00054     void configure_blinktime();
00055 
00056     DISALLOW_COPY_AND_ASSIGN(ImageBlink);
00057     /* Properties */
00058     ADD_PROPERTY( image2_path, Glib::ustring )
00059     //Задаёт частоту мигания картинки
00060     ADD_PROPERTY( blinktime, int )
00061 };
00062 
00063 }
00064 
00065 #endif