From fcf736cd9274f4150914bb4dcd0f0e3793f30532 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Thu, 12 Oct 2006 11:49:51 +0000 Subject: [PATCH] Remove the transition preview widget and create it directly in the dialog without having a seperate e_widget for it. SVN revision: 26547 --- src/bin/Makefile.am | 4 +- src/bin/e_includes.h | 2 +- src/bin/e_int_config_transitions.c | 143 ++++++++++++++++++++++++++++- src/bin/e_widget_trans_preview.c | 138 ---------------------------- src/bin/e_widget_trans_preview.h | 7 -- 5 files changed, 143 insertions(+), 151 deletions(-) delete mode 100644 src/bin/e_widget_trans_preview.c delete mode 100644 src/bin/e_widget_trans_preview.h diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 26a8c3c83..c7f0eabb8 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -174,8 +174,7 @@ e_obj_dialog.h \ e_int_config_transitions.h \ e_fwin.h \ e_widget_aspect.h \ -e_widget_desk_preview.h \ -e_widget_trans_preview.h +e_widget_desk_preview.h enlightenment_src = \ e_user.c \ @@ -326,7 +325,6 @@ e_obj_dialog.c \ e_fwin.c \ e_widget_aspect.c \ e_widget_desk_preview.c \ -e_widget_trans_preview.c \ $(ENLIGHTENMENTHEADERS) enlightenment_SOURCES = \ diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h index 9091c3b7b..1950a0d6c 100644 --- a/src/bin/e_includes.h +++ b/src/bin/e_includes.h @@ -151,4 +151,4 @@ #include "e_fwin.h" #include "e_widget_aspect.h" #include "e_widget_desk_preview.h" -#include "e_widget_trans_preview.h" + diff --git a/src/bin/e_int_config_transitions.c b/src/bin/e_int_config_transitions.c index 5957eb4e3..dda24cd12 100644 --- a/src/bin/e_int_config_transitions.c +++ b/src/bin/e_int_config_transitions.c @@ -1,5 +1,17 @@ #include "e.h" +typedef struct _E_Widget_Data E_Widget_Data; +struct _E_Widget_Data +{ + Evas_Object *obj, *o_frame, *o_clip; + Evas_Object *prev_bg, *bg, *o_trans; +}; + +static void _e_wid_del_hook(Evas_Object *obj); +static void _e_wid_done(void *data, Evas_Object *obj, const char *emission, const char *source); +static Evas_Object *_trans_preview_add(Evas *evas, int minw, int minh); +static void _trans_preview_trans_set(Evas_Object *obj, const char *trans); + static void *_create_data(E_Config_Dialog *cfd); static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); @@ -145,7 +157,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf e_widget_table_object_append(ot, of, 1, 0, 1, 1, 1, 1, 1, 1); of = e_widget_framelist_add(evas, _("Preview"), 0); - ob = e_widget_trans_preview_add(evas, 300, ((300 * zone->h) / zone->w)); + ob = _trans_preview_add(evas, 300, ((300 * zone->h) / zone->w)); cfdata->tp = ob; e_widget_framelist_object_append(of, ob); e_widget_table_object_append(ot, of, 2, 0, 1, 1, 1, 1, 1, 1); @@ -234,5 +246,132 @@ _trans_cb_changed(void *data) break; } if (!t) return; - e_widget_trans_preview_trans_set(cfdata->tp, t); + _trans_preview_trans_set(cfdata->tp, t); +} + +Evas_Object * +_trans_preview_add(Evas *evas, int minw, int minh) +{ + Evas_Object *obj, *o; + E_Widget_Data *wd; + + obj = e_widget_add(evas); + e_widget_del_hook_set(obj, _e_wid_del_hook); + + wd = calloc(1, sizeof(E_Widget_Data)); + wd->obj = obj; + + o = edje_object_add(evas); + wd->o_frame = o; + e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/preview"); + evas_object_show(o); + e_widget_sub_object_add(obj, o); + e_widget_resize_object_set(obj, o); + + o = edje_object_add(evas); + wd->prev_bg = o; + e_theme_edje_object_set(o, "base/theme/backgrounds", "e/desktop/background"); + evas_object_layer_set(o, -1); + evas_object_clip_set(o, wd->o_frame); + evas_object_show(o); + edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->prev_bg); + + e_widget_data_set(obj, wd); + e_widget_can_focus_set(obj, 0); + e_widget_min_size_set(obj, minw, minh); + + return obj; +} + +static void +_trans_preview_trans_set(Evas_Object *obj, const char *trans) +{ + Evas *evas; + Evas_Object *o; + E_Widget_Data *wd; + char buf[4096]; + + wd = e_widget_data_get(obj); + evas = evas_object_evas_get(wd->o_frame); + + if (wd->o_trans) + evas_object_del(wd->o_trans); + if (wd->bg) + evas_object_del(wd->bg); + if (wd->prev_bg) + evas_object_del(wd->prev_bg); + + snprintf(buf, sizeof(buf), "e/transitions/%s", trans); + + o = edje_object_add(evas); + wd->o_trans = o; + e_theme_edje_object_set(wd->o_trans, "base/theme/transitions", buf); + edje_object_signal_callback_add(o, "e,state,done", "*", _e_wid_done, wd); + evas_object_layer_set(o, -1); + evas_object_clip_set(o, wd->o_frame); + evas_object_show(o); + edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->o_trans); + + o = edje_object_add(evas); + wd->bg = o; + e_theme_edje_object_set(o, "base/theme/icons", "e/icons/enlightenment/e"); + evas_object_layer_set(o, -1); + evas_object_clip_set(o, wd->o_frame); + evas_object_show(o); + + o = edje_object_add(evas); + wd->prev_bg = o; + e_theme_edje_object_set(o, "base/theme/backgrounds", "e/desktop/background"); + evas_object_layer_set(o, -1); + evas_object_clip_set(o, wd->o_frame); + evas_object_show(o); + + edje_object_part_swallow(wd->o_trans, "e.swallow.bg.old", wd->prev_bg); + edje_object_part_swallow(wd->o_trans, "e.swallow.bg.new", wd->bg); + edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->o_trans); + + edje_object_signal_emit(wd->o_trans, "e,action,start", "e"); +} + +static void +_e_wid_del_hook(Evas_Object *obj) +{ + E_Widget_Data *wd; + + wd = e_widget_data_get(obj); + if (wd->o_frame) + evas_object_del(wd->o_frame); + if (wd->o_trans) + evas_object_del(wd->o_trans); + if (wd->bg) + evas_object_del(wd->bg); + if (wd->prev_bg) + evas_object_del(wd->prev_bg); + E_FREE(wd); +} + +static void +_e_wid_done(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + E_Widget_Data *wd; + Evas_Object *o; + Evas *evas; + + wd = data; + evas = evas_object_evas_get(wd->o_frame); + + if (wd->o_trans) + evas_object_del(wd->o_trans); + if (wd->bg) + evas_object_del(wd->bg); + if (wd->prev_bg) + evas_object_del(wd->prev_bg); + + o = edje_object_add(evas); + wd->prev_bg = o; + e_theme_edje_object_set(o, "base/theme/backgrounds", "e/desktop/background"); + evas_object_layer_set(o, -1); + evas_object_clip_set(o, wd->o_frame); + evas_object_show(o); + edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->prev_bg); } diff --git a/src/bin/e_widget_trans_preview.c b/src/bin/e_widget_trans_preview.c deleted file mode 100644 index efedcf1e6..000000000 --- a/src/bin/e_widget_trans_preview.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "e.h" - -typedef struct _E_Widget_Data E_Widget_Data; -struct _E_Widget_Data -{ - Evas_Object *obj, *o_frame, *o_clip; - Evas_Object *prev_bg, *bg, *o_trans; -}; - -static void _e_wid_del_hook(Evas_Object *obj); -static void _e_wid_done(void *data, Evas_Object *obj, const char *emission, const char *source); - -EAPI Evas_Object * -e_widget_trans_preview_add(Evas *evas, int minw, int minh) -{ - Evas_Object *obj, *o; - E_Widget_Data *wd; - - obj = e_widget_add(evas); - e_widget_del_hook_set(obj, _e_wid_del_hook); - - wd = calloc(1, sizeof(E_Widget_Data)); - wd->obj = obj; - - o = edje_object_add(evas); - wd->o_frame = o; - e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/preview"); - evas_object_show(o); - e_widget_sub_object_add(obj, o); - e_widget_resize_object_set(obj, o); - - o = edje_object_add(evas); - wd->prev_bg = o; - e_theme_edje_object_set(o, "base/theme/backgrounds", "e/desktop/background"); - evas_object_layer_set(o, -1); - evas_object_clip_set(o, wd->o_frame); - evas_object_show(o); - edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->prev_bg); - - e_widget_data_set(obj, wd); - e_widget_can_focus_set(obj, 0); - e_widget_min_size_set(obj, minw, minh); - - return obj; -} - -void -e_widget_trans_preview_trans_set(Evas_Object *obj, const char *trans) -{ - Evas *evas; - Evas_Object *o; - E_Widget_Data *wd; - char buf[4096]; - - wd = e_widget_data_get(obj); - evas = evas_object_evas_get(wd->o_frame); - - if (wd->o_trans) - evas_object_del(wd->o_trans); - if (wd->bg) - evas_object_del(wd->bg); - if (wd->prev_bg) - evas_object_del(wd->prev_bg); - - snprintf(buf, sizeof(buf), "e/transitions/%s", trans); - - o = edje_object_add(evas); - wd->o_trans = o; - e_theme_edje_object_set(wd->o_trans, "base/theme/transitions", buf); - edje_object_signal_callback_add(o, "e,state,done", "*", _e_wid_done, wd); - evas_object_layer_set(o, -1); - evas_object_clip_set(o, wd->o_frame); - evas_object_show(o); - edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->o_trans); - - o = edje_object_add(evas); - wd->bg = o; - e_theme_edje_object_set(o, "base/theme/icons", "e/icons/enlightenment/e"); - evas_object_layer_set(o, -1); - evas_object_clip_set(o, wd->o_frame); - evas_object_show(o); - - o = edje_object_add(evas); - wd->prev_bg = o; - e_theme_edje_object_set(o, "base/theme/backgrounds", "e/desktop/background"); - evas_object_layer_set(o, -1); - evas_object_clip_set(o, wd->o_frame); - evas_object_show(o); - - edje_object_part_swallow(wd->o_trans, "e.swallow.bg.old", wd->prev_bg); - edje_object_part_swallow(wd->o_trans, "e.swallow.bg.new", wd->bg); - edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->o_trans); - - edje_object_signal_emit(wd->o_trans, "e,action,start", "e"); -} - -static void -_e_wid_del_hook(Evas_Object *obj) -{ - E_Widget_Data *wd; - - wd = e_widget_data_get(obj); - if (wd->o_frame) - evas_object_del(wd->o_frame); - if (wd->o_trans) - evas_object_del(wd->o_trans); - if (wd->bg) - evas_object_del(wd->bg); - if (wd->prev_bg) - evas_object_del(wd->prev_bg); - E_FREE(wd); -} - -static void -_e_wid_done(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - E_Widget_Data *wd; - Evas_Object *o; - Evas *evas; - - wd = data; - evas = evas_object_evas_get(wd->o_frame); - - if (wd->o_trans) - evas_object_del(wd->o_trans); - if (wd->bg) - evas_object_del(wd->bg); - if (wd->prev_bg) - evas_object_del(wd->prev_bg); - - o = edje_object_add(evas); - wd->prev_bg = o; - e_theme_edje_object_set(o, "base/theme/backgrounds", "e/desktop/background"); - evas_object_layer_set(o, -1); - evas_object_clip_set(o, wd->o_frame); - evas_object_show(o); - edje_object_part_swallow(wd->o_frame, "e.swallow.content", wd->prev_bg); -} diff --git a/src/bin/e_widget_trans_preview.h b/src/bin/e_widget_trans_preview.h deleted file mode 100644 index 59f6b3071..000000000 --- a/src/bin/e_widget_trans_preview.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef E_WIDGET_TRANS_PREVIEW_H -#define E_WIDGET_TRANS_PREVIEW_H - -Evas_Object *e_widget_trans_preview_add(Evas *evas, int minw, int minh); -void e_widget_trans_preview_trans_set(Evas_Object *obj, const char *trans); - -#endif