throbber.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __LIBS_GUI_UTILS_THROBBER_H_
00025 #define __LIBS_GUI_UTILS_THROBBER_H_
00026
00027 #include <gtkmm.h>
00028 #include <libglademm/xml.h>
00029
00030 namespace fawkes {
00031
00032 class Throbber : public Gtk::Image
00033 {
00034 public:
00035 Throbber(Gtk::IconSize &icon_size);
00036 Throbber(BaseObjectType* cobject,
00037 const Glib::RefPtr<Gnome::Glade::Xml>& ref_glade);
00038
00039 void set_timeout(unsigned int timeout);
00040
00041 bool anim_running();
00042
00043 void start_anim();
00044 void stop_anim();
00045
00046 void set_stock(const Gtk::StockID& stock_id);
00047
00048 private:
00049 void ctor(Gtk::IconSize icon_size);
00050 bool draw_next();
00051
00052 private:
00053 unsigned int __current;
00054 std::vector<Glib::RefPtr<Gdk::Pixbuf> > __pixbufs;
00055 Gtk::IconSize __icon_size;
00056
00057 sigc::connection __timeout_connection;
00058 unsigned int __timeout;
00059 };
00060
00061 }
00062
00063 #endif