[glibmm] MenuItem: Reimplement the constructors.



commit 23823fdf3a54ed3851b8564fa8df993ce6e5e33f
Author: Murray Cumming <murrayc murrayc com>
Date:   Wed Jul 31 13:29:41 2013 +0200

    MenuItem: Reimplement the constructors.
    
    * gio/src/menuitem.[hg|ccg]: Because GMenuItem (and GMenu) do not
      have any properties and have actual code in their *_new() C
      convenience functions.
      Bug #705199 (Pete Woods)

 gio/src/menuitem.ccg |   25 +++++++++++++++++++++++++
 gio/src/menuitem.hg  |   11 +++++++++--
 2 files changed, 34 insertions(+), 2 deletions(-)
---
diff --git a/gio/src/menuitem.ccg b/gio/src/menuitem.ccg
index 5d7a359..ed4c6e3 100644
--- a/gio/src/menuitem.ccg
+++ b/gio/src/menuitem.ccg
@@ -20,6 +20,31 @@
 namespace Gio
 {
 
+MenuItem::MenuItem(const Glib::ustring& label, const Glib::ustring& detailed_action)
+: _CONSTRUCT()
+{
+  if(!label.empty())
+    set_label(label);
+
+  if(!detailed_action.empty())
+    set_detailed_action(detailed_action);
+}
+
+MenuItem::MenuItem(const Glib::ustring& label, const Glib::RefPtr<MenuModel>& submenu)
+: _CONSTRUCT()
+{
+  if(!label.empty())
+    set_label(label);
+
+  set_submenu(submenu);
+}
+
+MenuItem::MenuItem(const Glib::RefPtr<MenuModel>& submenu)
+: _CONSTRUCT()
+{
+  set_submenu(submenu);
+}
+
 void MenuItem::set_action_and_target(const Glib::ustring& action)
 {
   g_menu_item_set_action_and_target_value(gobj(), action.c_str(), 0);
diff --git a/gio/src/menuitem.hg b/gio/src/menuitem.hg
index f49c5c2..e762b17 100644
--- a/gio/src/menuitem.hg
+++ b/gio/src/menuitem.hg
@@ -34,9 +34,16 @@ class MenuItem : public Glib::Object
   _CLASS_GOBJECT(MenuItem, GMenuItem, G_MENU_ITEM, Glib::Object, GObject)
 
 protected:
-  _WRAP_CTOR(MenuItem(const Glib::ustring& label = Glib::ustring(), const Glib::ustring& detailed_action = 
Glib::ustring()), g_menu_item_new)
+  //TODO: Documentation
+  explicit MenuItem(const Glib::ustring& label = Glib::ustring(), const Glib::ustring& detailed_action = 
Glib::ustring());
+  _IGNORE(g_menu_item_new)
 
-  _WRAP_CTOR(MenuItem(const Glib::ustring& label{?}, const Glib::RefPtr<MenuModel>& submenu), 
g_menu_item_new_submenu)
+  //TODO: Documentation
+  explicit MenuItem(const Glib::ustring& label, const Glib::RefPtr<MenuModel>& submenu);
+
+  //TODO: Documentation
+  explicit MenuItem(const Glib::RefPtr<MenuModel>& submenu);
+  _IGNORE(g_menu_item_new_submenu)
 
 public:
   _WRAP_CREATE(const Glib::ustring& label, const Glib::ustring& detailed_action)


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