Enlightenment CVS committal

Author  : atmosphere
Project : e17
Module  : apps/iconbar

Dir     : e17/apps/iconbar/src


Modified Files:
        iconbar.c main.c prefs.c prefs.h 


Log Message:
o prefs.c
 - save out the last values the ecore_evas has, not the last request we get.
 - actually set the attributes to the ecore_evas when a prefs change is
   reqeuested
 - keep a copy of our main ecore_evas in the prefs struct 
o iconbar.c
 - add new signals so themes can set sticky, borderless, or withdrawn 
 - emissions are of the format "window,[stick|withdrawn|borderless],[on|off]"
 - new code identifies signals and dishes off actions to the config system
o main.c
 - emit signals to the theme on startup, so toggles etc will be at the right
   state if you're providing a way to change the window attributes.


===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/iconbar/src/iconbar.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- iconbar.c   17 Jan 2004 19:38:07 -0000      1.11
+++ iconbar.c   17 Jan 2004 21:49:15 -0000      1.12
@@ -94,6 +94,7 @@
 
   edje_object_signal_callback_add(ib->gui, "mouse,*", "*", cb_iconbar, ib);
   edje_object_signal_callback_add(ib->gui, "scroll,*", "*", cb_iconbar, ib);
+  edje_object_signal_callback_add(ib->gui, "window,*", "*", cb_iconbar, ib);
   edje_object_signal_callback_add(ib->gui, "exec*", "*", cb_exec, ib);
 
 
@@ -477,6 +478,30 @@
   {
       e_container_scroll_stop(ib->cont);
   }
+  else if (!strcmp(sig, "window,sticky,on"))
+  {
+      iconbar_config_sticky_set(1);
+  }
+  else if (!strcmp(sig, "window,sticky,off"))
+  {
+      iconbar_config_sticky_set(0);
+  }
+  else if (!strcmp(sig, "window,withdrawn,on"))
+  {
+      iconbar_config_withdrawn_set(1);
+  }
+  else if (!strcmp(sig, "window,withdrawn,off"))
+  {
+      iconbar_config_withdrawn_set(0);
+  }
+  else if (!strcmp(sig, "window,borderless,on"))
+  {
+      iconbar_config_borderless_set(1);
+  }
+  else if (!strcmp(sig, "window,borderless,off"))
+  {
+      iconbar_config_borderless_set(0);
+  }
   if (!strcmp(sig, "mouse,clicked,1"))
   {
     if (!strcmp(src, "base"))
@@ -486,7 +511,6 @@
       evas_object_layer_set(ib->gui, layer);
     }
   }
-
 }
 
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/iconbar/src/main.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- main.c      17 Jan 2004 20:50:06 -0000      1.11
+++ main.c      17 Jan 2004 21:49:15 -0000      1.12
@@ -55,6 +55,7 @@
   ecore_evas_withdrawn_set(ee, iconbar_config_withdrawn_get());
   ecore_evas_sticky_set(ee, iconbar_config_sticky_get());
 
+  iconbar_config_ecore_evas_set(ee);
 #ifdef HAVE_TRANS_BG
   {
     ecore_evas_geometry_get(ee, &x, &y, &w, &h);
@@ -91,6 +92,18 @@
        edje_object_size_max_get(o, &edjew, &edjeh);
        if((edjew > 0) && (edjeh > 0))
            ecore_evas_size_max_set(ee, (int)edjew, (int)edjeh);
+       if(iconbar_config_sticky_get() > 0)
+           edje_object_signal_emit(o, "window,sticky,on", "");
+       else
+           edje_object_signal_emit(o, "window,sticky,off", "");
+       if(iconbar_config_withdrawn_get() > 0)
+           edje_object_signal_emit(o, "window,withdrawn,on", "");
+       else
+           edje_object_signal_emit(o, "window,withdrawn,off", "");
+       if(iconbar_config_borderless_get() > 0)
+           edje_object_signal_emit(o, "window,borderless,on", "");
+       else
+           edje_object_signal_emit(o, "window,borderless,off", "");
     }
   }
 
@@ -105,7 +118,7 @@
   evas_object_layer_set(iconbar, 10);
   evas_object_name_set(iconbar, "iconbar");
   evas_object_show(iconbar);
-
+  
   ecore_evas_show(ee);
 
   ecore_main_loop_begin();
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/iconbar/src/prefs.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- prefs.c     17 Jan 2004 20:50:06 -0000      1.4
+++ prefs.c     17 Jan 2004 21:49:15 -0000      1.5
@@ -12,6 +12,7 @@
     char *home;
     char *time_format;
     char *theme;
+    Ecore_Evas *ee;
     Evas_List *fonts;
     Evas_List *icons;
     int x, y, w, h;
@@ -111,19 +112,24 @@
     char buf[PATH_MAX];
     Evas_List *l = NULL;
     E_DB_File *db = NULL;
+    Ecore_Evas *ee = NULL;
 
     if(ibprefs && ibprefs->db)
     {
+       ee = ibprefs->ee;
        if((db = e_db_open(ibprefs->db)))
        {
            e_db_str_set(db, "/iconbar/home", ibprefs->home);
            e_db_str_set(db, "/iconbar/theme", ibprefs->theme);
            e_db_str_set(db, "/iconbar/time_format", ibprefs->time_format);
            e_db_int_set(db, "/iconbar/raise", ibprefs->raise);
-           e_db_int_set(db, "/iconbar/sticky", ibprefs->sticky);
-           e_db_int_set(db, "/iconbar/withdrawn", ibprefs->withdrawn);
-           e_db_int_set(db, "/iconbar/shaped", ibprefs->shaped);
-           e_db_int_set(db, "/iconbar/borderless", ibprefs->borderless);
+           e_db_int_set(db, "/iconbar/sticky", ecore_evas_sticky_get(ee));
+           e_db_int_set(db, "/iconbar/withdrawn", 
+                                       ecore_evas_withdrawn_get(ee));
+           e_db_int_set(db, "/iconbar/shaped", 
+                                       ecore_evas_shaped_get(ee));
+           e_db_int_set(db, "/iconbar/borderless", 
+                                       ecore_evas_borderless_get(ee));
            e_db_int_set(db, "/iconbar/x", ibprefs->x);
            e_db_int_set(db, "/iconbar/y", ibprefs->y);
            e_db_int_set(db, "/iconbar/w", ibprefs->w);
@@ -142,6 +148,12 @@
     }
 }
 /* modify */
+void 
+iconbar_config_ecore_evas_set(Ecore_Evas *ee)
+{
+    if(ibprefs && ee)
+       ibprefs->ee = ee;
+}
 void
 iconbar_config_home_set(char *home)
 {
@@ -217,14 +229,24 @@
 void
 iconbar_config_borderless_set(int on)
 {
-    if(ibprefs)
+    if(ibprefs && ibprefs->ee)
+    {
+       ibprefs->borderless = ecore_evas_borderless_get(ibprefs->ee);
+       if(ibprefs->borderless != on)
+           ecore_evas_borderless_set(ibprefs->ee, on);
        ibprefs->borderless = on;
+    }
 }
 void
 iconbar_config_shaped_set(int on)
 {
-    if(ibprefs)
+    if(ibprefs && ibprefs->ee)
+    {
+       ibprefs->shaped = ecore_evas_shaped_get(ibprefs->ee);
+       if(ibprefs->shaped != on)
+           ecore_evas_shaped_set(ibprefs->ee, on);
        ibprefs->shaped = on;
+    }
 }
 void
 iconbar_config_raise_lower_set(int on)
@@ -235,14 +257,24 @@
 void
 iconbar_config_withdrawn_set(int on)
 {
-    if(ibprefs)
+    if(ibprefs && ibprefs->ee)
+    {
+       ibprefs->withdrawn = ecore_evas_withdrawn_get(ibprefs->ee);
+       if(ibprefs->withdrawn != on)
+           ecore_evas_withdrawn_set(ibprefs->ee, on);
        ibprefs->withdrawn = on;
+    }
 }
 void
 iconbar_config_sticky_set(int on)
 {
-    if(ibprefs)
+    if(ibprefs && ibprefs->ee)
+    {
+       ibprefs->sticky = ecore_evas_sticky_get(ibprefs->ee);
+       if(ibprefs->sticky != on)
+           ecore_evas_sticky_set(ibprefs->ee, on);
        ibprefs->sticky = on;
+    }
 }
 /* query */
 const char*
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/iconbar/src/prefs.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- prefs.h     17 Jan 2004 20:50:06 -0000      1.4
+++ prefs.h     17 Jan 2004 21:49:15 -0000      1.5
@@ -1,13 +1,15 @@
 #ifndef ICONBAR_PREFS_H_
 #define ICONBAR_PREFS_H_
 
-#include<Evas.h>
+#include <Evas.h>
+#include <Ecore_Evas.h>
 
 /* start/stop */
 void iconbar_config_init(void);
 void iconbar_config_free(void);
 
 /* modify */
+void iconbar_config_ecore_evas_set(Ecore_Evas *ee);
 void iconbar_config_home_set(char *home);
 void iconbar_config_time_format_set(char *str);
 void iconbar_config_font_path_append(char *str);




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to