elm_popup*: remove all legacy usage from eo files

this takes the current generated output from eolian for legacy code in
efl and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree

ref T7724

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8193
This commit is contained in:
Mike Blumenkrantz 2019-03-05 17:00:37 -05:00 committed by Cedric BAIL
parent 192bbfa502
commit 0c45b94dec
15 changed files with 979 additions and 215 deletions

View File

@ -183,7 +183,6 @@ elm_private_eolian_files = \
# Legacy classes - not part of public EO API
elm_legacy_eolian_files = \
lib/elementary/efl_ui_clock_legacy.eo \
lib/elementary/elm_popup.eo \
lib/elementary/elm_route.eo \
lib/elementary/elm_scroller.eo \
lib/elementary/elm_sys_notify_interface.eo \
@ -191,7 +190,6 @@ elm_legacy_eolian_files = \
lib/elementary/elm_sys_notify_dbus.eo \
lib/elementary/elm_systray.eo \
lib/elementary/elm_widget_item_static_focus.eo \
lib/elementary/elm_popup_item.eo \
lib/elementary/elm_ctxpopup_part.eo \
lib/elementary/elm_dayselector_part.eo \
lib/elementary/elm_entry_part.eo \
@ -378,6 +376,9 @@ lib/elementary/elm_photo_eo.c \
lib/elementary/elm_player_eo.c \
lib/elementary/elm_plug_eo.c \
lib/elementary/elm_plug_eo.legacy.c \
lib/elementary/elm_popup_eo.c \
lib/elementary/elm_popup_eo.legacy.c \
lib/elementary/elm_popup_item_eo.c \
$(NULL)
elm_legacy_eo_headers = \
@ -543,6 +544,10 @@ lib/elementary/elm_player_eo.h \
lib/elementary/elm_player_eo.legacy.h \
lib/elementary/elm_plug_eo.h \
lib/elementary/elm_plug_eo.legacy.h \
lib/elementary/elm_popup_eo.h \
lib/elementary/elm_popup_eo.legacy.h \
lib/elementary/elm_popup_item_eo.h \
lib/elementary/elm_popup_item_eo.legacy.h \
$(NULL)

View File

@ -6,7 +6,7 @@
// FIXME: elm_entry is not part of EO API, the below test cases may be useless
#include "elm_entry_eo.h"
#include "elm_popup.eo.h"
#include "elm_popup_eo.h"
static void
my_entry_bt_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)

View File

@ -1867,5 +1867,5 @@ ELM_PART_OVERRIDE_TEXT_GET(elm_popup, ELM_POPUP, Elm_Popup_Data)
ELM_LAYOUT_SIZING_EVAL_OPS(elm_popup), \
EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_popup)
#include "elm_popup.eo.c"
#include "elm_popup_item.eo.c"
#include "elm_popup_eo.c"
#include "elm_popup_item_eo.c"

View File

@ -8,4 +8,4 @@
*/
EAPI Evas_Object *elm_popup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
#include "elm_popup.eo.legacy.h"
#include "elm_popup_eo.legacy.h"

View File

@ -1,190 +0,0 @@
import elm_general;
enum Elm.Popup.Orient
{
[[Possible orient values for popup.
These values should be used in conjunction to elm_popup_orient_set() to
set the position in which the popup should appear(relative to its parent)
and in conjunction with elm_popup_orient_get() to know where the popup
is appearing.
]]
top = 0, [[Popup should appear in the top of parent, default.]]
center, [[Popup should appear in the center of parent.]]
bottom, [[Popup should appear in the bottom of parent.]]
left, [[Popup should appear in the left of parent.]]
right, [[Popup should appear in the right of parent.]]
top_left, [[Popup should appear in the top left of parent.]]
top_right, [[Popup should appear in the top right of parent.]]
bottom_left, [[Popup should appear in the bottom left of parent.]]
bottom_right, [[Notify should appear in the bottom right of parent.]]
last [[Sentinel value to indicate last enum field during iteration]]
}
class Elm.Popup extends Efl.Ui.Layout_Base implements Efl.Access.Widget.Action, Efl.Ui.Legacy
{
[[Elementary popup class]]
legacy_prefix: elm_popup;
eo_prefix: elm_obj_popup;
event_prefix: elm_popup;
methods {
@property align {
set {
[[Set the alignment of the popup object.
Sets the alignment in which the popup will appear in its parent.
@since 1.9
]]
}
get {
[[Get the alignment of the popup object.
@since 1.9
]]
}
values {
horizontal: double; [[The horizontal alignment of the popup.]]
vertical: double; [[The vertical alignment of the popup.]]
}
}
@property allow_events {
set {
[[Sets whether events should be passed to by a click outside.
Enabling allow event will remove the Blocked event area and
events will pass to the lower layer objects otherwise they
are blocked.
Note: The default value is $false.
]]
}
get {
[[Returns value indicating whether allow event is enabled or not.]]
}
values {
allow: bool; [[If $true, events are passed to lower objects.]]
}
}
@property content_text_wrap_type {
[[Control the wrapping type of content text packed in content
area of popup object.
]]
set {}
get {}
values {
wrap: Elm.Wrap.Type; [[Wrapping type of type Elm_Wrap_Type.]]
}
}
@property orient {
set {
[[Sets the orientation of the popup in the parent region.
Sets the position in which popup will appear in its parent.
By default, #ELM_POPUP_ORIENT_CENTER is set.
]]
}
get {
[[Returns the orientation of the popup.]]
}
values {
orient: Elm.Popup.Orient; [[The orientation of the popup.]]
}
}
@property timeout {
set {
[[Sets a timeout to hide popup automatically
This function sets a timeout and starts the timer controlling
when the popup is hidden. Since calling \@ref evas_object_show
on a popup restarts the timer controlling when it is hidden,
setting this before the popup is shown will in effect mean
starting the timer when the popup is shown. Smart signal
"timeout" is called afterwards which can be handled
if needed.
Note: Set a value <= 0.0 to disable a running timer.
Note: If the value > 0.0 and the popup is previously visible,
the timer will be started with this value, canceling any
running timer.
]]
}
get {
[[Returns the timeout value set to the popup (in seconds).]]
}
values {
timeout: double; [[The timeout in seconds.]]
}
}
@property scrollable {
set {
[[Enable or disable scroller in popup content area
Normally content area does not contain scroller.
@since 1.15.1
]]
}
get {
[[Get the scrollable state of popup content area
Normally content area does not contain scroller.
@since 1.15.1
]]
}
values {
scroll: bool; [[$true if it is to be scrollable, $false otherwise.]]
}
}
item_append {
[[Add a new item to a Popup object
Both an item list and a content could not be set at the same time!
once you add an item, the previous content will be removed.
Warning: When the first item is appended to popup object, any
previous content of the content area is deleted. At a time,
only one of content, content-text and item(s) can be there
in a popup content area.
]]
return: Elm.Widget.Item; [[A handle to the item added or $null on errors.]]
params {
@in label: string; [[The Label of the new item.]]
@in icon: Efl.Canvas.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_ptr) @optional; [[Data passed to $func above.]]
}
}
dismiss {
[[Dismiss a Popup object.
@since 1.17
]]
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Widget.on_access_update;
Efl.Ui.Widget.widget_parent { set; }
Efl.Ui.L10n.translation_update;
Efl.Ui.Widget.widget_sub_object_del;
Efl.Ui.Widget.widget_input_event_handler;
Efl.Layout.Signal.signal_emit;
Efl.Access.Widget.Action.elm_actions { get; }
Efl.Access.Object.state_set { get; }
Efl.Access.Object.i18n_name { get; }
Efl.Part.part_get;
}
events {
block,clicked: void; [[Called when popup was clicked]]
timeout: void; [[Called when popup timed out]]
item,focused: Efl.Object; [[Called when popup got focus]]
item,unfocused: Efl.Object; [[Called when popup lost focus]]
dismissed: void; [[Called when popup was dismissed]]
}
}

View File

@ -0,0 +1,243 @@
EWAPI const Efl_Event_Description _ELM_POPUP_EVENT_BLOCK_CLICKED =
EFL_EVENT_DESCRIPTION("block,clicked");
EWAPI const Efl_Event_Description _ELM_POPUP_EVENT_TIMEOUT =
EFL_EVENT_DESCRIPTION("timeout");
EWAPI const Efl_Event_Description _ELM_POPUP_EVENT_ITEM_FOCUSED =
EFL_EVENT_DESCRIPTION("item,focused");
EWAPI const Efl_Event_Description _ELM_POPUP_EVENT_ITEM_UNFOCUSED =
EFL_EVENT_DESCRIPTION("item,unfocused");
EWAPI const Efl_Event_Description _ELM_POPUP_EVENT_DISMISSED =
EFL_EVENT_DESCRIPTION("dismissed");
void _elm_popup_align_set(Eo *obj, Elm_Popup_Data *pd, double horizontal, double vertical);
EOAPI EFL_VOID_FUNC_BODYV(elm_obj_popup_align_set, EFL_FUNC_CALL(horizontal, vertical), double horizontal, double vertical);
void _elm_popup_align_get(const Eo *obj, Elm_Popup_Data *pd, double *horizontal, double *vertical);
EOAPI EFL_VOID_FUNC_BODYV_CONST(elm_obj_popup_align_get, EFL_FUNC_CALL(horizontal, vertical), double *horizontal, double *vertical);
void _elm_popup_allow_events_set(Eo *obj, Elm_Popup_Data *pd, Eina_Bool allow);
static Eina_Error
__eolian_elm_popup_allow_events_set_reflect(Eo *obj, Eina_Value val)
{
Eina_Error r = 0; Eina_Bool cval;
if (!eina_value_bool_convert(&val, &cval))
{
r = EINA_ERROR_VALUE_FAILED;
goto end;
}
elm_obj_popup_allow_events_set(obj, cval);
end:
eina_value_flush(&val);
return r;
}
EOAPI EFL_VOID_FUNC_BODYV(elm_obj_popup_allow_events_set, EFL_FUNC_CALL(allow), Eina_Bool allow);
Eina_Bool _elm_popup_allow_events_get(const Eo *obj, Elm_Popup_Data *pd);
static Eina_Value
__eolian_elm_popup_allow_events_get_reflect(Eo *obj)
{
Eina_Bool val = elm_obj_popup_allow_events_get(obj);
return eina_value_bool_init(val);
}
EOAPI EFL_FUNC_BODY_CONST(elm_obj_popup_allow_events_get, Eina_Bool, 0);
void _elm_popup_content_text_wrap_type_set(Eo *obj, Elm_Popup_Data *pd, Elm_Wrap_Type wrap);
EOAPI EFL_VOID_FUNC_BODYV(elm_obj_popup_content_text_wrap_type_set, EFL_FUNC_CALL(wrap), Elm_Wrap_Type wrap);
Elm_Wrap_Type _elm_popup_content_text_wrap_type_get(const Eo *obj, Elm_Popup_Data *pd);
EOAPI EFL_FUNC_BODY_CONST(elm_obj_popup_content_text_wrap_type_get, Elm_Wrap_Type, 0);
void _elm_popup_orient_set(Eo *obj, Elm_Popup_Data *pd, Elm_Popup_Orient orient);
EOAPI EFL_VOID_FUNC_BODYV(elm_obj_popup_orient_set, EFL_FUNC_CALL(orient), Elm_Popup_Orient orient);
Elm_Popup_Orient _elm_popup_orient_get(const Eo *obj, Elm_Popup_Data *pd);
EOAPI EFL_FUNC_BODY_CONST(elm_obj_popup_orient_get, Elm_Popup_Orient, 0);
void _elm_popup_timeout_set(Eo *obj, Elm_Popup_Data *pd, double timeout);
static Eina_Error
__eolian_elm_popup_timeout_set_reflect(Eo *obj, Eina_Value val)
{
Eina_Error r = 0; double cval;
if (!eina_value_double_convert(&val, &cval))
{
r = EINA_ERROR_VALUE_FAILED;
goto end;
}
elm_obj_popup_timeout_set(obj, cval);
end:
eina_value_flush(&val);
return r;
}
EOAPI EFL_VOID_FUNC_BODYV(elm_obj_popup_timeout_set, EFL_FUNC_CALL(timeout), double timeout);
double _elm_popup_timeout_get(const Eo *obj, Elm_Popup_Data *pd);
static Eina_Value
__eolian_elm_popup_timeout_get_reflect(Eo *obj)
{
double val = elm_obj_popup_timeout_get(obj);
return eina_value_double_init(val);
}
EOAPI EFL_FUNC_BODY_CONST(elm_obj_popup_timeout_get, double, 0);
void _elm_popup_scrollable_set(Eo *obj, Elm_Popup_Data *pd, Eina_Bool scroll);
static Eina_Error
__eolian_elm_popup_scrollable_set_reflect(Eo *obj, Eina_Value val)
{
Eina_Error r = 0; Eina_Bool cval;
if (!eina_value_bool_convert(&val, &cval))
{
r = EINA_ERROR_VALUE_FAILED;
goto end;
}
elm_obj_popup_scrollable_set(obj, cval);
end:
eina_value_flush(&val);
return r;
}
EOAPI EFL_VOID_FUNC_BODYV(elm_obj_popup_scrollable_set, EFL_FUNC_CALL(scroll), Eina_Bool scroll);
Eina_Bool _elm_popup_scrollable_get(const Eo *obj, Elm_Popup_Data *pd);
static Eina_Value
__eolian_elm_popup_scrollable_get_reflect(Eo *obj)
{
Eina_Bool val = elm_obj_popup_scrollable_get(obj);
return eina_value_bool_init(val);
}
EOAPI EFL_FUNC_BODY_CONST(elm_obj_popup_scrollable_get, Eina_Bool, 0);
Elm_Widget_Item *_elm_popup_item_append(Eo *obj, Elm_Popup_Data *pd, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data);
EOAPI EFL_FUNC_BODYV(elm_obj_popup_item_append, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(label, icon, func, data), const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data);
void _elm_popup_dismiss(Eo *obj, Elm_Popup_Data *pd);
EOAPI EFL_VOID_FUNC_BODY(elm_obj_popup_dismiss);
Efl_Object *_elm_popup_efl_object_constructor(Eo *obj, Elm_Popup_Data *pd);
Eina_Error _elm_popup_efl_ui_widget_theme_apply(Eo *obj, Elm_Popup_Data *pd);
void _elm_popup_efl_ui_widget_on_access_update(Eo *obj, Elm_Popup_Data *pd, Eina_Bool enable);
void _elm_popup_efl_ui_widget_widget_parent_set(Eo *obj, Elm_Popup_Data *pd, Efl_Ui_Widget *parent);
void _elm_popup_efl_ui_l10n_translation_update(Eo *obj, Elm_Popup_Data *pd);
Eina_Bool _elm_popup_efl_ui_widget_widget_sub_object_del(Eo *obj, Elm_Popup_Data *pd, Efl_Canvas_Object *sub_obj);
Eina_Bool _elm_popup_efl_ui_widget_widget_input_event_handler(Eo *obj, Elm_Popup_Data *pd, const Efl_Event *eo_event, Efl_Canvas_Object *source);
void _elm_popup_efl_layout_signal_signal_emit(Eo *obj, Elm_Popup_Data *pd, const char *emission, const char *source);
const Efl_Access_Action_Data *_elm_popup_efl_access_widget_action_elm_actions_get(const Eo *obj, Elm_Popup_Data *pd);
Efl_Access_State_Set _elm_popup_efl_access_object_state_set_get(const Eo *obj, Elm_Popup_Data *pd);
const char *_elm_popup_efl_access_object_i18n_name_get(const Eo *obj, Elm_Popup_Data *pd);
Efl_Object *_elm_popup_efl_part_part_get(const Eo *obj, Elm_Popup_Data *pd, const char *name);
static Eina_Bool
_elm_popup_class_initializer(Efl_Class *klass)
{
const Efl_Object_Ops *opsp = NULL;
const Efl_Object_Property_Reflection_Ops *ropsp = NULL;
#ifndef ELM_POPUP_EXTRA_OPS
#define ELM_POPUP_EXTRA_OPS
#endif
EFL_OPS_DEFINE(ops,
EFL_OBJECT_OP_FUNC(elm_obj_popup_align_set, _elm_popup_align_set),
EFL_OBJECT_OP_FUNC(elm_obj_popup_align_get, _elm_popup_align_get),
EFL_OBJECT_OP_FUNC(elm_obj_popup_allow_events_set, _elm_popup_allow_events_set),
EFL_OBJECT_OP_FUNC(elm_obj_popup_allow_events_get, _elm_popup_allow_events_get),
EFL_OBJECT_OP_FUNC(elm_obj_popup_content_text_wrap_type_set, _elm_popup_content_text_wrap_type_set),
EFL_OBJECT_OP_FUNC(elm_obj_popup_content_text_wrap_type_get, _elm_popup_content_text_wrap_type_get),
EFL_OBJECT_OP_FUNC(elm_obj_popup_orient_set, _elm_popup_orient_set),
EFL_OBJECT_OP_FUNC(elm_obj_popup_orient_get, _elm_popup_orient_get),
EFL_OBJECT_OP_FUNC(elm_obj_popup_timeout_set, _elm_popup_timeout_set),
EFL_OBJECT_OP_FUNC(elm_obj_popup_timeout_get, _elm_popup_timeout_get),
EFL_OBJECT_OP_FUNC(elm_obj_popup_scrollable_set, _elm_popup_scrollable_set),
EFL_OBJECT_OP_FUNC(elm_obj_popup_scrollable_get, _elm_popup_scrollable_get),
EFL_OBJECT_OP_FUNC(elm_obj_popup_item_append, _elm_popup_item_append),
EFL_OBJECT_OP_FUNC(elm_obj_popup_dismiss, _elm_popup_dismiss),
EFL_OBJECT_OP_FUNC(efl_constructor, _elm_popup_efl_object_constructor),
EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_popup_efl_ui_widget_theme_apply),
EFL_OBJECT_OP_FUNC(efl_ui_widget_on_access_update, _elm_popup_efl_ui_widget_on_access_update),
EFL_OBJECT_OP_FUNC(efl_ui_widget_parent_set, _elm_popup_efl_ui_widget_widget_parent_set),
EFL_OBJECT_OP_FUNC(efl_ui_l10n_translation_update, _elm_popup_efl_ui_l10n_translation_update),
EFL_OBJECT_OP_FUNC(efl_ui_widget_sub_object_del, _elm_popup_efl_ui_widget_widget_sub_object_del),
EFL_OBJECT_OP_FUNC(efl_ui_widget_input_event_handler, _elm_popup_efl_ui_widget_widget_input_event_handler),
EFL_OBJECT_OP_FUNC(efl_layout_signal_emit, _elm_popup_efl_layout_signal_signal_emit),
EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, _elm_popup_efl_access_widget_action_elm_actions_get),
EFL_OBJECT_OP_FUNC(efl_access_object_state_set_get, _elm_popup_efl_access_object_state_set_get),
EFL_OBJECT_OP_FUNC(efl_access_object_i18n_name_get, _elm_popup_efl_access_object_i18n_name_get),
EFL_OBJECT_OP_FUNC(efl_part_get, _elm_popup_efl_part_part_get),
ELM_POPUP_EXTRA_OPS
);
opsp = &ops;
static const Efl_Object_Property_Reflection refl_table[] = {
{"allow_events", __eolian_elm_popup_allow_events_set_reflect, __eolian_elm_popup_allow_events_get_reflect},
{"timeout", __eolian_elm_popup_timeout_set_reflect, __eolian_elm_popup_timeout_get_reflect},
{"scrollable", __eolian_elm_popup_scrollable_set_reflect, __eolian_elm_popup_scrollable_get_reflect},
};
static const Efl_Object_Property_Reflection_Ops rops = {
refl_table, EINA_C_ARRAY_LENGTH(refl_table)
};
ropsp = &rops;
return efl_class_functions_set(klass, opsp, ropsp);
}
static const Efl_Class_Description _elm_popup_class_desc = {
EO_VERSION,
"Elm.Popup",
EFL_CLASS_TYPE_REGULAR,
sizeof(Elm_Popup_Data),
_elm_popup_class_initializer,
_elm_popup_class_constructor,
NULL
};
EFL_DEFINE_CLASS(elm_popup_class_get, &_elm_popup_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_LEGACY_INTERFACE, NULL);
#include "elm_popup_eo.legacy.c"

View File

@ -0,0 +1,288 @@
#ifndef _ELM_POPUP_EO_H_
#define _ELM_POPUP_EO_H_
#ifndef _ELM_POPUP_EO_CLASS_TYPE
#define _ELM_POPUP_EO_CLASS_TYPE
typedef Eo Elm_Popup;
#endif
#ifndef _ELM_POPUP_EO_TYPES
#define _ELM_POPUP_EO_TYPES
/**
* @brief Possible orient values for popup.
*
* These values should be used in conjunction to elm_popup_orient_set() to set
* the position in which the popup should appear(relative to its parent) and in
* conjunction with elm_popup_orient_get() to know where the popup is
* appearing.
*
* @ingroup Elm_Popup
*/
typedef enum
{
ELM_POPUP_ORIENT_TOP = 0, /**< Popup should appear in the top of parent,
* default. */
ELM_POPUP_ORIENT_CENTER, /**< Popup should appear in the center of parent. */
ELM_POPUP_ORIENT_BOTTOM, /**< Popup should appear in the bottom of parent. */
ELM_POPUP_ORIENT_LEFT, /**< Popup should appear in the left of parent. */
ELM_POPUP_ORIENT_RIGHT, /**< Popup should appear in the right of parent. */
ELM_POPUP_ORIENT_TOP_LEFT, /**< Popup should appear in the top left of parent.
*/
ELM_POPUP_ORIENT_TOP_RIGHT, /**< Popup should appear in the top right of
* parent. */
ELM_POPUP_ORIENT_BOTTOM_LEFT, /**< Popup should appear in the bottom left of
* parent. */
ELM_POPUP_ORIENT_BOTTOM_RIGHT, /**< Notify should appear in the bottom right
* of parent. */
ELM_POPUP_ORIENT_LAST /**< Sentinel value to indicate last enum field during
* iteration */
} Elm_Popup_Orient;
#endif
/** Elementary popup class
*
* @ingroup Elm_Popup
*/
#define ELM_POPUP_CLASS elm_popup_class_get()
EWAPI const Efl_Class *elm_popup_class_get(void);
/**
* @brief Set the alignment of the popup object.
*
* Sets the alignment in which the popup will appear in its parent.
*
* @param[in] obj The object.
* @param[in] horizontal The horizontal alignment of the popup.
* @param[in] vertical The vertical alignment of the popup.
*
* @since 1.9
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_align_set(Eo *obj, double horizontal, double vertical);
/**
* @brief Get the alignment of the popup object.
*
* @param[in] obj The object.
* @param[out] horizontal The horizontal alignment of the popup.
* @param[out] vertical The vertical alignment of the popup.
*
* @since 1.9
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_align_get(const Eo *obj, double *horizontal, double *vertical);
/**
* @brief Sets whether events should be passed to by a click outside.
*
* Enabling allow event will remove the Blocked event area and events will pass
* to the lower layer objects otherwise they are blocked.
*
* @note The default value is @c false.
*
* @param[in] obj The object.
* @param[in] allow If @c true, events are passed to lower objects.
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_allow_events_set(Eo *obj, Eina_Bool allow);
/**
* @brief Returns value indicating whether allow event is enabled or not.
*
* @param[in] obj The object.
*
* @return If @c true, events are passed to lower objects.
*
* @ingroup Elm_Popup
*/
EOAPI Eina_Bool elm_obj_popup_allow_events_get(const Eo *obj);
/**
* @brief Control the wrapping type of content text packed in content area of
* popup object.
*
* @param[in] obj The object.
* @param[in] wrap Wrapping type of type Elm_Wrap_Type.
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_content_text_wrap_type_set(Eo *obj, Elm_Wrap_Type wrap);
/**
* @brief Control the wrapping type of content text packed in content area of
* popup object.
*
* @param[in] obj The object.
*
* @return Wrapping type of type Elm_Wrap_Type.
*
* @ingroup Elm_Popup
*/
EOAPI Elm_Wrap_Type elm_obj_popup_content_text_wrap_type_get(const Eo *obj);
/**
* @brief Sets the orientation of the popup in the parent region.
*
* Sets the position in which popup will appear in its parent. By default,
* #ELM_POPUP_ORIENT_CENTER is set.
*
* @param[in] obj The object.
* @param[in] orient The orientation of the popup.
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_orient_set(Eo *obj, Elm_Popup_Orient orient);
/**
* @brief Returns the orientation of the popup.
*
* @param[in] obj The object.
*
* @return The orientation of the popup.
*
* @ingroup Elm_Popup
*/
EOAPI Elm_Popup_Orient elm_obj_popup_orient_get(const Eo *obj);
/**
* @brief Sets a timeout to hide popup automatically
*
* This function sets a timeout and starts the timer controlling when the popup
* is hidden. Since calling @ref evas_object_show on a popup restarts the timer
* controlling when it is hidden, setting this before the popup is shown will
* in effect mean starting the timer when the popup is shown. Smart signal
* "timeout" is called afterwards which can be handled if needed.
*
* @note Set a value <= 0.0 to disable a running timer.
*
* @note If the value > 0.0 and the popup is previously visible, the timer will
* be started with this value, canceling any running timer.
*
* @param[in] obj The object.
* @param[in] timeout The timeout in seconds.
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_timeout_set(Eo *obj, double timeout);
/**
* @brief Returns the timeout value set to the popup (in seconds).
*
* @param[in] obj The object.
*
* @return The timeout in seconds.
*
* @ingroup Elm_Popup
*/
EOAPI double elm_obj_popup_timeout_get(const Eo *obj);
/**
* @brief Enable or disable scroller in popup content area
*
* Normally content area does not contain scroller.
*
* @param[in] obj The object.
* @param[in] scroll @c true if it is to be scrollable, @c false otherwise.
*
* @since 1.15.1
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_scrollable_set(Eo *obj, Eina_Bool scroll);
/**
* @brief Get the scrollable state of popup content area
*
* Normally content area does not contain scroller.
*
* @param[in] obj The object.
*
* @return @c true if it is to be scrollable, @c false otherwise.
*
* @since 1.15.1
*
* @ingroup Elm_Popup
*/
EOAPI Eina_Bool elm_obj_popup_scrollable_get(const Eo *obj);
/**
* @brief Add a new item to a Popup object
*
* Both an item list and a content could not be set at the same time! once you
* add an item, the previous content will be removed.
*
* @warning When the first item is appended to popup object, any previous
* content of the content area is deleted. At a time, only one of content,
* content-text and item(s) can be there in a popup content area.
*
* @param[in] obj The object.
* @param[in] label The Label of the new item.
* @param[in] icon Icon to be set on new item.
* @param[in] func Convenience function called when item selected.
* @param[in] data Data passed to @c func above.
*
* @return A handle to the item added or @c null on errors.
*
* @ingroup Elm_Popup
*/
EOAPI Elm_Widget_Item *elm_obj_popup_item_append(Eo *obj, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data);
/** Dismiss a Popup object.
*
* @since 1.17
*
* @ingroup Elm_Popup
*/
EOAPI void elm_obj_popup_dismiss(Eo *obj);
EWAPI extern const Efl_Event_Description _ELM_POPUP_EVENT_BLOCK_CLICKED;
/** Called when popup was clicked
*
* @ingroup Elm_Popup
*/
#define ELM_POPUP_EVENT_BLOCK_CLICKED (&(_ELM_POPUP_EVENT_BLOCK_CLICKED))
EWAPI extern const Efl_Event_Description _ELM_POPUP_EVENT_TIMEOUT;
/** Called when popup timed out
*
* @ingroup Elm_Popup
*/
#define ELM_POPUP_EVENT_TIMEOUT (&(_ELM_POPUP_EVENT_TIMEOUT))
EWAPI extern const Efl_Event_Description _ELM_POPUP_EVENT_ITEM_FOCUSED;
/** Called when popup got focus
* @return Efl_Object *
*
* @ingroup Elm_Popup
*/
#define ELM_POPUP_EVENT_ITEM_FOCUSED (&(_ELM_POPUP_EVENT_ITEM_FOCUSED))
EWAPI extern const Efl_Event_Description _ELM_POPUP_EVENT_ITEM_UNFOCUSED;
/** Called when popup lost focus
* @return Efl_Object *
*
* @ingroup Elm_Popup
*/
#define ELM_POPUP_EVENT_ITEM_UNFOCUSED (&(_ELM_POPUP_EVENT_ITEM_UNFOCUSED))
EWAPI extern const Efl_Event_Description _ELM_POPUP_EVENT_DISMISSED;
/** Called when popup was dismissed
*
* @ingroup Elm_Popup
*/
#define ELM_POPUP_EVENT_DISMISSED (&(_ELM_POPUP_EVENT_DISMISSED))
#endif

View File

@ -0,0 +1,84 @@
EAPI void
elm_popup_align_set(Elm_Popup *obj, double horizontal, double vertical)
{
elm_obj_popup_align_set(obj, horizontal, vertical);
}
EAPI void
elm_popup_align_get(const Elm_Popup *obj, double *horizontal, double *vertical)
{
elm_obj_popup_align_get(obj, horizontal, vertical);
}
EAPI void
elm_popup_allow_events_set(Elm_Popup *obj, Eina_Bool allow)
{
elm_obj_popup_allow_events_set(obj, allow);
}
EAPI Eina_Bool
elm_popup_allow_events_get(const Elm_Popup *obj)
{
return elm_obj_popup_allow_events_get(obj);
}
EAPI void
elm_popup_content_text_wrap_type_set(Elm_Popup *obj, Elm_Wrap_Type wrap)
{
elm_obj_popup_content_text_wrap_type_set(obj, wrap);
}
EAPI Elm_Wrap_Type
elm_popup_content_text_wrap_type_get(const Elm_Popup *obj)
{
return elm_obj_popup_content_text_wrap_type_get(obj);
}
EAPI void
elm_popup_orient_set(Elm_Popup *obj, Elm_Popup_Orient orient)
{
elm_obj_popup_orient_set(obj, orient);
}
EAPI Elm_Popup_Orient
elm_popup_orient_get(const Elm_Popup *obj)
{
return elm_obj_popup_orient_get(obj);
}
EAPI void
elm_popup_timeout_set(Elm_Popup *obj, double timeout)
{
elm_obj_popup_timeout_set(obj, timeout);
}
EAPI double
elm_popup_timeout_get(const Elm_Popup *obj)
{
return elm_obj_popup_timeout_get(obj);
}
EAPI void
elm_popup_scrollable_set(Elm_Popup *obj, Eina_Bool scroll)
{
elm_obj_popup_scrollable_set(obj, scroll);
}
EAPI Eina_Bool
elm_popup_scrollable_get(const Elm_Popup *obj)
{
return elm_obj_popup_scrollable_get(obj);
}
EAPI Elm_Widget_Item *
elm_popup_item_append(Elm_Popup *obj, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data)
{
return elm_obj_popup_item_append(obj, label, icon, func, data);
}
EAPI void
elm_popup_dismiss(Elm_Popup *obj)
{
elm_obj_popup_dismiss(obj);
}

View File

@ -0,0 +1,239 @@
#ifndef _ELM_POPUP_EO_LEGACY_H_
#define _ELM_POPUP_EO_LEGACY_H_
#ifndef _ELM_POPUP_EO_CLASS_TYPE
#define _ELM_POPUP_EO_CLASS_TYPE
typedef Eo Elm_Popup;
#endif
#ifndef _ELM_POPUP_EO_TYPES
#define _ELM_POPUP_EO_TYPES
/**
* @brief Possible orient values for popup.
*
* These values should be used in conjunction to elm_popup_orient_set() to set
* the position in which the popup should appear(relative to its parent) and in
* conjunction with elm_popup_orient_get() to know where the popup is
* appearing.
*
* @ingroup Elm_Popup
*/
typedef enum
{
ELM_POPUP_ORIENT_TOP = 0, /**< Popup should appear in the top of parent,
* default. */
ELM_POPUP_ORIENT_CENTER, /**< Popup should appear in the center of parent. */
ELM_POPUP_ORIENT_BOTTOM, /**< Popup should appear in the bottom of parent. */
ELM_POPUP_ORIENT_LEFT, /**< Popup should appear in the left of parent. */
ELM_POPUP_ORIENT_RIGHT, /**< Popup should appear in the right of parent. */
ELM_POPUP_ORIENT_TOP_LEFT, /**< Popup should appear in the top left of parent.
*/
ELM_POPUP_ORIENT_TOP_RIGHT, /**< Popup should appear in the top right of
* parent. */
ELM_POPUP_ORIENT_BOTTOM_LEFT, /**< Popup should appear in the bottom left of
* parent. */
ELM_POPUP_ORIENT_BOTTOM_RIGHT, /**< Notify should appear in the bottom right
* of parent. */
ELM_POPUP_ORIENT_LAST /**< Sentinel value to indicate last enum field during
* iteration */
} Elm_Popup_Orient;
#endif
/**
* @brief Set the alignment of the popup object.
*
* Sets the alignment in which the popup will appear in its parent.
*
* @param[in] obj The object.
* @param[in] horizontal The horizontal alignment of the popup.
* @param[in] vertical The vertical alignment of the popup.
*
* @since 1.9
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_align_set(Elm_Popup *obj, double horizontal, double vertical);
/**
* @brief Get the alignment of the popup object.
*
* @param[in] obj The object.
* @param[out] horizontal The horizontal alignment of the popup.
* @param[out] vertical The vertical alignment of the popup.
*
* @since 1.9
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_align_get(const Elm_Popup *obj, double *horizontal, double *vertical);
/**
* @brief Sets whether events should be passed to by a click outside.
*
* Enabling allow event will remove the Blocked event area and events will pass
* to the lower layer objects otherwise they are blocked.
*
* @note The default value is @c false.
*
* @param[in] obj The object.
* @param[in] allow If @c true, events are passed to lower objects.
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_allow_events_set(Elm_Popup *obj, Eina_Bool allow);
/**
* @brief Returns value indicating whether allow event is enabled or not.
*
* @param[in] obj The object.
*
* @return If @c true, events are passed to lower objects.
*
* @ingroup Elm_Popup_Group
*/
EAPI Eina_Bool elm_popup_allow_events_get(const Elm_Popup *obj);
/**
* @brief Control the wrapping type of content text packed in content area of
* popup object.
*
* @param[in] obj The object.
* @param[in] wrap Wrapping type of type Elm_Wrap_Type.
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_content_text_wrap_type_set(Elm_Popup *obj, Elm_Wrap_Type wrap);
/**
* @brief Control the wrapping type of content text packed in content area of
* popup object.
*
* @param[in] obj The object.
*
* @return Wrapping type of type Elm_Wrap_Type.
*
* @ingroup Elm_Popup_Group
*/
EAPI Elm_Wrap_Type elm_popup_content_text_wrap_type_get(const Elm_Popup *obj);
/**
* @brief Sets the orientation of the popup in the parent region.
*
* Sets the position in which popup will appear in its parent. By default,
* #ELM_POPUP_ORIENT_CENTER is set.
*
* @param[in] obj The object.
* @param[in] orient The orientation of the popup.
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_orient_set(Elm_Popup *obj, Elm_Popup_Orient orient);
/**
* @brief Returns the orientation of the popup.
*
* @param[in] obj The object.
*
* @return The orientation of the popup.
*
* @ingroup Elm_Popup_Group
*/
EAPI Elm_Popup_Orient elm_popup_orient_get(const Elm_Popup *obj);
/**
* @brief Sets a timeout to hide popup automatically
*
* This function sets a timeout and starts the timer controlling when the popup
* is hidden. Since calling @ref evas_object_show on a popup restarts the timer
* controlling when it is hidden, setting this before the popup is shown will
* in effect mean starting the timer when the popup is shown. Smart signal
* "timeout" is called afterwards which can be handled if needed.
*
* @note Set a value <= 0.0 to disable a running timer.
*
* @note If the value > 0.0 and the popup is previously visible, the timer will
* be started with this value, canceling any running timer.
*
* @param[in] obj The object.
* @param[in] timeout The timeout in seconds.
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_timeout_set(Elm_Popup *obj, double timeout);
/**
* @brief Returns the timeout value set to the popup (in seconds).
*
* @param[in] obj The object.
*
* @return The timeout in seconds.
*
* @ingroup Elm_Popup_Group
*/
EAPI double elm_popup_timeout_get(const Elm_Popup *obj);
/**
* @brief Enable or disable scroller in popup content area
*
* Normally content area does not contain scroller.
*
* @param[in] obj The object.
* @param[in] scroll @c true if it is to be scrollable, @c false otherwise.
*
* @since 1.15.1
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_scrollable_set(Elm_Popup *obj, Eina_Bool scroll);
/**
* @brief Get the scrollable state of popup content area
*
* Normally content area does not contain scroller.
*
* @param[in] obj The object.
*
* @return @c true if it is to be scrollable, @c false otherwise.
*
* @since 1.15.1
*
* @ingroup Elm_Popup_Group
*/
EAPI Eina_Bool elm_popup_scrollable_get(const Elm_Popup *obj);
/**
* @brief Add a new item to a Popup object
*
* Both an item list and a content could not be set at the same time! once you
* add an item, the previous content will be removed.
*
* @warning When the first item is appended to popup object, any previous
* content of the content area is deleted. At a time, only one of content,
* content-text and item(s) can be there in a popup content area.
*
* @param[in] obj The object.
* @param[in] label The Label of the new item.
* @param[in] icon Icon to be set on new item.
* @param[in] func Convenience function called when item selected.
* @param[in] data Data passed to @c func above.
*
* @return A handle to the item added or @c null on errors.
*
* @ingroup Elm_Popup_Group
*/
EAPI Elm_Widget_Item *elm_popup_item_append(Elm_Popup *obj, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data);
/** Dismiss a Popup object.
*
* @since 1.17
*
* @ingroup Elm_Popup_Group
*/
EAPI void elm_popup_dismiss(Elm_Popup *obj);
#endif

View File

@ -1,15 +0,0 @@
class Elm.Popup.Item extends Elm.Widget.Item implements Efl.Ui.Legacy
{
[[Elementary popup item class]]
legacy_prefix: elm_popup_item;
eo_prefix: elm_obj_popup_item;
implements {
Efl.Object.constructor;
Efl.Object.destructor;
Elm.Widget.Item.disable;
Elm.Widget.Item.signal_emit;
Elm.Widget.Item.part_text { get; set; }
Elm.Widget.Item.part_content { get; set; }
Elm.Widget.Item.part_content_unset;
}
}

View File

@ -0,0 +1,67 @@
Efl_Object *_elm_popup_item_efl_object_constructor(Eo *obj, Elm_Popup_Item_Data *pd);
void _elm_popup_item_efl_object_destructor(Eo *obj, Elm_Popup_Item_Data *pd);
void _elm_popup_item_elm_widget_item_disable(Eo *obj, Elm_Popup_Item_Data *pd);
void _elm_popup_item_elm_widget_item_signal_emit(Eo *obj, Elm_Popup_Item_Data *pd, const char *emission, const char *source);
void _elm_popup_item_elm_widget_item_part_text_set(Eo *obj, Elm_Popup_Item_Data *pd, const char *part, const char *label);
const char *_elm_popup_item_elm_widget_item_part_text_get(const Eo *obj, Elm_Popup_Item_Data *pd, const char *part);
void _elm_popup_item_elm_widget_item_part_content_set(Eo *obj, Elm_Popup_Item_Data *pd, const char *part, Efl_Canvas_Object *content);
Efl_Canvas_Object *_elm_popup_item_elm_widget_item_part_content_get(const Eo *obj, Elm_Popup_Item_Data *pd, const char *part);
Efl_Canvas_Object *_elm_popup_item_elm_widget_item_part_content_unset(Eo *obj, Elm_Popup_Item_Data *pd, const char *part);
static Eina_Bool
_elm_popup_item_class_initializer(Efl_Class *klass)
{
const Efl_Object_Ops *opsp = NULL;
const Efl_Object_Property_Reflection_Ops *ropsp = NULL;
#ifndef ELM_POPUP_ITEM_EXTRA_OPS
#define ELM_POPUP_ITEM_EXTRA_OPS
#endif
EFL_OPS_DEFINE(ops,
EFL_OBJECT_OP_FUNC(efl_constructor, _elm_popup_item_efl_object_constructor),
EFL_OBJECT_OP_FUNC(efl_destructor, _elm_popup_item_efl_object_destructor),
EFL_OBJECT_OP_FUNC(elm_wdg_item_disable, _elm_popup_item_elm_widget_item_disable),
EFL_OBJECT_OP_FUNC(elm_wdg_item_signal_emit, _elm_popup_item_elm_widget_item_signal_emit),
EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_set, _elm_popup_item_elm_widget_item_part_text_set),
EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_get, _elm_popup_item_elm_widget_item_part_text_get),
EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_set, _elm_popup_item_elm_widget_item_part_content_set),
EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_get, _elm_popup_item_elm_widget_item_part_content_get),
EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_unset, _elm_popup_item_elm_widget_item_part_content_unset),
ELM_POPUP_ITEM_EXTRA_OPS
);
opsp = &ops;
return efl_class_functions_set(klass, opsp, ropsp);
}
static const Efl_Class_Description _elm_popup_item_class_desc = {
EO_VERSION,
"Elm.Popup.Item",
EFL_CLASS_TYPE_REGULAR,
sizeof(Elm_Popup_Item_Data),
_elm_popup_item_class_initializer,
NULL,
NULL
};
EFL_DEFINE_CLASS(elm_popup_item_class_get, &_elm_popup_item_class_desc, ELM_WIDGET_ITEM_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);

View File

@ -0,0 +1,24 @@
#ifndef _ELM_POPUP_ITEM_EO_H_
#define _ELM_POPUP_ITEM_EO_H_
#ifndef _ELM_POPUP_ITEM_EO_CLASS_TYPE
#define _ELM_POPUP_ITEM_EO_CLASS_TYPE
typedef Eo Elm_Popup_Item;
#endif
#ifndef _ELM_POPUP_ITEM_EO_TYPES
#define _ELM_POPUP_ITEM_EO_TYPES
#endif
/** Elementary popup item class
*
* @ingroup Elm_Popup_Item
*/
#define ELM_POPUP_ITEM_CLASS elm_popup_item_class_get()
EWAPI const Efl_Class *elm_popup_item_class_get(void);
#endif

View File

@ -0,0 +1,17 @@
#ifndef _ELM_POPUP_ITEM_EO_LEGACY_H_
#define _ELM_POPUP_ITEM_EO_LEGACY_H_
#ifndef _ELM_POPUP_ITEM_EO_CLASS_TYPE
#define _ELM_POPUP_ITEM_EO_CLASS_TYPE
typedef Eo Elm_Popup_Item;
#endif
#ifndef _ELM_POPUP_ITEM_EO_TYPES
#define _ELM_POPUP_ITEM_EO_TYPES
#endif
#endif

View File

@ -4,8 +4,8 @@
#include "Elementary.h"
#include "elm_widget_layout.h"
#include "elm_notify_eo.h"
#include "elm_popup_item.eo.h"
#include "elm_popup.eo.h"
#include "elm_popup_item_eo.h"
#include "elm_popup_eo.h"
/* 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

View File

@ -1,6 +1,5 @@
pub_legacy_eo_files = [
'efl_ui_clock_legacy.eo',
'elm_popup.eo',
'elm_route.eo',
'elm_scroller.eo',
'elm_sys_notify_interface.eo',
@ -8,7 +7,6 @@ pub_legacy_eo_files = [
'elm_sys_notify_dbus.eo',
'elm_systray.eo',
'elm_widget_item_static_focus.eo',
'elm_popup_item.eo',
'elm_ctxpopup_part.eo',
'elm_dayselector_part.eo',
'elm_entry_part.eo',
@ -783,6 +781,10 @@ elementary_pub_headers = [
'elm_player_eo.legacy.h',
'elm_plug_eo.h',
'elm_plug_eo.legacy.h',
'elm_popup_eo.h',
'elm_popup_eo.legacy.h',
'elm_popup_item_eo.h',
'elm_popup_item_eo.legacy.h',
]
elementary_header_src = [