ULockNotebook.h
00001 #ifndef _ULOCKNOTEBOOK_H
00002 #define _ULOCKNOTEBOOK_H
00003
00004 #include <gtkmm.h>
00005 #include <deque>
00006 #include "UDefaultFunctions.h"
00007 #include "plugins.h"
00008
00022 class ULockNotebook : public UDefaultFunctions<Gtk::Notebook>
00023 {
00024 public:
00025 ULockNotebook();
00026
00027 explicit ULockNotebook(GtkmmBaseType::BaseObjectType* gobject);
00028 ~ULockNotebook();
00029
00030
00031 void lock_nbook(const Gtk::Widget *w);
00033 virtual void add_lock(const Gtk::Widget& w);
00034 virtual void unlock_current();
00036 void enable_lock(bool enable=true);
00038 protected:
00043 virtual void on_switch_page(GtkNotebookPage* page, guint page_num);
00045 virtual bool on_button_press_event(GdkEventButton* event);
00046
00047 private:
00048 void ctor();
00049 sigc::connection lock_connection;
00050 Glib::Property<bool> property_enable_lock;
00051
00052 typedef std::deque<const Gtk::Widget*> LockList;
00053 LockList locks_list;
00054
00055 void on_property_enable_lock_changed();
00056
00057 };
00058 #endif