[prev in list] [next in list] [prev in thread] [next in thread]
List: enlightenment-svn
Subject: E CVS: libs/ewl ningerso
From: Enlightenment CVS <noreply () fitx-00 ! ewr ! caoslinux ! org>
Date: 2007-07-31 18:35:47
Message-ID: 20070731183547.6934EA30A2 () cvs ! caoslinux ! org
[Download RAW message or body]
Enlightenment CVS committal
Author : ningerso
Project : e17
Module : libs/ewl
Dir : e17/libs/ewl/src/lib
Modified Files:
ewl_embed.c ewl_engines.c ewl_engines.h ewl_misc.c
Log Message:
Move Edje specific code into the evas engine.
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_embed.c,v
retrieving revision 1.123
retrieving revision 1.124
diff -u -3 -r1.123 -r1.124
--- ewl_embed.c 25 Jul 2007 17:01:00 -0000 1.123
+++ ewl_embed.c 31 Jul 2007 18:35:47 -0000 1.124
@@ -1762,6 +1762,11 @@
DCHECK_PARAM_PTR("e", e);
DCHECK_TYPE("e", e, EWL_EMBED_TYPE);
+ /*
+ * Global freeze on theme events while theme's are being manipulated.
+ */
+ ewl_engine_theme_freeze(e);
+
ewl_engine_canvas_freeze(e);
DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1779,6 +1784,10 @@
DCHECK_PARAM_PTR("e", e);
DCHECK_TYPE("e", e, EWL_EMBED_TYPE);
+ /*
+ * Thaw the theme and canvas for this embed.
+ */
+ ewl_engine_theme_thaw(e);
ewl_engine_canvas_thaw(e);
DLEAVE_FUNCTION(DLEVEL_STABLE);
@@ -1803,6 +1812,7 @@
DCHECK_TYPE("w", w, EWL_EMBED_TYPE);
emb = EWL_EMBED(w);
+
ewl_embed_freeze(emb);
if (!emb->ev_clip) {
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_engines.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -3 -r1.45 -r1.46
--- ewl_engines.c 25 Jul 2007 17:01:00 -0000 1.45
+++ ewl_engines.c 31 Jul 2007 18:35:47 -0000 1.46
@@ -1152,23 +1152,55 @@
}
/**
+ * @param embed: Embed used to lookup the current theme key.
+ * @return Returns no value
+ * @brief Fetch data from the theme system
+ */
+char *
+ewl_engine_theme_data_get(Ewl_Widget *w, char *key)
+{
+ Ewl_Embed *embed;
+ Ewl_Engine_Cb_Theme_Data_Get theme_data_get;
+ char *value = NULL;
+
+ DENTER_FUNCTION(DLEVEL_STABLE);
+ DCHECK_PARAM_PTR_RET("w", w, NULL);
+ DCHECK_TYPE_RET("w", w, EWL_WIDGET_TYPE, NULL);
+
+ embed = ewl_embed_widget_find(w);
+ if (embed) {
+ theme_data_get = ewl_engine_hook_get(embed,
+ EWL_ENGINE_HOOK_TYPE_THEME,
+ EWL_ENGINE_THEME_DATA_GET);
+ if (theme_data_get)
+ value = theme_data_get(ewl_theme_path_get(), key);
+ }
+
+ DRETURN_PTR(value, DLEVEL_STABLE);
+}
+
+/**
* @return Returns a new object group on success, NULL on failure
* @brief Create a grouping for theme objects.
*/
void *
ewl_engine_theme_widget_group(Ewl_Widget *w)
{
+ Ewl_Embed *embed;
Ewl_Engine_Cb_Theme_Widget_Group theme_widget_group;
DENTER_FUNCTION(DLEVEL_STABLE);
DCHECK_PARAM_PTR_RET("w", w, NULL);
DCHECK_TYPE_RET("w", w, EWL_WIDGET_TYPE, NULL);
- theme_widget_group = ewl_engine_hook_get(EWL_EMBED(w),
- EWL_ENGINE_HOOK_TYPE_THEME,
- EWL_ENGINE_THEME_WIDGET_GROUP);
- if (theme_widget_group)
- DRETURN_PTR(theme_widget_group(w), DLEVEL_STABLE);
+ embed = ewl_embed_widget_find(w);
+ if (embed) {
+ theme_widget_group = ewl_engine_hook_get(embed,
+ EWL_ENGINE_HOOK_TYPE_THEME,
+ EWL_ENGINE_THEME_WIDGET_GROUP);
+ if (theme_widget_group)
+ DRETURN_PTR(theme_widget_group(w), DLEVEL_STABLE);
+ }
DRETURN_PTR(NULL, DLEVEL_STABLE);
}
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_engines.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- ewl_engines.h 18 May 2007 21:24:35 -0000 1.27
+++ ewl_engines.h 31 Jul 2007 18:35:47 -0000 1.28
@@ -215,6 +215,10 @@
void ewl_engine_canvas_damage_add(Ewl_Embed *embed, int x, int y,
int w, int h);
+void ewl_engine_theme_freeze(Ewl_Embed *embed);
+void ewl_engine_theme_thaw(Ewl_Embed *embed);
+char *ewl_engine_theme_data_get(Ewl_Widget *w, char *key);
+
int ewl_engine_pointer_data_new(Ewl_Embed *embed,
unsigned int *data, int w, int h);
void ewl_engine_pointer_free(Ewl_Embed *embed, int pointer);
@@ -280,7 +284,7 @@
int x, int y, int w, int h);
typedef void (*Ewl_Engine_Cb_Theme_Freeze)();
typedef void (*Ewl_Engine_Cb_Theme_Thaw)();
-typedef char *(*Ewl_Engine_Cb_Theme_Data_Get)(char *path, char *key);
+typedef char *(*Ewl_Engine_Cb_Theme_Data_Get)(const char *path, char *key);
typedef void *(*Ewl_Engine_Cb_Theme_Widget_Group)(Ewl_Widget *w);
typedef void *(*Ewl_Engine_Cb_Theme_Object_Add)(Ewl_Embed *embed);
typedef void (*Ewl_Engine_Cb_Theme_Object_Del)(void *obj);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_misc.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -3 -r1.100 -r1.101
--- ewl_misc.c 25 Jul 2007 17:01:00 -0000 1.100
+++ ewl_misc.c 31 Jul 2007 18:35:47 -0000 1.101
@@ -145,8 +145,6 @@
int
ewl_init(int *argc, char **argv)
{
- int frozen = FALSE;
-
DENTER_FUNCTION(DLEVEL_STABLE);
/* check if we are already initialized */
@@ -195,12 +193,6 @@
}
ecore_list_prepend(shutdown_queue, edje_shutdown);
- /*
- * Global freeze on edje events while edje's are being manipulated.
- */
- edje_freeze();
- frozen = TRUE;
-
reveal_list = ecore_list_new();
obscure_list = ecore_list_new();
configure_active = ecore_list_new();
@@ -304,7 +296,6 @@
DRETURN_INT(ewl_init_count, DLEVEL_STABLE);
ERROR:
- if (frozen) edje_thaw();
ewl_shutdown();
DRETURN_INT(ewl_init_count, DLEVEL_STABLE);
@@ -450,7 +441,8 @@
*/
ecore_list_first_goto(ewl_embed_list);
while ((emb = ecore_list_next(ewl_embed_list)) != NULL)
- ewl_embed_freeze(emb);
+ if (REALIZED(emb))
+ ewl_embed_freeze(emb);
/*
* Clean out the unused widgets first, to avoid them being drawn or
@@ -495,11 +487,6 @@
}
/*
- * Our work is done, allow edje events to be triggered.
- */
- edje_thaw();
-
- /*
* Allow each embed to render itself, this requires thawing the evas.
*/
ecore_list_first_goto(ewl_embed_list);
@@ -521,11 +508,6 @@
ecore_time_get() - render_time);
}
}
-
- /*
- * Global freeze on edje events while edje's are being manipulated.
- */
- edje_freeze();
DRETURN_INT(TRUE, DLEVEL_STABLE);
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic