/* * Copyright (C) 2017 Igalia S.L. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 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 * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "config.h" #include "WebKitOptionMenuItem.h" #include "WebKitOptionMenuItemPrivate.h" using namespace WebKit; /** * SECTION: WebKitOptionMenuItem * @Short_description: One item of the #WebKitOptionMenu * @Title: WebKitOptionMenuItem * * The #WebKitOptionMenu is composed of WebKitOptionMenuItem<!-- -->s. * A WebKitOptionMenuItem always has a label and can contain a tooltip text. * You can use the WebKitOptionMenuItem of a #WebKitOptionMenu to build your * own menus. * * Since: 2.18 */ G_DEFINE_BOXED_TYPE(WebKitOptionMenuItem, webkit_option_menu_item, webkit_option_menu_item_copy, webkit_option_menu_item_free) /** * webkit_option_menu_item_copy: * @item: a #WebKitOptionMenuItem * * Make a copy of the #WebKitOptionMenuItem. * * Returns: (transfer full): A copy of passed in #WebKitOptionMenuItem * * Since: 2.18 */ WebKitOptionMenuItem* webkit_option_menu_item_copy(WebKitOptionMenuItem* item) { g_return_val_if_fail(item, nullptr); auto* copyItem = static_cast<WebKitOptionMenuItem*>(fastMalloc(sizeof(WebKitOptionMenuItem))); new (copyItem) WebKitOptionMenuItem(item); return copyItem; } /** * webkit_option_menu_item_free: * @item: A #WebKitOptionMenuItem * * Free the #WebKitOptionMenuItem. * * Since: 2.18 */ void webkit_option_menu_item_free(WebKitOptionMenuItem* item) { g_return_if_fail(item); item->~WebKitOptionMenuItem(); fastFree(item); } /** * webkit_option_menu_item_get_label: * @item: a #WebKitOptionMenuItem * * Get the label of a #WebKitOptionMenuItem. * * Returns: The label of @item. * * Since: 2.18 */ const gchar* webkit_option_menu_item_get_label(WebKitOptionMenuItem* item) { g_return_val_if_fail(item, nullptr); return item->label.data(); } /** * webkit_option_menu_item_get_tooltip: * @item: a #WebKitOptionMenuItem * * Get the tooltip of a #WebKitOptionMenuItem. * * Returns: The tooltip of @item, or %NULL. * * Since: 2.18 */ const gchar* webkit_option_menu_item_get_tooltip(WebKitOptionMenuItem* item) { g_return_val_if_fail(item, nullptr); return item->tooltip.isNull() ? nullptr : item->tooltip.data(); } /** * webkit_option_menu_item_is_group_label: * @item: a #WebKitOptionMenuItem * * Whether a #WebKitOptionMenuItem is a group label. * * Returns: %TRUE if the @item is a group label or %FALSE otherwise. * * Since: 2.18 */ gboolean webkit_option_menu_item_is_group_label(WebKitOptionMenuItem* item) { g_return_val_if_fail(item, FALSE); return item->isGroupLabel; } /** * webkit_option_menu_item_is_group_child: * @item: a #WebKitOptionMenuItem * * Whether a #WebKitOptionMenuItem is a group child. * * Returns: %TRUE if the @item is a group child or %FALSE otherwise. * * Since: 2.18 */ gboolean webkit_option_menu_item_is_group_child(WebKitOptionMenuItem* item) { g_return_val_if_fail(item, FALSE); return item->isGroupChild; } /** * webkit_option_menu_item_is_enabled: * @item: a #WebKitOptionMenuItem * * Whether a #WebKitOptionMenuItem is enabled. * * Returns: %TRUE if the @item is enabled or %FALSE otherwise. * * Since: 2.18 */ gboolean webkit_option_menu_item_is_enabled(WebKitOptionMenuItem* item) { g_return_val_if_fail(item, FALSE); return item->isEnabled; } /** * webkit_option_menu_item_is_selected: * @item: a #WebKitOptionMenuItem * * Whether a #WebKitOptionMenuItem is the currently selected one. * * Returns: %TRUE if the @item is selected or %FALSE otherwise. * * Since: 2.18 */ gboolean webkit_option_menu_item_is_selected(WebKitOptionMenuItem* item) { g_return_val_if_fail(item, FALSE); return item->isSelected; }