summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gio/src/menu.hg2
-rw-r--r--gio/src/menuitem.ccg5
-rw-r--r--gio/src/menuitem.hg31
-rw-r--r--tools/m4/convert_gio.m41
4 files changed, 36 insertions, 3 deletions
diff --git a/gio/src/menu.hg b/gio/src/menu.hg
index 4c107ca5..dd88b0f2 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 221eaea9..5d7a3593 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 2ad13b39..f49c5c2d 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 8a2d6328..0cc55b9d 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