[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