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