2 * Copyright (C) 2012 Samsung Electronics
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
22 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 #include "ewk_popup_menu_item.h"
29 #include "ewk_popup_menu_item_private.h"
30 #include "ewk_private.h"
31 #include <wtf/text/CString.h>
33 using namespace WebKit;
35 Ewk_Popup_Menu_Item::Ewk_Popup_Menu_Item(const WebKit::WebPopupItem& item)
36 : type(static_cast<Ewk_Popup_Menu_Item_Type>(item.m_type))
37 , textDirection(static_cast<Ewk_Text_Direction>(item.m_textDirection))
38 , hasTextDirectionOverride(item.m_hasTextDirectionOverride)
39 , isEnabled(item.m_isEnabled)
40 , isLabel(item.m_isLabel)
41 , isSelected(item.m_isSelected)
42 , text(item.m_text.utf8().data())
43 , toolTip(item.m_toolTip.utf8().data())
44 , accessibilityText(item.m_accessibilityText.utf8().data())
47 COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_SEPARATOR, WebPopupItem::Separator);
48 COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_ITEM, WebPopupItem::Item);
50 Ewk_Popup_Menu_Item_Type ewk_popup_menu_item_type_get(const Ewk_Popup_Menu_Item* item)
52 EINA_SAFETY_ON_NULL_RETURN_VAL(item, EWK_POPUP_MENU_UNKNOWN);
57 const char* ewk_popup_menu_item_text_get(const Ewk_Popup_Menu_Item* item)
59 EINA_SAFETY_ON_NULL_RETURN_VAL(item, 0);
64 Ewk_Text_Direction ewk_popup_menu_item_text_direction_get(const Ewk_Popup_Menu_Item* item)
66 EINA_SAFETY_ON_NULL_RETURN_VAL(item, EWK_TEXT_DIRECTION_LEFT_TO_RIGHT);
68 return item->textDirection;
71 Eina_Bool ewk_popup_menu_item_text_direction_override_get(const Ewk_Popup_Menu_Item* item)
73 EINA_SAFETY_ON_NULL_RETURN_VAL(item, false);
75 return item->hasTextDirectionOverride;
78 const char* ewk_popup_menu_item_tooltip_get(const Ewk_Popup_Menu_Item* item)
80 EINA_SAFETY_ON_NULL_RETURN_VAL(item, 0);
85 const char* ewk_popup_menu_item_accessibility_text_get(const Ewk_Popup_Menu_Item* item)
87 EINA_SAFETY_ON_NULL_RETURN_VAL(item, 0);
89 return item->accessibilityText;
92 Eina_Bool ewk_popup_menu_item_enabled_get(const Ewk_Popup_Menu_Item* item)
94 EINA_SAFETY_ON_NULL_RETURN_VAL(item, false);
96 return item->isEnabled;
99 Eina_Bool ewk_popup_menu_item_is_label_get(const Ewk_Popup_Menu_Item* item)
101 EINA_SAFETY_ON_NULL_RETURN_VAL(item, false);
103 return item->isLabel;
106 Eina_Bool ewk_popup_menu_item_selected_get(const Ewk_Popup_Menu_Item* item)
108 EINA_SAFETY_ON_NULL_RETURN_VAL(item, false);
110 return item->isSelected;