/* 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, see . */ #include 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& submenu) : _CONSTRUCT() { if (!label.empty()) set_label(label); set_submenu(submenu); } MenuItem::MenuItem(const Glib::RefPtr& submenu) : _CONSTRUCT() { set_submenu(submenu); } void MenuItem::set_action(const Glib::ustring& action) { g_menu_item_set_action_and_target_value(gobj(), action.c_str(), nullptr); } void MenuItem::unset_target() { const gchar* action_name = nullptr; g_menu_item_get_attribute(gobj(), G_MENU_ATTRIBUTE_ACTION, "&s", &action_name); g_menu_item_set_action_and_target_value(gobj(), action_name, nullptr); } void MenuItem::unset_action_and_target() { g_menu_item_set_action_and_target_value(gobj(), nullptr, nullptr); } void MenuItem::unset_icon() { g_menu_item_set_icon(gobj(), nullptr); } } // namespace Gio