[gnote] Add CheckAction class to utils



commit ebc2b30524130c3c7b6978c3aa3b0072011e055d
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sun Oct 20 20:22:25 2013 +0300

    Add CheckAction class to utils
    
    Class for creating action for check menu item.

 src/utils.cpp |   20 ++++++++++++++++++++
 src/utils.hpp |   24 ++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 0 deletions(-)
---
diff --git a/src/utils.cpp b/src/utils.cpp
index b2f4d54..f00c22f 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -35,6 +35,7 @@
 #include <glibmm/i18n.h>
 #include <glibmm/stringutils.h>
 #include <glibmm/threads.h>
+#include <gtkmm/checkmenuitem.h>
 #include <gtkmm/icontheme.h>
 #include <gtkmm/image.h>
 #include <gtkmm/label.h>
@@ -819,5 +820,24 @@ namespace gnote {
       set_active(false);
     }
 
+
+    CheckAction::CheckAction(const Glib::ustring & name)
+      : Gtk::Action(name)
+      , m_checked(false)
+    {}
+
+    Gtk::Widget *CheckAction::create_menu_item_vfunc()
+    {
+      Gtk::CheckMenuItem *item = new Gtk::CheckMenuItem;
+      item->set_active(m_checked);
+      return item;
+    }
+
+    void CheckAction::on_activate()
+    {
+      m_checked = !m_checked;
+      Gtk::Action::on_activate();
+    }
+
   }
 }
diff --git a/src/utils.hpp b/src/utils.hpp
index 21343d5..7630724 100644
--- a/src/utils.hpp
+++ b/src/utils.hpp
@@ -259,6 +259,30 @@ namespace gnote {
       void release_button();        
     };
 
+    class CheckAction
+      : public Gtk::Action
+    {
+    public:
+      typedef Glib::RefPtr<CheckAction> Ptr;
+      static Ptr create(const Glib::ustring & name)
+        {
+          return Ptr(new CheckAction(name));
+        }
+      void checked(bool check)
+        {
+          m_checked = check;
+        }
+      bool checked() const
+        {
+          return m_checked;
+        }
+    protected:
+      CheckAction(const Glib::ustring & name);
+      virtual Gtk::Widget *create_menu_item_vfunc() override;
+      virtual void on_activate() override;
+    private:
+      bool m_checked;
+    };
   }
 }
 


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