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

Reply via email to