CisternImage.h
00001 #ifndef _CISTERNIMAGE_H
00002 #define _CISTERNIMAGE_H
00003
00004 #include <components/SimpleImage.h>
00005 #include <plugins.h>
00006 #include <global_macros.h>
00007
00008 namespace UniWidgets
00009 {
00017 class CisternImage : public SimpleImage
00018 {
00019 public:
00020 CisternImage();
00021 explicit CisternImage(SimpleImage::BaseObjectType* gobject);
00022 virtual ~CisternImage();
00023
00024
00025 void set_value(long value);
00026 virtual void start_blink() {};
00027 virtual void stop_blink() {};
00028 virtual bool is_blinking();
00029
00030 protected:
00031
00032 virtual bool on_expose_event(GdkEventExpose* event);
00033 Glib::RefPtr<Gdk::Pixbuf> background_off_image_;
00034 Glib::RefPtr<Gdk::Pixbuf> background_image_;
00035
00036 Glib::RefPtr<Gdk::Pixbuf> filling_image_;
00037 Glib::RefPtr<Gdk::Pixbuf> filling_off_image_;
00038 void draw_value(Glib::RefPtr<Gdk::Pixbuf> image);
00039 int value_to_offset(const Gtk::Allocation allocation);
00041
00042 int value_;
00043 Glib::RefPtr<Gdk::Pixbuf> scale_image_;
00044
00045
00046 static const int MaxValue;
00047 static const int MinValue;
00049 private:
00050
00051 void constructor();
00052 DISALLOW_COPY_AND_ASSIGN(CisternImage);
00053
00054 ADD_PROPERTY( background_image_path, Glib::ustring )
00055 ADD_PROPERTY( filling_image_path, Glib::ustring )
00056 ADD_PROPERTY( scale_image_path, Glib::ustring )
00057 ADD_PROPERTY( scale_switch, bool )
00058 };
00059
00060 }
00061
00062 #endif