From d4a9b2e163f391a2dfe4874a9568ee3fbbd3fe81 Mon Sep 17 00:00:00 2001 From: Jee-Yong Um Date: Mon, 16 Jan 2017 18:51:43 +0900 Subject: [PATCH] ctxpopup: merge eo & header files for different profiles Signed-Off-By: Jee-Yong Um Change-Id: I0c22e3668b4a307e1591206d14c13ec0b2a84544 --- src/lib/elc_ctxpopup.c | 60 +++++++++++- src/lib/elm_ctxpopup.eo | 5 +- src/lib/elm_ctxpopup_item.eo | 15 ++- src/mobile_lib/elc_ctxpopup.c | 61 ++++++++++++ src/mobile_lib/elc_ctxpopup.h | 68 ------------- src/mobile_lib/elc_ctxpopup_eo.h | 2 - src/mobile_lib/elc_ctxpopup_legacy.h | 38 -------- src/mobile_lib/elm_ctxpopup.eo | 183 ----------------------------------- src/mobile_lib/elm_ctxpopup_item.eo | 35 ------- 9 files changed, 136 insertions(+), 331 deletions(-) delete mode 100644 src/mobile_lib/elc_ctxpopup.h delete mode 100644 src/mobile_lib/elc_ctxpopup_eo.h delete mode 100644 src/mobile_lib/elc_ctxpopup_legacy.h delete mode 100644 src/mobile_lib/elm_ctxpopup.eo delete mode 100644 src/mobile_lib/elm_ctxpopup_item.eo diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c index 2383897..80c9fc0 100644 --- a/src/lib/elc_ctxpopup.c +++ b/src/lib/elc_ctxpopup.c @@ -957,13 +957,51 @@ _elm_ctxpopup_item_elm_widget_item_disable(Eo *eo_ctxpopup_it, EOLIAN static void _elm_ctxpopup_item_elm_widget_item_signal_emit(Eo *eo_ctxpopup_it EINA_UNUSED, - Elm_Ctxpopup_Item_Data *ctxpopup_it, - const char *emission, - const char *source) + Elm_Ctxpopup_Item_Data *ctxpopup_it EINA_UNUSED, + const char *emission EINA_UNUSED, + const char *source EINA_UNUSED) { elm_object_item_signal_emit(ctxpopup_it->list_item, emission, source); } +// TIZEN_ONLY(20170116): merge eo & header files for different profiles +EOLIAN static void +_elm_ctxpopup_item_elm_widget_item_style_set(Eo *eo_item EINA_UNUSED, + Elm_Ctxpopup_Item_Data *item EINA_UNUSED, + const char *style EINA_UNUSED) +{ + // mobile & wearable only feature +} + +EOLIAN static Eina_Bool +_elm_ctxpopup_item_elm_widget_item_del_pre(Eo *eo_item EINA_UNUSED, Elm_Ctxpopup_Item_Data *item EINA_UNUSED) +{ + // mobile & wearable only feature + return EINA_TRUE; +} + +EOLIAN static Elm_Atspi_State_Set +_elm_ctxpopup_item_elm_interface_atspi_accessible_state_set_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Item_Data *it EINA_UNUSED) +{ + // mobile & wearable only feature + return 0; +} + +EOLIAN static Eina_Bool +_elm_ctxpopup_item_elm_interface_atspi_component_highlight_grab(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Item_Data *sd EINA_UNUSED) +{ + // mobile & wearable only feature + return EINA_FALSE; +} + +EOLIAN static Eina_Bool +_elm_ctxpopup_item_elm_interface_atspi_component_highlight_clear(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Item_Data *sd EINA_UNUSED) +{ + // mobile & wearable only feature + return EINA_FALSE; +} +// + EOLIAN static void _elm_ctxpopup_item_elm_widget_item_focus_set(Eo *eo_ctxpopup_it EINA_UNUSED, Elm_Ctxpopup_Item_Data *ctxpopup_it, @@ -1535,6 +1573,22 @@ _elm_ctxpopup_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Ctxpopup return ret; } +// TIZEN_ONLY(20170116): merge eo & header files for different profiles +EOLIAN static Eina_List * +_elm_ctxpopup_elm_interface_atspi_accessible_children_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED) +{ + // mobile & wearable only feature + return NULL; +} + +EOLIAN static const char* +_elm_ctxpopup_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED) +{ + // mobile & wearable only feature + return NULL; +} +// + //TIZEN ONLY(20150710): ctxpopup: Accessible methods for children_get, extents_get and item name_get EOLIAN static void _elm_ctxpopup_elm_interface_atspi_component_extents_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd, Eina_Bool screen_coords, int *x, int *y, int *w, int *h) diff --git a/src/lib/elm_ctxpopup.eo b/src/lib/elm_ctxpopup.eo index addcbc4..d390d24 100644 --- a/src/lib/elm_ctxpopup.eo +++ b/src/lib/elm_ctxpopup.eo @@ -280,6 +280,10 @@ class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action) Elm.Layout.sizing_eval; Elm_Interface_Atspi_Widget_Action.elm_actions.get; Elm_Interface_Atspi_Accessible.state_set.get; + Elm_Interface_Atspi_Accessible.children.get; + //TIZEN ONLY(20160918): name interface added + Elm_Interface_Atspi_Accessible.name.get; + // Elm_Interface_Atspi_Component.extents.get; Elm_Interface_Atspi_Component.highlight_grab; Elm_Interface_Atspi_Component.highlight_clear; @@ -287,5 +291,4 @@ class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action) events { dismissed; } - } diff --git a/src/lib/elm_ctxpopup_item.eo b/src/lib/elm_ctxpopup_item.eo index 8abaf68..a495410 100644 --- a/src/lib/elm_ctxpopup_item.eo +++ b/src/lib/elm_ctxpopup_item.eo @@ -42,13 +42,26 @@ class Elm.Ctxpopup_Item(Elm.Widget_Item, Elm_Interface_Atspi_Widget_Action) Eo.Base.destructor; Elm.Widget_Item.disable; Elm.Widget_Item.signal_emit; + Elm.Widget_Item.style.set; // TIZEN_ONLY(20170116): merge eo & header files for different profiles Elm.Widget_Item.part_text.get; Elm.Widget_Item.part_text.set; Elm.Widget_Item.part_content.get; Elm.Widget_Item.part_content.set; + Elm.Widget_Item.del_pre; // TIZEN_ONLY(20170116): merge eo & header files for different profiles Elm.Widget_Item.focus.set; Elm.Widget_Item.focus.get; + // TIZEN_ONLY(20170116): merge eo & header files for different profiles + // TIZEN_ONLY ctx_popup: fix accessibility states + Elm_Interface_Atspi_Accessible.state_set.get; + // + // Elm_Interface_Atspi_Widget_Action.elm_actions.get; - Elm_Interface_Atspi_Accessible.name.get; + Elm_Interface_Atspi_Accessible.name.get; + // TIZEN_ONLY(20170116): merge eo & header files for different profiles + // TIZEN ONLY(20161014) : Accessibility: scroll the content when highlight frame goes out of view port + Elm_Interface_Atspi_Component.highlight_grab; + Elm_Interface_Atspi_Component.highlight_clear; + // + // } } diff --git a/src/mobile_lib/elc_ctxpopup.c b/src/mobile_lib/elc_ctxpopup.c index 0c552cc..44307af 100644 --- a/src/mobile_lib/elc_ctxpopup.c +++ b/src/mobile_lib/elc_ctxpopup.c @@ -2236,6 +2236,67 @@ _elm_ctxpopup_auto_hide_disabled_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) return !sd->auto_hide; } +// TIZEN_ONLY(20170116): merge eo & header files for different profiles +EOLIAN static const Eina_List* +_elm_ctxpopup_items_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) +{ + return sd->items; +} + +EOLIAN static Elm_Object_Item* +_elm_ctxpopup_first_item_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) +{ + if (!sd->items) return NULL; + + return eina_list_data_get(sd->items); +} + +EOLIAN static Elm_Object_Item* +_elm_ctxpopup_last_item_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd) +{ + if (!sd->items) return NULL; + + return eina_list_data_get(eina_list_last(sd->items)); +} + +EOLIAN static Elm_Object_Item* +_elm_ctxpopup_item_prepend(Eo *obj, Elm_Ctxpopup_Data *sd, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) +{ + // the feature not provided for mobile or wearable profile + return NULL; +} + +EOLIAN static Elm_Object_Item * +_elm_ctxpopup_item_prev_get(Eo *eo_item EINA_UNUSED, Elm_Ctxpopup_Item_Data *item) +{ + Eina_List *l; + + ELM_CTXPOPUP_DATA_GET(WIDGET(item), sd); + + if (!sd->items) return NULL; + + l = eina_list_data_find_list(sd->items, eo_item); + if (l && l->prev) return eina_list_data_get(l->prev); + + return NULL; +} + +EOLIAN static Elm_Object_Item * +_elm_ctxpopup_item_next_get(Eo *eo_item EINA_UNUSED, Elm_Ctxpopup_Item_Data *item) +{ + Eina_List *l; + + ELM_CTXPOPUP_DATA_GET(WIDGET(item), sd); + + if (!sd->items) return NULL; + + l = eina_list_data_find_list(sd->items, eo_item); + if (l && l->next) return eina_list_data_get(l->next); + + return NULL; +} +// + EOLIAN static void _elm_ctxpopup_item_init(Eo *eo_item, Elm_Ctxpopup_Item_Data *item, diff --git a/src/mobile_lib/elc_ctxpopup.h b/src/mobile_lib/elc_ctxpopup.h deleted file mode 100644 index d5a3eb2..0000000 --- a/src/mobile_lib/elc_ctxpopup.h +++ /dev/null @@ -1,68 +0,0 @@ -/** - * @defgroup Ctxpopup Ctxpopup - * @ingroup elm_widget_group - * - * @image html ctxpopup_inheritance_tree.png - * @image latex ctxpopup_inheritance_tree.eps - * - * - * @brief Context popup widget. - * - * A ctxpopup is a widget that, when shown, pops up a list of items. - * It automatically chooses an area inside its parent object's view - * (set via elm_ctxpopup_add() and elm_ctxpopup_hover_parent_set()) to - * optimally fit into it. In the default theme, it will also point an - * arrow to it's top left position at the time one shows it. Ctxpopup - * items have a label and/or an icon. It is intended for a small - * number of items (hence the use of list, not genlist). - * - * This widget inherits from the Layout one, so that all the - * functions acting on it also work for context popup objects (since 1.8). - * - * This widget emits the following signals, besides the ones sent from - * @ref Layout: - * - @c "dismissed" - This is called when 1. the outside of ctxpopup was clicked - * or 2. its parent area is changed or 3. the language is changed and also when - * 4. the parent object is resized due to the window rotation. Then ctxpopup is - * dismissed. - * - @c "language,changed" - This is called when the program's language is - * changed. - * - @c "focused" - When the ctxpopup has received focus. (since 1.8) - * - @c "unfocused" - When the ctxpopup has lost focus. (since 1.8) - * Default content parts of the ctxpopup widget that you can use for are: - * @li "default" - A content of the ctxpopup - * - * Default content parts of the ctxpopup items that you can use for are: - * @li "icon" - An icon in the title area - * - * Default text parts of the ctxpopup items that you can use for are: - * @li "default" - A title label in the title area - * - * Supported elm_object common APIs. - * @li @ref elm_object_disabled_set - * @li @ref elm_object_disabled_get - * - * Supported elm_object_item common APIs. - * @li @ref elm_object_item_del - * @li @ref elm_object_item_disabled_set - * @li @ref elm_object_item_disabled_get - * @li @ref elm_object_item_part_text_set - * @li @ref elm_object_item_part_text_get - * @li @ref elm_object_item_part_content_set - * @li @ref elm_object_item_part_content_get - * @li @ref elm_object_item_signal_emit - * @li @ref elm_object_item_focus_set - * @li @ref elm_object_item_focus_get - * - * @{ - */ - -#ifdef EFL_EO_API_SUPPORT -#include "elc_ctxpopup_eo.h" -#endif -#ifndef EFL_NOLEGACY_API_SUPPORT -#include "elc_ctxpopup_legacy.h" -#endif -/** - * @} - */ diff --git a/src/mobile_lib/elc_ctxpopup_eo.h b/src/mobile_lib/elc_ctxpopup_eo.h deleted file mode 100644 index e3ff124..0000000 --- a/src/mobile_lib/elc_ctxpopup_eo.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "elm_ctxpopup_item.eo.h" -#include "elm_ctxpopup.eo.h" diff --git a/src/mobile_lib/elc_ctxpopup_legacy.h b/src/mobile_lib/elc_ctxpopup_legacy.h deleted file mode 100644 index cf65dbf..0000000 --- a/src/mobile_lib/elc_ctxpopup_legacy.h +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @brief Add a new Ctxpopup object to the parent. - * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * - * @param[in] parent Parent object - * @return New object or @c NULL, if it cannot be created - * - * @ingroup Ctxpopup - */ -EAPI Evas_Object *elm_ctxpopup_add(Evas_Object *parent); - -#include "elm_ctxpopup_item.eo.legacy.h" -#include "elm_ctxpopup.eo.legacy.h" - -/** - * @deprecated Deprecated since 2.4 - * @brief Get the possibility that the direction would be available - * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * - * @ingroup Ctxpopup - * - * @param[in] obj The ctxpopup object - * @param[in] direction A direction user wants to check - * - * Use this function to check whether input direction is proper for ctxpopup. - * If ctxpopup cannot be at the direction since there is no sufficient area it can be, - * - * @return @c EINA_FALSE if you cannot put it in the direction. - * @c EINA_TRUE if it's possible. - */ -EAPI Eina_Bool -elm_ctxpopup_direction_available_get(Evas_Object *obj, Elm_Ctxpopup_Direction direction); diff --git a/src/mobile_lib/elm_ctxpopup.eo b/src/mobile_lib/elm_ctxpopup.eo deleted file mode 100644 index ceae517..0000000 --- a/src/mobile_lib/elm_ctxpopup.eo +++ /dev/null @@ -1,183 +0,0 @@ -enum Elm.Ctxpopup.Direction -{ - [[Direction in which to show the popup.]] - down, [[Ctxpopup show appear below clicked area.]] - right, [[Ctxpopup show appear to the right of the clicked area.]] - left, [[Ctxpopup show appear to the left of the clicked area.]] - up, [[Ctxpopup show appear above the clicked area.]] - unknown [[Ctxpopup does not determine it's direction yet.]] -} - -class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action) -{ - eo_prefix: elm_obj_ctxpopup; - methods { - @property horizontal { - set { - [[Change the ctxpopup's orientation to horizontal or vertical.]] - } - get { - [[Get the value of current ctxpopup object's orientation. - - See also @.horizontal.set. - ]] - } - values { - horizontal: bool; [[$true for horizontal mode, $false for vertical.]] - } - } - @property auto_hide_disabled { - set { - [[Set ctxpopup auto hide mode triggered by ctxpopup policy. - - Use this function when user wants ctxpopup not to hide automatically. - By default, ctxpopup is dismissed whenever mouse clicked its background area, language is changed, - and its parent geometry is updated(changed). - Not to hide ctxpopup automatically, disable auto hide function by calling this API, - then ctxpopup won't be dismissed in those scenarios. - - Default value of disabled is $false. - - See also @.auto_hide_disabled.get. - - @since 1.9 - ]] - } - get { - [[Get ctxpopup auto hide mode triggered by ctxpopup policy. - - See also @.auto_hide_disabled.set for more information. - - @since 1.9 - ]] - } - values { - disabled: bool; [[auto hide enable/disable.]] - } - } - @property hover_parent { - set { - [[Set the Ctxpopup's parent - - Set the parent object. - - Note: \@ref elm_ctxpopup_add will automatically call this function - with its $parent argument. - - See also \@ref elm_ctxpopup_add, - \@ref elm_hover_parent_set. - ]] - } - get { - [[Get the Ctxpopup's parent - - See also @.hover_parent.set for more information - ]] - } - values { - parent: Evas.Object *; [[The parent to use.]] - } - } - @property direction_priority { - set { - [[Set the direction priority of a ctxpopup. - - This functions gives a chance to user to set the priority of ctxpopup - showing direction. This doesn't guarantee the ctxpopup will appear in the - requested direction. - - See also @.Direction. - ]] - } - get { - [[Get the direction priority of a ctxpopup. - - See also @.direction_priority.set for more information. - ]] - } - values { - first: Elm.Ctxpopup.Direction; [[1st priority of direction]] - second: Elm.Ctxpopup.Direction; [[2nd priority of direction]] - third: Elm.Ctxpopup.Direction; [[3th priority of direction]] - fourth: Elm.Ctxpopup.Direction; [[4th priority of direction]] - } - } - @property direction { - get { - [[Get the current direction of a ctxpopup. - - Warning: Once the ctxpopup showed up, the direction would be determined - - ]] - return: Elm.Ctxpopup.Direction(Elm.Ctxpopup.Direction.unknown); - } - } - dismiss { - [[Dismiss a ctxpopup object - - Use this function to simulate clicking outside of the ctxpopup to dismiss it. - In this way, the ctxpopup will be hidden and the "clicked" signal will be - emitted.]] - - } - clear { - [[Clear all items in the given ctxpopup object.]] - } - item_append { - [[Add a new item to a ctxpopup object. - - - Warning:Ctxpopup can't hold both an item list and a content at the same - time. When an item is added, any previous content will be removed. - - See also \@ref elm_object_content_set. - ]] - return: Elm.Widget_Item *; [[A handle to the item added or $null, on errors.]] - - params { - @in label: const(char)*; [[The Label of the new item]] - @in icon: Evas.Object * @optional; [[Icon to be set on new item]] - @in func: Evas_Smart_Cb @optional; [[Convenience function called when item selected]] - @in data: const(void)* @optional; [[Data passed to $func]] - } - } - } - implements { - class.constructor; - Eo.Base.constructor; - Evas.Object_Smart.del; - Evas.Object_Smart.add; - Elm.Widget.parent.set; - Elm.Widget.focus_direction; - Elm.Widget.sub_object_add; - Elm.Widget.focus_direction_manager_is; - Elm.Widget.focus_next_manager_is; - Elm.Widget.focus_next; - Elm.Widget.disable; - Elm.Widget.translate; - Elm.Widget.theme_apply; - Elm.Widget.event; - Elm.Container.content_get; - Elm.Container.content_set; - Elm.Container.content_unset; - Elm.Layout.sub_object_add_enable; - Elm.Layout.sizing_eval; - Elm_Interface_Atspi_Widget_Action.elm_actions.get; - Elm_Interface_Atspi_Accessible.state_set.get; - Elm_Interface_Atspi_Accessible.children.get; - //TIZEN ONLY(20160918): name interface added - Elm_Interface_Atspi_Accessible.name.get; - // - Elm_Interface_Atspi_Component.extents.get; - Elm_Interface_Atspi_Component.highlight_grab; - Elm_Interface_Atspi_Component.highlight_clear; - } - events { - language,changed; - access,changed; - focused; - unfocused; - dismissed; - } - -} diff --git a/src/mobile_lib/elm_ctxpopup_item.eo b/src/mobile_lib/elm_ctxpopup_item.eo deleted file mode 100644 index d0d07f3..0000000 --- a/src/mobile_lib/elm_ctxpopup_item.eo +++ /dev/null @@ -1,35 +0,0 @@ -class Elm.Ctxpopup_Item(Elm.Widget_Item, Elm_Interface_Atspi_Widget_Action) -{ - eo_prefix: elm_obj_ctxpopup_item; - methods { - init { - params { - func: Evas_Smart_Cb @nullable; - data: const(void) * @optional; - } - } - } - implements { - Eo.Base.constructor; - Eo.Base.destructor; - Elm.Widget_Item.disable; - Elm.Widget_Item.signal_emit; - Elm.Widget_Item.style.set; - Elm.Widget_Item.part_text.get; - Elm.Widget_Item.part_text.set; - Elm.Widget_Item.part_content.get; - Elm.Widget_Item.part_content.set; - Elm.Widget_Item.del_pre; - Elm.Widget_Item.focus.set; - Elm.Widget_Item.focus.get; - Elm_Interface_Atspi_Accessible.name.get; - //TIZEN_ONLY ctx_popup: fix accessibility states - Elm_Interface_Atspi_Accessible.state_set.get; - // - Elm_Interface_Atspi_Widget_Action.elm_actions.get; - //TIZEN ONLY(20161014) : Accessibility: scroll the content when highlight frame goes out of view port - Elm_Interface_Atspi_Component.highlight_grab; - Elm_Interface_Atspi_Component.highlight_clear; - // - } -} -- 2.7.4