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,
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)
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 {
dismissed;
}
-
}
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;
+ //
+ //
}
}
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,
+++ /dev/null
-/**
- * @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
-/**
- * @}
- */
+++ /dev/null
-#include "elm_ctxpopup_item.eo.h"
-#include "elm_ctxpopup.eo.h"
+++ /dev/null
-/**
- * @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);
+++ /dev/null
-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;
- }
-
-}
+++ /dev/null
-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;
- //
- }
-}