blob: 6888088536d21547440ea5ec2787fed8e765b25e [file] [log] [blame]
/*
* 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;
}