elm_object_item_signal_emit(ctxpopup_it->list_item, emission, source);
}
+//TIZEN ONLY(20161213): dummy functions to provide a common programming interface for all 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)
+{}
+EOLIAN static Eina_Bool
+_elm_ctxpopup_item_elm_widget_item_del_pre(Eo *eo_item EINA_UNUSED, Elm_Ctxpopup_Item_Data *item EINA_UNUSED)
+{
+ 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,
sd->dir = ELM_CTXPOPUP_DIRECTION_UNKNOWN;
}
+//TIZEN ONLY(20161213): support the same programming interface with mobile/wearable profiles for tizen platform packages
+EOLIAN static const char*
+_elm_ctxpopup_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED)
+{
+ // Only available for Tizen Mobile/Wearable
+ return NULL;
+}
+EOLIAN Eina_List*
+_elm_ctxpopup_elm_interface_atspi_accessible_children_get(Eo *eo_item EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED)
+{
+ // Only available for Tizen Mobile/Wearable
+ return NULL;
+}
+//
+
EOLIAN static const Elm_Atspi_Action*
_elm_ctxpopup_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED)
{
}
//
+//TIZEN ONLY(20161213): dummy functions to provide a common programming interface for all profiles
+EOLIAN static Eina_Bool
+_elm_ctxpopup_item_elm_interface_atspi_component_highlight_grab(Eo *eo_it EINA_UNUSED, Elm_Ctxpopup_Item_Data *it EINA_UNUSED)
+{
+ return EINA_FALSE;
+}
+EOLIAN static Eina_Bool
+_elm_ctxpopup_item_elm_interface_atspi_component_highlight_clear(Eo *eo_it EINA_UNUSED, Elm_Ctxpopup_Item_Data *it EINA_UNUSED)
+{
+ return EINA_TRUE;
+}
+//
+
+
#include "elm_ctxpopup_item.eo.c"
#include "elm_ctxpopup.eo.c"
* @image html ctxpopup_inheritance_tree.png
* @image latex ctxpopup_inheritance_tree.eps
*
- * @image html img/widget/ctxpopup/preview-00.png
- * @image latex img/widget/ctxpopup/preview-00.eps
+ * @if MOBILE @elseif WEARABLE @else @image html img/widget/ctxpopup/preview-00.png @endif
+ * @if MOBILE @elseif WEARABLE @else @image latex img/widget/ctxpopup/preview-00.eps @endif
*
* @brief Context popup widget.
*
* @li @ref elm_object_item_focus_set
* @li @ref elm_object_item_focus_get
*
- * @ref tutorial_ctxpopup shows the usage of a good deal of the API.
+ * @ref @if MOBILE @elif WEARABLE @else tutorial_ctxpopup shows the usage of a good deal of the API. @endif
* @{
*/
/**
* @brief Add a new Ctxpopup object to the parent.
*
- * @param parent Parent object
- * @return New object or @c NULL, if it cannot be created
- *
- * @ingroup Ctxpopup
- *
* @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);
@since 1.9
]]
}
- get @internal {
+ get {
[[Get ctxpopup auto hide mode triggered by ctxpopup policy.
See also @.auto_hide_disabled.set for more information.
+ \@if MOBILE \@since_tizen 1.0
+ \@elseif WEARABLE \@sinze_tizen 1.0
+ \@endif
+
@since 1.9
]]
}
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;
+ language,changed;
+ access,changed;
+ focused;
+ unfocused;
+ dismissed;
}
}
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;
Elm_Interface_Atspi_Widget_Action.elm_actions.get;
- Elm_Interface_Atspi_Accessible.name.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;
+ //
}
}
* @image html genlist_inheritance_tree.png
* @image latex genlist_inheritance_tree.eps
*
- * @image html img/widget/genlist/preview-00.png
- * @image latex img/widget/genlist/preview-00.eps
+ * @if MOBILE @elseif WEARABLE @else @image html img/widget/genlist/preview-00.png @endif
+ * @if MOBILE @elseif WEARABLE @else @image latex img/widget/genlist/preview-00.eps @endif
* @image html img/genlist.png
* @image latex img/genlist.eps
*
* - default
* - default_style - The text part is a textblock
*
- * @image html img/widget/genlist/preview-04.png
- * @image latex img/widget/genlist/preview-04.eps
+ * @if MOBILE @elseif WEARABLE @else @image html img/widget/genlist/preview-04.png @endif
+ * @if MOBILE @elseif WEARABLE @else @image latex img/widget/genlist/preview-04.eps @endif
*
* - double_label
*
- * @image html img/widget/genlist/preview-01.png
- * @image latex img/widget/genlist/preview-01.eps
+ * @if MOBILE @elseif WEARABLE @else @image html img/widget/genlist/preview-01.png @endif
+ * @if MOBILE @elseif WEARABLE @else @image latex img/widget/genlist/preview-01.eps @endif
*
* - icon_top_text_bottom
*
- * @image html img/widget/genlist/preview-02.png
- * @image latex img/widget/genlist/preview-02.eps
+ * @if MOBILE @elseif WEARABLE @else @image html img/widget/genlist/preview-02.png @endif
+ * @if MOBILE @elseif WEARABLE @else @image latex img/widget/genlist/preview-02.eps @endif
*
* - group_index
*
- * @image html img/widget/genlist/preview-03.png
- * @image latex img/widget/genlist/preview-03.eps
+ * @if MOBILE @elseif WEARABLE @else @image html img/widget/genlist/preview-03.png @endif
+ * @if MOBILE @elseif WEARABLE @else @image latex img/widget/genlist/preview-03.eps @endif
*
* - one_icon - Only 1 icon (left) (since 1.7)
* - end_icon - Only 1 icon (at end/right) (since 1.7)
* - no_icon - No icon (at end/right) (since 1.7)
* - full - Only 1 icon, elm.swallow.content, which consumes whole area of
- * genlist itemj (since 1.7)
+ * genlist item (since 1.7)
*
* If one wants to use more icons and texts than are offered in theme, there
* are two solutions. One is to use 'full' style that has one big swallow part.
#define ELM_GENLIST_ITEM_CLASS_VERSION ELM_GEN_ITEM_CLASS_VERSION
#define ELM_GENLIST_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_HEADER
+/**
+ * @brief Enumeration that defines whether the item is of a special type (has subitems or it's the
+ * index of a group), or it is just a simple item.
+ */
+typedef enum
+{
+ ELM_GENLIST_ITEM_NONE = 0, /**< simple item */
+ ELM_GENLIST_ITEM_TREE = (1 << 0), /**< this may be expanded and have child items. */
+ ELM_GENLIST_ITEM_GROUP = (1 << 1), /**< an index item of a group of items. this item can have child items. */
+
+ ELM_GENLIST_ITEM_MAX = (1 << 2)
+} Elm_Genlist_Item_Type;
+
+/**
+ * @brief Enumeration that defines the type of the item field.
+ * @remarks It is used while updating the item field.
+ * @remarks It can be used for updating multi fields.
+ */
+typedef enum
+{
+ ELM_GENLIST_ITEM_FIELD_ALL = 0, /**< The item contains all fields */
+ ELM_GENLIST_ITEM_FIELD_TEXT = (1 << 0), /**< The item contains a text field */
+ ELM_GENLIST_ITEM_FIELD_CONTENT = (1 << 1), /**< The item contains a content field */
+ ELM_GENLIST_ITEM_FIELD_STATE = (1 << 2) /**< The item contains a state field */
+} Elm_Genlist_Item_Field_Type;
+
+
+/**
+ * @brief Enumeration that defines where to position the item in the genlist.
+ */
+typedef enum
+{
+ ELM_GENLIST_ITEM_SCROLLTO_NONE = 0, /**< Scrolls to nowhere */
+ ELM_GENLIST_ITEM_SCROLLTO_IN = (1 << 0), /**< Scrolls to the nearest viewport */
+ ELM_GENLIST_ITEM_SCROLLTO_TOP = (1 << 1), /**< Scrolls to the top of the viewport */
+ ELM_GENLIST_ITEM_SCROLLTO_MIDDLE = (1 << 2), /**< Scrolls to the middle of the viewport */
+// @tizen_feature
+ ELM_GENLIST_ITEM_SCROLLTO_BOTTOM = (1 << 3) /**< Scrolls to the bottom of the viewport */
+///
+} Elm_Genlist_Item_Scrollto_Type;
+
+
/**
* @see Elm_Gen_Item_Class
*/
*/
typedef Elm_Gen_Item_Reusable_Content_Get_Cb Elm_Genlist_Reusable_Content_Get_Cb;
+
/**
- * Create a new genlist item class in a given genlist widget.
+ * @brief Create a new genlist item class in a given genlist widget.
*
- * @return New allocated genlist item class.
+ * @details This adds genlist item class for the genlist widget.
+ * When adding an item, genlist_item_{append, prepend, insert}
+ * function needs item class of the item.
+ * Given callback parameters are used at retrieving {text, content} of
+ * added item. Set as NULL if it's not used.
+ * If there's no available memory, return can be NULL.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @elseif WEARABLE @since_tizen 2.3.1
+ * @endif
*
- * This adds genlist item class for the genlist widget. When adding an item,
- * genlist_item_{append, prepend, insert} function needs item class of the item.
- * Given callback parameters are used at retrieving {text, content} of
- * added item. Set as NULL if it's not used.
- * If there's no available memory, return can be NULL.
+ * @return New allocated genlist item class.
*
* @see elm_genlist_item_class_free()
* @see elm_genlist_item_append()
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI Elm_Genlist_Item_Class *elm_genlist_item_class_new(void);
/**
- * Remove an item class in a given genlist widget.
+ * @brief Remove an item class in a given genlist widget.
*
- * @param itc The itc to be removed.
+ * @details This removes item class from the genlist widget.
+ * Whenever it has no more references to it,
+ * item class is going to be freed.
+ * Otherwise it just decreases its reference count.
*
- * This removes item class from the genlist widget.
- * Whenever it has no more references to it, item class is going to be freed.
- * Otherwise it just decreases its reference count.
+ * @if MOBILE @since_tizen 2.3
+ * @elseif WEARABLE @since_tizen 2.3.1
+ * @endif
*
* @see elm_genlist_item_class_new()
* @see elm_genlist_item_class_ref()
* @see elm_genlist_item_class_unref()
*
- * @ingroup Genlist
+ * @param itc The itc to be removed.
*
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
+ * @ingroup Genlist
*/
EAPI void elm_genlist_item_class_free(Elm_Genlist_Item_Class *itc);
/**
- * Increments object reference count for the item class.
+ * @brief Increments object reference count for the item class.
*
- * @param itc The given item class object to reference
+ * @details This API just increases its reference count for item class management.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @elseif WEARABLE @since_tizen 2.3.1
+ * @endif
*
- * This API just increases its reference count for item class management.
+ * @param itc The given item class object to reference
*
* @see elm_genlist_item_class_unref()
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI void elm_genlist_item_class_ref(Elm_Genlist_Item_Class *itc);
/**
- * Decrements object reference count for the item class.
+ * @brief Decrements object reference count for the item class.
*
- * @param itc The given item class object to reference
+ * @details This API just decreases its reference count for item class management.
+ * Reference count can't be less than 0.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @elseif WEARABLE @since_tizen 2.3.1
+ * @endif
*
- * This API just decreases its reference count for item class management.
- * Reference count can't be less than 0.
+ * @param itc The given item class object to reference
*
* @see elm_genlist_item_class_ref()
* @see elm_genlist_item_class_free()
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI void elm_genlist_item_class_unref(Elm_Genlist_Item_Class *itc);
/**
* @MOBILE_ONLY
*
- * Set the text to be shown in a given genlist item's tooltips.
+ * @brief Set the text to be shown in a given genlist item's tooltips.
*
- * @param it The genlist item
- * @param text The text to set in the content
+ * @details This call will setup the text to be used as tooltip to that item
+ * (analogous to elm_object_tooltip_text_set(), but being item
+ * tooltips with higher precedence than object tooltips).
+ * It can have only one tooltip at a time, so any previous tooltip data
+ * will get removed.
*
- * This call will setup the text to be used as tooltip to that item
- * (analogous to elm_object_tooltip_text_set(), but being item
- * tooltips with higher precedence than object tooltips). It can
- * have only one tooltip at a time, so any previous tooltip data
- * will get removed.
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
- * In order to set a content or something else as a tooltip, look at
- * elm_genlist_item_tooltip_content_cb_set().
+ * @remarks In order to set a content or something else as a tooltip, look at
+ * elm_genlist_item_tooltip_content_cb_set().
*
- * @ingroup Genlist
+ * @param it The genlist item
+ * @param text The text to set in the content
*
- * @if MOBILE @since_tizen 2.3
- * @endif
+ * @ingroup Genlist
*/
EAPI void elm_genlist_item_tooltip_text_set(Elm_Object_Item *it, const char *text);
/**
* @MOBILE_ONLY
*
- * Set the content to be shown in a given genlist item's tooltips
+ * @brief Set the content to be shown in a given genlist item's tooltips
+ *
+ * @details This call will setup the tooltip's contents to @p item
+ * (analogous to elm_object_tooltip_content_cb_set(), but being
+ * item tooltips with higher precedence than object tooltips).
+ * It can have only one tooltip at a time, so any previous tooltip
+ * content will get removed. @p func (with @p data) will be called
+ * every time Elementary needs to show the tooltip and it should
+ * return a valid Evas object, which will be fully managed by the
+ * tooltip system, getting deleted when the tooltip is gone.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
+ *
+ * @remarks In order to set just a text as a tooltip, look at
+ * elm_genlist_item_tooltip_text_set().
*
* @param it The genlist item.
* @param func The function returning the tooltip contents.
* dies. This callback receives as its first parameter the
* given @p data, being @p event_info the item handle.
*
- * This call will setup the tooltip's contents to @p item
- * (analogous to elm_object_tooltip_content_cb_set(), but being
- * item tooltips with higher precedence than object tooltips). It
- * can have only one tooltip at a time, so any previous tooltip
- * content will get removed. @p func (with @p data) will be called
- * every time Elementary needs to show the tooltip and it should
- * return a valid Evas object, which will be fully managed by the
- * tooltip system, getting deleted when the tooltip is gone.
- *
- * In order to set just a text as a tooltip, look at
- * elm_genlist_item_tooltip_text_set().
- *
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @endif
*/
EAPI void elm_genlist_item_tooltip_content_cb_set(Elm_Object_Item *it, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
/**
* @MOBILE_ONLY
*
- * Unset a tooltip from a given genlist item
+ * @brief Unset a tooltip from a given genlist item
*
- * @param it genlist item to remove a previously set tooltip from.
+ * @brief This call removes any tooltip set on @p item. The callback
+ * provided as @c del_cb to elm_genlist_item_tooltip_content_cb_set()
+ * will be called to notify it is not used anymore
+ * (and have resources cleaned, if need be).
*
- * This call removes any tooltip set on @p item. The callback
- * provided as @c del_cb to
- * elm_genlist_item_tooltip_content_cb_set() will be called to
- * notify it is not used anymore (and have resources cleaned, if
- * need be).
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
* @see elm_genlist_item_tooltip_content_cb_set()
*
- * @ingroup Genlist
+ * @param it genlist item to remove a previously set tooltip from.
*
- * @if MOBILE @since_tizen 2.3
- * @endif
+ * @ingroup Genlist
*/
EAPI void elm_genlist_item_tooltip_unset(Elm_Object_Item *it);
/**
* @MOBILE_ONLY
*
- * Set a different @b style for a given genlist item's tooltip.
+ * @brief Set a different @b style for a given genlist item's tooltip.
+ *
+ * @details Tooltips can have <b>alternate styles</b> to be displayed on,
+ * which are defined by the theme set on Elementary. This function
+ * works analogously as elm_object_tooltip_style_set(), but here
+ * applied only to genlist item objects. The default style for
+ * tooltips is @c "default".
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
+ *
+ * @remarks before you set a style you should define a tooltip with
+ * elm_genlist_item_tooltip_content_cb_set() or
+ * elm_genlist_item_tooltip_text_set()
*
* @param it genlist item with tooltip set
* @param style the <b>theme style</b> to use on tooltips (e.g. @c
* "default", @c "transparent", etc)
*
- * Tooltips can have <b>alternate styles</b> to be displayed on,
- * which are defined by the theme set on Elementary. This function
- * works analogously as elm_object_tooltip_style_set(), but here
- * applied only to genlist item objects. The default style for
- * tooltips is @c "default".
- *
- * @note before you set a style you should define a tooltip with
- * elm_genlist_item_tooltip_content_cb_set() or
- * elm_genlist_item_tooltip_text_set()
- *
* @see elm_genlist_item_tooltip_style_get()
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @endif
*/
EAPI void elm_genlist_item_tooltip_style_set(Elm_Object_Item *it, const char *style);
/**
* @MOBILE_ONLY
*
- * Get the style set a given genlist item's tooltip.
+ * @details Get the style set a given genlist item's tooltip.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
* @param it genlist item with tooltip already set on.
* @return style the theme style in use, which defaults to
* @see elm_genlist_item_tooltip_style_set() for more details
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @endif
*/
EAPI const char *elm_genlist_item_tooltip_style_get(const Elm_Object_Item *it);
* @MOBILE_ONLY
*
* @brief Disable size restrictions on an object's tooltip
- * @param it The tooltip's anchor object
- * @param disable If @c EINA_TRUE, size restrictions are disabled
- * @return @c EINA_FALSE on failure, @c EINA_TRUE on success
*
- * This function allows a tooltip to expand beyond its parent window's canvas.
- * It will instead be limited only by the size of the display.
+ * @details This function allows a tooltip to expand beyond its parent window's canvas.
+ * It will instead be limited only by the size of the display.
*
* @if MOBILE @since_tizen 2.3
* @endif
+ *
+ * @brief Disable size restrictions on an object's tooltip
+ * @param it The tooltip's anchor object
+ * @param disable If @c EINA_TRUE, size restrictions are disabled
+ * @return @c EINA_FALSE on failure, @c EINA_TRUE on success
+ *
+ * @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_item_tooltip_window_mode_set(Elm_Object_Item *it, Eina_Bool disable);
* @MOBILE_ONLY
*
* @brief Get size restriction state of an object's tooltip
- * @param it The tooltip's anchor object
- * @return If @c EINA_TRUE, size restrictions are disabled
*
- * This function returns whether a tooltip is allowed to expand beyond
- * its parent window's canvas.
- * It will instead be limited only by the size of the display.
+ * @details This function returns whether a tooltip is allowed to expand beyond
+ * its parent window's canvas.
+ * It will instead be limited only by the size of the display.
*
* @if MOBILE @since_tizen 2.3
* @endif
+ *
+ * @param it The tooltip's anchor object
+ * @return If @c EINA_TRUE, size restrictions are disabled
+ *
+ * @ingroup Genlist
*/
EAPI Eina_Bool elm_genlist_item_tooltip_window_mode_get(const Elm_Object_Item *it);
/**
- * Set the type of mouse pointer/cursor decoration to be shown,
- * when the mouse pointer is over the given genlist widget item
+ * @MOBILE_ONLY
*
- * @param it genlist item to customize cursor on
- * @param cursor the cursor type's name
+ * @brief Set the type of mouse pointer/cursor decoration to be shown,
+ * when the mouse pointer is over the given genlist widget item
+ *
+ * @details This function works analogously as elm_object_cursor_set(), but
+ * here the cursor's changing area is restricted to the item's
+ * area, and not the whole widget's. Note that that item cursors
+ * have precedence over widget cursors, so that a mouse over @p
+ * item will always show cursor @p type.
*
- * This function works analogously as elm_object_cursor_set(), but
- * here the cursor's changing area is restricted to the item's
- * area, and not the whole widget's. Note that that item cursors
- * have precedence over widget cursors, so that a mouse over @p
- * item will always show cursor @p type.
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
- * If this function is called twice for an object, a previously set
- * cursor will be unset on the second call.
+ * @remarks If this function is called twice for an object, a previously set
+ * cursor will be unset on the second call.
+ *
+ * @param it genlist item to customize cursor on
+ * @param cursor the cursor type's name
*
* @see elm_object_cursor_set()
* @see elm_genlist_item_cursor_get()
* @see elm_genlist_item_cursor_unset()
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI void elm_genlist_item_cursor_set(Elm_Object_Item *it, const char *cursor);
/**
- * Get the type of mouse pointer/cursor decoration set to be shown,
- * when the mouse pointer is over the given genlist widget item
+ * @MOBILE_ONLY
+ *
+ * @brief Get the type of mouse pointer/cursor decoration set to be shown,
+ * when the mouse pointer is over the given genlist widget item
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
* @param it genlist item with custom cursor set
* @return the cursor type's name or @c NULL, if no custom cursors
* @see elm_genlist_item_cursor_unset()
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI const char *elm_genlist_item_cursor_get(const Elm_Object_Item *it);
/**
- * Unset any custom mouse pointer/cursor decoration set to be
- * shown, when the mouse pointer is over the given genlist widget
- * item, thus making it show the @b default cursor again.
+ * @MOBILE_ONLY
+ *
+ * @brief Unset any custom mouse pointer/cursor decoration set in genlist.
+ *
+ * @details Unset any custom mouse pointer/cursor decoration set to be shown,
+ * when the mouse pointer is over the given genlist widget item,
+ * thus making it show the @b default cursor again.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
* @param it a genlist item
*
- * Use this call to undo any custom settings on this item's cursor
- * decoration, bringing it back to defaults (no custom style set).
+ * @remarks Use this call to undo any custom settings on this item's cursor
+ * decoration, bringing it back to defaults (no custom style set).
*
* @see elm_object_cursor_unset()
* @see elm_genlist_item_cursor_set() for more details
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI void elm_genlist_item_cursor_unset(Elm_Object_Item *it);
/**
- * Set a different @b style for a given custom cursor set for a
- * genlist item.
+ * @MOBILE_ONLY
+ *
+ * @brief Set a different @b style for a given custom cursor set for a
+ * genlist item.
+ *
+ * @details This function only makes sense when one is using custom mouse
+ * cursor decorations <b>defined in a theme file</b> , which can
+ * have, given a cursor name/type, <b>alternate styles</b> on
+ * it. It works analogously as elm_object_cursor_style_set(), but
+ * here applied only to genlist item objects.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
* @param it genlist item with custom cursor set
* @param style the <b>theme style</b> to use (e.g. @c "default",
* @c "transparent", etc)
*
- * This function only makes sense when one is using custom mouse
- * cursor decorations <b>defined in a theme file</b> , which can
- * have, given a cursor name/type, <b>alternate styles</b> on
- * it. It works analogously as elm_object_cursor_style_set(), but
- * here applied only to genlist item objects.
- *
* @warning Before you set a cursor style you should have defined a
* custom cursor previously on the item, with
* elm_genlist_item_cursor_set()
* @see elm_genlist_item_cursor_style_get()
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI void elm_genlist_item_cursor_style_set(Elm_Object_Item *it, const char *style);
/**
- * Get the current @b style set for a given genlist item's custom
- * cursor
+ * @MOBILE_ONLY
+ *
+ * @brief Get the current @b style set for a given genlist item's custom cursor
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
* @param it genlist item with custom cursor set.
* @return style the cursor style in use. If the object does not
* @see elm_genlist_item_cursor_style_set() for more details
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI const char *elm_genlist_item_cursor_style_get(const Elm_Object_Item *it);
/**
- * Set if the (custom) cursor for a given genlist item should be
- * searched in its theme, also, or should only rely on the
- * rendering engine.
+ * @MOBILE_ONLY
*
- * @param it item with custom (custom) cursor already set on
- * @param engine_only Use @c EINA_TRUE to have cursors looked for
- * only on those provided by the rendering engine, @c EINA_FALSE to
- * have them searched on the widget's theme, as well.
+ * @brief Set if the cursor for a given genlist item is relying on the rendering engine only.
+ *
+ * @details Set if the (custom) cursor for a given genlist item should be
+ * searched in its theme, also, or should only rely on the rendering engine.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
- * @note This call is of use only if you've set a custom cursor
+ * @remarks This call is of use only if you've set a custom cursor
* for genlist items, with elm_genlist_item_cursor_set().
*
- * @note By default, cursors will only be looked for between those
+ * @remarks By default, cursors will only be looked for between those
* provided by the rendering engine.
*
- * @ingroup Genlist
+ * @param it item with custom (custom) cursor already set on
+ * @param engine_only Use @c EINA_TRUE to have cursors looked for
+ * only on those provided by the rendering engine, @c EINA_FALSE to
+ * have them searched on the widget's theme, as well.
*
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
+ * @ingroup Genlist
*/
EAPI void elm_genlist_item_cursor_engine_only_set(Elm_Object_Item *it, Eina_Bool engine_only);
/**
- * Get if the (custom) cursor for a given genlist item is being
- * searched in its theme, also, or is only relying on the rendering
- * engine.
+ * @MOBILE_ONLY
+ *
+ * @brief Get if the cursor for a given genlist item is relying on the rendering engine only.
+ *
+ * @details Get if the (custom) cursor for a given genlist item is being
+ * searched in its theme, also, or is only relying on the rendering engine.
+ *
+ * @if MOBILE @since_tizen 2.3
+ * @endif
*
* @param it a genlist item
* @return @c EINA_TRUE, if cursors are being looked for only on
* @see elm_genlist_item_cursor_engine_only_set(), for more details
*
* @ingroup Genlist
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
*/
EAPI Eina_Bool elm_genlist_item_cursor_engine_only_get(const Elm_Object_Item *it);
import elm_general;
-enum Elm.Genlist.Item.Type
-{
- [[Defines if the item is of any special type (has subitems or it's the
- index of a group), or is just a simple item.
- ]]
- legacy: elm_genlist_item;
- none = 0, [[Simple item.]]
- tree = (1 << 0), [[This may be expanded and have child items.]]
- group = (1 << 1), [[An index item of a group of items. this item can have child items.]]
- max = (1 << 2)
-}
-
-enum Elm.Genlist.Item.Field_Type
-{
- [[Defines the type of the item part
- Used while updating item's parts
- It can be used at updating multi fields.
- ]]
- legacy: elm_genlist_item_field;
- all = 0,
- text = (1 << 0),
- content = (1 << 1),
- state = (1 << 2)
-}
-
-enum Elm.Genlist.Item.Scrollto_Type
-{
- [[Defines where to position the item in the genlist.]]
- legacy: elm_genlist_item_scrollto;
- none = 0, [[No scrollto.]]
- in = (1 << 0), [[To the nearest viewport.]]
- top = (1 << 1), [[To the top of viewport.]]
- middle = (1 << 2), [[To the middle of viewport.]]
- bottom = (1 << 3) [[To the bottom of viewport.]]
-}
-
class Elm.Genlist_Item(Elm.Widget_Item)
{
eo_prefix: elm_obj_genlist_item;
methods {
@property prev {
get {
- [[Get the previous item in a genlist widget's internal
- list of items, given a handle to one of those items.
+ [[
+ $brief Get the $b previous item in a genlist widget's internal list of items,
+ given a handle to one of those items.
- This returns the item placed before the $item, on
- the container genlist.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This returns the item placed before the $p item, on the container
+ genlist.
+
+ $see elm_genlist_item_next_get()
+
+ $ingroup Genlist
+ ]]
}
values {
item: Elm.Widget_Item *; [[The item before $item, or $null if there's none (and on errors).]]
}
@property next {
get {
- [[Get the next item in a genlist widget's internal lis
- of items, given a handle to one of those items.
+ [[
+ $brief Get the $b next item in a genlist widget's internal list of items,
+ given a handle to one of those items.
- This returns the item placed after the $item, on
- the container genlist.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This returns the item placed after the $p item, on the container
+ genlist.
+
+ $see elm_genlist_item_prev_get()
+
+ $ingroup Genlist
+ ]]
}
values {
item: Elm.Widget_Item *; [[The item after $item, or $null if there's none (and on errors).]]
}
@property parent {
get {
- [[Get the parent item of the given item
+ [[
+ $brief Get the parent item of the given item
- This returns the item that was specified as parent
- of the item $it on \@ref elm_genlist_item_append
- and insertion related functions.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
- }
+ $remark This returns the item that was specified as parent of the item $p it on
+ elm_genlist_item_append() and insertion related functions.
+
+ $ingroup Genlist
+ ]]
+ }
values {
item: Elm.Widget_Item *; [[The parent of the item or $null if it has no parent.]]
}
}
@property subitems {
- get @internal {
- [[et the list of subitems of a given item
+ get {
+ [[Get the list of subitems of a given item
This returns the list of subitems that an item
possesses. It cannot be changed.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
@since 1.9
]]
}
}
@property selected {
get {
- [[Get whether a given genlist item is selected or not.
+ [[
+ $brief Get whether a given genlist item is selected or not
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ *return $c EINA_TRUE, if it's selected, $c EINA_FALSE otherwise
+
+ $see elm_genlist_item_selected_set() for more details
+
+ $ingroup Genlist
+ ]]
}
set {
- [[Set whether a given genlist item is selected or not
+ [[
+ $brief Set whether a given genlist item is selected or not
- This sets the selected state of an item. If multi
- selection is not enabled on the containing genlist
- and $selected is $true, any other previously selected
- items will get unselected in favor of this new one.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark Use $c EINA_TRUE, to make it selected, $c EINA_FALSE to make it unselected
+
+ $remark This sets the selected state of an item. If multi selection is
+ not enabled on the containing genlist and $p selected is $c
+ EINA_TRUE, any other previously selected items will get
+ unselected in favor of this new one.
+
+ $see elm_genlist_item_selected_get()
+
+ $ingroup Genlist
+ ]]
}
values {
selected: bool; [[The selected state ($true selected, $false not selected).]]
}
@property expanded {
get {
- [[Get the expanded state of an item
+ [[
+ $brief Get the expanded state of an item
- This gets the expanded state of an item.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This gets the expanded state of an item.
+
+ $see elm_genlist_item_expanded_set()
+
+ $ingroup Genlist
+ ]]
}
set {
- [[Sets the expanded state of an item.
+ [[
+ $brief Sets the expanded state of an item.
- This function flags the item of type
- #ELM_GENLIST_ITEM_TREE as expanded or not.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- The theme will respond to this change visually, and
- a signal "expanded" or "contracted" will be sent
- from the genlist with a pointer to the item that
- has been expanded/contracted.
+ $remark This function flags the item of type #ELM_GENLIST_ITEM_TREE as
+ expanded or not.
- Calling this function won't show or hide any child
- of this item (if it is a parent). You must manually
- delete and create them on the callbacks of
- the "expanded" or "contracted" signals.
+ $remark The theme will respond to this change visually, and a signal "expanded" or
+ "contracted" will be sent from the genlist with a pointer to the item that
+ has been expanded/contracted.
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark Calling this function won't show or hide any child of this item (if it is
+ a parent). You must manually delete and create them on the callbacks of
+ the "expanded" or "contracted" signals.
+
+ $see elm_genlist_item_expanded_get()
+
+ $ingroup Genlist
+ ]]
}
values {
expanded: bool; [[The expanded state ($true expanded, $false not expanded).]]
}
@property expanded_depth {
get {
- [[Get the depth of expanded item.
+ [[
+ $brief Get the depth of expanded item
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $ingroup Genlist
+ ]]
}
values {
depth: int; [[The depth of expanded item.]]
}
@property item_class {
get {
- [[Get the Genlist Item class for the given Genlist Item.
+ [[
+ $brief Get the Genlist Item class for the given Genlist Item.
- This returns the Genlist_Item_Class for the given item.
- It can be used to examine the function pointers and
- item_style.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This returns the Genlist_Item_Class for the given item. It can be used to
+ examine the function pointers and item_style.
+
+ $ingroup Genlist
+ ]]
}
values {
itc: const (Elm_Genlist_Item_Class) *; [[Genlist Item class for the given item.]]
}
@property index {
get {
- [[Get the index of the item. It is only valid once displayed.
+ [[
+ $brief Get the index of the item. It is only valid once displayed.
- The index start from 1.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $ingroup Genlist
+ ]]
}
values {
- index: int(-1); [[The position inside the list of item.]]
+ index: int(-1); [[ *return the position inside the list of item. ]]
}
}
@property decorate_mode {
- get @internal {
- [[Get the item's decorate mode.
+ get {
+ [[
+ $internal
- This function just returns the name of the item's
- decorate mode.
- ]]
+ $brief Get the item's decorate mode.
+
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $remark This function just returns the name of the item's decorate mode.
+
+ $see elm_genlist_item_decorate_mode_set()
+ $see elm_genlist_decorated_item_get()
+
+ $ingroup Genlist
+ ]]
}
values {
- decorate_it_type: const(char)*; [[Name of the item's decorate mode.]]
+ decorate_it_type: const(char)*; [[ name of the item's decorate mode. ]]
}
}
@property flip {
- get @internal {
- [[Get the flip state of a given genlist item.
+ get {
+ [[
+ $internal
- This function returns the flip state of a given
- genlist item. If the parameter is invalid, it
- returns $false.
- ]]
+ $brief Get the flip state of a given genlist item.
+
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $remark This function returns the flip state of a given genlist item.
+ If the parameter is invalid, it returns $c EINA_FALSE.
+
+ $see elm_genlist_item_flip_set()
+
+ $ingroup Genlist
+ ]]
}
- set @internal {
- [[Set the flip state of a given genlist item.
+ set {
+ [[
+ $internal
- This function sets the flip state of a given genlist
- item. Flip mode overrides current item object.
- It can be used for on-the-fly item replace.
- Flip mode can be used with/without decorate mode.
- ]]
+ $brief Set the flip state of a given genlist item.
+
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $remark ($c EINA_TRUE = on, $c EINA_FALSE = off)
+
+ $remark This function sets the flip state of a given genlist item.
+ Flip mode overrides current item object.
+ It can be used for on-the-fly item replace.
+ Flip mode can be used with/without decorate mode.
+
+ $see elm_genlist_item_flip_get()
+
+ $ingroup Genlist
+ ]]
}
values {
flip: bool; [[The flip mode.]]
}
@property select_mode {
get {
- [[Get the genlist item's select mode.
-
- It's ELM_OBJECT_SELECT_MODE_MAX on failure.
+ [[
+ $brief Get the genlist item's select mode.
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ *return The select mode
+ (If getting mode fails, it returns ELM_OBJECT_SELECT_MODE_MAX)
+
+ $see elm_genlist_item_select_mode_set()
+
+ $ingroup Genlist
+ ]]
}
set {
- [[Set the genlist item's select mode.
-
- ELM_OBJECT_SELECT_MODE_DEFAULT means that the item
- will only call their selection func and callback
- when first becoming selected. Any further clicks will
- do nothing, unless you set always select mode.
-
- ELM_OBJECT_SELECT_MODE_ALWAYS means that even if
- selected, every click will make the selected
- callbacks be called.
-
- ELM_OBJECT_SELECT_MODE_NONE will turn off the ability
- to select the item entirely and they will neither
- appear selected nor call selected callback functions.
-
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY will apply
- no-finger-size rule with ELM_OBJECT_SELECT_MODE_NONE.
- No-finger-size rule makes an item can be smaller
- than lower limit. Clickable objects should be bigger
- than human touch point device (your finger) for
- some touch or small screen devices. So it is
- enabled, the item can be shrink than predefined
- finger-size value. And the item will be updated.
-
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ [[
+ $brief Set the genlist item's select mode.
+
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $remark elm_genlist_select_mode_set() changes item's select mode.
+ - ELM_OBJECT_SELECT_MODE_DEFAULT : The item will only call their selection func and
+ callback when first becoming selected. Any further clicks will
+ do nothing, unless you set always select mode.
+ - ELM_OBJECT_SELECT_MODE_ALWAYS : This means that, even if selected,
+ every click will make the selected callbacks be called.
+ - ELM_OBJECT_SELECT_MODE_NONE : This will turn off the ability to select the item
+ entirely and they will neither appear selected nor call selected
+ callback functions.
+ - ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY : This will apply no-finger-size rule
+ with ELM_OBJECT_SELECT_MODE_NONE. No-finger-size rule makes an item can be
+ smaller than lower limit. Clickable objects should be bigger than
+ human touch point device (your finger) for some touch or
+ small screen devices. So it is enabled, the item can be shrink than
+ predefined finger-size value. And the item will be updated.
+
+ $see elm_genlist_item_select_mode_get()
+
+ $ingroup Genlist
+ ]]
}
values {
mode: Elm.Object.Select_Mode(Elm.Object.Select_Mode.max); [[The selected mode.]]
}
@property type {
get {
- [[Get the Item's type.
+ [[
+ $brief Get the Item's Type
- This function returns the item's type. Normally the
- item's type. If it failed, return value is
- ELM_GENLIST_ITEM_MAX.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ *return The item type.
+
+ $remark This function returns the item's type. Normally the item's type.
+ If it failed, return value is ELM_GENLIST_ITEM_MAX
+
+ $ingroup Genlist
+ ]]
}
values {
type: Elm.Genlist.Item.Type(Elm.Genlist.Item.Type.max); [[Item type.]]
return: uint; [[The number of subitems, 0 on error.]]
}
subitems_clear{
- [[Remove all sub-items (children) of the given item.
+ [[
+ $brief Remove all sub-items (children) of the given item
- This removes all items that are children (and their
- descendants) of the given item $it.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $param it The item
+
+ $remark This removes all items that are children (and their descendants) of the
+ given item $p it.
+
+ $see elm_genlist_clear()
+ $see elm_object_item_del()
+
+ $ingroup Genlist
+ ]]
}
promote {
- [[Promote an item to the top of the list.
+ [[
+ $brief Promote an item to the top of the list
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $param it The item
+
+ $ingroup Genlist
+ ]]
}
demote {
- [[Demote an item to the end of the list.
+ [[
+ $brief Demote an item to the end of the list
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $param it The item
+
+ $ingroup Genlist
+ ]]
}
show {
- [[Show the portion of a genlist's internal list containing
- a given item, immediately.
+ [[
+ $brief Show the portion of a genlist's internal list containing a given
+ item, immediately.
- This causes genlist to jump to the given item $it and
- show it (by jumping to that position), if it is not
- fully visible.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This causes genlist to jump to the given item $p it and show it (by
+ jumping to that position), if it is not fully visible.
+
+ $see elm_genlist_item_bring_in()
+
+ $ingroup Genlist
+ ]]
params {
- @in type: Elm.Genlist.Item.Scrollto_Type; [[The position to bring in, the given item to.
- \@ref Elm_Genlist_Item_Scrollto_Type.]]
+ @in type: Elm_Genlist_Item_Scrollto_Type; [[The position to bring in, the given item to.
+ \$ref Elm_Genlist_Item_Scrollto_Type.]]
}
}
bring_in {
- [[Animatedly bring in, to the visible area of a genlist, a
- given item on it.
+ [[
+ $brief Animatedly bring in, to the visible area of a genlist, a given
+ item on it.
- This causes genlist to jump to the given item $it and
- show it (by animatedly scrolling), if it is not fully
- visible. This may use animation and take a some time
- to do so.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This causes genlist to jump to the given item $p it and show it (by
+ animatedly scrolling), if it is not fully visible.
+ This may use animation and take a some time to do so.
+
+ $see elm_genlist_item_show()
+
+ $ingroup Genlist
+ ]]
params {
- @in type: Elm.Genlist.Item.Scrollto_Type; [[The position to bring in, the given item to.
- \@ref Elm_Genlist_Item_Scrollto_Type.]]
+ @in type: Elm_Genlist_Item_Scrollto_Type; [[The position to bring in, the given item to.
+ \$ref Elm_Genlist_Item_Scrollto_Type.]]
}
}
- all_contents_unset {
- [[Unset all contents fetched by the item class.
+ all_contents_unset{
+ [[
+ $brief Unset all contents fetched by the item class
- This instructs genlist to release references to contents
- in the item, meaning that they will no longer be managed
- by genlist and are floating "orphans" that can be re-used
- elsewhere if the user wants to.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This instructs genlist to release references to contents in the item,
+ meaning that they will no longer be managed by genlist and are
+ floating "orphans" that can be re-used elsewhere if the user wants
+ to.
+
+ $ingroup Genlist
+ ]]
params {
@out l: own(list<own(Evas.Object *)> *); [[The contents list to return.]]
}
}
update {
- [[Update all the contents of an item.
-
- This updates an item by calling all the item class
- functions again to get the contents, texts and states.
- Use this when the original item data has changed and the
- changes are desired to be reflected.
-
- Use elm_genlist_realized_items_update() to update all
- already realized items.
-
- Note: This also updates internal genlist item object
- (edje_object as of now). So when this is called between
- mouse down and mouse up, mouse up event will be ignored
- because edje_object is deleted and created again by this
- API. If you want to avoid this, please use
- \@ref elm_genlist_item_fields_update.
-
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ [[
+ $brief Update all the contents of an item
+
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
+
+ $remark This updates an item by calling all the item class functions again
+ to get the contents, texts and states. Use this when the original
+ item data has changed and the changes are desired to be reflected.
+
+ $remark Use elm_genlist_realized_items_update() to update all already realized
+ items.
+
+ $remark This also updates internal genlist item object(edje_object as of now).
+ So when this is called between mouse down and mouse up, mouse up event will
+ be ignored because edje_object is deleted and created again by this API. If
+ you want to avoid this, please use $ref elm_genlist_item_fields_update.
+
+ $see elm_genlist_realized_items_update()
+
+ $ingroup Genlist
+ ]]
}
fields_update {
- [[Update the part of an item.
+ [[
+ $brief Update the part of an item
- This updates an item's part by calling item's fetching
- functions again to get the contents, texts and states.
- Use this when the original item data has changed and the
- changes are desired to be reflected. Second part
- argument is used for globbing to match '*', '?', and '.'
- It can be used at updating multi fields.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- Use \@ref elm_genlist_realized_items_update to update an
- item's all property.
+ $remark This updates an item's part by calling item's fetching functions again
+ to get the contents, texts and states. Use this when the original
+ item data has changed and the changes are desired to be reflected.
+ Second parts argument is used for globbing to match '*', '?', and '.'
+ It can be used at updating multi fields.
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark Use elm_genlist_realized_items_update() to update an item's all
+ property.
+
+ $see elm_genlist_item_update()
+
+ $ingroup Genlist
+ ]]
params {
@in parts: const (char) *; [[The name of item's part.]]
@in itf: Elm.Genlist.Item.Field_Type; [[The type of item's part type.]]
}
}
item_class_update {
- [[Update the item class of an item.
+ [[
+ $brief Update the item class of an item
- This sets another class of the item, changing the way
- that it is displayed. After changing the item class
- @.update is called on the item $it.
+ $if MOBILE $since_tizen 2.3
+ $elseif WEARABLE $since_tizen 2.3.1
+ $endif
- \@if MOBILE \@since_tizen 2.3
- \@elseif WEARABLE \@since_tizen 2.3.1
- \@endif
- ]]
+ $remark This sets another class of the item, changing the way that it is
+ displayed. After changing the item class, elm_genlist_item_update() is
+ called on the item $p it.
+
+ $ingroup Genlist
+ ]]
params {
@in itc: const (Elm_Genlist_Item_Class) *; [[The item class for the item.]]
}
}
decorate_mode_set @internal {
- [[Activate a genlist mode on an item.
-
- A genlist mode is a different way of selecting an item.
- Once a mode is activated on an item, any other selected
- item is immediately unselected. This feature provides an
- easy way of implementing a new kind of animation for
- selecting an item, without having to entirely rewrite
- the item style theme. However, the elm_genlist_selected_*
- API can't be used to get what item is activate for a mode.
-
- The current item style will still be used, but applying
- a genlist mode to an item will select it using a
- different kind of animation.
-
- The current active item for a mode can be found by
- \@ref elm_genlist_decorated_item_get.
-
- Only one mode can be active at any time, and for only one
- item. Genlist handles deactivating other items when one
- item is activated. A mode is defined in the genlist theme
- (edc), and more modes can easily be added. A mode style
- and the genlist item style are different things. They
- can be combined to provide a default style to the item,
- with some kind of animation for that item when the mode
- is activated.
-
- When a mode is activated on an item, a new view for that
- item is created. The theme of this mode defines the
- animation that will be used to transit the item from
- the old view to the new view. This second (new) view will
- be active for that item while the mode is active on the
- item, and will be destroyed after the mode is totally
- deactivated from that item.
- ]]
+ [[
+ $internal
+
+ $brief Activate a genlist mode on an item
+
+ $remark A genlist mode is a different way of selecting an item. Once a mode is
+ activated on an item, any other selected item is immediately unselected.
+ This feature provides an easy way of implementing a new kind of animation
+ for selecting an item, without having to entirely rewrite the item style
+ theme. However, the elm_genlist_selected_* API can't be used to get what
+ item is activate for a mode.
+
+ $remark The current item style will still be used, but applying a genlist mode to
+ an item will select it using a different kind of animation.
+
+ $remark The current active item for a mode can be found by
+ elm_genlist_decorated_item_get().
+
+ $remark The characteristics of genlist mode are:
+ - Only one mode can be active at any time, and for only one item.
+ - Genlist handles deactivating other items when one item is activated.
+ - A mode is defined in the genlist theme (edc), and more modes can easily
+ be added.
+ - A mode style and the genlist item style are different things. They
+ can be combined to provide a default style to the item, with some kind
+ of animation for that item when the mode is activated.
+
+ $remark When a mode is activated on an item, a new view for that item is created.
+ The theme of this mode defines the animation that will be used to transit
+ the item from the old view to the new view. This second (new) view will be
+ active for that item while the mode is active on the item, and will be
+ destroyed after the mode is totally deactivated from that item.
+
+ $see elm_genlist_mode_get()
+ $see elm_genlist_decorated_item_get()
+
+ $ingroup Genlist
+ ]]
params {
@in decorate_it_type: const(char)*; [[Mode name.]]
@in decorate_it_set: bool; [[Boolean to define set or unset mode.]]
#include "elm_widget_layout.h"
+#define MAX_ITEMS_PER_VIEWPORT 8
+
/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
* CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
* FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
{
Elm_Widget_Item_Data *base;
+/* list_item: Not for mobile/wearable */
Elm_Object_Item *list_item;
+/* label, icon, btn: for mobile/wearable only */
+ const char *label;
+ Evas_Object *icon;
+ Evas_Object *btn;
struct
{
struct _Elm_Ctxpopup_Data
{
Evas_Object *parent;
- Evas_Object *list;
+ Evas_Object *list; /* list is for non-mobile/wearable */
Evas_Object *box;
Eina_List *items;
+ Evas_Object *layout; /* layout is for mobile/wearable only */
Evas_Object *arrow;
+ Evas_Object *scr; /* scr is for mobile/wearable only */
Evas_Object *bg;
Evas_Object *content;
Elm_Ctxpopup_Direction dir;
Elm_Ctxpopup_Direction dir_priority[4];
- Eina_Bool list_visible : 1;
+ int multi_down; /* multi_doen is for mobile/wearable only */
+
+ Eina_Bool list_visible : 1; /* list_visble is for non-mobile/wearable */
Eina_Bool horizontal : 1;
- Eina_Bool finished : 1;
- Eina_Bool emitted : 1;
+ Eina_Bool finished : 1; /* finished is for non-mobile/wearable */
+ Eina_Bool emitted : 1; /* emitted is for non-mobile/wearable */
Eina_Bool visible : 1;
Eina_Bool auto_hide : 1; /**< auto hide mode triggered by ctxpopup policy*/
+ Eina_Bool mouse_down : 1; /* mouse_down is for mobile/wearable only */
+//******************** TIZEN Only
+ Eina_Bool pressed : 1; /* pressed is for mobile/wearable only */
+//****************************
};
/**
#include "elm_gen_common.h"
#include "Elementary.h"
+#define BANDED_MAX_ITEMS 20
/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
* CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
Eina_Inlist_Sorted_State *state;
Evas_Object *hit_rect;
Evas_Object *pan_obj;
+
+ Evas_Object *focused_content; // For mobile/wearable only
+ Elm_Gen_Item *focused_item_mobile; // For mobile/wearable only
+ Elm_Object_Item *focused_item; /**< a focused item by keypad arrow or mouse. This is set to NULL if widget looses focus. */
+ // for non mobile/wearable
+
Evas_Object *stack[2]; // stacking markers in pan
+ // For non mobile/wearable
Evas_Object *obj; // the object itself
Eina_List *selected; /* a list of
* selected
* items */
Eina_List *deselecting; /* a list of items currently being deselected */
+ // For non mobile/wearable
Eina_List *group_items; /* a list of
* groups index
* items */
Elm_Gen_Item *reorder_it; /* item currently
* being
* repositioned */
+ // For non mobile/wearable
+ struct
+ {
+ Elm_Gen_Item *it;
+ int dir;
+ Eina_List *move_items;
+ Ecore_Animator *anim;
+ } reorder; // For mobile/wearable
+
Elm_Object_Item *last_selected_item;
- Elm_Object_Item *focused_item; /**< a focused item by keypad arrow or mouse. This is set to NULL if widget looses focus. */
Elm_Object_Item *last_focused_item; /**< This records the last focused item when widget looses focus. This is required to set the focus on last focused item when widgets gets focus. */
- Ecore_Job *calc_job;
- int walking;
+ // For non mobile/wearable
+ Ecore_Job *calc_job; // For non mobile/wearable
+ int walking; // For non mobile/wearable
int minw, minh;
Eina_Bool scr_minw : 1; /* a flag for determining
* minimum width to limit
Elm_Object_Select_Mode select_mode;
Elm_Object_Multi_Select_Mode multi_select_mode; /**< select mode for multiple selection */
+ Evas_Coord comp_y; // For mobile/wearable
+ int dir; // For mobile/wearable
+ Eina_List *blocks_realized; // For mobile/wearable
Eina_Inlist *blocks; /* an inlist of all
* blocks. a block
* consists of a
* number of items in
* a block is
* 'max_items_per_block'. */
- Evas_Coord reorder_old_pan_y, w, h, realminw;
+ Evas_Coord reorder_old_pan_y, w, h, realminw; // For non mobile/wearable
Evas_Coord prev_viewport_w; /* previous scrollable
* interface's
* viewport size.
* This is used only
* when genlist is in
* a compress mode. */
- Ecore_Job *update_job;
+ Ecore_Job *update_job; // For non mobile/wearable
Ecore_Idle_Enterer *queue_idle_enterer;
- Ecore_Idler *must_recalc_idler;
+ Ecore_Idler *must_recalc_idler; // For non mobile/wearable
Eina_List *queue;
- Elm_Gen_Item *show_item, *anchor_item, *mode_item,
- *reorder_rel, *expanded_item;
+ Elm_Gen_Item *show_item, *mode_item, *expanded_item;
+ Elm_Gen_Item *anchor_item, *reorder_rel; // For non mobile/wearable
Eina_Inlist *item_cache; /* an inlist of
* edje object it
* cache. */
- Evas_Coord anchor_y;
+ Evas_Coord anchor_y; // For non mobile/wearable
Evas_Coord reorder_start_y; /* reorder
* it's
* initial y
* coordinate
* in the
* pan. */
+ // For non mobile/wearable
Elm_List_Mode mode;
- Ecore_Timer *multi_timer, *scr_hold_timer;
- Ecore_Animator *reorder_move_animator;
+ Ecore_Timer *multi_timer; // For non mobile/wearable
+ Ecore_Timer *scr_hold_timer;
+ Ecore_Animator *reorder_move_animator; // For non mobile/wearable
const char *decorate_it_type;
double start_time;
Evas_Coord prev_x, prev_y, prev_mx, prev_my;
struct
{
Evas_Coord x, y;
- } history[SWIPE_MOVES];
+ } history[SWIPE_MOVES]; // For non mobile/wearable
- int multi_device;
+ int multi_device; // For non mobile/wearable
int item_cache_count;
/* maximum number of cached items. (max_items_per_block * 2) */
int item_cache_max;
- int movements;
+ int movements; // For non mobile/wearable
/* maximum number of items per block */
int max_items_per_block;
* middle */
Elm_Genlist_Item_Scrollto_Type scroll_to_type;
Evas_Object *event_block_rect; /**< This object blocks the event in some cases. For example, when the tree effect is running and not finished, this object blocks events to the genlist. */
+ // For non mobile/wearable
Eina_List *move_items; /* items move for
* tree effect */
- Elm_Gen_Item *expanded_next_item;
- Ecore_Animator *tree_effect_animator;
- Elm_Genlist_Item_Move_Effect_Mode move_effect_mode;
- int reorder_fast;
-
+ // For non mobile/wearable
+ Elm_Gen_Item *expanded_next_item; // For non mobile/wearable
+ Ecore_Animator *tree_effect_animator; // For non mobile/wearable
+ Elm_Genlist_Item_Move_Effect_Mode move_effect_mode; // For non mobile/wearable
+ int reorder_fast; // For non mobile/wearable
+
+ Evas_Object *g_layer; // For mobile/wearable
+ Elm_Gen_Item *g_item; // For mobile/wearable
+ const char *g_type; // For mobile/wearable
+ Eina_Bool select_on_focus_enabled : 1; // For mobile/wearable
Eina_List *filter_queue;
Eina_List *filtered_list;
void *filter_data;
Elm_Gen_Item *atspi_item_to_highlight;
//
- Eina_Bool focus_on_selection_enabled : 1;
- Eina_Bool tree_effect_enabled : 1;
- Eina_Bool auto_scroll_enabled : 1;
+ Eina_Bool focus_on_selection_enabled : 1; // For non mobile/wearable
+ Eina_Bool tree_effect_enabled : 1; // For non mobile/wearable
+ Eina_Bool auto_scroll_enabled : 1; // For non mobile/wearable
Eina_Bool decorate_all_mode : 1;
- Eina_Bool height_for_width : 1;
- Eina_Bool reorder_pan_move : 1;
- Eina_Bool multi_timeout : 1;
- Eina_Bool multi_touched : 1;
+ Eina_Bool height_for_width : 1; // For non mobile/wearable
+ Eina_Bool reorder_pan_move : 1; // For non mobile/wearable
+ Eina_Bool multi_timeout : 1; // For non mobile/wearable
+ Eina_Bool multi_touched : 1; // For non mobile/wearable
Eina_Bool reorder_mode : 1; /* a flag
* for
* reorder
* mode
* enable/disable */
+ Eina_Bool reorder_force : 1; /* a flag
+ * for
+ * reorder
+ * by force */
+ // For mobile/wearable
/* this flag means genlist is supposed to be scrolled. if this flag
* is set to @c EINA_TRUE, genlist checks whether it's ok to scroll
* genlist now or not. */
- Eina_Bool check_scroll : 1;
- Eina_Bool pan_changed : 1;
- Eina_Bool wasselected : 1;
+ Eina_Bool check_scroll : 1; // For non mobile/wearable
+ Eina_Bool pan_changed : 1; // For non mobile/wearable
+ Eina_Bool wasselected : 1; // For non mobile/wearable
Eina_Bool homogeneous : 1;
- Eina_Bool longpressed : 1;
+ Eina_Bool realization_mode : 1; // For mobile/wearable
+ Eina_Bool longpressed : 1; // For non mobile/wearable
/* a flag for items can be highlighted or not. by default this flag
* is true. */
- Eina_Bool mouse_down : 1;
- Eina_Bool multi_down : 1;
+ Eina_Bool mouse_down : 1; // For non mobile/wearable
+ Eina_Bool multi_down : 1; // For non mobile/wearable
Eina_Bool on_sub_del : 1;
+ /* a flag for items can be highlighted or not. by default this flag
+ * is true. */
Eina_Bool highlight : 1;
Eina_Bool h_bounce : 1;
Eina_Bool v_bounce : 1;
* happens when the item is un-queued but the rel item is still in
* the queue. this item will be processed later. */
Eina_Bool requeued : 1;
- Eina_Bool on_hold : 1;
+ Eina_Bool on_hold : 1; /* a flag for check
+ * item selected or
+ * not */
Eina_Bool multi : 1; /* a flag for item
* multi
* selection */
-
- Eina_Bool swipe : 1;
+ Eina_Bool sorting : 1; // For mobile/wearable
+ Evas_Coord finger_minw, finger_minh; // For mobile/wearable
+ int processed_sizes; // For mobile/wearable
+ Eina_Bool calc_done : 1; // For mobile/wearable
+ Eina_Bool was_selected : 1; // For mobile/wearable
+ Ecore_Job *dummy_job; // For mobile/wearable
+ Ecore_Timer *scr_timer; // For mobile/wearable
+ Eina_Bool no_cache : 1; // For mobile/wearable
+ Elm_Gen_Item *key_down_item; // For mobile/wearable
+
+ Eina_Bool swipe : 1; // For non mobile/wearable
/**< value whether item loop feature is enabled or not. */
- Eina_Bool item_loop_enable : 1;
- Eina_Bool item_looping_on : 1;
- Eina_List *prepend_items;
+ Eina_Bool item_loop_enable : 1; // For non mobile/wearable
+ Eina_Bool item_looping_on : 1; // For non mobile/wearable
+ Eina_List *prepend_items; // For non mobile/wearable
+
+ /* this is genlist item Fx effect on Add/Remove */
+ Eina_Bool fx_mode : 1; // for mobile/wearable
+ struct
+ {
+ Eina_List *items;
+ Eina_List *pending_items;
+ Ecore_Animator *anim;
+ int cnt;
+ } del_fx; // for mobile/wearable
+ struct
+ {
+ Eina_List *items;
+ Ecore_Animator *anim;
+ int cnt;
+ } add_fx; // for mobile/wearable
+
+// TIZEN ONLY(20150701) : Banded Color UX Feature
+ /*for banded ux*/
+ Elm_Gen_Item *top_drawn_item; // for mobile
+ Evas_Object *banded_bg_rect; /* banded color
+ background feature.
+ enabled only
+ un-scrollable. */
+ // for mobile
+ Eina_Bool banded_bg_on : 1; // for mobile
+//
+// TIZEN_ONLY
+ Eina_Bool is_access : 1; // for mobile/wearable
+ Elm_Gen_Item *highlighted_item; // for mobile/wearable
+ Evas_Coord viewport_w, viewport_h; // for mobile/wearable
+ Elm_Gen_Item *aligned_item; // for mobile/wearable
+ //TIZEN_ONLY(20161104) : Accessibility : synchronized highlight of atspi and item align feature for wearable profile
+ Elm_Gen_Item *currently_highlighted_item; // for mobile/wearable
+ //
+
+ Elm_Genlist_Item_Scrollto_Type focus_scrollto_type; // for mobile/wearable
+
+ Eina_Bool unhighlight_skip: 1; // for mobile/wearable
+ Elm_Gen_Item *adjusted_item; // for mobile/wearable
+ Eina_Bool bottom_margin_enabled : 1; // for mobile/wearable
+ Eina_Bool unhighlighted : 1; // for mobile/wearable
+ Evas_Object *focus_bg; // for mobile/wearable
+ Evas_Object *clipee; // for mobile/wearable
};
typedef struct _Item_Block Item_Block;
typedef struct _Item_Cache Item_Cache;
typedef struct _Item_Size Item_Size;
+typedef struct _Elm_Genlist_Filter Elm_Genlist_Filter;
struct Elm_Gen_Item_Type
{
Eina_List *deco_it_texts, *deco_it_contents;
Eina_List *deco_all_texts, *deco_all_contents;
Eina_List *flip_contents;
+ Eina_List *flip_content_objs; // for mobile/wearable
Ecore_Timer *swipe_timer;
Evas_Coord scrl_x, scrl_y, old_scrl_y;
Evas_Object *deco_it_view;
int expanded_depth;
int order_num_in;
+ int banded_color_index; // for mobile
+ Evas_Object *banded_bg; // for mobile
+ Ecore_Animator *banded_anim; // for mobile
Eina_Bool decorate_all_item_realized : 1;
Eina_Bool tree_effect_finished : 1; /* tree effect */
Eina_Bool queued : 1;
Eina_Bool before : 1;
Eina_Bool show_me : 1;
+
+ Eina_Bool is_prepend : 1; // for mobile/wearable
+ Eina_Bool calc_done : 1; // for mobile/wearable
+
+ Evas_Coord reorder_offset; // for mobile/wearable
+
+ Ecore_Timer *highlight_timer;// for mobile/wearable
+ Eina_Bool multiline : 1; // for mobile/wearable
+ Eina_Bool resized : 1; // for mobile/wearable
+ Evas_Object *proxy; // for mobile/wearable
};
struct _Item_Block
Eina_Bool updateme : 1;
Eina_Bool changed : 1;
Eina_Bool show_me : 1;
+
+ Eina_Bool calc_done : 1; // for mobile/wearable
};
struct _Item_Cache
EINA_INLIST;
Evas_Object *base_view, *spacer;
+
const Elm_Genlist_Item_Class *item_class; // it->itc
+ Eina_Bool multiline; // for mobile/wearable
+ Eina_Bool selected : 1; // it->selected // for mobile/wearable
+ Eina_Bool disabled : 1; // it->disabled // for mobile/wearable
+ Eina_Bool expanded : 1; // it->item->expanded // for mobile/wearable
Eina_Bool tree : 1; // it->group
Eina_List *contents; // content objects for reusing
};
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
+/* The following 6 functions are to keep the same programming interfaces for all Tizen profiles */
+EOLIAN static const Eina_List*
+_elm_ctxpopup_items_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED)
+{
+ return NULL; /* Not supported in mobile/wearable */
+}
+
+EOLIAN static Elm_Object_Item*
+_elm_ctxpopup_first_item_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED)
+{
+ return NULL; /* Not supported in mobile/wearable */
+}
+
+EOLIAN static Elm_Object_Item*
+_elm_ctxpopup_last_item_get(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED)
+{
+ return NULL; /* Not supported in mobile/wearable */
+}
+
+EOLIAN static Elm_Object_Item*
+_elm_ctxpopup_item_prepend(Eo *obj EINA_UNUSED, Elm_Ctxpopup_Data *sd EINA_UNUSED, const char *label EINA_UNUSED, Evas_Object *icon EINA_UNUSED, Evas_Smart_Cb func EINA_UNUSED, const void *data EINA_UNUSED)
+{
+ return NULL; /* Not supported in mobile/wearable */
+}
+
+EOLIAN static Elm_Object_Item *
+_elm_ctxpopup_item_prev_get(Eo *eo_item EINA_UNUSED, Elm_Ctxpopup_Item_Data *item EINA_UNUSED)
+{
+ return NULL; /* Not supported in mobile/wearable */
+}
+/* Until here, they are dummies for common interfaces (*.h files) */
+
+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;
+}
+
EAPI Evas_Object *
elm_ctxpopup_add(Evas_Object *parent)
{
+++ /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;
- //
- }
-}
edje_object_signal_emit(VIEW(it), SIGNAL_FLIP_ENABLED, "elm");
}
- if (elm_widget_focus_highlight_enabled_get(WIDGET(it)) && (it == sd->focused_item))
+ if (elm_widget_focus_highlight_enabled_get(WIDGET(it)) && (it == sd->focused_item_mobile))
{
edje_object_signal_emit(VIEW(it), SIGNAL_FOCUSED, "elm");
}
{
if (!it) return;
Elm_Genlist_Data *sd = GL_IT(it)->wsd;
- if (!sd->focused_item || it != sd->focused_item) return;
+ if (!sd->focused_item_mobile || it != sd->focused_item_mobile) return;
edje_object_signal_emit
- (VIEW(sd->focused_item), SIGNAL_UNFOCUSED, "elm");
- if (sd->focused_item->deco_all_view)
+ (VIEW(sd->focused_item_mobile), SIGNAL_UNFOCUSED, "elm");
+ if (sd->focused_item_mobile->deco_all_view)
edje_object_signal_emit
- (sd->focused_item->deco_all_view, SIGNAL_UNFOCUSED, "elm");
- sd->focused_item = NULL;
+ (sd->focused_item_mobile->deco_all_view, SIGNAL_UNFOCUSED, "elm");
+ sd->focused_item_mobile = NULL;
evas_object_smart_callback_call(WIDGET(it), SIG_ITEM_UNFOCUSED, EO_OBJ(it));
}
(VIEW(it), SIGNAL_FOCUSED, "elm");
}
- sd->focused_item = it;
+ sd->focused_item_mobile = it;
evas_object_smart_callback_call(WIDGET(it), SIG_ITEM_FOCUSED, EO_OBJ(it));
if (_elm_atspi_enabled())
elm_interface_atspi_accessible_active_descendant_changed_signal_emit(WIDGET(it), EO_OBJ(it));
static Eina_Bool _item_focus_next(Elm_Genlist_Data *sd, Focus_Dir dir)
{
Elm_Gen_Item *it = NULL;
- Elm_Gen_Item *old_focused = sd->focused_item;
+ Elm_Gen_Item *old_focused = sd->focused_item_mobile;
Evas_Object *old_content = sd->focused_content;
if (dir == FOCUS_DIR_DOWN || dir == FOCUS_DIR_UP)
if (dir == FOCUS_DIR_DOWN)
{
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
it = ELM_GEN_ITEM_FROM_INLIST
- (EINA_INLIST_GET(sd->focused_item)->next);
- elm_object_item_focus_set(EO_OBJ(sd->focused_item), EINA_FALSE);
+ (EINA_INLIST_GET(sd->focused_item_mobile)->next);
+ elm_object_item_focus_set(EO_OBJ(sd->focused_item_mobile), EINA_FALSE);
}
else it = ELM_GEN_ITEM_FROM_INLIST(sd->items);
find_item = _item_focusable_search(&it, 1);
}
else if (dir == FOCUS_DIR_UP)
{
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
it = ELM_GEN_ITEM_FROM_INLIST
- (EINA_INLIST_GET(sd->focused_item)->prev);
- elm_object_item_focus_set(EO_OBJ(sd->focused_item), EINA_FALSE);
+ (EINA_INLIST_GET(sd->focused_item_mobile)->prev);
+ elm_object_item_focus_set(EO_OBJ(sd->focused_item_mobile), EINA_FALSE);
}
else it = ELM_GEN_ITEM_FROM_INLIST(sd->items->last);
find_item = _item_focusable_search(&it, -1);
Eina_List *contents = NULL;
Eina_List *l = NULL;
- if (!sd->focused_item) return EINA_FALSE;
- if (sd->focused_item->flipped)
- contents = GL_IT(sd->focused_item)->flip_content_objs;
+ if (!sd->focused_item_mobile) return EINA_FALSE;
+ if (sd->focused_item_mobile->flipped)
+ contents = GL_IT(sd->focused_item_mobile)->flip_content_objs;
else
{
- contents = sd->focused_item->content_objs;
- if (sd->focused_item->deco_all_view)
+ contents = sd->focused_item_mobile->content_objs;
+ if (sd->focused_item_mobile->deco_all_view)
{
if (contents)
- contents = GL_IT(sd->focused_item)->deco_all_contents;
+ contents = GL_IT(sd->focused_item_mobile)->deco_all_contents;
else
contents = eina_list_merge(contents,
- GL_IT(sd->focused_item)->deco_all_contents);
+ GL_IT(sd->focused_item_mobile)->deco_all_contents);
}
}
}
else
{
- elm_object_item_focus_set(EO_OBJ(sd->focused_item), EINA_FALSE);
+ elm_object_item_focus_set(EO_OBJ(sd->focused_item_mobile), EINA_FALSE);
_item_focus_next(sd, FOCUS_DIR_DOWN);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
}
}
else
{
- elm_object_item_focus_set(EO_OBJ(sd->focused_item), EINA_FALSE);
- sd->focused_item = ELM_GEN_ITEM_FROM_INLIST(sd->items->last);
+ elm_object_item_focus_set(EO_OBJ(sd->focused_item_mobile), EINA_FALSE);
+ sd->focused_item_mobile = ELM_GEN_ITEM_FROM_INLIST(sd->items->last);
_item_focus_next(sd, FOCUS_DIR_UP);
}
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
((!strcmp(ev->keyname, "KP_Prior")) && (!ev->string)))
{
if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
- Elm_Gen_Item *it = sd->focused_item;
+ Elm_Gen_Item *it = sd->focused_item_mobile;
Elm_Object_Item *eo_prev;
while (page_y <= v_h)
((!strcmp(ev->keyname, "KP_Next")) && (!ev->string)))
{
if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
- Elm_Gen_Item *it = sd->focused_item;
+ Elm_Gen_Item *it = sd->focused_item_mobile;
Elm_Object_Item *eo_next;
page_y = GL_IT(it)->minh;
if (type == EVAS_CALLBACK_KEY_DOWN && !sd->key_down_item)
{
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
- sd->key_down_item = sd->focused_item;
+ sd->key_down_item = sd->focused_item_mobile;
edje_object_signal_emit
- (VIEW(sd->focused_item), SIGNAL_UNFOCUSED, "elm");
- if (sd->focused_item->deco_all_view)
+ (VIEW(sd->focused_item_mobile), SIGNAL_UNFOCUSED, "elm");
+ if (sd->focused_item_mobile->deco_all_view)
edje_object_signal_emit
- (sd->focused_item->deco_all_view, SIGNAL_UNFOCUSED, "elm");
+ (sd->focused_item_mobile->deco_all_view, SIGNAL_UNFOCUSED, "elm");
_item_highlight(sd->key_down_item);
if (sd->key_down_item->long_timer)
{
ELM_GENLIST_DATA_GET(obj, sd);
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
if (!sd->focused_content)
{
Eina_Bool found = EINA_FALSE;
- Elm_Gen_Item *it = sd->focused_item;
+ Elm_Gen_Item *it = sd->focused_item_mobile;
found = _item_focusable_search(&it, 1);
if (found)
{
const char *src EINA_UNUSED)
{
ELM_GENLIST_DATA_GET(obj, sd);
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
// Do not use _item_unfocused because focus should be remained
edje_object_signal_emit
- (VIEW(sd->focused_item), SIGNAL_UNFOCUSED, "elm");
- if (sd->focused_item->deco_all_view)
+ (VIEW(sd->focused_item_mobile), SIGNAL_UNFOCUSED, "elm");
+ if (sd->focused_item_mobile->deco_all_view)
edje_object_signal_emit
- (sd->focused_item->deco_all_view, SIGNAL_UNFOCUSED, "elm");
+ (sd->focused_item_mobile->deco_all_view, SIGNAL_UNFOCUSED, "elm");
}
}
evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh);
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
- focus_it = sd->focused_item;
+ focus_it = sd->focused_item_mobile;
evas_object_geometry_get(VIEW(focus_it), &item_x, &item_y, &item_w, &item_h);
elm_widget_focus_highlight_focus_part_geometry_get(VIEW(focus_it), &item_x, &item_y, &item_w, &item_h);
}
// Do nothing if on_focus is called by child's parent_focus
if (!wd->is_focus_target) return EINA_TRUE;
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
if (!sd->focused_content)
{
Eina_Bool found = EINA_FALSE;
- Elm_Gen_Item *it = sd->focused_item;
+ Elm_Gen_Item *it = sd->focused_item_mobile;
found = _item_focusable_search(&it, 1);
if (found)
{
if (!nib || !nib->realized) break;
}
}
- if (!sd->focused_item) _item_focus_next(sd, FOCUS_DIR_DOWN);
+ if (!sd->focused_item_mobile) _item_focus_next(sd, FOCUS_DIR_DOWN);
}
}
else
sd->key_down_item = NULL;
}
- if (sd->focused_item)
+ if (sd->focused_item_mobile)
{
if (sd->focused_content)
{
}
// Do not use _item_unfocused because focus should be remained
edje_object_signal_emit
- (VIEW(sd->focused_item), SIGNAL_UNFOCUSED, "elm");
- if (sd->focused_item->deco_all_view)
+ (VIEW(sd->focused_item_mobile), SIGNAL_UNFOCUSED, "elm");
+ if (sd->focused_item_mobile->deco_all_view)
edje_object_signal_emit
- (sd->focused_item->deco_all_view, SIGNAL_UNFOCUSED, "elm");
+ (sd->focused_item_mobile->deco_all_view, SIGNAL_UNFOCUSED, "elm");
}
}
if (!elm_widget_focus_get(obj))
return;
- if (it != sd->focused_item)
+ if (it != sd->focused_item_mobile)
{
- if (sd->focused_item)
- _item_unfocused(sd->focused_item);
+ if (sd->focused_item_mobile)
+ _item_unfocused(sd->focused_item_mobile);
_item_focused(it, sd->focus_scrollto_type);
/* If item is not realized state, widget couldn't get focus_highlight data. */
Evas_Object *obj = WIDGET(it);
ELM_GENLIST_DATA_GET(obj, sd);
- if (it == sd->focused_item)
+ if (it == sd->focused_item_mobile)
return EINA_TRUE;
return EINA_FALSE;
EOLIAN static Elm_Object_Item*
_elm_genlist_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
{
- return EO_OBJ(sd->focused_item);
+ return EO_OBJ(sd->focused_item_mobile);
}
static Eina_Bool _elm_genlist_smart_focus_next_enable = EINA_FALSE;
{
Eina_List *l;
Evas_Object *content;
- if (sd->focused_item != it)
+ if (sd->focused_item_mobile != it)
elm_object_item_focus_set(it, EINA_TRUE);
sd->focused_content = NULL;
Eina_Bool ret;
_item_unselect(it);
- if (it == GL_IT(it)->wsd->focused_item) elm_object_item_focus_set(EO_OBJ(it), EINA_FALSE);
+ if (it == GL_IT(it)->wsd->focused_item_mobile) elm_object_item_focus_set(EO_OBJ(it), EINA_FALSE);
if (GL_IT(it)->highlight_timer)
{
ecore_timer_del(GL_IT(it)->highlight_timer);
if (sd->mode_item) sd->mode_item = NULL;
if (it->selected) _item_unselect(it);
- if (it == sd->focused_item)
+ if (it == sd->focused_item_mobile)
{
Elm_Gen_Item *tmp;
Eina_Bool find;
}
failed:
elm_object_item_focus_set(EO_OBJ(it), EINA_FALSE);
- sd->focused_item = NULL;
+ sd->focused_item_mobile = NULL;
}
end:
if (it == sd->key_down_item) sd->key_down_item = NULL;
Elm_Gen_Item *it;
eina_hash_free_buckets(sd->size_caches);
- elm_object_item_focus_set(EO_OBJ(sd->focused_item), EINA_FALSE);
+ elm_object_item_focus_set(EO_OBJ(sd->focused_item_mobile), EINA_FALSE);
if (sd->key_down_item) sd->key_down_item = NULL;
if (sd->mode_item) sd->mode_item = NULL;
+++ /dev/null
-#ifndef ELM_WIDGET_CTXPOPUP_H
-#define ELM_WIDGET_CTXPOPUP_H
-
-#include "elm_widget_layout.h"
-
-#define MAX_ITEMS_PER_VIEWPORT 8
-
-/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
- * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
- * FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
- * IT AT RUNTIME.
- */
-
-/**
- * @internal
- * @addtogroup Widget
- * @{
- *
- * @section elm-ctxpopup-class The Elementary Ctxpopup Class
- *
- * Elementary, besides having the @ref Ctxpopup widget, exposes its
- * foundation -- the Elementary Ctxpopup Class -- in order to create other
- * widgets which are a ctxpopup with some more logic on top.
- */
-
-typedef struct _Elm_Ctxpopup_Item_Data Elm_Ctxpopup_Item_Data;
-
-/**
- * Base widget smart data extended with ctxpopup instance data.
- */
-typedef struct _Elm_Ctxpopup_Data Elm_Ctxpopup_Data;
-struct _Elm_Ctxpopup_Item_Data
-{
- Elm_Widget_Item_Data *base;
-
- const char *label;
- Evas_Object *icon;
- Evas_Object *btn;
-
- struct
- {
- Evas_Smart_Cb org_func_cb;
- const void *org_data;
- Evas_Object *cobj;
- } wcb;
-};
-
-struct _Elm_Ctxpopup_Data
-{
- Evas_Object *parent;
- Evas_Object *box;
-
- Evas_Object *layout;
- Evas_Object *arrow;
- Evas_Object *scr;
- Evas_Object *bg;
- Evas_Object *content;
- Eina_List *items;
-
- Elm_Ctxpopup_Direction dir;
- Elm_Ctxpopup_Direction dir_priority[4];
-
- int multi_down;
-
- Eina_Bool horizontal : 1;
- Eina_Bool visible : 1;
- Eina_Bool auto_hide : 1;
- Eina_Bool mouse_down : 1;
-//******************** TIZEN Only
- Eina_Bool pressed : 1;
-//****************************
-};
-
-/**
- * @}
- */
-
-#define ELM_CTXPOPUP_DATA_GET(o, sd) \
- Elm_Ctxpopup_Data * sd = eo_data_scope_get(o, ELM_CTXPOPUP_CLASS)
-
-#define ELM_CTXPOPUP_DATA_GET_OR_RETURN(o, ptr) \
- ELM_CTXPOPUP_DATA_GET(o, ptr); \
- if (EINA_UNLIKELY(!ptr)) \
- { \
- CRI("No widget data for object %p (%s)", \
- o, evas_object_type_get(o)); \
- return; \
- }
-
-#define ELM_CTXPOPUP_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
- ELM_CTXPOPUP_DATA_GET(o, ptr); \
- if (EINA_UNLIKELY(!ptr)) \
- { \
- CRI("No widget data for object %p (%s)", \
- o, evas_object_type_get(o)); \
- return val; \
- }
-
-#define ELM_CTXPOPUP_CHECK(obj) \
- if (EINA_UNLIKELY(!eo_isa((obj), ELM_CTXPOPUP_CLASS))) \
- return
-
-#define ELM_CTXPOPUP_ITEM_CHECK_OR_RETURN(it, ...) \
- ELM_WIDGET_ITEM_CHECK_OR_RETURN(it->base, __VA_ARGS__); \
- ELM_CTXPOPUP_CHECK(it->base->widget) __VA_ARGS__;
-
-#define ELM_CTXPOPUP_ITEM_DATA_GET(o, sd) \
- Elm_Ctxpopup_Item_Data *sd = eo_data_scope_get(o, ELM_CTXPOPUP_ITEM_CLASS)
-
-#endif
+++ /dev/null
-#ifndef ELM_WIDGET_GENLIST_H
-#define ELM_WIDGET_GENLIST_H
-
-#include "elm_gen_common.h"
-#include "Elementary.h"
-#define BANDED_MAX_ITEMS 20
-
-/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
- * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
- * FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
- * IT AT RUNTIME.
- */
-
-/**
- * @internal
- * @addtogroup Widget
- * @{
- *
- * @section elm-genlist-class The Elementary Genlist Class
- *
- * Elementary, besides having the @ref Genlist widget, exposes its
- * foundation -- the Elementary Genlist Class -- in order to create
- * other widgets which are a genlist with some more logic on top.
- */
-
-/**
- * Base widget smart data extended with genlist instance data.
- */
-typedef struct _Elm_Genlist_Data Elm_Genlist_Data;
-
-typedef enum
-{
- ELM_GENLIST_TREE_EFFECT_NONE = 0,
- ELM_GENLIST_TREE_EFFECT_EXPAND = 1,
- ELM_GENLIST_TREE_EFFECT_CONTRACT = 2
-} Elm_Genlist_Item_Move_Effect_Mode;
-
-struct _Elm_Genlist_Data
-{
- Eina_Inlist_Sorted_State *state;
- Evas_Object *hit_rect;
- Evas_Object *pan_obj;
-
- Evas_Object *focused_content;
- Elm_Gen_Item *focused_item;
-
- //Evas_Object *stack[2]; // stacking markers in pan
- Evas_Object *obj; // the object itself
-
- Eina_List *selected; /* a list of
- * selected
- * items */
- //Eina_List *deselecting; /* a list of items currently being deselected */
- Eina_List *group_items; /* a list of
- * groups index
- * items */
- Eina_Inlist *items; /* an inlist of all items */
- //Elm_Gen_Item *reorder_it; /* item currently
- // * being
- // * repositioned */
-
- struct
- {
- Elm_Gen_Item *it;
- int dir;
- Eina_List *move_items;
- Ecore_Animator *anim;
- } reorder;
-
- Elm_Object_Item *last_selected_item;
- int minw, minh;
-
- Eina_Bool scr_minw : 1;
- Eina_Bool scr_minh : 1;
- unsigned int item_count;
- Evas_Coord pan_x, pan_y;
- Elm_Object_Select_Mode select_mode;
-
- Evas_Coord comp_y;
- int dir;
- Eina_List *blocks_realized;
- Eina_Inlist *blocks; /* an inlist of all
- * blocks. a block
- * consists of a
- * certain number of
- * items. maximum
- * number of items in
- * a block is
- * 'max_items_per_block'. */
- Evas_Coord prev_viewport_w;
- Ecore_Idle_Enterer *queue_idle_enterer;
- Eina_List *queue;
- Elm_Gen_Item *show_item, *mode_item, *expanded_item;
- Eina_Inlist *item_cache; /* an inlist of
- * edje object it
- * cache. */
-
- Elm_List_Mode mode;
- Ecore_Timer *scr_hold_timer;
- const char *decorate_it_type;
- double start_time;
- Evas_Coord prev_x, prev_y, prev_mx, prev_my;
- Evas_Coord cur_x, cur_y, cur_mx, cur_my;
-
- int item_cache_count;
- int item_cache_max; /* maximum
- * number of
- * cached
- * items */
- /* maximum number of items per block */
- int max_items_per_block;
-
- /* longpress timeout. this value comes from _elm_config by
- * default. this can be changed by
- * elm_genlist_longpress_timeout_set() */
- double longpress_timeout;
- Eina_Compare_Cb item_compare_cb;
- Eina_Compare_Cb item_compare_data_cb;
-
- /* a scrollto type which remembers where to scroll ex) in, top,
- * middle */
- Elm_Genlist_Item_Scrollto_Type scroll_to_type;
-
- Evas_Object *g_layer;
- Elm_Gen_Item *g_item;
- const char *g_type;
- Eina_Bool select_on_focus_enabled : 1;
- Eina_Bool decorate_all_mode : 1;
- Eina_Bool reorder_mode : 1; /* a flag
- * for
- * reorder
- * mode
- * enable/disable */
- Eina_Bool reorder_force : 1; /* a flag
- * for
- * reorder
- * by force */
- /* this flag means genlist is supposed to be scrolled. if this flag
- * is set to EINA_TRUE, genlist checks whether it's ok to scroll
- * genlist now or not. */
-
- Eina_Bool homogeneous : 1;
- Eina_Bool realization_mode : 1;
- Eina_Hash *size_caches;
-
- Eina_Bool on_sub_del : 1;
-
- /* a flag for items can be highlighted or not. by default this flag
- * is true. */
- Eina_Bool highlight : 1;
- Eina_Bool h_bounce : 1;
- Eina_Bool v_bounce : 1;
- Eina_Bool bring_in : 1; /* a flag to
- * describe the
- * scroll
- * animation. (show,
- * bring in) */
-
- /* this is set to EINA_TRUE when the item is re-queued. this
- * happens when the item is un-queued but the rel item is still in
- * the queue. this item will be processed later. */
- Eina_Bool requeued : 1;
- Eina_Bool multi : 1; /* a flag for item
- * multi
- * selection */
- Eina_Bool sorting : 1;
- Evas_Coord finger_minw, finger_minh;
- int processed_sizes;
- Eina_Bool calc_done : 1;
- Eina_Bool was_selected : 1;
- Ecore_Job *dummy_job;
- Ecore_Timer *scr_timer;
- Eina_Bool no_cache : 1;
- Elm_Gen_Item *key_down_item;
- Eina_Bool on_hold : 1; /* a flag for check
- * item selected or
- * not */
-
- /* this is genlist item Fx effect on Add/Remove */
- Eina_Bool fx_mode : 1;
- struct
- {
- Eina_List *items;
- Eina_List *pending_items;
- Ecore_Animator *anim;
- int cnt;
- } del_fx;
- struct
- {
- Eina_List *items;
- Ecore_Animator *anim;
- int cnt;
- } add_fx;
-
-// TIZEN ONLY(20150701) : Banded Color UX Feature
-#ifndef TIZEN_PROFILE_WEARABLE
- /*for banded ux*/
- Elm_Gen_Item *top_drawn_item;
- Evas_Object *banded_bg_rect; /* banded color
- background feature.
- enabled only
- un-scrollable. */
- Eina_Bool banded_bg_on : 1;
-#endif
-// TIZEN_ONLY
-
- Eina_Bool is_access : 1;
- Elm_Gen_Item *highlighted_item;
- Evas_Coord viewport_w, viewport_h;
- Elm_Gen_Item *atspi_item_to_highlight;
- Elm_Gen_Item *aligned_item;
- //TIZEN_ONLY(20161104) : Accessibility : synchronized highlight of atspi and item align feature for wearable profile
- Elm_Gen_Item *currently_highlighted_item;
- //
-
- Eina_List *filter_queue;
- Eina_List *filtered_list;
- void *filter_data;
- unsigned int processed_count;
- unsigned int filtered_count;
- Ecore_Idle_Enterer *queue_filter_enterer;
- Eina_Bool filter;
- Elm_Genlist_Item_Scrollto_Type focus_scrollto_type;
-
- Eina_Bool unhighlight_skip: 1;
- Elm_Gen_Item *adjusted_item;
- Eina_Bool bottom_margin_enabled : 1;
- Eina_Bool unhighlighted : 1;
- Evas_Object *focus_bg;
- Evas_Object *clipee;
-};
-
-typedef struct _Item_Block Item_Block;
-typedef struct _Item_Cache Item_Cache;
-typedef struct _Elm_Genlist_Filter Elm_Genlist_Filter;
-
-struct Elm_Gen_Item_Type
-{
- Elm_Gen_Item *it;
-
- Elm_Genlist_Data *wsd;
-
- Item_Block *block;
- Eina_List *items;
- Evas_Coord w, h, minw, minh;
- Elm_Gen_Item *group_item;
- Elm_Genlist_Item_Type type;
- Eina_List *deco_it_texts, *deco_it_contents;
- Eina_List *deco_all_texts, *deco_all_contents;
- Eina_List *flip_contents, *flip_content_objs;
- Ecore_Timer *swipe_timer;
- Evas_Coord scrl_x, scrl_y, old_scrl_y;
-
- Elm_Gen_Item *rel;
- Eina_List *rel_revs; // FIXME: find better way not to use this
- Evas_Object *deco_it_view;
- int expanded_depth;
- int order_num_in;
-#ifndef TIZEN_PROFILE_WEARABLE
- int banded_color_index;
- Evas_Object *banded_bg;
- Ecore_Animator *banded_anim;
-#endif
-
- Eina_Bool decorate_all_item_realized : 1;
- Eina_Bool tree_effect_finished : 1; /* tree effect */
- Eina_Bool move_effect_enabled : 1;
- Eina_Bool tree_effect_hide_me : 1; /* item hide for
- * tree effect */
-
- Eina_Bool stacking_even : 1;
- Eina_Bool want_realize : 1;
- Eina_Bool nocache_once : 1; /* do not use cache for
- * this item only once */
- Eina_Bool nostacking : 1;
- Eina_Bool expanded : 1;
- Eina_Bool mincalcd : 1;
- Eina_Bool updateme : 1;
- Eina_Bool nocache : 1; /* do not use cache for this item */
- Eina_Bool queued : 1;
- Eina_Bool before : 1;
- Eina_Bool show_me : 1;
-
- Eina_Bool is_prepend : 1;
- Eina_Bool calc_done : 1;
-
- Evas_Coord reorder_offset;
-
- Ecore_Timer *highlight_timer;
- Eina_Bool multiline : 1;
- Eina_Bool resized : 1;
- Evas_Object *proxy;
-};
-
-
-struct _Item_Block
-{
- EINA_INLIST;
-
- int count;
- int num;
- int reorder_offset;
- Elm_Genlist_Data *sd;
- Eina_List *items;
- Evas_Coord x, y, w, h, minw, minh;
- int position;
- int item_position_stamp;
-
- Eina_Bool position_update : 1;
- Eina_Bool want_unrealize : 1;
- Eina_Bool must_recalc : 1;
- Eina_Bool realized : 1;
- Eina_Bool updateme : 1;
- Eina_Bool changed : 1;
- Eina_Bool show_me : 1;
-
- Eina_Bool calc_done : 1;
-};
-
-struct _Item_Cache
-{
- EINA_INLIST;
-
- Evas_Object *base_view, *spacer;
-
- const Elm_Genlist_Item_Class *item_class; // it->itc
- Eina_Bool multiline;
- Eina_Bool selected : 1; // it->selected
- Eina_Bool disabled : 1; // it->disabled
- Eina_Bool expanded : 1; // it->item->expanded
- Eina_Bool tree : 1; // it->group
- Eina_List *contents; // content objects for reusing
-};
-
-typedef struct _Elm_Genlist_Pan_Data Elm_Genlist_Pan_Data;
-struct _Elm_Genlist_Pan_Data
-{
- Evas_Object *wobj;
- Elm_Genlist_Data *wsd;
- Ecore_Job *resize_job;
-};
-
-/**
- * Structure added to genlist for internal filter iterator implementation
- * Can be extended to genlist as a whole in future if needed.
- */
-struct _Elm_Genlist_Filter
-{
- Eina_Iterator iterator;
- const Eina_Inlist *head;
- const Eina_Inlist *current;
-};
-
-
-/**
- * @}
- */
-
-#define GL_IT(_it) (_it->item)
-
-#define ELM_GENLIST_DATA_GET(o, sd) \
- Elm_Genlist_Data * sd = eo_data_scope_get(o, ELM_GENLIST_CLASS)
-
-#define ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd) \
- Elm_Genlist_Data * sd = GL_IT(it)->wsd
-
-#define ELM_GENLIST_PAN_DATA_GET(o, sd) \
- Elm_Genlist_Pan_Data * sd = eo_data_scope_get(o, ELM_GENLIST_PAN_CLASS)
-
-#define ELM_GENLIST_DATA_GET_OR_RETURN(o, ptr) \
- ELM_GENLIST_DATA_GET(o, ptr); \
- if (EINA_UNLIKELY(!ptr)) \
- { \
- CRI("No widget data for object %p (%s)", \
- o, evas_object_type_get(o)); \
- return; \
- }
-
-#define ELM_GENLIST_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
- ELM_GENLIST_DATA_GET(o, ptr); \
- if (EINA_UNLIKELY(!ptr)) \
- { \
- CRI("No widget data for object %p (%s)", \
- o, evas_object_type_get(o)); \
- return val; \
- }
-
-#define ELM_GENLIST_CHECK(obj) \
- if (EINA_UNLIKELY(!eo_isa((obj), ELM_GENLIST_CLASS))) \
- return
-
-#define ELM_GENLIST_ITEM_CHECK(it) \
- ELM_WIDGET_ITEM_CHECK_OR_RETURN(it->base, ); \
- ELM_GENLIST_CHECK(it->base->widget);
-
-#define ELM_GENLIST_ITEM_CHECK_OR_RETURN(it, ...) \
- ELM_WIDGET_ITEM_CHECK_OR_RETURN(it->base, __VA_ARGS__); \
- ELM_GENLIST_CHECK(it->base->widget) __VA_ARGS__;
-
-#define ELM_GENLIST_ITEM_CHECK_OR_GOTO(it, label) \
- ELM_WIDGET_ITEM_CHECK_OR_GOTO(it->base, label); \
- if (!it->base->widget || !eo_isa \
- ((it->base->widget), ELM_GENLIST_CLASS)) goto label;
-
-#define ELM_GENLIST_ITEM_DATA_GET(o, sd) \
- Elm_Gen_Item* sd = eo_data_scope_get(o, ELM_GENLIST_ITEM_CLASS)
-
-#define ELM_GENLIST_FILTER_ITERATOR_ITEM_GET(ptr, \
- type) ((type *)((char *)ptr - \
- offsetof(type, __in_list)))
-
-#endif