From 06bfb7cb94e425a31e466854f4b77bcc5930a0df Mon Sep 17 00:00:00 2001 From: Vitor Sousa Date: Fri, 17 Apr 2015 19:28:51 -0300 Subject: [PATCH] elm_win_standard: Add elm_win_standard class This commit adds the Eolian class elm_win_standard. It is basically a derivation from elm_win that creates a default background. The intent is to replace the legacy functions elm_win_util_standard_add and elm_win_util_dialog_add by functions accessible via Eo API functions such as eo_add and eo_do. To fully replace an elm_win_util_standard_add call, use: eo_add(ELM_WIN_STANDARD_CLASS, NULL, elm_obj_win_name_set("example"), elm_obj_win_type_set(ELM_WIN_BASIC), elm_obj_win_title_set("Example")); --- legacy/elementary/src/lib/Elementary.h.in | 1 + legacy/elementary/src/lib/Makefile.am | 5 +++ legacy/elementary/src/lib/elm_win_standard.c | 36 +++++++++++++++++++ legacy/elementary/src/lib/elm_win_standard.eo | 7 ++++ legacy/elementary/src/lib/elm_win_standard.h | 3 ++ 5 files changed, 52 insertions(+) create mode 100644 legacy/elementary/src/lib/elm_win_standard.c create mode 100644 legacy/elementary/src/lib/elm_win_standard.eo create mode 100644 legacy/elementary/src/lib/elm_win_standard.h diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index 3ec825996f..cd17bbfd31 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -261,6 +261,7 @@ EAPI extern Elm_Version *elm_version; #include #include #include +#include /* include deprecated calls last of all */ #include diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index 8c137e8c38..859b0ef4eb 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -385,6 +385,8 @@ elm_win.h \ elm_win_common.h \ elm_win_eo.h \ elm_win_legacy.h \ +elm_win_standard.h \ +elm_win_standard.eo.h \ elm_helper.h includesubdir = $(includedir)/elementary-@VMAJ@/ @@ -502,6 +504,7 @@ elm_video.c \ elm_web2.c \ elm_widget.c \ elm_win.c \ +elm_win_standard.c \ elm_helper.c \ els_box.c \ els_cursor.c \ @@ -619,6 +622,7 @@ elm_video.eo \ elm_web.eo \ elm_widget.eo \ elm_win.eo \ +elm_win_standard.eo \ elm_widget_item.eo \ elm_color_item.eo \ elm_dayselector_item.eo \ @@ -747,6 +751,7 @@ elementaryeolianfiles_DATA = \ elm_video.eo \ elm_web.eo \ elm_win.eo \ + elm_win_standard.eo \ elm_widget_item.eo \ elm_color_item.eo \ elm_dayselector_item.eo \ diff --git a/legacy/elementary/src/lib/elm_win_standard.c b/legacy/elementary/src/lib/elm_win_standard.c new file mode 100644 index 0000000000..23fddce4cf --- /dev/null +++ b/legacy/elementary/src/lib/elm_win_standard.c @@ -0,0 +1,36 @@ +#ifdef HAVE_CONFIG_H +# include "elementary_config.h" +#endif + +#define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED +#define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED +#define ELM_WIN_PROTECTED + +#include + +#include "elm_priv.h" + +#define MY_CLASS ELM_WIN_STANDARD_CLASS + +EOLIAN static Eo * +_elm_win_standard_eo_base_finalize(Eo *obj, void *pd EINA_UNUSED) +{ + eo_do_super(obj, MY_CLASS, obj = eo_finalize()); + if (!obj) + return NULL; + + Evas_Object *bg = eo_add(ELM_BG_CLASS, obj); + if (!bg) + { + ERR("Cannot create background."); + evas_object_del(obj); + return NULL; + } + eo_do(bg, evas_obj_size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND)); + eo_do(obj, elm_obj_win_resize_object_add(bg)); + eo_do(bg, efl_gfx_visible_set(EINA_TRUE)); + + return obj; +} + +#include "elm_win_standard.eo.c" diff --git a/legacy/elementary/src/lib/elm_win_standard.eo b/legacy/elementary/src/lib/elm_win_standard.eo new file mode 100644 index 0000000000..e33aa43990 --- /dev/null +++ b/legacy/elementary/src/lib/elm_win_standard.eo @@ -0,0 +1,7 @@ +class Elm.Win_Standard (Elm.Win) +{ + data: null; + implements { + Eo.Base.finalize; + } +} diff --git a/legacy/elementary/src/lib/elm_win_standard.h b/legacy/elementary/src/lib/elm_win_standard.h new file mode 100644 index 0000000000..2222bbb687 --- /dev/null +++ b/legacy/elementary/src/lib/elm_win_standard.h @@ -0,0 +1,3 @@ +#ifdef EFL_EO_API_SUPPORT +#include +#endif