diff options
-rw-r--r-- | gio/src/menu.hg | 2 | ||||
-rw-r--r-- | gio/src/menuitem.ccg | 5 | ||||
-rw-r--r-- | gio/src/menuitem.hg | 31 | ||||
-rw-r--r-- | 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 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 |