2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @defgroup Ctxpopup Ctxpopup
|
2012-04-16 18:35:46 -07:00
|
|
|
* @ingroup Elementary
|
2011-12-29 23:20:48 -08:00
|
|
|
*
|
|
|
|
* @image html img/widget/ctxpopup/preview-00.png
|
|
|
|
* @image latex img/widget/ctxpopup/preview-00.eps
|
|
|
|
*
|
2012-02-14 00:50:20 -08:00
|
|
|
* @brief Context popup widget.
|
2011-12-29 23:20:48 -08:00
|
|
|
*
|
|
|
|
* 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).
|
|
|
|
*
|
2012-02-14 00:50:20 -08:00
|
|
|
* @note Ctxpopup is a specialization of @ref Hover.
|
2011-12-29 23:20:48 -08:00
|
|
|
*
|
|
|
|
* Signals that you can add callbacks for are:
|
|
|
|
* "dismissed" - the ctxpopup was dismissed
|
|
|
|
*
|
2012-02-27 18:39:31 -08:00
|
|
|
* Default content parts of the ctxpopup widget that you can use for are:
|
2011-12-29 23:20:48 -08:00
|
|
|
* @li "default" - A content of the ctxpopup
|
|
|
|
*
|
2012-02-27 18:39:31 -08:00
|
|
|
* Default content parts of the ctxpopup items that you can use for are:
|
2011-12-29 23:20:48 -08:00
|
|
|
* @li "icon" - An icon in the title area
|
|
|
|
*
|
|
|
|
* Default text parts of the ctxpopup items that you can use for are:
|
|
|
|
* @li "default" - Title label in the title area
|
|
|
|
*
|
2012-01-02 04:53:29 -08:00
|
|
|
* Supported elm_object common APIs.
|
2012-04-17 13:33:59 -07:00
|
|
|
* @li @ref elm_object_disabled_set
|
|
|
|
* @li @ref elm_object_disabled_get
|
|
|
|
* @li @ref elm_object_part_content_set
|
|
|
|
* @li @ref elm_object_part_content_get
|
|
|
|
* @li @ref elm_object_part_content_unset
|
|
|
|
* @li @ref elm_object_signal_emit
|
|
|
|
* @li @ref elm_object_signal_callback_add
|
|
|
|
* @li @ref elm_object_signal_callback_del
|
2012-01-02 04:53:29 -08:00
|
|
|
*
|
|
|
|
* Supported elm_object_item common APIs.
|
2012-04-17 13:33:59 -07:00
|
|
|
* @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
|
2012-01-02 04:53:29 -08:00
|
|
|
*
|
2011-12-29 23:20:48 -08:00
|
|
|
* @ref tutorial_ctxpopup shows the usage of a good deal of the API.
|
|
|
|
* @{
|
|
|
|
*/
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-30 00:23:04 -08:00
|
|
|
typedef enum
|
2011-12-29 23:20:48 -08:00
|
|
|
{
|
2011-12-29 23:23:52 -08:00
|
|
|
ELM_CTXPOPUP_DIRECTION_DOWN, /**< ctxpopup show appear below clicked area */
|
|
|
|
ELM_CTXPOPUP_DIRECTION_RIGHT, /**< ctxpopup show appear to the right of the clicked area */
|
|
|
|
ELM_CTXPOPUP_DIRECTION_LEFT, /**< ctxpopup show appear to the left of the clicked area */
|
|
|
|
ELM_CTXPOPUP_DIRECTION_UP, /**< ctxpopup show appear above the clicked area */
|
2011-12-29 23:20:48 -08:00
|
|
|
ELM_CTXPOPUP_DIRECTION_UNKNOWN, /**< ctxpopup does not determine it's direction yet*/
|
|
|
|
} Elm_Ctxpopup_Direction; /**< Direction in which to show the popup */
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @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
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI Evas_Object *elm_ctxpopup_add(Evas_Object *parent);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Set the Ctxpopup's parent
|
|
|
|
*
|
|
|
|
* @param obj The ctxpopup object
|
2011-12-29 23:23:52 -08:00
|
|
|
* @param parent The parent to use
|
2011-12-29 23:20:48 -08:00
|
|
|
*
|
|
|
|
* Set the parent object.
|
|
|
|
*
|
|
|
|
* @note elm_ctxpopup_add() will automatically call this function
|
|
|
|
* with its @c parent argument.
|
|
|
|
*
|
|
|
|
* @see elm_ctxpopup_add()
|
|
|
|
* @see elm_hover_parent_set()
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI void elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Get the Ctxpopup's parent
|
|
|
|
*
|
|
|
|
* @param obj The ctxpopup object
|
|
|
|
*
|
|
|
|
* @see elm_ctxpopup_hover_parent_set() for more information
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI Evas_Object *elm_ctxpopup_hover_parent_get(const Evas_Object *obj);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Clear all items in the given ctxpopup object.
|
|
|
|
*
|
|
|
|
* @param obj Ctxpopup object
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI void elm_ctxpopup_clear(Evas_Object *obj);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Change the ctxpopup's orientation to horizontal or vertical.
|
|
|
|
*
|
|
|
|
* @param obj Ctxpopup object
|
|
|
|
* @param horizontal @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI void elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Get the value of current ctxpopup object's orientation.
|
|
|
|
*
|
|
|
|
* @param obj Ctxpopup object
|
|
|
|
* @return @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical mode (or errors)
|
|
|
|
*
|
|
|
|
* @see elm_ctxpopup_horizontal_set()
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI Eina_Bool elm_ctxpopup_horizontal_get(const Evas_Object *obj);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Add a new item to a ctxpopup object.
|
|
|
|
*
|
|
|
|
* @param obj Ctxpopup object
|
|
|
|
* @param icon Icon to be set on new item
|
|
|
|
* @param label The Label of the new item
|
|
|
|
* @param func Convenience function called when item selected
|
|
|
|
* @param data Data passed to @p func
|
|
|
|
* @return A handle to the item added or @c NULL, on errors
|
|
|
|
*
|
|
|
|
* @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.
|
|
|
|
*
|
2012-02-26 04:40:47 -08:00
|
|
|
* @see elm_object_content_set()
|
2011-12-29 23:20:48 -08:00
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI Elm_Object_Item *elm_ctxpopup_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Set the direction priority of a ctxpopup.
|
|
|
|
*
|
|
|
|
* @param obj Ctxpopup object
|
|
|
|
* @param first 1st priority of direction
|
|
|
|
* @param second 2nd priority of direction
|
|
|
|
* @param third 3th priority of direction
|
|
|
|
* @param fourth 4th priority of direction
|
|
|
|
*
|
|
|
|
* 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 Elm_Ctxpopup_Direction
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI void elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Get the direction priority of a ctxpopup.
|
|
|
|
*
|
|
|
|
* @param obj Ctxpopup object
|
|
|
|
* @param first 1st priority of direction to be returned
|
|
|
|
* @param second 2nd priority of direction to be returned
|
|
|
|
* @param third 3th priority of direction to be returned
|
|
|
|
* @param fourth 4th priority of direction to be returned
|
|
|
|
*
|
|
|
|
* @see elm_ctxpopup_direction_priority_set() for more information.
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI void elm_ctxpopup_direction_priority_get(Evas_Object *obj, Elm_Ctxpopup_Direction *first, Elm_Ctxpopup_Direction *second, Elm_Ctxpopup_Direction *third, Elm_Ctxpopup_Direction *fourth);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @brief Get the current direction of a ctxpopup.
|
|
|
|
*
|
|
|
|
* @param obj Ctxpopup object
|
|
|
|
* @return current direction of a ctxpopup
|
|
|
|
*
|
|
|
|
* @warning Once the ctxpopup showed up, the direction would be determined
|
|
|
|
*
|
|
|
|
* @ingroup Ctxpopup
|
|
|
|
*/
|
2011-12-30 01:48:46 -08:00
|
|
|
EAPI Elm_Ctxpopup_Direction elm_ctxpopup_direction_get(const Evas_Object *obj);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2012-03-06 21:58:38 -08:00
|
|
|
/**
|
|
|
|
* @brief Dismiss a ctxpopup object
|
|
|
|
*
|
|
|
|
* @param obj The ctxpopup object
|
|
|
|
* Use this function to simulate clicking outside the ctxpopup to dismiss it.
|
|
|
|
* In this way, the ctxpopup will be hidden and the "clicked" signal will be
|
|
|
|
* emitted.
|
|
|
|
*/
|
|
|
|
EAPI void elm_ctxpopup_dismiss(Evas_Object *obj);
|
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @}
|
|
|
|
*/
|