2 * Copyright (C) 2013-2016 Samsung Electronics.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this library; if not, write to the Free Software Foundation,
16 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 * @file ewk_context_menu.h
21 * @brief Describes the context menu API.
24 #ifndef ewk_context_menu_h
25 #define ewk_context_menu_h
40 * \enum _Ewk_Context_Menu_Item_Tag
41 * @brief Enumeration that provides the tags of items for the context menu.
43 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
45 enum _Ewk_Context_Menu_Item_Tag{
46 EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION = 0, /**< No action */
47 EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW, /**< Open link in new window */
48 EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_LINK_TO_DISK, /**< Download link to disk */
49 EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_TO_CLIPBOARD, /**< Copy link to clipboard */
50 EWK_CONTEXT_MENU_ITEM_TAG_OPEN_IMAGE_IN_NEW_WINDOW, /**< Open image in new window */
51 EWK_CONTEXT_MENU_ITEM_TAG_OPEN_IMAGE_IN_CURRENT_WINDOW, /**< Open image in current window */
52 EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_IMAGE_TO_DISK, /**< Download image to disk */
53 EWK_CONTEXT_MENU_ITEM_TAG_COPY_IMAGE_TO_CLIPBOARD, /**< Copy image to clipboard */
54 EWK_CONTEXT_MENU_ITEM_TAG_OPEN_FRAME_IN_NEW_WINDOW, /**< Open frame in new window */
55 EWK_CONTEXT_MENU_ITEM_TAG_COPY, /**< Copy */
56 EWK_CONTEXT_MENU_ITEM_TAG_GO_BACK, /**< Go back */
57 EWK_CONTEXT_MENU_ITEM_TAG_GO_FORWARD, /**< Go forward */
58 EWK_CONTEXT_MENU_ITEM_TAG_STOP, /**< Stop */
59 EWK_CONTEXT_MENU_ITEM_TAG_SHARE, /**< Share */
60 EWK_CONTEXT_MENU_ITEM_TAG_RELOAD, /**< Reload */
61 EWK_CONTEXT_MENU_ITEM_TAG_CUT, /**< Cut */
62 EWK_CONTEXT_MENU_ITEM_TAG_PASTE, /**< Paste */
63 EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_GUESS, /**< Spelling guess */
64 EWK_CONTEXT_MENU_ITEM_TAG_NO_GUESSES_FOUND, /**< Guess found */
65 EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_SPELLING, /**< Ignore spelling */
66 EWK_CONTEXT_MENU_ITEM_TAG_LEARN_SPELLING, /**< Learn spelling */
67 EWK_CONTEXT_MENU_ITEM_TAG_OTHER, /**< Other */
68 EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_IN_SPOTLIGHT, /**< Search in spotlight */
69 EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_WEB, /**< Search web */
70 EWK_CONTEXT_MENU_ITEM_TAG_LOOK_UP_IN_DICTIONARY, /**< Look up in dictionary */
71 EWK_CONTEXT_MENU_ITEM_TAG_OPEN_WITH_DEFAULT_APPLICATION, /**< Open with default application */
72 EWK_CONTEXT_MENU_ITEM_TAG_PDF_ACTUAL_SIZE, /**< PDF actual size */
73 EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_IN, /**< PDF zoom in */
74 EWK_CONTEXT_MENU_ITEM_TAG_PDF_ZOOM_OUT, /**< PDF zoom out */
75 EWK_CONTEXT_MENU_ITEM_TAG_PDF_AUTO_SIZE, /**< PDF auto size */
76 EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE, /**< PDF single page */
77 EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACTING_PAGES, /**< PDF facting page */
78 EWK_CONTEXT_MENU_ITEM_TAG_PDF_CONTINUOUS, /**< PDF continuous */
79 EWK_CONTEXT_MENU_ITEM_TAG_PDF_NEXT_PAGE, /**< PDF next page */
80 EWK_CONTEXT_MENU_ITEM_TAG_PDF_PREVIOUS_PAGE, /**< PDF previous page */
81 EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK, /**< Open link */
82 EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_GRAMMAR, /**< Ignore grammar */
83 EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, /**< Spelling menu */
84 EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SPELLING_PANEL, /**< Show spelling panel */
85 EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING, /**< Check spelling */
86 EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING_WHILE_TYPING, /**< Check spelling white typing */
87 EWK_CONTEXT_MENU_ITEM_TAG_CHECK_GRAMMAR_WITH_SPELLING, /**< Check grammar with spelling */
88 EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, /**< Font menu */
89 EWK_CONTEXT_MENU_ITEM_TAG_SHOW_FONTS, /**< Show fonts */
90 EWK_CONTEXT_MENU_ITEM_TAG_BOLD, /**< Bold */
91 EWK_CONTEXT_MENU_ITEM_TAG_ITALIC, /**< Italic */
92 EWK_CONTEXT_MENU_ITEM_TAG_UNDERLINE, /**< Underline */
93 EWK_CONTEXT_MENU_ITEM_TAG_OUTLINE, /**< Outline */
94 EWK_CONTEXT_MENU_ITEM_TAG_STYLES, /**< Style */
95 EWK_CONTEXT_MENU_ITEM_TAG_SHOW_COLORS, /**< Show colors */
96 EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU, /**< Speech menu */
97 EWK_CONTEXT_MENU_ITEM_TAG_START_SPEAKING, /**< Start speaking */
98 EWK_CONTEXT_MENU_ITEM_TAG_STOP_SPEAKING, /**< Stop speaking */
99 EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU, /**< Writing direction menu */
100 EWK_CONTEXT_MENU_ITEM_TAG_DEFAULT_DIRECTION, /**< Default direction */
101 EWK_CONTEXT_MENU_ITEM_TAG_LEFT_TO_RIGHT, /**< Left to right */
102 EWK_CONTEXT_MENU_ITEM_TAG_RIGHT_TO_LEFT, /**< Right to left */
103 EWK_CONTEXT_MENU_ITEM_TAG_PDF_SINGLE_PAGE_SCROLLING, /**< PDF single page scrolling */
104 EWK_CONTEXT_MENU_ITEM_TAG_PDF_FACING_PAGES_SCROLLING, /**< PDF facing page scrolling */
105 EWK_CONTEXT_MENU_ITEM_TAG_INSPECT_ELEMENT, /**< Inspect element */
106 EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU, /**< Text direction menu */
107 EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_DEFAULT, /**< Text direction default */
108 EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_LEFT_TO_RIGHT, /**< Text direction left to right */
109 EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT, /**< Text direction right to left */
110 EWK_CONTEXT_MENU_ITEM_TAG_CORRECT_SPELLING_AUTOMATICALLY, /**< Correct spelling automatically */
111 EWK_CONTEXT_MENU_ITEM_TAG_SUBSTITUTIONS_MENU, /**< Substitutions menu */
112 EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SUBSTITUTIONS, /**< Show substitutions */
113 EWK_CONTEXT_MENU_ITEM_TAG_SMART_COPY_PASTE, /**< Smart copy paste */
114 EWK_CONTEXT_MENU_ITEM_TAG_SMART_QUOTES, /**< Smart quotes */
115 EWK_CONTEXT_MENU_ITEM_TAG_SMART_DASHES, /**< Smart dashes */
116 EWK_CONTEXT_MENU_ITEM_TAG_SMART_LINKS, /**< Smart links */
117 EWK_CONTEXT_MENU_ITEM_TAG_TEXT_REPLACEMENT, /**< Text replacement */
118 EWK_CONTEXT_MENU_ITEM_TAG_TRANSFORMATIONS_MENU, /**< Transformation menu */
119 EWK_CONTEXT_MENU_ITEM_TAG_MAKE_UPPER_CASE, /**< Make upper case */
120 EWK_CONTEXT_MENU_ITEM_TAG_MAKE_LOWER_CASE, /**< Make lower case */
121 EWK_CONTEXT_MENU_ITEM_TAG_CAPITALIZE, /**< Capitalize */
122 EWK_CONTEXT_MENU_ITEM_TAG_CHANGE_BACK, /**< Change back */
123 EWK_CONTEXT_MENU_ITEM_TAG_OPEN_MEDIA_IN_NEW_WINDOW, /**< Open media in new window */
124 EWK_CONTEXT_MENU_ITEM_TAG_COPY_MEDIA_LINK_TO_CLIPBOARD, /**< Copy media link to clipboard */
125 EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_CONTROLS, /**< Toggle media controls */
126 EWK_CONTEXT_MENU_ITEM_TAG_TOGGLE_MEDIA_LOOP, /**< Toggle media loop */
127 EWK_CONTEXT_MENU_ITEM_TAG_ENTER_VIDEO_FULLSCREEN, /**< Enter video fullscreen */
128 EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_PLAY_PAUSE, /**< Media play pause */
129 EWK_CONTEXT_MENU_ITEM_TAG_MEDIA_MUTE, /**< Media mute */
130 EWK_CONTEXT_MENU_ITEM_TAG_DICTATION_ALTERNATIVE, /**< Dictation alternative */
131 EWK_CONTEXT_MENU_ITEM_TAG_SELECT_ALL, /**< Select all */
132 EWK_CONTEXT_MENU_ITEM_TAG_SELECT_WORD, /**< Select word */
133 EWK_CONTEXT_MENU_ITEM_TAG_TEXT_SELECTION_MODE, /**< Text selection mode */
134 EWK_CONTEXT_MENU_ITEM_TAG_CLIPBOARD, /**< Clipboard */
135 EWK_CONTEXT_MENU_ITEM_TAG_DRAG, /**< Drag */
136 EWK_CONTEXT_MENU_ITEM_TAG_TRANSLATE, /**< Translate */
137 EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_DATA, /**< Copy lnk data */
138 EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG = 10000 /**< If app want to add customized item, use enum value after #EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG */
142 * @brief The structure type that creates a type name for Ewk_Context_Menu_Item_Tag.
143 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
145 typedef uint32_t Ewk_Context_Menu_Item_Tag;
148 * @brief The structure type that creates a type name for _Ewk_Context_Menu.
149 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
151 typedef struct _Ewk_Context_Menu Ewk_Context_Menu;
154 * @brief The structure type that creates a type name for _Ewk_Context_Menu_Item.
155 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
157 typedef struct _Ewk_Context_Menu_Item Ewk_Context_Menu_Item;
160 * @brief Counts the number of the context menu item.
162 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
164 * @param[in] menu The context menu object
166 * @return The number of current context menu item
168 EXPORT_API unsigned ewk_context_menu_item_count(Ewk_Context_Menu* menu);
171 * @brief Returns the nth item in a context menu.
173 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
175 * @param[in] menu The context menu object
176 * @param[in] n The number of the item
178 * @return The nth item of context menu
180 EXPORT_API Ewk_Context_Menu_Item* ewk_context_menu_nth_item_get(Ewk_Context_Menu* menu, unsigned int n);
183 * @brief Removes the context menu item from the context menu object.
185 * @remarks If all context menu items are removed, neither context menu nor\n
186 * selection handles will be shown.
188 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
190 * @param[in] menu The context menu object
191 * @param[in] item The context menu item to remove
193 * @return @c EINA_TRUE on successful request,\n
194 * otherwise @c EINA_FALSE on failure
196 EXPORT_API Eina_Bool ewk_context_menu_item_remove(Ewk_Context_Menu* menu, Ewk_Context_Menu_Item* item);
200 * @brief Adds the context menu item to the context menu object.
204 * @param[in] menu The context menu object
205 * @param[in] tag The tag of context menu item
206 * @param[in] title The title of context menu item
207 * @param[in] enabled If @c true the context menu item is enabled,\n
210 * @return @c EINA_TRUE on successful request,\n
211 * otherwise @c EINA_FALSE on failure
214 EXPORT_API Eina_Bool ewk_context_menu_item_append_as_action(Ewk_Context_Menu* menu, Ewk_Context_Menu_Item_Tag tag, const char* title, Eina_Bool enabled);
218 * @brief Adds the context menu item to the context menu object.
222 * @param[in] menu The context menu object
223 * @param[in] tag The tag of context menu item
224 * @param[in] title The title of context menu item
225 * @param[in] icon_file The path of icon to be set on context menu item
226 * @param[in] enabled If @c true the context menu item is enabled,\n
229 * @return @c EINA_TRUE on successful request,\n
230 * otherwise @c EINA_FALSE on failure
233 EXPORT_API Eina_Bool ewk_context_menu_item_append(Ewk_Context_Menu* menu, Ewk_Context_Menu_Item_Tag tag, const char* title, const char* icon_file, Eina_Bool enabled);
236 * @brief Returns the tag of context menu item.
238 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 3.0 @endif
240 * @param[in] item The context menu item object
242 * @return The tag of context menu item
244 EXPORT_API Ewk_Context_Menu_Item_Tag ewk_context_menu_item_tag_get(Ewk_Context_Menu_Item* item);
248 * @brief Returns the link url string of context menu item.
252 * @param[in] item The context menu item object
254 * @return The current link url string on success,\n
255 * otherwise @c 0 on failure
258 EXPORT_API const char* ewk_context_menu_item_link_url_get(Ewk_Context_Menu_Item* item);
262 * @brief Returns the image url string of context menu item.
266 * @param[in] item The context menu item object
268 * @return The current image url string on success,\n
269 * otherwise @c 0 on failure
272 EXPORT_API const char* ewk_context_menu_item_image_url_get(Ewk_Context_Menu_Item* item);
282 #endif // ewk_context_menu_h