efl_ui_legacy: add new interface to indicate legacy widget

Summary:
For now, how to check whether a widget is legacy or not
is to check flags in private data or static flag, which is set
during elm_legacy_add.
If Efl.Ui.Legacy interface is added, it can be easilly checked
by efl_isa(obj, EFL_UI_LEGACY_INTERFACE)

Reviewers: woohyun, jpeg, cedric, Jaehyun_Cho

Subscribers: conr2d, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5748
This commit is contained in:
Sungtaek Hong 2018-01-24 15:50:58 +09:00 committed by Jean-Philippe Andre
parent f6ba674cd8
commit cb25699dac
120 changed files with 1004 additions and 632 deletions

View File

@ -106,6 +106,7 @@ elm_public_eolian_files = \
# More public files -- FIXME
elm_public_eolian_files += \
lib/elementary/efl_ui_legacy.eo \
lib/elementary/elm_spinner.eo \
lib/elementary/elm_multibuttonentry_item.eo \
lib/elementary/elm_interface_scrollable.eo \
@ -137,6 +138,23 @@ elm_private_eolian_files = \
# Legacy classes - not part of public EO API
elm_legacy_eolian_files = \
lib/elementary/efl_ui_button_legacy.eo \
lib/elementary/efl_ui_check_legacy.eo \
lib/elementary/efl_ui_radio_legacy.eo \
lib/elementary/efl_ui_bg_widget_legacy.eo \
lib/elementary/efl_ui_video_legacy.eo \
lib/elementary/efl_ui_frame_legacy.eo \
lib/elementary/efl_ui_slider_legacy.eo \
lib/elementary/efl_ui_panes_legacy.eo \
lib/elementary/efl_ui_image_zoomable_legacy.eo \
lib/elementary/efl_ui_multibuttonentry_legacy.eo \
lib/elementary/efl_ui_flip_legacy.eo \
lib/elementary/efl_ui_win_legacy.eo \
lib/elementary/efl_ui_image_legacy.eo \
lib/elementary/efl_ui_progressbar_legacy.eo \
lib/elementary/efl_ui_clock_legacy.eo \
lib/elementary/efl_ui_layout_legacy.eo \
lib/elementary/elm_code_widget_legacy.eo \
lib/elementary/elm_interface_fileselector.eo \
lib/elementary/elm_calendar.eo \
lib/elementary/elm_calendar_item.eo \
@ -611,6 +629,7 @@ lib_elementary_libelementary_la_SOURCES = \
lib/elementary/elm_actionslider.c \
lib/elementary/elm_atspi_app_object.c \
lib/elementary/elm_atspi_bridge.c \
lib/elementary/efl_ui_legacy.c \
lib/elementary/efl_ui_bg.c \
lib/elementary/efl_ui_bg_widget.c \
lib/elementary/elm_box.c \

View File

@ -13,7 +13,6 @@
#define MY_CLASS_PFX efl_ui_bg_widget
#define MY_CLASS_NAME "Efl.Ui.Bg_Widget"
#define MY_CLASS_NAME_LEGACY "elm_bg"
static const Elm_Layout_Part_Alias_Description _content_aliases[] =
{
@ -21,13 +20,6 @@ static const Elm_Layout_Part_Alias_Description _content_aliases[] =
{NULL, NULL}
};
EAPI Evas_Object *
elm_bg_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
_efl_ui_bg_widget_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Widget_Data *pd)
{
@ -54,7 +46,6 @@ _efl_ui_bg_widget_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Widget_Data *pd)
efl_image_scale_type_set(efl_added, EFL_IMAGE_SCALE_TYPE_FIT_OUTSIDE),
efl_content_set(efl_part(obj, "elm.swallow.background"), efl_added));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
efl_access_type_set(obj, EFL_ACCESS_TYPE_DISABLED);
efl_ui_widget_focus_allow_set(obj, EINA_FALSE);
@ -191,12 +182,6 @@ _efl_ui_bg_widget_efl_image_load_load_size_get(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Wi
return efl_image_load_size_get(sd->img);
}
static void
_efl_ui_bg_widget_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EAPI Eina_Bool
elm_bg_file_set(Eo *obj, const char *file, const char *group)
{
@ -242,3 +227,32 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX)
#include "efl_ui_bg_widget.eo.c"
#include "efl_ui_bg_widget_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_bg"
static void
_efl_ui_bg_widget_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_bg_widget_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_BG_WIDGET_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_bg_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_BG_WIDGET_LEGACY_CLASS, parent);
}
#include "efl_ui_bg_widget_legacy.eo.c"

View File

@ -8,7 +8,6 @@ class Efl.Ui.Bg_Widget (Efl.Ui.Layout, Efl.Ui.Bg, Efl.Image.Load)
]]
legacy_prefix: elm_bg;
implements {
class.constructor;
Efl.Object.constructor;
Efl.File.file { get; set; }
Efl.File.mmap { get; set; }

View File

@ -0,0 +1,14 @@
class Efl.Ui.Bg_Widget_Legacy (Efl.Ui.Bg_Widget, Efl.Ui.Legacy)
{
[[The bg (background) widget is used for setting (solid) background decorations
for a window (unless it has transparency enabled) or for any container object. It
works just like an image, but has some properties useful for backgrounds, such as
setting it to tiled, centered, scaled or stretched.
]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -17,7 +17,6 @@
#define MY_CLASS_PFX efl_ui_button
#define MY_CLASS_NAME "Efl.Ui.Button"
#define MY_CLASS_NAME_LEGACY "elm_button"
static const char SIG_CLICKED[] = "clicked";
static const char SIG_REPEATED[] = "repeated";
@ -303,18 +302,10 @@ _efl_ui_button_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Button_Data *_pd EINA_
CRI("Failed to set layout!");
}
EAPI Evas_Object *
elm_button_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
_efl_ui_button_efl_object_constructor(Eo *obj, Efl_Ui_Button_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_PUSH_BUTTON);
@ -406,12 +397,6 @@ _efl_ui_button_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl
return &atspi_actions[0];
}
static void
_efl_ui_button_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
/* Standard widget overrides */
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_button, Efl_Ui_Button_Data)
@ -481,3 +466,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
EFL_CANVAS_GROUP_ADD_OPS(efl_ui_button)
#include "efl_ui_button.eo.c"
#include "efl_ui_button_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_button"
static void
_efl_ui_button_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_button_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_BUTTON_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_button_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_BUTTON_LEGACY_CLASS, parent);
}
#include "efl_ui_button_legacy.eo.c"

View File

@ -9,7 +9,6 @@ class Efl.Ui.Button (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Ui.Autorepeat,
]]
legacy_prefix: elm_button;
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Autorepeat.autorepeat_initial_timeout { set; get; }
Efl.Ui.Autorepeat.autorepeat_gap_timeout { set; get; }

View File

@ -0,0 +1,13 @@
class Efl.Ui.Button_Legacy (Efl.Ui.Button, Efl.Ui.Legacy)
{
[[Push-button widget
Press it and run some function. It can contain a simple label and icon
object and it also has an autorepeat feature.
]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -16,7 +16,6 @@
#define MY_CLASS_PFX efl_ui_check
#define MY_CLASS_NAME "Efl.Ui.Check"
#define MY_CLASS_NAME_LEGACY "elm_check"
static const Elm_Layout_Part_Alias_Description _text_aliases[] =
{
@ -311,20 +310,12 @@ _efl_ui_check_efl_ui_nstate_value_set(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED
efl_ui_nstate_value_set(efl_super(obj, MY_CLASS), _state);
}
EAPI Evas_Object *
elm_check_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
_efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED)
{
if (!elm_widget_theme_klass_get(obj))
elm_widget_theme_klass_set(obj, "check");
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
@ -392,12 +383,6 @@ _efl_ui_check_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_
return &atspi_action[0];
}
static void
_efl_ui_check_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
/* Standard widget overrides */
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_check, Efl_Ui_Check_Data)
@ -410,3 +395,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX)
#include "efl_ui_check.eo.c"
#include "efl_ui_check_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_check"
static void
_efl_ui_check_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_check_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_CHECK_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_check_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_CHECK_LEGACY_CLASS, parent);
}
#include "efl_ui_check_legacy.eo.c"

View File

@ -21,7 +21,6 @@ class Efl.Ui.Check (Efl.Ui.Nstate, Efl.Access.Widget.Action)
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Widget.on_access_activate;
Efl.Ui.Widget.theme_apply;

View File

@ -0,0 +1,15 @@
class Efl.Ui.Check_Legacy (Efl.Ui.Check, Efl.Ui.Legacy)
{
[[Check widget
The check widget allows for toggling a value between true and false.
Check objects are a lot like radio objects in layout and functionality,
except they do not work as a group, but independently, and only toggle
the value of a boolean between false and true.
]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -13,7 +13,6 @@
#define MY_CLASS EFL_UI_CLOCK_CLASS
#define MY_CLASS_NAME "Efl.Ui.Clock"
#define MY_CLASS_NAME_LEGACY "efl_ui_clock"
#ifdef HAVE_LOCALE_H
# include <locale.h>
@ -918,7 +917,6 @@ EOLIAN static Eo *
_efl_ui_clock_efl_object_constructor(Eo *obj, Efl_Ui_Clock_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_DATE_EDITOR);
@ -1125,12 +1123,6 @@ _efl_ui_clock_time_max_set(Eo *obj, Efl_Ui_Clock_Data *sd, Efl_Time maxtime)
efl_event_callback_legacy_call(obj, EFL_UI_CLOCK_EVENT_CHANGED, NULL);
}
EOLIAN static void
_efl_ui_clock_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
/* Internal EO APIs and hidden overrides */
#define EFL_UI_CLOCK_EXTRA_OPS \

View File

@ -222,7 +222,6 @@ class Efl.Ui.Clock (Efl.Ui.Layout)
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Widget.on_disabled_update;

View File

@ -0,0 +1,9 @@
class Efl.Ui.Clock_Legacy (Efl.Ui.Clock, Efl.Ui.Legacy)
{
[[Efl UI clock class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -14,7 +14,6 @@
#define MY_CLASS EFL_UI_FLIP_CLASS
#define MY_CLASS_NAME "Efl.Ui.Flip"
#define MY_CLASS_NAME_LEGACY "elm_flip"
static const char SIG_ANIMATE_BEGIN[] = "animate,begin";
static const char SIG_ANIMATE_DONE[] = "animate,done";
@ -1862,20 +1861,12 @@ _efl_ui_flip_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Flip_Data *sd)
efl_canvas_group_del(efl_super(obj, MY_CLASS));
}
EAPI Evas_Object *
elm_flip_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
_efl_ui_flip_efl_object_constructor(Eo *obj, Efl_Ui_Flip_Data *sd)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
sd->obj = obj;
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_PAGE_TAB_LIST);
@ -2313,12 +2304,6 @@ _efl_ui_flip_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Dat
return eina_list_data_idx(pd->content_list, (void *)subobj);
}
static void
_efl_ui_flip_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EAPI void
elm_flip_interaction_direction_hitsize_set(Efl_Ui_Flip *obj, Elm_Flip_Direction dir, double hitsize)
{
@ -2371,3 +2356,30 @@ ELM_PART_CONTENT_DEFAULT_GET(efl_ui_flip, "front")
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_flip)
#include "efl_ui_flip.eo.c"
#include "efl_ui_flip_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_flip"
static void
_efl_ui_flip_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_flip_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_FLIP_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_flip_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_FLIP_LEGACY_CLASS, parent);
}
#include "efl_ui_flip_legacy.eo.c"

View File

@ -227,7 +227,6 @@ class Efl.Ui.Flip (Efl.Ui.Widget, Efl.Pack.Linear, Efl.Part)
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Widget.widget_sub_object_add;
Efl.Ui.Widget.theme_apply;

View File

@ -0,0 +1,9 @@
class Efl.Ui.Flip_Legacy (Efl.Ui.Flip, Efl.Ui.Legacy)
{
[[Efl UI flip class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -14,7 +14,6 @@
#define MY_CLASS EFL_UI_FRAME_CLASS
#define MY_CLASS_PFX efl_ui_frame
#define MY_CLASS_NAME "Efl.Ui.Frame"
#define MY_CLASS_NAME_LEGACY "elm_frame"
static const char SIG_CLICKED[] = "clicked";
@ -140,18 +139,10 @@ _efl_ui_frame_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UN
elm_layout_sizing_eval(obj);
}
EAPI Evas_Object *
elm_frame_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
_efl_ui_frame_efl_object_constructor(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_FRAME);
@ -210,12 +201,6 @@ _efl_ui_frame_collapse_get(Eo *obj EINA_UNUSED, Efl_Ui_Frame_Data *sd)
return sd->collapsed;
}
EOLIAN static void
_efl_ui_frame_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
/* Default text (title) and content */
ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data)
@ -235,3 +220,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_frame)
ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_frame)
#include "efl_ui_frame.eo.c"
#include "efl_ui_frame_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_frame"
static void
_efl_ui_frame_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_frame_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_FRAME_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_frame_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_FRAME_LEGACY_CLASS, parent);
}
#include "efl_ui_frame_legacy.eo.c"

View File

@ -55,7 +55,6 @@ class Efl.Ui.Frame (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Text, Efl.Text.Markup,
}
implements {
Efl.Object.constructor;
class.constructor;
Efl.Canvas.Group.group_calculate;
Efl.Text.text { get; set; }
Efl.Text.Markup.markup { get; set; }

View File

@ -0,0 +1,14 @@
class Efl.Ui.Frame_Legacy (Efl.Ui.Frame, Efl.Ui.Legacy)
{
[[Frame widget
The Frame widget allows for collapsing and expanding the content widget
by clicking on the frame label.
the label and content can be set using text_set and content_set api.
]]
data: null;
implements {
Efl.Object.constructor;
class.constructor;
}
}

View File

@ -16,7 +16,6 @@
#define MY_CLASS EFL_UI_IMAGE_CLASS
#define MY_CLASS_NAME "Efl.Ui.Image"
#define MY_CLASS_NAME_LEGACY "elm_image"
#define NON_EXISTING (void *)-1
static const char *icon_theme = NULL;
@ -850,23 +849,10 @@ _on_size_hints_changed(void *data, const Efl_Event *ev)
_efl_ui_image_internal_sizing_eval(ev->object, data);
}
EAPI Evas_Object *
elm_image_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
Evas_Object *obj = elm_legacy_add(MY_CLASS, parent);
EFL_UI_IMAGE_DATA_GET(obj, priv);
efl_event_callback_add(obj, EFL_GFX_EVENT_CHANGE_SIZE_HINTS, _on_size_hints_changed, priv);
return obj;
}
EOLIAN static Eo *
_efl_ui_image_efl_object_constructor(Eo *obj, Efl_Ui_Image_Data *pd)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_IMAGE);
@ -1518,12 +1504,6 @@ _efl_ui_image_efl_player_play_get(Eo *obj, Efl_Ui_Image_Data *sd)
return _efl_ui_image_animated_play_get_internal(obj, sd);
}
static void
_efl_ui_image_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static void
_efl_ui_image_efl_image_scale_type_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd EINA_UNUSED, Efl_Image_Scale_Type scale_type)
{
@ -2278,3 +2258,35 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_image, Efl_Ui_Image_Data)
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_image)
#include "efl_ui_image.eo.c"
#include "efl_ui_image_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_image"
static void
_efl_ui_image_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_image_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_IMAGE_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_image_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
Evas_Object *obj = elm_legacy_add(EFL_UI_IMAGE_LEGACY_CLASS, parent);
EFL_UI_IMAGE_DATA_GET(obj, priv);
efl_event_callback_add(obj, EFL_GFX_EVENT_CHANGE_SIZE_HINTS, _on_size_hints_changed, priv);
return obj;
}
#include "efl_ui_image_legacy.eo.c"

View File

@ -88,7 +88,6 @@ class Efl.Ui.Image (Efl.Ui.Widget, Efl.Ui.Clickable, Efl.Ui.Draggable,
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.File.file { get; set; }
Efl.File.mmap { set; }

View File

@ -0,0 +1,9 @@
class Efl.Ui.Image_Legacy (Efl.Ui.Image, Efl.Ui.Legacy)
{
[[ Efl UI image class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -21,7 +21,6 @@
#define MY_CLASS EFL_UI_IMAGE_ZOOMABLE_CLASS
#define MY_CLASS_NAME "Efl.Ui.Image_Zoomable"
#define MY_CLASS_NAME_LEGACY "elm_photocam"
/*
* TODO (maybe - optional future stuff):
@ -1789,7 +1788,6 @@ EOLIAN static Eo *
_efl_ui_image_zoomable_efl_object_constructor(Eo *obj, Efl_Ui_Image_Zoomable_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_IMAGE);
@ -2954,10 +2952,8 @@ _efl_ui_image_zoomable_efl_player_play_get(Eo *obj, Efl_Ui_Image_Zoomable_Data *
}
EOLIAN static void
_efl_ui_image_zoomable_class_constructor(Efl_Class *klass)
_efl_ui_image_zoomable_class_constructor(Efl_Class *klass EINA_UNUSED)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
PHOTO_FILE_LOAD_ERROR_GENERIC = eina_error_msg_static_register("Generic load error");
PHOTO_FILE_LOAD_ERROR_DOES_NOT_EXIST = eina_error_msg_static_register("File does not exist");
PHOTO_FILE_LOAD_ERROR_PERMISSION_DENIED = eina_error_msg_static_register("Permission denied to an existing file");
@ -2983,13 +2979,39 @@ _efl_ui_image_zoomable_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNU
return &atspi_actions[0];
}
/* Legacy APIs */
/* Standard widget overrides */
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_image_zoomable, Efl_Ui_Image_Zoomable_Data)
/* Internal EO APIs and hidden overrides */
#define EFL_UI_IMAGE_ZOOMABLE_EXTRA_OPS \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_image_zoomable)
#include "efl_ui_image_zoomable.eo.c"
#include "efl_ui_image_zoomable_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_photocam"
static void
_efl_ui_image_zoomable_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_image_zoomable_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_IMAGE_ZOOMABLE_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_photocam_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
return elm_legacy_add(EFL_UI_IMAGE_ZOOMABLE_LEGACY_CLASS, parent);
}
static inline void
@ -3223,13 +3245,4 @@ elm_photocam_image_region_get(const Efl_Ui_Image_Zoomable *obj, int *x, int *y,
if (h) *h = r.h;
}
/* Standard widget overrides */
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_image_zoomable, Efl_Ui_Image_Zoomable_Data)
/* Internal EO APIs and hidden overrides */
#define EFL_UI_IMAGE_ZOOMABLE_EXTRA_OPS \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_image_zoomable)
#include "efl_ui_image_zoomable.eo.c"
#include "efl_ui_image_zoomable_legacy.eo.c"

View File

@ -0,0 +1,9 @@
class Efl.Ui.Image_Zoomable_Legacy (Efl.Ui.Image_Zoomable, Efl.Ui.Legacy)
{
[[Elementary Image Zoomable class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -17,7 +17,6 @@
#define MY_CLASS_PFX efl_ui_layout
#define MY_CLASS_NAME "Efl.Ui.Layout"
#define MY_CLASS_NAME_LEGACY "elm_layout"
Eo *_efl_ui_layout_pack_proxy_get(Efl_Ui_Layout *obj, Edje_Part_Type type, const char *part);
static void _efl_model_properties_changed_cb(void *, const Efl_Event *);
@ -802,9 +801,8 @@ EOLIAN static Efl_Ui_Theme_Apply
_efl_ui_layout_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style)
{
Eina_Bool changed = EINA_FALSE;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
if (!wd->legacy && efl_finalized_get(obj))
if (!elm_widget_is_legacy(obj) && efl_finalized_get(obj))
{
ERR("Efl.Ui.Layout.theme can only be set before finalize!");
return EFL_UI_THEME_APPLY_FAILED;
@ -1153,7 +1151,7 @@ _efl_ui_layout_text_generic_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *par
if (!text) return EINA_TRUE;
if (wd->legacy)
if (elm_widget_is_legacy(obj))
{
if (!edje_object_part_text_escaped_set
(wd->resize_obj, part, text))
@ -2088,30 +2086,17 @@ _efl_ui_layout_efl_ui_model_factory_connect_connect(Eo *obj EINA_UNUSED, Efl_Ui_
elm_layout_content_set(obj, name, new_ev);
}
EAPI Evas_Object *
elm_layout_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
_efl_ui_layout_efl_object_constructor(Eo *obj, Efl_Ui_Layout_Data *sd)
{
sd->obj = obj;
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_FILLER);
return obj;
}
EOLIAN static void _efl_ui_layout_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Efl_Object*
_efl_ui_layout_efl_object_finalize(Eo *obj, Efl_Ui_Layout_Data *pd EINA_UNUSED)
{
@ -2137,8 +2122,264 @@ _efl_ui_layout_efl_layout_signal_signal_process(Eo *obj, Efl_Ui_Layout_Data *pd
efl_layout_signal_process(wd->resize_obj, recurse);
}
/* Efl.Part implementation */
/* Legacy APIs */
EOLIAN static Eo *
_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part)
{
Efl_Canvas_Layout_Part_Type type = EFL_CANVAS_LAYOUT_PART_TYPE_NONE;
EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL);
// Check part type without using edje_object_part_object_get(), as this
// can cause recalc, which has side effects... and could be slow.
if (eina_streq(part, "background"))
{
if (efl_layout_group_part_exist_get(wd->resize_obj, part))
type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
if (type != EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW)
{
if (type < EFL_CANVAS_LAYOUT_PART_TYPE_LAST &&
type > EFL_CANVAS_LAYOUT_PART_TYPE_NONE)
{
const char *file = NULL, *key = NULL;
efl_file_get(wd->resize_obj, &file, &key);
WRN("Layout has a background but it's not a swallow: '%s'",
elm_widget_theme_element_get(obj));
}
return efl_part(efl_super(obj, MY_CLASS), part);
}
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_BG_CLASS, obj, part);
}
else if (eina_streq(part, "shadow"))
return efl_part(efl_super(obj, MY_CLASS), part);
if (!efl_layout_group_part_exist_get(wd->resize_obj, part))
{
// edje part will handle the error message
return efl_part(wd->resize_obj, part);
}
type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
if (type >= EFL_CANVAS_LAYOUT_PART_TYPE_LAST)
{
ERR("Invalid type found for part '%s' in group '%s'",
part, elm_widget_theme_element_get(obj));
return NULL;
}
switch (type)
{
case EFL_CANVAS_LAYOUT_PART_TYPE_BOX:
case EFL_CANVAS_LAYOUT_PART_TYPE_TABLE:
return _efl_ui_layout_pack_proxy_get((Eo *) obj, type, part);
case EFL_CANVAS_LAYOUT_PART_TYPE_TEXT:
case EFL_CANVAS_LAYOUT_PART_TYPE_TEXTBLOCK:
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, part);
case EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW:
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, part);
default:
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CLASS, obj, part);
}
}
static const char *
_efl_ui_layout_default_content_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
{
const char *part = NULL;
if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_FALSE))
return NULL;
return part;
}
static const char *
_efl_ui_layout_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
{
const char *part = NULL;
if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE))
return NULL;
return part;
}
/* Efl.Ui.Layout.Part (common) */
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_set(Eo *obj, void *_pd EINA_UNUSED, const char *cursor)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_set(sd, pd->part, cursor);
}
EOLIAN static const char *
_efl_ui_layout_part_efl_ui_cursor_cursor_get(Eo *obj, void *_pd EINA_UNUSED)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_get(sd, pd->part);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_style_set(Eo *obj, void *_pd EINA_UNUSED, const char *style)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_style_set(sd, pd->part, style);
}
EOLIAN static const char *
_efl_ui_layout_part_efl_ui_cursor_cursor_style_get(Eo *obj, void *_pd EINA_UNUSED)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_style_get(sd, pd->part);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool allow)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_engine_only_set(sd, pd->part, !allow);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_get(Eo *obj, void *_pd EINA_UNUSED)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return !_efl_ui_layout_part_cursor_engine_only_get(sd, pd->part);
}
/* Efl.Ui.Layout.Part_Content */
ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
/* Efl.Ui.Layout.Part_Text */
ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
EOLIAN static const char *
_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
}
EOLIAN static void
_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
}
/* Efl.Ui.Layout.Part_Legacy */
ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
EOLIAN static const char *
_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
}
EOLIAN static void
_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
}
/* Efl.Ui.Layout.Part_Bg (common) */
EOLIAN static Efl_Object *
_efl_ui_layout_part_bg_efl_object_finalize(Eo *obj, void *_pd EINA_UNUSED)
{
Efl_Ui_Layout_Data *sd;
Elm_Part_Data *pd;
Eo *bg;
obj = efl_finalize(efl_super(obj, EFL_UI_LAYOUT_PART_BG_CLASS));
if (!obj) return NULL;
pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
sd = efl_data_scope_get(pd->obj, MY_CLASS);
bg = _efl_ui_widget_bg_get(pd->obj);
if (!_efl_ui_layout_content_set(pd->obj, sd, "background", bg))
{
ERR("Failed to swallow new background object!");
// Shouldn't happen. What now? del bg? call super? return null?
}
return obj;
}
/* Efl.Ui.Layout.Part_Xxx includes */
#include "efl_ui_layout_part.eo.c"
#include "efl_ui_layout_part_content.eo.c"
#include "efl_ui_layout_part_bg.eo.c"
#include "efl_ui_layout_part_text.eo.c"
#include "efl_ui_layout_part_legacy.eo.c"
/* Efl.Part end */
/* Internal EO APIs and hidden overrides */
EAPI EFL_VOID_FUNC_BODY(elm_layout_sizing_eval)
EFL_FUNC_BODY_CONST(elm_layout_text_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
EFL_FUNC_BODY_CONST(elm_layout_content_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
#define EFL_UI_LAYOUT_EXTRA_OPS \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_layout), \
ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_layout), \
ELM_PART_TEXT_DEFAULT_OPS(efl_ui_layout), \
ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX), \
ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX), \
EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _elm_layout_sizing_eval), \
EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_layout_efl_object_dbg_info_get)
#include "efl_ui_layout.eo.c"
#include "efl_ui_layout_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_layout"
static void
_efl_ui_layout_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_layout_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_LAYOUT_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_layout_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_LAYOUT_LEGACY_CLASS, parent);
}
EAPI Eina_Bool
elm_layout_file_set(Eo *obj, const char *file, const char *group)
@ -2425,239 +2666,4 @@ elm_layout_theme_set(Evas_Object *obj, const char *klass, const char *group, con
return (ta != EFL_UI_THEME_APPLY_FAILED);
}
/* End of legacy only */
/* Efl.Part implementation */
EOLIAN static Eo *
_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char *part)
{
Efl_Canvas_Layout_Part_Type type = EFL_CANVAS_LAYOUT_PART_TYPE_NONE;
EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL);
// Check part type without using edje_object_part_object_get(), as this
// can cause recalc, which has side effects... and could be slow.
if (eina_streq(part, "background"))
{
if (efl_layout_group_part_exist_get(wd->resize_obj, part))
type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
if (type != EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW)
{
if (type < EFL_CANVAS_LAYOUT_PART_TYPE_LAST &&
type > EFL_CANVAS_LAYOUT_PART_TYPE_NONE)
{
const char *file = NULL, *key = NULL;
efl_file_get(wd->resize_obj, &file, &key);
WRN("Layout has a background but it's not a swallow: '%s'",
elm_widget_theme_element_get(obj));
}
return efl_part(efl_super(obj, MY_CLASS), part);
}
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_BG_CLASS, obj, part);
}
else if (eina_streq(part, "shadow"))
return efl_part(efl_super(obj, MY_CLASS), part);
if (!efl_layout_group_part_exist_get(wd->resize_obj, part))
{
// edje part will handle the error message
return efl_part(wd->resize_obj, part);
}
type = efl_canvas_layout_part_type_get(efl_part(wd->resize_obj, part));
if (type >= EFL_CANVAS_LAYOUT_PART_TYPE_LAST)
{
ERR("Invalid type found for part '%s' in group '%s'",
part, elm_widget_theme_element_get(obj));
return NULL;
}
switch (type)
{
case EFL_CANVAS_LAYOUT_PART_TYPE_BOX:
case EFL_CANVAS_LAYOUT_PART_TYPE_TABLE:
return _efl_ui_layout_pack_proxy_get((Eo *) obj, type, part);
case EFL_CANVAS_LAYOUT_PART_TYPE_TEXT:
case EFL_CANVAS_LAYOUT_PART_TYPE_TEXTBLOCK:
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, part);
case EFL_CANVAS_LAYOUT_PART_TYPE_SWALLOW:
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, part);
default:
return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CLASS, obj, part);
}
}
static const char *
_efl_ui_layout_default_content_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
{
const char *part = NULL;
if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_FALSE))
return NULL;
return part;
}
static const char *
_efl_ui_layout_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED)
{
const char *part = NULL;
if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE))
return NULL;
return part;
}
/* Efl.Ui.Layout.Part (common) */
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_set(Eo *obj, void *_pd EINA_UNUSED, const char *cursor)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_set(sd, pd->part, cursor);
}
EOLIAN static const char *
_efl_ui_layout_part_efl_ui_cursor_cursor_get(Eo *obj, void *_pd EINA_UNUSED)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_get(sd, pd->part);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_style_set(Eo *obj, void *_pd EINA_UNUSED, const char *style)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_style_set(sd, pd->part, style);
}
EOLIAN static const char *
_efl_ui_layout_part_efl_ui_cursor_cursor_style_get(Eo *obj, void *_pd EINA_UNUSED)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_style_get(sd, pd->part);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool allow)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return _efl_ui_layout_part_cursor_engine_only_set(sd, pd->part, !allow);
}
EOLIAN static Eina_Bool
_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_get(Eo *obj, void *_pd EINA_UNUSED)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
return !_efl_ui_layout_part_cursor_engine_only_get(sd, pd->part);
}
/* Efl.Ui.Layout.Part_Content */
ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_content, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
/* Efl.Ui.Layout.Part_Text */
ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_text, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
EOLIAN static const char *
_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
}
EOLIAN static void
_efl_ui_layout_part_text_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
}
/* Efl.Ui.Layout.Part_Legacy */
ELM_PART_OVERRIDE_CONTENT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_CONTENT_UNSET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_GET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
ELM_PART_OVERRIDE_TEXT_MARKUP_SET_FULL(efl_ui_layout_part_legacy, efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
EOLIAN static const char *
_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_get(Eo *obj, void *_pd EINA_UNUSED, const char **domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
return elm_widget_part_translatable_text_get(pd->obj, pd->part, domain);
}
EOLIAN static void
_efl_ui_layout_part_legacy_efl_ui_translatable_translatable_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *label, const char *domain)
{
Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
elm_widget_part_translatable_text_set(pd->obj, pd->part, label, domain);
}
/* Efl.Ui.Layout.Part_Bg (common) */
EOLIAN static Efl_Object *
_efl_ui_layout_part_bg_efl_object_finalize(Eo *obj, void *_pd EINA_UNUSED)
{
Efl_Ui_Layout_Data *sd;
Elm_Part_Data *pd;
Eo *bg;
obj = efl_finalize(efl_super(obj, EFL_UI_LAYOUT_PART_BG_CLASS));
if (!obj) return NULL;
pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
sd = efl_data_scope_get(pd->obj, MY_CLASS);
bg = _efl_ui_widget_bg_get(pd->obj);
if (!_efl_ui_layout_content_set(pd->obj, sd, "background", bg))
{
ERR("Failed to swallow new background object!");
// Shouldn't happen. What now? del bg? call super? return null?
}
return obj;
}
/* Efl.Ui.Layout.Part_Xxx includes */
#include "efl_ui_layout_part.eo.c"
#include "efl_ui_layout_part_content.eo.c"
#include "efl_ui_layout_part_bg.eo.c"
#include "efl_ui_layout_part_text.eo.c"
#include "efl_ui_layout_part_legacy.eo.c"
/* Efl.Part end */
/* Internal EO APIs and hidden overrides */
EAPI EFL_VOID_FUNC_BODY(elm_layout_sizing_eval)
EFL_FUNC_BODY_CONST(elm_layout_text_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
EFL_FUNC_BODY_CONST(elm_layout_content_aliases_get, const Elm_Layout_Part_Alias_Description *, NULL)
ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
#define EFL_UI_LAYOUT_EXTRA_OPS \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_layout), \
ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_layout), \
ELM_PART_TEXT_DEFAULT_OPS(efl_ui_layout), \
ELM_LAYOUT_CONTENT_ALIASES_OPS(MY_CLASS_PFX), \
ELM_LAYOUT_TEXT_ALIASES_OPS(MY_CLASS_PFX), \
EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _elm_layout_sizing_eval), \
EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_layout_efl_object_dbg_info_get)
#include "efl_ui_layout.eo.c"
#include "efl_ui_layout_legacy.eo.c"

View File

@ -43,7 +43,6 @@ class Efl.Ui.Layout (Efl.Ui.Widget, Efl.Part, Efl.Container, Efl.File,
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Object.finalize;
Efl.File.file { get; set; }

View File

@ -0,0 +1,9 @@
class Efl.Ui.Layout_Legacy (Efl.Ui.Layout, Efl.Ui.Legacy)
{
[[Elementary layout class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -0,0 +1,8 @@
#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
#endif
#include <Elementary.h>
#include "elm_priv.h"
#include "efl_ui_legacy.eo.c"

View File

@ -0,0 +1,9 @@
interface EFl.Ui.Legacy (Efl.Interface)
{
[[The bg (background) widget is used for setting (solid) background decorations
in a window (unless it has transparency enabled) or on any container object. It
works just like an image but has some properties useful for backgrounds, such as
setting it to tiled, centered, scaled or stretched.
]]
}

View File

@ -18,7 +18,6 @@
#define MY_CLASS_PFX efl_ui_multibuttonentry
#define MY_CLASS_NAME "Efl.Ui.Multibuttonentry"
#define MY_CLASS_NAME_LEGACY "elm_multibuttonentry"
#define MAX_STR 256
#define MIN_W_ENTRY 10
@ -1636,13 +1635,6 @@ _efl_ui_multibuttonentry_efl_ui_widget_on_access_update(Eo *obj, Efl_Ui_Multibut
_access_obj_process(obj, _efl_ui_multibuttonentry_smart_focus_next_enable);
}
EAPI Evas_Object *
elm_multibuttonentry_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
static void
_legacy_focused(void *data, const Efl_Event *ev)
{
@ -1684,7 +1676,6 @@ EOLIAN static Eo *
_efl_ui_multibuttonentry_efl_object_constructor(Eo *obj, Efl_Ui_Multibuttonentry_Data *sd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_PANEL);
@ -1977,10 +1968,8 @@ _efl_ui_multibuttonentry_efl_ui_format_format_cb_set(Eo *obj EINA_UNUSED, Efl_Ui
}
static void
_efl_ui_multibuttonentry_class_constructor(Efl_Class *klass)
_efl_ui_multibuttonentry_class_constructor(Efl_Class *klass EINA_UNUSED)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
if (_elm_config->access_mode != ELM_ACCESS_MODE_OFF)
_efl_ui_multibuttonentry_smart_focus_next_enable = EINA_TRUE;
}
@ -2082,6 +2071,30 @@ ELM_PART_OVERRIDE_TEXT_GET(efl_ui_multibuttonentry, EFL_UI_MULTIBUTTONENTRY, Efl
#include "elm_multibuttonentry_item.eo.c"
#include "efl_ui_multibuttonentry.eo.c"
#include "efl_ui_multibuttonentry_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_multibuttonentry"
static void
_efl_ui_multibuttonentry_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_multibuttonentry_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_MULTIBUTTONENTRY_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_multibuttonentry_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_MULTIBUTTONENTRY_LEGACY_CLASS, parent);
}
/* Legacy APIs */
typedef struct
@ -2128,3 +2141,5 @@ elm_multibuttonentry_format_function_set(Eo *obj, Efl_Ui_Multibuttonentry_Format
efl_ui_format_cb_set(obj, mfwd, _format_legacy_to_format_eo_cb, _format_legacy_to_format_eo_free_cb);
}
#include "efl_ui_multibuttonentry_legacy.eo.c"

View File

@ -0,0 +1,9 @@
class Efl.Ui.Multibuttonentry_Legacy (Efl.Ui.Multibuttonentry, Efl.Ui.Legacy)
{
[[Elementary multibuttonentry class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -19,7 +19,6 @@
#define MY_CLASS_PFX efl_ui_panes
#define MY_CLASS_NAME "Efl.Ui.Panes"
#define MY_CLASS_NAME_LEGACY "elm_panes"
/**
* TODO
* Update the minimun height of the bar in the theme.
@ -465,7 +464,6 @@ EOLIAN static Eo *
_efl_ui_panes_efl_object_constructor(Eo *obj, Efl_Ui_Panes_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_SPLIT_PANE);
@ -550,12 +548,6 @@ _efl_ui_panes_fixed_get(Eo *obj EINA_UNUSED, Efl_Ui_Panes_Data *sd)
return sd->fixed;
}
static void
_efl_ui_panes_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
/* Efl.Part begin */
static Eina_Bool
@ -660,13 +652,30 @@ ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_panes)
ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_panes), \
ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_panes)
/* Legacy APIs */
#include "efl_ui_panes.eo.c"
#include "efl_ui_panes_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_panes"
static void
_efl_ui_panes_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_panes_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_PANES_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_panes_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
return elm_legacy_add(EFL_UI_PANES_LEGACY_CLASS, parent);
}
EAPI void
@ -826,6 +835,4 @@ elm_panes_content_right_unset(Evas_Object *obj)
return elm_layout_content_unset(obj, "right");
}
/* Legacy APIs end */
#include "efl_ui_panes.eo.c"
#include "efl_ui_panes_legacy.eo.c"

View File

@ -49,7 +49,6 @@ class Efl.Ui.Panes (Efl.Ui.Layout, Efl.Ui.Direction,
second: Efl.Ui.Panes.Part; [[The second half of the panes widget (right or bottom)]]
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Direction.direction { get; set; [[Only supports $vertical and $horizontal. Default is $vertical.]] }

View File

@ -0,0 +1,9 @@
class Efl.Ui.Panes_Legacy(Efl.Ui.Panes, Efl.Ui.Legacy)
{
[[Elementary panes class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -19,7 +19,6 @@
#define MY_CLASS_PFX efl_ui_progressbar
#define MY_CLASS_NAME "Efl.Ui.Progressbar"
#define MY_CLASS_NAME_LEGACY "elm_progressbar"
static const char SIG_CHANGED[] = "changed";
@ -421,7 +420,6 @@ EOLIAN static Eo *
_efl_ui_progressbar_efl_object_constructor(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_PROGRESS_BAR);
@ -585,12 +583,6 @@ _efl_ui_progressbar_pulse_get(Eo *obj EINA_UNUSED, Efl_Ui_Progressbar_Data *sd)
return (sd->pulse_state && sd->pulse);
}
EOLIAN static void
_efl_ui_progressbar_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
/* Efl.Part begin */
EOLIAN static Eo *
@ -651,13 +643,29 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_progressbar)
#include "efl_ui_progressbar.eo.c"
/* Legacy APIs */
#include "efl_ui_progressbar_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_progressbar"
static void
_efl_ui_progressbar_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_progressbar_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_PROGRESSBAR_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_progressbar_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
Eo *obj = elm_legacy_add(MY_CLASS, parent);
Eo *obj = elm_legacy_add(EFL_UI_PROGRESSBAR_LEGACY_CLASS, parent);
elm_progressbar_unit_format_set(obj, "%.0f %%");
return obj;
@ -825,3 +833,5 @@ elm_progressbar_value_get(const Evas_Object *obj)
{
return efl_ui_range_value_get(obj);
}
#include "efl_ui_progressbar_legacy.eo.c"

View File

@ -49,7 +49,6 @@ class Efl.Ui.Progressbar (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Format,
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Widget.widget_sub_object_add;

View File

@ -0,0 +1,9 @@
class Efl.Ui.Progressbar_Legacy (Efl.Ui.Progressbar, Efl.Ui.Legacy)
{
[[Elementary progressbar class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -17,7 +17,6 @@
#define MY_CLASS_PFX efl_ui_radio
#define MY_CLASS_NAME "Efl.Ui.Radio"
#define MY_CLASS_NAME_LEGACY "elm_radio"
static const Elm_Layout_Part_Alias_Description _text_aliases[] =
{
@ -209,7 +208,6 @@ _efl_ui_radio_efl_object_constructor(Eo *obj, Efl_Ui_Radio_Data *pd)
if (!elm_widget_theme_klass_get(obj))
elm_widget_theme_klass_set(obj, "radio");
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
@ -337,12 +335,6 @@ _efl_ui_radio_efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Radio_Data *_pd E
return EINA_TRUE;
}
EOLIAN static void
_efl_ui_radio_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN const Efl_Access_Action_Data *
_efl_ui_radio_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_Ui_Radio_Data *pd EINA_UNUSED)
{
@ -380,13 +372,30 @@ ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(MY_CLASS_PFX)
#include "efl_ui_radio.eo.c"
#include "efl_ui_radio_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_radio"
/* Legacy APIs */
static void
_efl_ui_radio_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_radio_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_RADIO_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_radio_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
return elm_legacy_add(EFL_UI_RADIO_LEGACY_CLASS, parent);
}
EAPI void
@ -400,3 +409,5 @@ elm_radio_value_get(const Evas_Object *obj)
{
return efl_ui_nstate_value_get(obj);
}
#include "efl_ui_radio_legacy.eo.c"

View File

@ -59,7 +59,6 @@ class Efl.Ui.Radio (Efl.Ui.Check, Efl.Access.Widget.Action, Efl.Content)
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Object.destructor;
Efl.Ui.Widget.theme_apply;

View File

@ -0,0 +1,9 @@
class Efl.Ui.Radio_Legacy (Efl.Ui.Radio, Efl.Ui.Legacy)
{
[[Elementary radio class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -18,7 +18,6 @@
#define MY_CLASS_PFX efl_ui_slider
#define MY_CLASS_NAME "Efl.Ui.Slider"
#define MY_CLASS_NAME_LEGACY "elm_slider"
#define SLIDER_DELAY_CHANGED_INTERVAL 0.2
#define SLIDER_STEP 0.05
@ -1222,7 +1221,6 @@ EOLIAN static Eo *
_efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_SLIDER);
@ -1313,12 +1311,6 @@ _efl_ui_slider_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Slider_Data *
return int_ret;
}
EOLIAN static void
_efl_ui_slider_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
// A11Y Accessibility
EOLIAN static void
@ -1540,13 +1532,42 @@ _efl_ui_slider_part_indicator_visible_mode_get(Eo *obj, void *_pd EINA_UNUSED)
/* Efl.Part end */
/* Legacy APIs */
/* Internal EO APIs and hidden overrides */
ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_slider)
ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_slider)
#define EFL_UI_SLIDER_EXTRA_OPS \
ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_slider), \
ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_slider), \
ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_slider), \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_slider)
#include "efl_ui_slider.eo.c"
#include "efl_ui_slider_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_slider"
static void
_efl_ui_slider_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_slider_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_SLIDER_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_slider_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
return elm_legacy_add(EFL_UI_SLIDER_LEGACY_CLASS, parent);
}
EAPI void
@ -1819,15 +1840,4 @@ elm_slider_indicator_visible_mode_get(const Evas_Object *obj)
return efl_ui_slider_part_indicator_visible_mode_get(efl_part(obj, "indicator"));
}
/* Internal EO APIs and hidden overrides */
ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_slider)
ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_slider)
#define EFL_UI_SLIDER_EXTRA_OPS \
ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_slider), \
ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_slider), \
ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_slider), \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_slider)
#include "efl_ui_slider.eo.c"
#include "efl_ui_slider_legacy.eo.c"

View File

@ -34,7 +34,6 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction,
[[A floating indicator above the slider.]]
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Canvas.Group.group_calculate;
Efl.Ui.Widget.theme_apply;

View File

@ -0,0 +1,9 @@
class Efl.Ui.Slider_Legacy (Efl.Ui.Slider, Efl.Ui.Legacy)
{
[[Elementary slider class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -18,7 +18,6 @@
#define MY_CLASS EFL_UI_VIDEO_CLASS
#define MY_CLASS_NAME "Efl.Ui.Video"
#define MY_CLASS_NAME_LEGACY "elm_video"
static const Evas_Smart_Cb_Description _smart_callbacks[] = {
{SIG_LAYOUT_FOCUSED, ""}, /**< handled by elm_layout */
@ -258,18 +257,10 @@ _efl_ui_video_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Video_Data *sd)
efl_canvas_group_del(efl_super(obj, MY_CLASS));
}
EAPI Evas_Object *
elm_video_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent);
}
EOLIAN static Eo *
_efl_ui_video_efl_object_constructor(Eo *obj, Efl_Ui_Video_Data *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_role_set(obj, EFL_ACCESS_ROLE_ANIMATION);
@ -373,12 +364,6 @@ _efl_ui_video_remember_position_get(Eo *obj EINA_UNUSED, Efl_Ui_Video_Data *sd)
return sd->remember;
}
EOLIAN static void
_efl_ui_video_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN const Efl_Access_Action_Data *
_efl_ui_video_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_Ui_Video_Data *pd EINA_UNUSED)
{
@ -390,6 +375,42 @@ _efl_ui_video_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Efl_
};
return &atspi_actions[0];
}
/* Internal EO APIs and hidden overrides */
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_video, Efl_Ui_Video_Data)
/* Internal EO APIs and hidden overrides */
#define EFL_UI_VIDEO_EXTRA_OPS \
ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_video), \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_video)
#include "efl_ui_video.eo.c"
#include "efl_ui_video_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_video"
static void
_efl_ui_video_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_video_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_VIDEO_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_video_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_VIDEO_LEGACY_CLASS, parent);
}
EAPI Eina_Bool
elm_video_file_set(Eo *obj, const char *filename)
@ -475,14 +496,4 @@ elm_video_pause(Evas_Object *obj)
efl_player_play_set(obj, EINA_FALSE);
}
/* Internal EO APIs and hidden overrides */
ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_video, Efl_Ui_Video_Data)
/* Internal EO APIs and hidden overrides */
#define EFL_UI_VIDEO_EXTRA_OPS \
ELM_LAYOUT_SIZING_EVAL_OPS(efl_ui_video), \
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_video)
#include "efl_ui_video.eo.c"
#include "efl_ui_video_legacy.eo.c"

View File

@ -42,7 +42,6 @@ class Efl.Ui.Video (Efl.Ui.Layout, Efl.File,
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.File.file { get; set; }
Efl.Ui.Widget.widget_event;

View File

@ -0,0 +1,9 @@
class Efl.Ui.Video_Legacy (Efl.Ui.Video, Efl.Ui.Legacy)
{
[[Efl UI video class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -55,9 +55,6 @@ typedef struct _Elm_Event_Cb_Data Elm_Event_Cb_Data;
typedef struct _Elm_Label_Data Elm_Label_Data;
typedef struct _Elm_Translate_String_Data Elm_Translate_String_Data;
/* FIXME: EAPI because of elm_code_widget test case */
EAPI Eina_Bool _elm_legacy_add = EINA_FALSE;
struct _Elm_Event_Cb_Data
{
Elm_Event_Cb func;
@ -5162,11 +5159,6 @@ _efl_ui_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UN
Eo *parent = NULL;
sd->on_create = EINA_TRUE;
if (_elm_legacy_add)
{
sd->legacy = _elm_legacy_add;
_elm_legacy_add = EINA_FALSE;
}
efl_canvas_group_clipped_set(obj, EINA_FALSE);
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
@ -5217,13 +5209,6 @@ _efl_ui_widget_efl_object_destructor(Eo *obj, Elm_Widget_Smart_Data *sd)
}
/* internal eo */
static void
_efl_ui_widget_legacy_ctor(Eo *obj, Elm_Widget_Smart_Data *sd)
{
efl_canvas_object_legacy_ctor(efl_super(obj, MY_CLASS));
sd->legacy = EINA_TRUE;
_elm_legacy_add = EINA_FALSE;
}
EOLIAN static void
_efl_ui_widget_efl_object_debug_name_override(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSED, Eina_Strbuf *sb)
@ -6009,7 +5994,6 @@ ELM_PART_TEXT_DEFAULT_GET(efl_ui_widget, NULL)
EFL_CANVAS_GROUP_ADD_DEL_OPS(efl_ui_widget), \
ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_widget), \
ELM_PART_TEXT_DEFAULT_OPS(efl_ui_widget), \
EFL_OBJECT_OP_FUNC(efl_canvas_object_legacy_ctor, _efl_ui_widget_legacy_ctor), \
EFL_OBJECT_OP_FUNC(efl_dbg_info_get, _efl_ui_widget_efl_object_dbg_info_get)
#include "elm_widget_item.eo.c"

View File

@ -5103,7 +5103,6 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
/* FIXME: Major hack: calling the constructor in the middle of finalize. */
efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
evas_object_focus_set(obj, EINA_TRUE);
@ -6958,10 +6957,8 @@ _on_atspi_bus_connected(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUS
}
EOLIAN static void
_efl_ui_win_class_constructor(Efl_Class *klass)
_efl_ui_win_class_constructor(Efl_Class *klass EINA_UNUSED)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
if (_elm_config->atspi_mode)
{
Eo *bridge = _elm_atspi_bridge_get();
@ -8326,62 +8323,6 @@ _fake_canvas_set(Evas_Object *obj, Ecore_Evas *oee)
_elm_win_need_frame_adjust(sd, ecore_evas_engine_name_get(oee));
}
EAPI Evas_Object *
elm_win_add(Evas_Object *parent, const char *name, Efl_Ui_Win_Type type)
{
const Efl_Class *klass = MY_CLASS;
switch ((int) type)
{
case ELM_WIN_INLINED_IMAGE: klass = EFL_UI_WIN_INLINED_CLASS; break;
case ELM_WIN_SOCKET_IMAGE: klass = EFL_UI_WIN_SOCKET_CLASS; break;
default: break;
}
return elm_legacy_add(klass, parent,
efl_ui_win_name_set(efl_added, name),
efl_ui_win_type_set(efl_added, type));
}
EAPI Evas_Object *
elm_win_fake_add(Ecore_Evas *ee)
{
return elm_legacy_add(MY_CLASS, NULL,
_fake_canvas_set(efl_added, ee),
efl_ui_win_name_set(efl_added, NULL),
efl_ui_win_type_set(efl_added, ELM_WIN_FAKE));
}
EAPI Evas_Object *
elm_win_util_standard_add(const char *name, const char *title)
{
Evas_Object *win;
win = elm_legacy_add(EFL_UI_WIN_CLASS, NULL,
efl_text_set(efl_added, title),
efl_ui_win_name_set(efl_added, name),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC));
if (!win) return NULL;
_elm_win_standard_init(win);
return win;
}
EAPI Evas_Object *
elm_win_util_dialog_add(Evas_Object *parent, const char *name, const char *title)
{
Evas_Object *win;
win = elm_legacy_add(EFL_UI_WIN_CLASS, parent,
efl_text_set(efl_added, title),
efl_ui_win_name_set(efl_added, name),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC));
if (!win) return NULL;
_elm_win_standard_init(win);
return win;
}
/**
* @internal
*
@ -8676,3 +8617,78 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(efl_ui_win, Efl_Ui_Win_Data)
EFL_OBJECT_OP_FUNC(efl_canvas_object_legacy_ctor, _efl_ui_win_efl_canvas_object_legacy_ctor)
#include "efl_ui_win.eo.c"
#include "efl_ui_win_legacy.eo.h"
static void
_efl_ui_win_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_win_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_WIN_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_win_add(Evas_Object *parent, const char *name, Efl_Ui_Win_Type type)
{
const Efl_Class *klass = EFL_UI_WIN_LEGACY_CLASS;
switch ((int) type)
{
case ELM_WIN_INLINED_IMAGE: klass = EFL_UI_WIN_INLINED_CLASS; break;
case ELM_WIN_SOCKET_IMAGE: klass = EFL_UI_WIN_SOCKET_CLASS; break;
default: break;
}
return elm_legacy_add(klass, parent,
efl_ui_win_name_set(efl_added, name),
efl_ui_win_type_set(efl_added, type));
}
EAPI Evas_Object *
elm_win_fake_add(Ecore_Evas *ee)
{
return elm_legacy_add(EFL_UI_WIN_LEGACY_CLASS, NULL,
_fake_canvas_set(efl_added, ee),
efl_ui_win_name_set(efl_added, NULL),
efl_ui_win_type_set(efl_added, ELM_WIN_FAKE));
}
EAPI Evas_Object *
elm_win_util_standard_add(const char *name, const char *title)
{
Evas_Object *win;
win = elm_legacy_add(EFL_UI_WIN_LEGACY_CLASS, NULL,
efl_text_set(efl_added, title),
efl_ui_win_name_set(efl_added, name),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_BASIC));
if (!win) return NULL;
_elm_win_standard_init(win);
return win;
}
EAPI Evas_Object *
elm_win_util_dialog_add(Evas_Object *parent, const char *name, const char *title)
{
Evas_Object *win;
win = elm_legacy_add(EFL_UI_WIN_LEGACY_CLASS, parent,
efl_text_set(efl_added, title),
efl_ui_win_name_set(efl_added, name),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_DIALOG_BASIC));
if (!win) return NULL;
_elm_win_standard_init(win);
return win;
}
#include "efl_ui_win_legacy.eo.c"

View File

@ -0,0 +1,9 @@
class Efl.Ui.Win_Legacy (Efl.Ui.Win, Efl.Ui.Legacy)
{
[[Efl UI window class]]
data: null;
implements {
class.constructor;
Efl.Object.constructor;
}
}

View File

@ -10,7 +10,7 @@ enum Elm.Actionslider.Pos
all = (1 << 3) - 1 [[All positions for left/center/right.]]
}
class Elm.Actionslider (Efl.Ui.Layout, Efl.Ui.Selectable)
class Elm.Actionslider (Efl.Ui.Layout, Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[An actionslider is a switcher for 2 or 3 labels

View File

@ -1,6 +1,6 @@
import evas_box;
class Elm.Box (Efl.Ui.Widget, Efl.Ui.Focus.Composition)
class Elm.Box (Efl.Ui.Widget, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
{
[[Elementary box class]]
legacy_prefix: elm_box;

View File

@ -12,7 +12,7 @@ enum Elm.Bubble.Pos
bottom_right [[The arrow of the bubble points to the bottom right corner.]]
}
class Elm.Bubble (Efl.Ui.Layout, Efl.Ui.Clickable)
class Elm.Bubble (Efl.Ui.Layout, Efl.Ui.Clickable, Efl.Ui.Legacy)
{
[[Speech bubble widget used in messaging applications]]

View File

@ -72,7 +72,8 @@ struct Elm.Calendar.Mark; [[Item handle for a calendar mark.
with @Elm.Calendar.mark_del.
]]
class Elm.Calendar (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Efl.Access.Widget.Action)
class Elm.Calendar (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Efl.Access.Widget.Action,
Efl.Ui.Legacy)
{
[[Calendar widget

View File

@ -18,7 +18,7 @@ enum Elm.Clock.Edit_Mode
all = (1 << 6) - 1 [[All digits should be editable.]]
}
class Elm.Clock (Efl.Ui.Layout, Efl.Ui.Focus.Composition)
class Elm.Clock (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
{
[[Digital clock widget

View File

@ -11,6 +11,7 @@
#include "elm_code_parse.h"
#include "elm_code_syntax.h"
#include "elm_code_widget.eo.h"
#include "elm_code_widget_legacy.eo.h"
#include "elm_code_widget_legacy.h"
#include "elm_code_widget_selection.h"
#include "elm_code_diff_widget.h"

View File

@ -95,7 +95,7 @@ elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code)
// left side of diff
wcode1 = elm_code_create();
elm_code_parser_standard_add(wcode1, ELM_CODE_PARSER_STANDARD_DIFF);
widget_left = efl_add(ELM_CODE_WIDGET_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode1));
widget_left = elm_legacy_add(ELM_CODE_WIDGET_LEGACY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode1));
evas_object_size_hint_weight_set(widget_left, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(widget_left, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -106,7 +106,7 @@ elm_code_diff_widget_add(Evas_Object *parent, Elm_Code *code)
// right side of diff
wcode2 = elm_code_create();
elm_code_parser_standard_add(wcode2, ELM_CODE_PARSER_STANDARD_DIFF);
widget_right = efl_add(ELM_CODE_WIDGET_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode2));
widget_right = elm_legacy_add(ELM_CODE_WIDGET_LEGACY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, wcode2));
evas_object_size_hint_weight_set(widget_right, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(widget_right, EVAS_HINT_FILL, EVAS_HINT_FILL);

View File

@ -59,12 +59,19 @@ static Eina_Unicode status_icons[] = {
static void _elm_code_widget_resize(Elm_Code_Widget *widget, Elm_Code_Line *newline);
#ifndef ELM_CODE_TEST
#include "elm_code_widget_legacy.eo.h"
EAPI Evas_Object *
elm_code_widget_add(Evas_Object *parent, Elm_Code *code)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(MY_CLASS, parent, elm_obj_code_widget_code_set(efl_added, code));
return elm_legacy_add(ELM_CODE_WIDGET_LEGACY_CLASS, parent,
elm_obj_code_widget_code_set(efl_added, code));
}
#include "elm_code_widget_legacy.eo.c"
#endif // ELM_CODE_TEST
EOLIAN static Eo *

View File

@ -0,0 +1,5 @@
class Elm.Code_Widget_Legacy (Elm.Code_Widget, Efl.Ui.Legacy)
{
[[Elementary code widget]]
data: null;
}

View File

@ -13,7 +13,7 @@ enum Elm.Colorselector.Mode
}
class Elm.Colorselector (Efl.Ui.Layout, Efl.Ui.Focus.Composition,
Efl.Access.Widget.Action, Efl.Ui.Clickable)
Efl.Access.Widget.Action, Efl.Ui.Clickable, Efl.Ui.Legacy)
{
[[Elementary colorselector class]]
legacy_prefix: elm_colorselector;

View File

@ -1,6 +1,6 @@
class Elm.Combobox (Efl.Ui.Button, Efl.Ui.Selectable,
Efl.Access.Widget.Action,
Elm.Entry, Elm.Genlist, Elm.Hover)
Elm.Entry, Elm.Genlist, Elm.Hover, Efl.Ui.Legacy)
{
[[Elementary combobox class]]
legacy_prefix: elm_combobox;

View File

@ -1,4 +1,4 @@
class Elm.Conformant (Efl.Ui.Layout)
class Elm.Conformant (Efl.Ui.Layout, Efl.Ui.Legacy)
{
[[Elementary conformant class]]
legacy_prefix: elm_conformant;

View File

@ -9,7 +9,7 @@ enum Elm.Ctxpopup.Direction
}
class Elm.Ctxpopup (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Access.Widget.Action,
Efl.Ui.Menu)
Efl.Ui.Menu, Efl.Ui.Legacy)
{
[[Elementary context popup class]]
legacy_prefix: elm_ctxpopup;

View File

@ -1,4 +1,5 @@
class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item, Efl.Access.Widget.Action)
class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item, Efl.Access.Widget.Action,
Efl.Ui.Legacy)
{
[[Elementary context popup item class]]
legacy_prefix: elm_ctxpopup_item;

View File

@ -17,11 +17,29 @@
#include "elm_datetime.h"
#include "efl_ui_clock_legacy.eo.h"
#define MY_CLASS_NAME_LEGACY "elm_datetime"
static void
_efl_ui_clock_legacy_class_constructor(Efl_Class *klass)
{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
EOLIAN static Eo *
_efl_ui_clock_legacy_efl_object_constructor(Eo *obj, void *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, EFL_UI_CLOCK_LEGACY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
return obj;
}
EAPI Evas_Object *
elm_datetime_add(Evas_Object *parent)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
return elm_legacy_add(EFL_UI_CLOCK_CLASS, parent);
return elm_legacy_add(EFL_UI_CLOCK_LEGACY_CLASS, parent);
}
EAPI void
@ -131,3 +149,5 @@ elm_datetime_value_max_get(const Evas_Object *obj, Efl_Time *maxtime)
if (maxtime) *maxtime = efl_ui_clock_time_max_get(obj);
return EINA_TRUE;
}
#include "efl_ui_clock_legacy.eo.c"

View File

@ -17,7 +17,7 @@ enum Elm.Dayselector.Day
max [[Sentinel value to indicate last enum field during iteration]]
}
class Elm.Dayselector (Efl.Ui.Layout)
class Elm.Dayselector (Efl.Ui.Layout, Efl.Ui.Legacy)
{
[[Elementary dayselector class]]
legacy_prefix: elm_dayselector;

View File

@ -1,7 +1,7 @@
class Elm.Diskselector (Efl.Ui.Widget, Elm.Interface_Scrollable,
Efl.Access.Widget.Action,
Efl.Ui.Clickable, Efl.Ui.Scrollable,
Efl.Ui.Selectable)
Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[Elementary diskselector class]]
legacy_prefix: elm_diskselector;

View File

@ -1,4 +1,4 @@
class Elm.Diskselector.Item(Elm.Widget.Item)
class Elm.Diskselector.Item(Elm.Widget.Item, Efl.Ui.Legacy)
{
[[Elementary diskselector item class]]
legacy_prefix: elm_diskselector_item;

View File

@ -5,7 +5,8 @@ type Elm_Entry_Filter_Cb: __undefined_type; [[Elementary entry filter callback t
class Elm.Entry (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Efl.Access.Text, Efl.Access.Editable.Text, Efl.File,
Efl.Ui.Selectable, Efl.Ui.Scrollable, Efl.Access.Widget.Action)
Efl.Ui.Selectable, Efl.Ui.Scrollable, Efl.Access.Widget.Action,
Efl.Ui.Legacy)
{
[[Elementary entry class]]
legacy_prefix: elm_entry;

View File

@ -1,6 +1,6 @@
class Elm.Fileselector (Efl.Ui.Layout, Elm.Interface.Fileselector,
Efl.Access.Widget.Action,
Efl.Ui.Clickable, Efl.Ui.Selectable)
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[Elementary fileselector class]]
legacy_prefix: elm_fileselector;

View File

@ -1,4 +1,5 @@
class Elm.Fileselector_Button (Efl.Ui.Button, Elm.Interface.Fileselector)
class Elm.Fileselector_Button (Efl.Ui.Button, Elm.Interface.Fileselector,
Efl.Ui.Legacy)
{
[[Elementary fileselector button class]]
event_prefix: elm_fileselector_button;

View File

@ -1,5 +1,5 @@
class Elm.Fileselector_Entry (Efl.Ui.Layout, Elm.Interface.Fileselector,
Efl.Ui.Clickable, Efl.Ui.Selectable)
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[Elementary fileselector entry class]]
event_prefix: elm_fileselector_entry;

View File

@ -1,6 +1,6 @@
class Elm.Flipselector (Efl.Ui.Layout, Efl.Ui.Range,
Efl.Access.Widget.Action,
Efl.Ui.Selectable)
Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[Elementary flipselector class]]
legacy_prefix: elm_flipselector;

View File

@ -12,7 +12,7 @@ enum Elm.Gengrid.Reorder_Type
class Elm.Gengrid (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable,
Efl.Ui.Clickable, Efl.Access.Widget.Action,
Efl.Access.Selection)
Efl.Access.Selection, Efl.Ui.Legacy)
{
[[Elementary gengrid class]]
legacy_prefix: elm_gengrid;

View File

@ -25,7 +25,7 @@ enum Elm.Gengrid.Item.Field_Type
}
class Elm.Gengrid.Item(Elm.Widget.Item.Static_Focus, Efl.Ui.Focus.Object)
class Elm.Gengrid.Item(Elm.Widget.Item.Static_Focus, Efl.Ui.Focus.Object, Efl.Ui.Legacy)
{
[[Elementary gengrid item class]]
legacy_prefix: elm_gengrid_item;

View File

@ -4,7 +4,7 @@ import elm_genlist_item;
class Elm.Genlist (Efl.Ui.Layout, Efl.Ui.Focus.Composition, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Efl.Access.Widget_Action, Efl.Access.Selection,
Efl.Ui.Selectable)
Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[Elementary genlist class]]
legacy_prefix: elm_genlist;

View File

@ -38,7 +38,7 @@ enum Elm.Genlist.Item.Scrollto_Type
bottom = (1 << 3) [[To the bottom of viewport.]]
}
class Elm.Genlist.Item(Elm.Widget.Item.Static_Focus)
class Elm.Genlist.Item(Elm.Widget.Item.Static_Focus, Efl.Ui.Legacy)
{
[[Elementary genlist item class]]
legacy_prefix: elm_genlist_item;

View File

@ -31,7 +31,7 @@ enum Elm.Gesture.State
abort [[Ongoing gesture was aborted]]
}
class Elm.Gesture_Layer (Efl.Ui.Widget)
class Elm.Gesture_Layer (Efl.Ui.Widget, Efl.Ui.Legacy)
{
[[Elementary gesture layer class]]
legacy_prefix: elm_gesture_layer;

View File

@ -80,7 +80,7 @@ enum Elm.GLView.Render.Policy
always = 2 [[Render always even when it is not visible]]
}
class Elm.Glview (Efl.Ui.Widget, Efl.Gfx.View)
class Elm.Glview (Efl.Ui.Widget, Efl.Gfx.View, Efl.Ui.Legacy)
{
[[Elementary GL view class]]
legacy_prefix: elm_glview;

View File

@ -1,4 +1,4 @@
class Elm.Grid (Efl.Ui.Widget, Efl.Ui.Focus.Composition)
class Elm.Grid (Efl.Ui.Widget, Efl.Ui.Focus.Composition, Efl.Ui.Legacy)
{
[[Elementary grid class]]
legacy_prefix: elm_grid;

View File

@ -7,7 +7,8 @@ enum Elm.Hover.Axis
both [[ELM_HOVER_AXIS_BOTH -- both.]]
}
class Elm.Hover (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Ui.Clickable, Efl.Access.Widget.Action)
class Elm.Hover (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Ui.Clickable,
Efl.Access.Widget.Action, Efl.Ui.Legacy)
{
[[Elementary hover class]]
legacy_prefix: elm_hover;

View File

@ -2,7 +2,8 @@ import elm_general;
class Elm.Hoversel (Efl.Ui.Button, Efl.Ui.Selectable,
Efl.Ui.Clickable,
Efl.Access.Widget.Action)
Efl.Access.Widget.Action,
Efl.Ui.Legacy)
{
[[Elementary hoversel class]]
legacy_prefix: elm_hoversel;

View File

@ -1,6 +1,6 @@
import elm_general;
class Elm.Hoversel.Item(Elm.Widget.Item)
class Elm.Hoversel.Item(Elm.Widget.Item, Efl.Ui.Legacy)
{
[[Elementary hoversel item class]]
legacy_prefix: elm_hoversel_item;

View File

@ -1,4 +1,4 @@
class Elm.Icon (Efl.Ui.Image)
class Elm.Icon (Efl.Ui.Image, Efl.Ui.Legacy)
{
[[Elementary Icon Class]]
legacy_prefix: elm_icon;

View File

@ -1,5 +1,5 @@
class Elm.Index (Efl.Ui.Layout, Efl.Ui.Direction,
Efl.Ui.Clickable, Efl.Ui.Selectable)
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[elementary index class]]
legacy_prefix: elm_index;

View File

@ -1,4 +1,4 @@
class Elm.Index.Item(Elm.Widget.Item, Efl.Access.Widget.Action)
class Elm.Index.Item(Elm.Widget.Item, Efl.Access.Widget.Action, Efl.Ui.Legacy)
{
[[Elementary index item class]]
legacy_prefix: elm_index_item;

View File

@ -193,7 +193,7 @@ _elm_pan_content_size_get(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coo
static Evas_Object *
_elm_pan_add(Evas *evas)
{
return efl_add(MY_PAN_CLASS, evas, efl_canvas_object_legacy_ctor(efl_added));
return elm_legacy_add(MY_PAN_CLASS, evas);
}
EOLIAN static Eo *

View File

@ -16,6 +16,7 @@
#include "efl_access_image.eo.h"
#include "efl_access_selection.eo.h"
#include "efl_access_value.eo.h"
#include "efl_ui_legacy.eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "efl_access_action.eo.legacy.h"
@ -24,5 +25,6 @@
#include "efl_access_image.eo.legacy.h"
#include "efl_access_selection.eo.legacy.h"
#include "efl_access_value.eo.legacy.h"
#include "efl_ui_legacy.eo.legacy.h"
#endif
#endif

View File

@ -1,4 +1,4 @@
class Elm.Inwin (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Content)
class Elm.Inwin (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Efl.Content, Efl.Ui.Legacy)
{
[[Elementary inwin class]]
legacy_prefix: elm_inwin;

View File

@ -8,7 +8,7 @@ enum Elm.Label.Slide_Mode
always [[Slide always.]]
}
class Elm.Label (Efl.Ui.Layout)
class Elm.Label (Efl.Ui.Layout, Efl.Ui.Legacy)
{
[[Elementary label class]]
legacy_prefix: elm_label;

View File

@ -38,7 +38,7 @@ enum Elm.List.Mode
class Elm.List (Efl.Ui.Layout, Elm.Interface_Scrollable,
Efl.Access.Widget.Action, Efl.Access.Selection,
Efl.Ui.Clickable, Efl.Ui.Selectable)
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy)
{
[[Elementary list class]]
legacy_prefix: elm_list;

View File

@ -1,4 +1,4 @@
class Elm.List.Item(Elm.Widget.Item)
class Elm.List.Item(Elm.Widget.Item, Efl.Ui.Legacy)
{
[[Elementary list item class]]
legacy_prefix: elm_list_item;

View File

@ -71,7 +71,7 @@ enum Elm.Map.Route_Method
class Elm.Map (Efl.Ui.Widget, Elm.Interface_Scrollable,
Efl.Access.Widget.Action,
Efl.Ui.Clickable)
Efl.Ui.Clickable, Efl.Ui.Legacy)
{
[[Elementary map class]]
legacy_prefix: elm_map;

View File

@ -1,4 +1,4 @@
class Elm.Mapbuf (Efl.Ui.Widget, Efl.Content, Efl.Part)
class Elm.Mapbuf (Efl.Ui.Widget, Efl.Content, Efl.Part, Efl.Ui.Legacy)
{
[[Elementary mapbuf class]]
legacy_prefix: elm_mapbuf;

View File

@ -1,5 +1,5 @@
class Elm.Menu (Efl.Ui.Widget, Efl.Ui.Clickable, Efl.Ui.Menu,
Efl.Access.Selection, Efl.Ui.Focus.Manager)
Efl.Access.Selection, Efl.Ui.Focus.Manager, Efl.Ui.Legacy)
{
[[Elementary menu class]]
legacy_prefix: elm_menu;

View File

@ -1,5 +1,5 @@
class Elm.Menu.Item(Elm.Widget.Item, Efl.Access.Selection,
Efl.Ui.Item)
Efl.Ui.Item, Efl.Ui.Legacy)
{
[[Elementary menu item class]]
legacy_prefix: elm_menu_item;

View File

@ -1,5 +1,6 @@
class Elm.Multibuttonentry.Item(Elm.Widget.Item,
Efl.Access.Widget.Action)
Efl.Access.Widget.Action,
Efl.Ui.Legacy)
{
[[Elementary multibuttonentry class]]
legacy_prefix: elm_multibuttonentry_item;

View File

@ -1,4 +1,4 @@
class Elm.Naviframe (Efl.Ui.Layout, Efl.Access.Widget.Action)
class Elm.Naviframe (Efl.Ui.Layout, Efl.Access.Widget.Action, Efl.Ui.Legacy)
{
[[Elementary naviframe class]]
legacy_prefix: elm_naviframe;

View File

@ -1,6 +1,6 @@
type Elm_Naviframe_Item_Pop_Cb: __undefined_type; [[Elementary naviframe item pop callback type]]
class Elm.Naviframe.Item(Elm.Widget.Item)
class Elm.Naviframe.Item(Elm.Widget.Item, Efl.Ui.Legacy)
{
[[Elementary naviframe item class]]
legacy_prefix: elm_naviframe_item;

View File

@ -1,4 +1,4 @@
class Elm.Notify (Efl.Ui.Widget, Efl.Ui.Focus.Layer, Efl.Content, Efl.Part)
class Elm.Notify (Efl.Ui.Widget, Efl.Ui.Focus.Layer, Efl.Content, Efl.Part, Efl.Ui.Legacy)
{
[[Elementary notification class]]
legacy_prefix: elm_notify;

View File

@ -9,7 +9,7 @@ enum Elm.Panel.Orient
}
class Elm.Panel (Efl.Ui.Layout, Efl.Ui.Focus.Layer, Elm.Interface_Scrollable,
Efl.Access.Widget.Action)
Efl.Access.Widget.Action, Efl.Ui.Legacy)
{
[[Elementary panel class]]
legacy_prefix: elm_panel;

Some files were not shown because too many files have changed in this diff Show More