UniWidgets  1.0.0
SimpleText.h
00001 #ifndef _SIMPLETEXT_H
00002 #define _SIMPLETEXT_H
00003 // -------------------------------------------------------------------------
00004 #include <gtkmm.h>
00005 #include <uniwidgets/USignals.h>
00006 #include <plugins.h>
00007 #include <global_macros.h>
00008 // -------------------------------------------------------------------------
00009 namespace UniWidgets
00010 {
00016 class SimpleText : public Gtk::EventBox
00017 {
00018 public:
00019     SimpleText();
00020     explicit SimpleText(Gtk::EventBox::BaseObjectType* gobject);
00021     virtual ~SimpleText();
00022 
00023     /* Methods */
00024     virtual void start_blink(){};
00025     virtual void stop_blink(){};
00026     virtual void blink( bool blink_state ){};
00027     virtual bool is_blinking();
00028 
00029     void text_draw();               
00030     void on_text_changed();             
00031     void on_font_name_changed();            
00032     void on_font_color_changed();           
00033     void on_use_theme_changed();            
00034     void on_transparency_changed();         
00035     virtual void on_theme_changed();        
00036     virtual void load_theme_settings();     
00037     virtual void load_property_settings();      
00039     virtual void on_size_request(Gtk::Requisition* requisition);
00040     virtual void on_realize();
00041     virtual void on_size_allocate(Gtk::Allocation& alloc);
00042     virtual void set_blink_(bool value){};
00043     virtual bool get_blink_(){return blink_.get_value();}
00044 
00045 protected:
00046     /* Variables */
00047     Gdk::Color off_color;               
00048     Glib::Property<bool> blink_;            
00050     Glib::RefPtr<Pango::Layout> layout;
00051     Cairo::RefPtr<Cairo::Context> cr;
00052     
00053     Gdk::Color current_color;           
00054     double transparency;                
00056 //  bool blinking_;
00057 
00058     /* Event handlers */
00059     virtual void on_show();
00060     virtual void on_hide();
00061     virtual bool on_expose_event(GdkEventExpose* event);
00062 private:
00063     /* Methods */
00064     void constructor();
00065     DISALLOW_COPY_AND_ASSIGN(SimpleText);
00066     /* Properties */
00067     ADD_PROPERTY( property_theme_, Glib::ustring )
00068     ADD_PROPERTY( property_use_theme_, bool )
00069     ADD_PROPERTY( property_text_, Glib::ustring )
00070     ADD_PROPERTY( property_drop_shadow_, bool )
00071     ADD_PROPERTY( property_transparency_, double )
00072     ADD_PROPERTY( property_alignment_, Pango::Alignment )
00073     ADD_PROPERTY( property_font_name_, Glib::ustring )
00074     ADD_PROPERTY( property_abs_font_size_, gint )
00075     ADD_PROPERTY( property_font_color_, Gdk::Color )
00076     ADD_PROPERTY( show_, bool )
00077     ADD_PROPERTY( mode, long )
00078     ADD_PROPERTY( priority, long )
00079 };
00080 
00081 }
00082 #endif