1/* 2 * Copyright (C) 2012 Samsung Electronics. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 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. 12 * 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. 24 */ 25 26#ifndef ewk_context_menu_item_private_h 27#define ewk_context_menu_item_private_h 28 29#include "WKContextMenuItem.h" 30#include "WKEinaSharedString.h" 31#include "ewk_context_menu_item.h" 32#include <wtf/PassRefPtr.h> 33#include <wtf/RefPtr.h> 34 35class EwkContextMenu; 36 37/** 38 * \struct Ewk_Context_Menu_Item 39 * @brief Contains the context menu item data. 40 */ 41class EwkContextMenuItem { 42public: 43 EwkContextMenuItem(WKContextMenuItemRef, EwkContextMenu* parentMenu); 44 EwkContextMenuItem(Ewk_Context_Menu_Item_Type type, Ewk_Context_Menu_Item_Action action, const char* title, Eina_Bool checked, Eina_Bool enabled, PassRefPtr<EwkContextMenu> subMenu = nullptr, EwkContextMenu* parentMenu = nullptr); 45 46 Ewk_Context_Menu_Item_Action action() const { return m_action; } 47 void setAction(Ewk_Context_Menu_Item_Action action) { m_action = action; } 48 49 const char* title() const { return m_title; } 50 void setTitle(const char* title) { m_title = title; } 51 52 Ewk_Context_Menu_Item_Type type() const { return m_type; } 53 void setType(Ewk_Context_Menu_Item_Type type) { m_type = type; } 54 55 bool checked() const { return m_isChecked; } 56 void setChecked(bool checked) { m_isChecked = checked; } 57 58 bool enabled() const { return m_isEnabled; } 59 void setEnabled(bool enabled) { m_isEnabled = enabled; } 60 61 EwkContextMenu* parentMenu() const { return m_parentMenu; } 62 void setParentMenu(EwkContextMenu* parentMenu) { m_parentMenu = parentMenu; } 63 64 EwkContextMenu* subMenu() const { return m_subMenu.get(); } 65 66private: 67 Ewk_Context_Menu_Item_Type m_type; 68 Ewk_Context_Menu_Item_Action m_action; 69 70 WKEinaSharedString m_title; 71 72 bool m_isChecked; 73 bool m_isEnabled; 74 75 EwkContextMenu* m_parentMenu; 76 RefPtr<EwkContextMenu> m_subMenu; 77}; 78 79#endif // ewk_context_menu_item_private_h 80