/* Copyright (C) 2012 The giomm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include _DEFS(giomm,gio) _PINCLUDE(giomm/private/menumodel_p.h) namespace Gio { /** A simple implementation of GMenuModel. * You populate a Menu by adding MenuItem instances to it. * * There are some convenience methods to allow you to directly * add items (avoiding MenuItem) for the common cases. To add * a regular item, use insert(). To add a section, use * insert_section(). To add a submenu, use * insert_submenu(). * * @newin{2,32} */ class Menu : public Gio::MenuModel { _CLASS_GOBJECT(Menu, GMenu, G_MENU, ::Gio::MenuModel, GMenuModel) protected: _CTOR_DEFAULT _IGNORE(g_menu_new) public: _WRAP_CREATE() _WRAP_METHOD(void freeze(), g_menu_freeze) _WRAP_METHOD(void insert_item(int position, const Glib::RefPtr& item), g_menu_insert_item) _WRAP_METHOD(void prepend_item(const Glib::RefPtr& item), g_menu_prepend_item) _WRAP_METHOD(void append_item(const Glib::RefPtr& item), g_menu_append_item) _WRAP_METHOD(void remove(int position), g_menu_remove) //TODO: Allow label to be null. _WRAP_METHOD(void insert(int position, const Glib::ustring& label, const Glib::ustring& detailed_action = Glib::ustring()), g_menu_insert) _WRAP_METHOD(void prepend(const Glib::ustring& label, const Glib::ustring& detailed_action = Glib::ustring()), g_menu_prepend) _WRAP_METHOD(void append(const Glib::ustring& label, const Glib::ustring& detailed_action = Glib::ustring()), g_menu_append) _WRAP_METHOD(void insert_section(int position, const Glib::ustring& label, const Glib::RefPtr& section), g_menu_insert_section) _WRAP_METHOD(void prepend_section(const Glib::ustring& label, const Glib::RefPtr& section), g_menu_prepend_section) _WRAP_METHOD(void append_section(const Glib::ustring& label, const Glib::RefPtr& section), g_menu_append_section) _WRAP_METHOD(void insert_submenu(int position, const Glib::ustring& label, const Glib::RefPtr& submenu), g_menu_insert_submenu) _WRAP_METHOD(void prepend_submenu(const Glib::ustring& label, const Glib::RefPtr& submenu), g_menu_prepend_submenu) _WRAP_METHOD(void append_submenu(const Glib::ustring& label, const Glib::RefPtr& submenu), g_menu_append_submenu) }; } // namespace Gio