[glibmm] Gio::MenuItem: Add set/unset_icon().



commit 5f2ab7b9b046a44bf278175a16514138db6a8532
Author: Murray Cumming <murrayc murrayc com>
Date:   Wed Jul 31 11:37:45 2013 +0200

    Gio::MenuItem: Add set/unset_icon().

 gio/src/menu.hg         |    2 +-
 gio/src/menuitem.ccg    |    5 +++++
 gio/src/menuitem.hg     |   31 +++++++++++++++++++++++++++++--
 tools/m4/convert_gio.m4 |    1 +
 4 files changed, 36 insertions(+), 3 deletions(-)
---
diff --git a/gio/src/menu.hg b/gio/src/menu.hg
index 4c107ca..dd88b0f 100644
--- a/gio/src/menu.hg
+++ b/gio/src/menu.hg
@@ -24,7 +24,7 @@ _PINCLUDE(giomm/private/menumodel_p.h)
 namespace Gio
 {
 
-/** A simple implementation of GMenuModel.
+/** A simple implementation of MenuModel.
  * You populate a Menu by adding MenuItem instances to it.
  *
  * There are some convenience methods to allow you to directly
diff --git a/gio/src/menuitem.ccg b/gio/src/menuitem.ccg
index 221eaea..5d7a359 100644
--- a/gio/src/menuitem.ccg
+++ b/gio/src/menuitem.ccg
@@ -25,4 +25,9 @@ void MenuItem::set_action_and_target(const Glib::ustring& action)
   g_menu_item_set_action_and_target_value(gobj(), action.c_str(), 0);
 }
 
+void MenuItem::unset_icon()
+{
+  g_menu_item_set_icon(gobj(), 0);
+}
+
 } // namespace Gio
diff --git a/gio/src/menuitem.hg b/gio/src/menuitem.hg
index 2ad13b3..f49c5c2 100644
--- a/gio/src/menuitem.hg
+++ b/gio/src/menuitem.hg
@@ -17,6 +17,7 @@
 
 #include <glibmm/object.h>
 #include <giomm/menumodel.h>
+#include <giomm/icon.h>
 
 _DEFS(giomm,gio)
 _PINCLUDE(glibmm/private/object_p.h)
@@ -44,6 +45,21 @@ public:
 
 
 
+/* TODO:
+GMenuItem * g_menu_item_new_from_model              (GMenuModel  *model,
+                                                     gint         item_index);
+
+
+GMenuItem * g_menu_item_new_submenu                 (const Glib::ustring& label,
+                                                     GMenuModel  *submenu);
+
+
+GMenuItem * g_menu_item_new_section                 (const Glib::ustring& label,
+                                                     GMenuModel  *section);
+*/
+
+
+
 //TODO: GMenuItem * g_menu_item_new_section                 (const Glib::ustring& label,
 //                                                     const Glib::RefPtr<MenuModel>& section);
 
@@ -54,8 +70,9 @@ public:
   _WRAP_METHOD(void set_attribute(const Glib::ustring& attribute, const Glib::VariantBase& value), 
g_menu_item_set_attribute_value)
   _IGNORE(g_menu_item_set_attribute)
 
-  _WRAP_METHOD(Glib::RefPtr<MenuModel> get_link(const Glib::ustring& link),  g_menu_item_get_link, refreturn)
-  _WRAP_METHOD(Glib::RefPtr<const MenuModel> get_link(const Glib::ustring& link) const,  
g_menu_item_get_link, refreturn, constversion)
+//These are documented as transfer-full, so we don't need to use refreturn.
+  _WRAP_METHOD(Glib::RefPtr<MenuModel> get_link(const Glib::ustring& link), g_menu_item_get_link)
+  _WRAP_METHOD(Glib::RefPtr<const MenuModel> get_link(const Glib::ustring& link) const, 
g_menu_item_get_link, constversion)
 
   _WRAP_METHOD(void set_link(const Glib::ustring& link, const Glib::RefPtr<MenuModel>& model), 
g_menu_item_set_link)
   _WRAP_METHOD(void set_label(const Glib::ustring& label), g_menu_item_set_label)
@@ -80,6 +97,16 @@ public:
   _WRAP_METHOD(void set_action_and_target(const Glib::ustring& action, const Glib::VariantBase& 
target_value), g_menu_item_set_action_and_target_value)
   _IGNORE(g_menu_item_set_action_and_target)
   _WRAP_METHOD(void set_detailed_action(const Glib::ustring& detailed_action), 
g_menu_item_set_detailed_action)
+
+ _WRAP_METHOD(void set_icon(const Glib::RefPtr<Icon>& icon), g_menu_item_set_icon)
+
+  /** Unset the icon on the menu item.
+   * 
+   * See set_icon().
+   * 
+   * @newin{2,38}
+   */
+  void unset_icon();
 };
 
 } // namespace Gio
diff --git a/tools/m4/convert_gio.m4 b/tools/m4/convert_gio.m4
index 8a2d632..0cc55b9 100644
--- a/tools/m4/convert_gio.m4
+++ b/tools/m4/convert_gio.m4
@@ -219,6 +219,7 @@ _CONVERSION(`GMenuLinkIter*',`Glib::RefPtr<MenuLinkIter>',`Glib::wrap($3)')
 
 # MenuModel
 _CONVERSION(`GMenuModel*',`Glib::RefPtr<MenuModel>',`Glib::wrap($3)')
+_CONVERSION(`GMenuModel*',`Glib::RefPtr<const MenuModel>',`Glib::wrap($3)')
 _CONVERSION(`const Glib::RefPtr<MenuModel>&',`GMenuModel*',__CONVERT_CONST_REFPTR_TO_P)
 
 # MenuItem


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