jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=88d337890ab58269c009ad5a37b35418011c7d79
commit 88d337890ab58269c009ad5a37b35418011c7d79 Author: Daniel Zaoui <[email protected]> Date: Sun Mar 23 14:33:03 2014 +0200 Eolian: Integration of Inwin --- src/lib/Makefile.am | 10 ++++-- src/lib/elm_inwin.c | 95 ++++++++++++-------------------------------------- src/lib/elm_inwin.eo | 34 ++++++++++++++++++ src/lib/elm_inwin_eo.h | 4 +++ 4 files changed, 68 insertions(+), 75 deletions(-) diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index c2a2d56..4e53721 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -599,7 +599,9 @@ BUILT_SOURCES = \ elm_icon.eo.c \ elm_icon.eo.h \ elm_index.eo.c \ - elm_index.eo.h + elm_index.eo.h \ + elm_inwin.eo.c \ + elm_inwin.eo.h EXTRA_DIST += \ elm_widget.eo \ @@ -639,7 +641,8 @@ EXTRA_DIST += \ elc_hoversel.eo \ elm_image.eo \ elm_icon.eo \ - elm_index.eo + elm_index.eo \ + elm_inwin.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ @@ -679,5 +682,6 @@ nodist_includesunstable_HEADERS = \ elc_hoversel.eo.h \ elm_image.eo.h \ elm_icon.eo.h \ - elm_index.eo.h + elm_index.eo.h \ + elm_inwin.eo.h diff --git a/src/lib/elm_inwin.c b/src/lib/elm_inwin.c index e07bdce..e5efcd7 100644 --- a/src/lib/elm_inwin.c +++ b/src/lib/elm_inwin.c @@ -8,8 +8,6 @@ #include "elm_widget_inwin.h" #include "elm_widget_layout.h" -EAPI Eo_Op ELM_OBJ_WIN_INWIN_BASE_ID = EO_NOOP; - #define MY_CLASS ELM_OBJ_WIN_INWIN_CLASS #define MY_CLASS_NAME "Elm_Inwin" @@ -21,8 +19,8 @@ static const Elm_Layout_Part_Alias_Description _content_aliases[] = {NULL, NULL} }; -static void -_elm_inwin_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_inwin_elm_layout_sizing_eval(Eo *obj, void *_pd EINA_UNUSED) { Evas_Object *content; Evas_Coord minw = -1, minh = -1; @@ -39,20 +37,15 @@ _elm_inwin_smart_sizing_eval(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_ evas_object_size_hint_max_set(obj, -1, -1); } -static void -_elm_inwin_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_inwin_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = EINA_TRUE; + return EINA_TRUE; } -static void -_elm_inwin_smart_focus_next(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_inwin_elm_widget_focus_next(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Elm_Focus_Direction dir, Evas_Object **next) { - Elm_Focus_Direction dir = va_arg(*list, Elm_Focus_Direction); - Evas_Object **next = va_arg(*list, Evas_Object **); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; Evas_Object *content; content = elm_layout_content_get(obj, NULL); @@ -61,18 +54,16 @@ _elm_inwin_smart_focus_next(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list if (content) { elm_widget_focus_next_get(content, dir, next); - if (*next) - { - if (ret) *ret = EINA_TRUE; - return; - } + if (*next) return EINA_TRUE; } *next = (Evas_Object *)obj; + + return EINA_FALSE; } -static void -_elm_inwin_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_inwin_evas_smart_add(Eo *obj, void *_pd EINA_UNUSED) { eo_do_super(obj, MY_CLASS, evas_obj_smart_add()); elm_widget_sub_object_parent_add(obj); @@ -86,20 +77,18 @@ _elm_inwin_smart_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) CRI("Failed to set layout!"); } -static void -_elm_inwin_smart_parent_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static void +_elm_inwin_elm_widget_parent_set(Eo *obj, void *_pd EINA_UNUSED, Evas_Object *parent) { - Evas_Object *parent = va_arg(*list, Evas_Object *); elm_win_resize_object_add(parent, obj); elm_layout_sizing_eval(obj); } -static void -_elm_inwin_smart_content_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static const Elm_Layout_Part_Alias_Description* +_elm_inwin_elm_layout_content_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED) { - const Elm_Layout_Part_Alias_Description **aliases = va_arg(*list, const Elm_Layout_Part_Alias_Description **); - *aliases = _content_aliases; + return _content_aliases; } EAPI Evas_Object * @@ -111,8 +100,8 @@ elm_win_inwin_add(Evas_Object *parent) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_inwin_eo_base_constructor(Eo *obj, void *_pd EINA_UNUSED) { Evas_Object *parent; @@ -128,15 +117,8 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY)); } -EAPI void -elm_win_inwin_activate(Evas_Object *obj) -{ - ELM_INWIN_CHECK(obj); - eo_do(obj, elm_obj_win_inwin_activate()); -} - -static void -_elm_inwin_smart_activate(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_inwin_activate(Eo *obj, void *_pd EINA_UNUSED) { ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); @@ -176,40 +158,9 @@ elm_win_inwin_content_unset(Evas_Object *obj) } static void -_class_constructor(Eo_Class *klass) +_elm_inwin_class_constructor(Eo_Class *klass) { - const Eo_Op_Func_Description func_desc[] = { - EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor), - - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_inwin_smart_add), - - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_inwin_smart_focus_next_manager_is), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT), _elm_inwin_smart_focus_next), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_PARENT_SET), _elm_inwin_smart_parent_set), - - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_inwin_smart_sizing_eval), - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_CONTENT_ALIASES_GET), _elm_inwin_smart_content_aliases_get), - - EO_OP_FUNC(ELM_OBJ_WIN_INWIN_ID(ELM_OBJ_WIN_INWIN_SUB_ID_ACTIVATE), _elm_inwin_smart_activate), - EO_OP_FUNC_SENTINEL - }; - eo_class_funcs_set(klass, func_desc); - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); } -static const Eo_Op_Description op_desc[] = { - EO_OP_DESCRIPTION(ELM_OBJ_WIN_INWIN_SUB_ID_ACTIVATE, "Activates an inwin object, ensuring its visibility."), - EO_OP_DESCRIPTION_SENTINEL -}; -static const Eo_Class_Description class_desc = { - EO_VERSION, - MY_CLASS_NAME, - EO_CLASS_TYPE_REGULAR, - EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_WIN_INWIN_BASE_ID, op_desc, ELM_OBJ_WIN_INWIN_SUB_ID_LAST), - NULL, - 0, - _class_constructor, - NULL -}; -EO_DEFINE_CLASS(elm_obj_win_inwin_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, NULL); +#include "elm_inwin.eo.c" diff --git a/src/lib/elm_inwin.eo b/src/lib/elm_inwin.eo new file mode 100644 index 0000000..276b251 --- /dev/null +++ b/src/lib/elm_inwin.eo @@ -0,0 +1,34 @@ +class Elm_Inwin (Elm_Layout) +{ + eo_prefix: elm_obj_win_inwin; + data: null; + methods { + activate { + /*@ + Activates an inwin object, ensuring its visibility + + This function will make sure that the inwin @p obj is completely visible + by calling evas_object_show() and evas_object_raise() on it, to bring it + to the front. It also sets the keyboard focus to it, which will be passed + onto its content. + + The object's theme will also receive the signal "elm,action,show" with + source "elm". + + @ingroup Inwin */ + + legacy elm_win_inwin_activate; + } + } + implements { + class::constructor; + Eo_Base::constructor; + Evas_Smart::add; + Elm_Widget::parent::set; + Elm_Widget::focus_next_manager_is; + Elm_Widget::focus_next; + Elm_Layout::content_aliases::get; + Elm_Layout::sizing_eval; + } + +} diff --git a/src/lib/elm_inwin_eo.h b/src/lib/elm_inwin_eo.h index 5ebee8c..c3a86f3 100644 --- a/src/lib/elm_inwin_eo.h +++ b/src/lib/elm_inwin_eo.h @@ -1,3 +1,6 @@ +#include "elm_inwin.eo.h" + +#if 0 #define ELM_OBJ_WIN_INWIN_CLASS elm_obj_win_inwin_class_get() const Eo_Class *elm_obj_win_inwin_class_get(void) EINA_CONST; @@ -21,3 +24,4 @@ enum * @ingroup Inwin */ #define elm_obj_win_inwin_activate() ELM_OBJ_WIN_INWIN_ID(ELM_OBJ_WIN_INWIN_SUB_ID_ACTIVATE) +#endif --
