[gnote] Make ToolMenuButton support custom widget



commit de704417d1a5006bbb3e4baa436b65eb533dcbd6
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sun May 19 21:56:57 2013 +0300

    Make ToolMenuButton support custom widget

 src/utils.cpp |   20 ++++++++++++++++----
 src/utils.hpp |    2 ++
 2 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/src/utils.cpp b/src/utils.cpp
index ac5ed08..6e14ed9 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -738,6 +738,13 @@ namespace gnote {
       return false;
     }
 
+    ToolMenuButton::ToolMenuButton(Gtk::Widget & widget, Gtk::Menu *menu)
+      : Gtk::ToggleToolButton(widget)
+      ,  m_menu(menu)
+    {
+      _common_init();
+    }
+
     ToolMenuButton::ToolMenuButton(Gtk::Toolbar& toolbar, const Gtk::BuiltinStockID& stock_image, 
                                    const Glib::ustring & label, 
                                    Gtk::Menu * menu)
@@ -758,19 +765,24 @@ namespace gnote {
     }
 
 
-    void ToolMenuButton::_common_init(Gtk::Image& image, const Glib::ustring & label)
+    void ToolMenuButton::_common_init()
     {
-      set_icon_widget(image);
-      set_label_widget(*manage(new Gtk::Label(label, true)));
       property_can_focus() = true;
       gtk_menu_attach_to_widget(m_menu->gobj(), static_cast<Gtk::Widget*>(this)->gobj(),
                                 NULL);
-//      menu.attach_to_widget(*this);
       m_menu->signal_deactivate().connect(sigc::mem_fun(*this, &ToolMenuButton::release_button));
       show_all();
     }
 
 
+    void ToolMenuButton::_common_init(Gtk::Image& image, const Glib::ustring & label)
+    {
+      set_icon_widget(image);
+      set_label_widget(*manage(new Gtk::Label(label, true)));
+      _common_init();
+    }
+
+
     bool ToolMenuButton::on_button_press_event(GdkEventButton *ev)
     {
       popup_menu(*m_menu, ev);
diff --git a/src/utils.hpp b/src/utils.hpp
index 1153f2c..6d6c9a9 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -227,6 +227,7 @@ namespace gnote {
       : public Gtk::ToggleToolButton
     {
     public:
+      ToolMenuButton(Gtk::Widget & widget, Gtk::Menu *menu);
       ToolMenuButton(Gtk::Toolbar& toolbar, 
                      const Gtk::BuiltinStockID& stock_image, 
                      const Glib::ustring & label, Gtk::Menu * menu);
@@ -237,6 +238,7 @@ namespace gnote {
       virtual bool on_mnemonic_activate(bool group_cycling);
 
     private:
+      void _common_init();
       void _common_init(Gtk::Image& image, const Glib::ustring & l);
       // managed by gtkmm
       Gtk::Menu *m_menu;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]