Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_evas
Modified Files:
Tag: SPLIT
Ecore_Evas.h Makefile.am ecore_evas.c ecore_evas_private.h
Log Message:
working working....
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/Ecore_Evas.h,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- Ecore_Evas.h 7 Feb 2003 00:24:02 -0000 1.1.2.3
+++ Ecore_Evas.h 8 Feb 2003 01:30:57 -0000 1.1.2.4
@@ -17,7 +17,97 @@
int ecore_evas_init(void);
int ecore_evas_shutdown(void);
-
+
+ Ecore_Evas *
+ ecore_evas_software_x11_new(const char *disp_name, Window parent,
+ int x, int y, int w, int h);
+ void
+ ecore_evas_free(Ecore_Evas *ee);
+ Evas *
+ ecore_evas_get(Ecore_Evas *ee);
+ void
+ ecore_evas_move(Ecore_Evas *ee, int x, int y);
+ void
+ ecore_evas_resize(Ecore_Evas *ee, int w, int h);
+ void
+ ecore_evas_move_resize(Ecore_Evas *ee, int x, int y, int w, int h);
+ void
+ ecore_evas_geometry_get(Ecore_Evas *ee, int *x, int *y, int *w, int *h);
+ void
+ ecore_evas_rotation_set(Ecore_Evas *ee, int rot);
+ int
+ ecore_evas_rotation_get(Ecore_Evas *ee);
+ void
+ ecore_evas_shaped_set(Ecore_Evas *ee, int shaped);
+ int
+ ecore_evas_shaped_get(Ecore_Evas *ee);
+ void
+ ecore_evas_show(Ecore_Evas *ee);
+ void
+ ecore_evas_hide(Ecore_Evas *ee);
+ int
+ ecore_evas_visibility_get(Ecore_Evas *ee);
+ void
+ ecore_evas_title_set(Ecore_Evas *ee, const char *t);
+ const char *
+ ecore_evas_title_get(Ecore_Evas *ee);
+ void
+ ecore_evas_name_class_set(Ecore_Evas *ee, const char *n, const char *c);
+ void
+ ecore_evas_name_class_get(Ecore_Evas *ee, const char **n, const char **c);
+ void
+ ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h);
+ void
+ ecore_evas_size_min_get(Ecore_Evas *ee, int *w, int *h);
+ void
+ ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h);
+ void
+ ecore_evas_size_max_get(Ecore_Evas *ee, int *w, int *h);
+ void
+ ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h);
+ void
+ ecore_evas_size_base_get(Ecore_Evas *ee, int *w, int *h);
+ void
+ ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h);
+ void
+ ecore_evas_size_step_get(Ecore_Evas *ee, int *w, int *h);
+ void
+ ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int hot_x,
+int hot_y);
+ void
+ ecore_evas_cursor_get(Ecore_Evas *ee, char **file, int *layer, int *hot_x, int
+*hot_y);
+ void
+ ecore_evas_layer_set(Ecore_Evas *ee, int layer);
+ int
+ ecore_evas_layer_get(Ecore_Evas *ee);
+ void
+ ecore_evas_focus_set(Ecore_Evas *ee, int on);
+ int
+ ecore_evas_focus_get(Ecore_Evas *ee);
+ void
+ ecore_evas_iconified_set(Ecore_Evas *ee, int on);
+ int
+ ecore_evas_iconified_get(Ecore_Evas *ee);
+ void
+ ecore_evas_borderless_set(Ecore_Evas *ee, int on);
+ int
+ ecore_evas_borderless_get(Ecore_Evas *ee);
+ void
+ ecore_evas_override_set(Ecore_Evas *ee, int on);
+ int
+ ecore_evas_override_get(Ecore_Evas *ee);
+ void
+ ecore_evas_maximized_set(Ecore_Evas *ee, int on);
+ int
+ ecore_evas_maximized_get(Ecore_Evas *ee);
+ void
+ ecore_evas_fullscreen_set(Ecore_Evas *ee, int on);
+ int
+ ecore_evas_fullscreen_get(Ecore_Evas *ee);
+ void
+ ecore_evas_avoid_damage_set(Ecore_Evas *ee, int on);
+ int
+ ecore_evas_avoid_damage_get(Ecore_Evas *ee);
+
#ifdef __cplusplus
}
#endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/Makefile.am,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -3 -r1.1.2.2 -r1.1.2.3
--- Makefile.am 6 Feb 2003 06:19:40 -0000 1.1.2.2
+++ Makefile.am 8 Feb 2003 01:30:57 -0000 1.1.2.3
@@ -1,6 +1,9 @@
## Process this file with automake to produce Makefile.in
-INCLUDES = @evas_cflags@ -I../ecore -I../ecore_x
+INCLUDES = \
+-I$(top_srcdir)/src/lib/ecore \
+-I$(top_srcdir)/src/lib/ecore_x \
+@evas_cflags@
lib_LTLIBRARIES = libecore_evas.la
include_HEADERS = \
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- ecore_evas.c 7 Feb 2003 00:24:02 -0000 1.1.2.3
+++ ecore_evas.c 8 Feb 2003 01:30:57 -0000 1.1.2.4
@@ -1,9 +1,284 @@
+#include "ecore_private.h"
#include "Ecore.h"
#include "ecore_evas_private.h"
#include "Ecore_Evas.h"
-#ifdef BUILD_EVAS_X
#include "Ecore_X.h"
-#endif
+
+static Ecore_Evas *ecore_evases = NULL;
+static Ecore_Event_Handler *ecore_evas_event_handlers[13];
+static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
+
+static Ecore_Evas *
+_ecore_evas_software_x11_match(Window win)
+{
+ Ecore_List *l;
+
+ for (l = (Ecore_List *)ecore_evases; l; l = l->next)
+ {
+ Ecore_Evas *ee;
+
+ ee = (Ecore_Evas *)l;
+ if ((ee->x11.win == win) || (ee->x11.win_container == win))
+ {
+ ecore_evases = _ecore_list_remove(ecore_evases, ee);
+ ecore_evases = _ecore_list_prepend(ecore_evases, ee);
+ return ee;
+ }
+ }
+ return NULL;
+}
+
+static void
+_ecore_evas_modifer_locks_update(Ecore_Evas *ee, int modifiers)
+{
+ if (modifiers & ECORE_X_MODIFIER_SHIFT)
+ evas_key_modifier_on(ee->evas, "Shift");
+ else
+ evas_key_modifier_off(ee->evas, "Shift");
+ if (modifiers & ECORE_X_MODIFIER_CTRL)
+ evas_key_modifier_on(ee->evas, "Control");
+ else
+ evas_key_modifier_off(ee->evas, "Control");
+ if (modifiers & ECORE_X_MODIFIER_ALT)
+ evas_key_modifier_on(ee->evas, "Alt");
+ else
+ evas_key_modifier_off(ee->evas, "Alt");
+ if (modifiers & ECORE_X_MODIFIER_WIN)
+ {
+ evas_key_modifier_on(ee->evas, "Super");
+ evas_key_modifier_on(ee->evas, "Hyper");
+ }
+ else
+ {
+ evas_key_modifier_off(ee->evas, "Super");
+ evas_key_modifier_off(ee->evas, "Hyper");
+ }
+ if (modifiers & ECORE_X_LOCK_SCROLL)
+ evas_key_lock_on(ee->evas, "Scroll_Lock");
+ else
+ evas_key_lock_off(ee->evas, "Scroll_Lock");
+ if (modifiers & ECORE_X_LOCK_NUM)
+ evas_key_lock_on(ee->evas, "Num_Lock");
+ else
+ evas_key_lock_off(ee->evas, "Num_Lock");
+ if (modifiers & ECORE_X_LOCK_CAPS)
+ evas_key_lock_on(ee->evas, "Caps_Lock");
+ else
+ evas_key_lock_off(ee->evas, "Caps_Lock");
+}
+
+static int
+_ecore_evas_event_key_down(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Key_Down *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ _ecore_evas_modifer_locks_update(ee, e->modifiers);
+ evas_event_feed_key_down(ee->evas, e->keyname);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_key_up(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Key_Up *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ _ecore_evas_modifer_locks_update(ee, e->modifiers);
+ evas_event_feed_key_up(ee->evas, e->keyname);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_mouse_button_down(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Mouse_Button_Down *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ _ecore_evas_modifer_locks_update(ee, e->modifiers);
+ evas_event_feed_mouse_move(ee->evas, e->x, e->y);
+ evas_event_feed_mouse_down(ee->evas, e->button);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_mouse_button_up(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Mouse_Button_Up *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ _ecore_evas_modifer_locks_update(ee, e->modifiers);
+ evas_event_feed_mouse_move(ee->evas, e->x, e->y);
+ evas_event_feed_mouse_up(ee->evas, e->button);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_mouse_move(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Mouse_Move *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ _ecore_evas_modifer_locks_update(ee, e->modifiers);
+ evas_event_feed_mouse_move(ee->evas, e->x, e->y);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_mouse_in(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Mouse_In *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ _ecore_evas_modifer_locks_update(ee, e->modifiers);
+ evas_event_feed_mouse_in(ee->evas);
+ evas_event_feed_mouse_move(ee->evas, e->x, e->y);
+ if (ee->prop.cursor.object) evas_object_show(ee->prop.cursor.object);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_mouse_out(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Mouse_Out *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ _ecore_evas_modifer_locks_update(ee, e->modifiers);
+ evas_event_feed_mouse_move(ee->evas, e->x, e->y);
+ evas_event_feed_mouse_out(ee->evas);
+ if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_window_focus_in(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Window_Focus_In *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ ee->prop.focused = 1;
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_window_focus_out(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Window_Focus_Out *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ ee->prop.focused = 0;
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_window_damage(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Window_Damage *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ evas_damage_rectangle_add(ee->evas, e->x, e->y, e->w, e->h);
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_window_destroy(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Window_Destroy *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_window_configure(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Window_Configure *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ ee->x = e->x;
+ ee->y = e->y;
+ if ((ee->w != e->w) || (ee->h != e->h))
+ {
+ ee->w = e->w;
+ ee->h = e->h;
+ ecore_x_window_resize(ee->x11.win, ee->w, ee->h);
+ evas_output_size_set(ee->evas, ee->w, ee->h);
+ evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+ }
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_event_window_delete_request(int type, void *event, void *data)
+{
+ Ecore_Evas *ee;
+ Ecore_X_Event_Window_Delete_Request *e;
+
+ e = event;
+ ee = _ecore_evas_software_x11_match(e->win);
+ if (!ee) return 1; /* pass on event */
+ return 0; /* dont pass it on */
+}
+
+static int
+_ecore_evas_idle_enter(void *data)
+{
+ Ecore_List *l;
+
+ for (l = (Ecore_List *)ecore_evases; l; l = l->next)
+ {
+ Ecore_Evas *ee;
+
+ ee = (Ecore_Evas *)l;
+ evas_render(ee->evas);
+ }
+ ecore_x_flush();
+ return 1;
+}
+
+static
+_ecore_evas_software_x11_free(Ecore_Evas *ee)
+{
+ ecore_x_shutdown();
+ ecore_x_window_del(ee->x11.win);
+ ecore_x_window_del(ee->x11.win_container);
+}
/**
* Init the Evas system
@@ -16,6 +291,20 @@
int
ecore_evas_init(void)
{
+ ecore_evas_idle_enterer = ecore_idle_enterer_add(_ecore_evas_idle_enter, NULL);
+ ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_X_EVENT_KEY_DOWN,
+_ecore_evas_event_key_down, NULL);
+ ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_X_EVENT_KEY_UP,
+_ecore_evas_event_key_up, NULL);
+ ecore_evas_event_handlers[2] =
+ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_DOWN,
+_ecore_evas_event_mouse_button_down, NULL);
+ ecore_evas_event_handlers[3] =
+ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_UP,
+_ecore_evas_event_mouse_button_up, NULL);
+ ecore_evas_event_handlers[4] = ecore_event_handler_add(ECORE_X_EVENT_MOUSE_MOVE,
+_ecore_evas_event_mouse_move, NULL);
+ ecore_evas_event_handlers[5] = ecore_event_handler_add(ECORE_X_EVENT_MOUSE_IN,
+_ecore_evas_event_mouse_in, NULL);
+ ecore_evas_event_handlers[6] = ecore_event_handler_add(ECORE_X_EVENT_MOUSE_OUT,
+_ecore_evas_event_mouse_out, NULL);
+ ecore_evas_event_handlers[7] =
+ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN,
+_ecore_evas_event_window_focus_in, NULL);
+ ecore_evas_event_handlers[8] =
+ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT,
+_ecore_evas_event_window_focus_out, NULL);
+ ecore_evas_event_handlers[9] =
+ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DAMAGE, _ecore_evas_event_window_damage,
+NULL);
+ ecore_evas_event_handlers[10] =
+ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DESTROY,
+_ecore_evas_event_window_destroy, NULL);
+ ecore_evas_event_handlers[11] =
+ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CONFIGURE,
+_ecore_evas_event_window_configure, NULL);
+ ecore_evas_event_handlers[12] =
+ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DELETE_REQUEST,
+_ecore_evas_event_window_delete_request, NULL);
return 1;
}
@@ -27,60 +316,90 @@
int
ecore_evas_shutdown(void)
{
+ int i;
+
+ for (i = 0;
+ i < (sizeof(ecore_evas_event_handlers) /
+ sizeof(Ecore_Event_Handler *));
+ i++)
+ ecore_event_handler_del(ecore_evas_event_handlers[i]);
return 0;
}
-#ifndef BUILD_EVAS_X
-static _ecore_evas_x_free(Ecore_Evas *ee);
-static
-_ecore_evas_x_free(Ecore_Evas *ee)
-{
- ecore_x_shutdown();
- /* destroy window here */
-}
-
Ecore_Evas *
-ecore_evas_x_software_new(const char *disp_name, Window parent,
+ecore_evas_software_x11_new(const char *disp_name, Window parent,
int x, int y, int w, int h)
{
+ Evas_Engine_Info_Software_X11 *einfo;
Ecore_Evas *ee;
-
+ int rmethod;
+
+ rmethod = evas_render_method_lookup("software_x11");
+ if (!rmethod) return NULL;
if (!ecore_x_init(disp_name)) return NULL;
ee = calloc(1, sizeof(Ecore_Evas));
if (!ee) return NULL;
- ee->func.func_free = _ecore_evas_x_free;
+ ee->func.func_free = _ecore_evas_software_x11_free;
+
+ ee->driver = strdup("software_x11");
+ if (disp_name) ee->name = strdup(disp_name);
+
/* init evas here */
+ ee->evas = evas_new();
+ evas_output_method_set(ee->evas, rmethod);
+ evas_output_size_set(ee->evas, w, h);
+ evas_output_viewport_set(ee->evas, 0, 0, w, h);
+/*
+ evas_image_cache_set(ee->evas, 0 * 1024);
+ evas_font_cache_set(ee->evas, 0 * 1024);
+ evas_font_path_append(ee->evas, "./");
+*/
- return ee;
-}
+ ee->x11.win_container = ecore_x_window_new(parent, x, y, w, h);
+ ee->x11.win = ecore_x_window_new(ee->x11.win_container, 0, 0, w, h);
+
+ einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas);
+ if (einfo)
+ {
+ einfo->info.display = ecore_x_display_get();
+ einfo->info.visual = DefaultVisual(ecore_x_display_get(),
+DefaultScreen(ecore_x_display_get()));
+ einfo->info.colormap = DefaultColormap(ecore_x_display_get(),
+DefaultScreen(ecore_x_display_get()));
+ einfo->info.drawable = ee->x11.win;
+ einfo->info.depth = DefaultDepth(ecore_x_display_get(),
+DefaultScreen(ecore_x_display_get()));
+ einfo->info.rotation = 0;
+ einfo->info.debug = 0;
+ evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+ }
+ evas_key_modifier_add(ee->evas, "Shift");
+ evas_key_modifier_add(ee->evas, "Control");
+ evas_key_modifier_add(ee->evas, "Alt");
+ evas_key_modifier_add(ee->evas, "Meta");
+ evas_key_modifier_add(ee->evas, "Hyper");
+ evas_key_modifier_add(ee->evas, "Super");
+ evas_key_lock_add(ee->evas, "Caps_Lock");
+ evas_key_lock_add(ee->evas, "Num_Lock");
+ evas_key_lock_add(ee->evas, "Scroll_Lock");
-Window
-ecore_evas_x_software_window_get(Ecore_Evas *ee)
-{
- return ee->x11.win;
-}
+ ecore_x_window_show(ee->x11.win);
-#else
-Ecore_Evas *
-ecore_evas_x_software_new(const char *disp_name, Window parent,
- int x, int y, int w, int h)
-{
- return NULL;
+ ecore_evases = _ecore_list_prepend(ecore_evases, ee);
+ return ee;
}
-Window
-ecore_evas_x_software_window_get(Ecore_Evas *ee)
-{
- return 0;
-}
-#endif
-
void
ecore_evas_free(Ecore_Evas *ee)
{
if (!ee) return;
+ if (ee->driver) free(ee->driver);
+ if (ee->name) free(ee->name);
+ if (ee->prop.name) free(ee->prop.name);
+ if (ee->prop.clas) free(ee->prop.clas);
+ if (ee->prop.cursor.file) free(ee->prop.cursor.file);
+ if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
if (ee->func.func_free) ee->func.func_free(ee);
+ if (ee->evas); evas_free(ee->evas);
+ ecore_evases = _ecore_list_remove(ecore_evases, ee);
free(ee);
}
@@ -93,21 +412,28 @@
void
ecore_evas_move(Ecore_Evas *ee, int x, int y)
{
+ ecore_x_window_move(ee->x11.win_container, x, y);
}
void
ecore_evas_resize(Ecore_Evas *ee, int w, int h)
{
+ ecore_x_window_resize(ee->x11.win_container, w, h);
}
void
ecore_evas_move_resize(Ecore_Evas *ee, int x, int y, int w, int h)
{
+ ecore_x_window_move_resize(ee->x11.win_container, x, y, w, h);
}
void
ecore_evas_geometry_get(Ecore_Evas *ee, int *x, int *y, int *w, int *h)
{
+ if (x) *x = ee->x;
+ if (y) *y = ee->y;
+ if (w) *w = ee->w;
+ if (h) *h = ee->h;
}
void
@@ -133,36 +459,53 @@
void
ecore_evas_show(Ecore_Evas *ee)
{
+ ecore_x_window_show(ee->x11.win_container);
}
void
ecore_evas_hide(Ecore_Evas *ee)
{
+ ecore_x_window_hide(ee->x11.win_container);
}
int
ecore_evas_visibility_get(Ecore_Evas *ee)
{
+ return ee->visible;
}
void
ecore_evas_title_set(Ecore_Evas *ee, const char *t)
{
+ if (ee->prop.title) free(ee->prop.title);
+ ee->prop.title = NULL;
+ if (t) ee->prop.title = strdup(t);
+ ecore_x_window_prop_title_set(ee->x11.win_container, ee->prop.title);
}
const char *
ecore_evas_title_get(Ecore_Evas *ee)
{
+ return ee->prop.title;
}
void
ecore_evas_name_class_set(Ecore_Evas *ee, const char *n, const char *c)
{
+ if (ee->prop.name) free(ee->prop.name);
+ if (ee->prop.clas) free(ee->prop.clas);
+ ee->prop.name = NULL;
+ ee->prop.clas = NULL;
+ ee->prop.name = strdup(n);
+ ee->prop.clas = strdup(c);
+ ecore_x_window_prop_name_class_set(ee->x11.win_container, ee->prop.name,
+ee->prop.clas);
}
void
ecore_evas_name_class_get(Ecore_Evas *ee, const char **n, const char **c)
{
+ if (n) *n = ee->prop.name;
+ if (c) *c = ee->prop.clas;
}
void
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas_private.h,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- ecore_evas_private.h 7 Feb 2003 00:24:02 -0000 1.1.2.3
+++ ecore_evas_private.h 8 Feb 2003 01:30:57 -0000 1.1.2.4
@@ -12,21 +12,26 @@
struct _Ecore_Evas
{
- Evas *evas;
- char *driver;
- char *name;
- int x, y, w, h;
- int rotation;
- int shaped : 1;
- int visible : 1;
+ Ecore_List __list_data;
+ ECORE_MAGIC;
+ Evas *evas;
+ char *driver;
+ char *name;
+ int x, y, w, h;
+ int rotation;
+ int shaped : 1;
+ int visible : 1;
struct {
- char *title;
- char *name;
- char *clas;
+ char *title;
+ char *name;
+ char *clas;
struct {
- int w, h;
- } min, max, base, step;
+ int w, h;
+ } min,
+ max,
+ base,
+ step;
struct {
Evas_Object *object;
char *file;
@@ -35,25 +40,26 @@
int x, y;
} hot;
} cursor;
- int layer;
- int focused : 1;
- int iconified : 1;
- int borderless : 1;
- int override : 1;
- int maximized : 1;
- int fullscreen : 1;
- int avoid_damage : 1;
+ int layer;
+ int focused : 1;
+ int iconified : 1;
+ int borderless : 1;
+ int override : 1;
+ int maximized : 1;
+ int fullscreen : 1;
+ int avoid_damage : 1;
} prop;
struct {
- void (*func_free) (Ecore_Evas *ee);
+ void (*func_free) (Ecore_Evas *ee);
} func;
#ifdef BUILD_EVAS_X
struct {
- Window win;
- Pixmap pmap;
- Pixmap mask;
+ Window win_container;
+ Window win;
+ Pixmap pmap;
+ Pixmap mask;
} x11;
#endif
};
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs