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 
Added Files:
      Tag: SPLIT
        ecore_evas_fb.c ecore_evas_x.c 


Log Message:


busy bee. some work from the weekend & recently committed... :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/Ecore_Evas.h,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -3 -r1.1.2.9 -r1.1.2.10
--- Ecore_Evas.h        9 Feb 2003 02:27:49 -0000       1.1.2.9
+++ Ecore_Evas.h        11 Feb 2003 06:27:09 -0000      1.1.2.10
@@ -15,14 +15,16 @@
 typedef void Ecore_Evas;   
 #endif
    
-int  ecore_evas_init(void);
-int  ecore_evas_shutdown(void);
+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);
-   void        ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) 
(Ecore_Evas *ee));
-   void        ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
*ee));
-   void        ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
*ee));
+Ecore_Evas *ecore_evas_software_x11_new(const char *disp_name, Window parent, int x, 
+int y, int w, int h);
+Ecore_Evas *ecore_evas_fb_new(char *disp_name, int rotation, int w, int h);
+       
+void        ecore_evas_free(Ecore_Evas *ee);
+void        ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+void        ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+void        ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
    void        ecore_evas_callback_hide_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
*ee));
    void        ecore_evas_callback_delete_request_set(Ecore_Evas *ee, void (*func) 
(Ecore_Evas *ee));
    void        ecore_evas_callback_destroy_set(Ecore_Evas *ee, void (*func) 
(Ecore_Evas *ee));
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/Makefile.am,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -3 -r1.1.2.4 -r1.1.2.5
--- Makefile.am 9 Feb 2003 00:41:46 -0000       1.1.2.4
+++ Makefile.am 11 Feb 2003 06:27:09 -0000      1.1.2.5
@@ -1,25 +1,57 @@
 ## Process this file with automake to produce Makefile.in
 
+if BUILD_ECORE_X
+ECORE_X_INC = -I$(top_srcdir)/src/lib/ecore_x
+ECORE_X_LIB = $(top_builddir)/src/lib/ecore_x/libecore_x.la
+else
+ECORE_X_INC =
+ECORE_X_LIB =
+endif
+
+if BUILD_ECORE_FB
+ECORE_FB_INC = -I$(top_srcdir)/src/lib/ecore_fb
+ECORE_FB_LIB = $(top_builddir)/src/lib/ecore_fb/libecore_fb.la
+else
+ECORE_FB_INC =
+ECORE_FB_LIB =
+endif
+
 INCLUDES = \
 -I$(top_srcdir)/src/lib/ecore \
--I$(top_srcdir)/src/lib/ecore_x \
+$(ECORE_X_INC) \
+$(ECORE_FB_INC) \
 @evas_cflags@ 
 
+libecore_evas_la_LDFLAGS = -version-info 1:0:0
+
+if BUILD_ECORE_EVAS
+
 lib_LTLIBRARIES = libecore_evas.la
 include_HEADERS = \
 Ecore_Evas.h
 
 libecore_evas_la_SOURCES = \
 ecore_evas.c \
+ecore_evas_x.c \
+ecore_evas_fb.c \
 ecore_evas_private.h
 
 libecore_evas_la_LIBADD = $(LDFLAGS) \
-$(top_builddir)/src/lib/ecore_x/libecore_x.la \
+$(ECORE_X_LIB) \
+$(ECORE_FB_LIB) \
 $(top_builddir)/src/lib/ecore/libecore.la \
 @evas_libs@
 
-libecore_evas_la_LDFLAGS = -version-info 1:0:0
-
 libecore_evas_la_DEPENDENCIES = \
-$(top_builddir)/src/lib/ecore_x/libecore_x.la \
+$(ECORE_X_LIB) \
+$(ECORE_FB_LIB) \
 $(top_builddir)/src/lib/ecore/libecore.la
+
+endif
+
+EXTRA_DIST = \
+Ecore_Evas.h \
+ecore_evas.c \
+ecore_evas_x.c \
+ecore_evas_fb.c \
+ecore_evas_private.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas.c,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -u -3 -r1.1.2.10 -r1.1.2.11
--- ecore_evas.c        9 Feb 2003 03:19:39 -0000       1.1.2.10
+++ ecore_evas.c        11 Feb 2003 06:27:09 -0000      1.1.2.11
@@ -1,431 +1,11 @@
+#include "config.h"
 #include "ecore_private.h"
 #include "Ecore.h"
 #include "ecore_evas_private.h"
 #include "Ecore_Evas.h"
-#include "Ecore_X.h"
 
 static int _ecore_evas_init_count = 0;
 
-static Ecore_Evas *ecore_evases = NULL;
-static Ecore_Event_Handler *ecore_evas_event_handlers[15];
-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 */
-   if (ee->prop.cursor.object)
-     {
-       evas_object_show(ee->prop.cursor.object);
-       evas_object_move(ee->prop.cursor.object, 
-                        e->x - ee->prop.cursor.hot.x,
-                        e->y - ee->prop.cursor.hot.y);
-     }
-   _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 */
-   if (ee->prop.cursor.object)
-     {
-       evas_object_show(ee->prop.cursor.object);
-       evas_object_move(ee->prop.cursor.object, 
-                        e->x - ee->prop.cursor.hot.x,
-                        e->y - ee->prop.cursor.hot.y);
-     }
-   if (ee->func.fn_mouse_in) ee->func.fn_mouse_in(ee);
-   _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);   
-   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->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
-   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;
-   if (ee->func.fn_focus_in) ee->func.fn_focus_in(ee);
-   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;
-   if (ee->func.fn_focus_out) ee->func.fn_focus_out(ee);
-   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 */
-   if (ee->prop.avoid_damage)
-     {
-       XRectangle xr;
-       Region tmpr;
-       
-       if (!ee->x11.damages) ee->x11.damages = XCreateRegion();
-       tmpr = XCreateRegion();
-       xr.x = e->x;
-       xr.y = e->y;
-       xr.width = e->w;
-       xr.height = e->h;
-       XUnionRectWithRegion(&xr, ee->x11.damages, tmpr);
-       XDestroyRegion(ee->x11.damages);
-       ee->x11.damages = tmpr;
-     }
-   else
-     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 */
-   if (ee->func.fn_destroy) ee->func.fn_destroy(ee);
-   ecore_evas_free(ee);
-   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 */
-   if ((ee->prop.fullscreen) && (e->win == ee->x11.win_container)) return 0;
-   if ((e->from_wm) || (ee->prop.fullscreen) || (ee->prop.override))
-     {
-       if ((ee->x != e->x) || (ee->y != e->y))
-         {
-            ee->x = e->x;
-            ee->y = e->y;
-            if (ee->func.fn_move) ee->func.fn_move(ee);             
-         }
-     }
-   if ((ee->w != e->w) || (ee->h != e->h))
-     {
-       ee->w = e->w;
-       ee->h = e->h;
-       if (e->win == ee->x11.win_container)
-         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);
-       if (ee->prop.avoid_damage)
-         {
-            ecore_evas_avoid_damage_set(ee, 0);
-            ecore_evas_avoid_damage_set(ee, 1);
-         }
-       if (ee->shaped)
-         {
-            ecore_evas_shaped_set(ee, 0);
-            ecore_evas_shaped_set(ee, 1);
-         }
-       if (ee->func.fn_resize) ee->func.fn_resize(ee); 
-     }
-   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 */
-   if (ee->func.fn_delete_request) ee->func.fn_delete_request(ee);
-   return 0; /* dont pass it on */
-}
-
-static int
-_ecore_evas_event_window_show(int type, void *event, void *data)
-{
-   Ecore_Evas *ee;
-   Ecore_X_Event_Window_Show *e;
-   
-   e = event;
-   ee = _ecore_evas_software_x11_match(e->win);
-   if (!ee) return 1; /* pass on event */
-   if (ee->x11.win_container != e->win) return 0;
-   ee->visible = 1;
-   if (ee->func.fn_show) ee->func.fn_show(ee);
-   return 0; /* dont pass it on */
-}
-
-static int
-_ecore_evas_event_window_hide(int type, void *event, void *data)
-{
-   Ecore_Evas *ee;
-   Ecore_X_Event_Window_Hide *e;
-   
-   e = event;
-   ee = _ecore_evas_software_x11_match(e->win);
-   if (!ee) return 1; /* pass on event */
-   if (ee->x11.win_container != e->win) return 0;
-   ee->visible = 0;
-   if (ee->func.fn_hide) ee->func.fn_hide(ee);
-   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;
-       if (ee->prop.avoid_damage)
-         {
-            Evas_List *updates, *l;
-            
-            updates = evas_render_updates(ee->evas);
-            if (!ee->x11.damages) ee->x11.damages = XCreateRegion();
-            for (l = updates; l; l = l->next)
-              {
-                 Evas_Rectangle *r;
-                 XRectangle xr;
-                 Region tmpr;
-                 
-                 r = l->data;
-                 tmpr = XCreateRegion();
-                 xr.x = r->x;
-                 xr.y = r->y;
-                 xr.width = r->w;
-                 xr.height = r->h;
-                 XUnionRectWithRegion(&xr, ee->x11.damages, tmpr);
-                 XDestroyRegion(ee->x11.damages);
-                 ee->x11.damages = tmpr;
-              }
-            XSetRegion(ecore_x_display_get(), ee->x11.gc, ee->x11.damages);
-            ecore_x_pixmap_paste(ee->x11.pmap, ee->x11.win, ee->x11.gc,
-                                 0, 0, ee->w, ee->h, 0, 0);
-            XDestroyRegion(ee->x11.damages);
-            ee->x11.damages = 0;
-            if ((ee->shaped) && (updates))
-              {
-                 if (ee->prop.fullscreen)
-                   ecore_x_window_shape_mask_set(ee->x11.win, ee->x11.mask);
-                 else
-                   ecore_x_window_shape_mask_set(ee->x11.win_container, ee->x11.mask);
-              }
-            if (updates) evas_render_updates_free(updates);
-         }
-       else if (ee->visible)
-         {
-            if (ee->shaped)
-              {
-                 Evas_List *updates;
-                 
-                 updates = evas_render_updates(ee->evas);
-                 if (updates)
-                   {
-                      if (ee->prop.fullscreen)
-                        ecore_x_window_shape_mask_set(ee->x11.win, ee->x11.mask);
-                      else
-                        ecore_x_window_shape_mask_set(ee->x11.win_container, 
ee->x11.mask);
-                      evas_render_updates_free(updates);
-                   }
-              }
-            else
-              evas_render(ee->evas);
-         }
-     }
-   ecore_x_flush();
-   return 1;
-}
-
-static void
-_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);
-   if (ee->x11.pmap) ecore_x_pixmap_del(ee->x11.pmap);
-   if (ee->x11.mask) ecore_x_pixmap_del(ee->x11.mask);
-   if (ee->x11.gc) ecore_x_gc_del(ee->x11.gc);
-   if (ee->x11.damages) XDestroyRegion(ee->x11.damages);
-}
-
 /**
  * Init the Evas system
  * @param driver
@@ -439,22 +19,6 @@
 {
    _ecore_evas_init_count++;
    if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
-   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);
-   ecore_evas_event_handlers[13] = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHOW, 
_ecore_evas_event_window_show, NULL);
-   ecore_evas_event_handlers[14] = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_HIDE, 
_ecore_evas_event_window_hide, NULL);
    return _ecore_evas_init_count;
 }
 
@@ -466,81 +30,14 @@
 int
 ecore_evas_shutdown(void)
 {
-   int i;
-   
    _ecore_evas_init_count--;
    if (_ecore_evas_init_count == 0)
      {
-       for (i = 0; 
-            i < (sizeof(ecore_evas_event_handlers) / 
-                 sizeof(Ecore_Event_Handler *)); 
-            i++)
-         ecore_event_handler_del(ecore_evas_event_handlers[i]);
      }
    if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
    return _ecore_evas_init_count;
 }
 
-Ecore_Evas *
-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.fn_free = _ecore_evas_software_x11_free;
-   
-   ee->driver = strdup("software_x11");
-   if (disp_name) ee->name = strdup(disp_name);
-   
-   ee->prop.max.w = 32767;
-   ee->prop.max.h = 32767;
-   ee->prop.layer = 4;
-   
-   /* 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);
-   
-   ee->x11.win_container = ecore_x_window_new(parent, x, y, w, h);
-   ee->x11.win = ecore_x_window_override_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");
-
-   ecore_x_window_show(ee->x11.win);
-
-   ecore_evases = _ecore_list_prepend(ecore_evases, ee);
-   return ee;
-}
-
 void
 ecore_evas_free(Ecore_Evas *ee)
 {
@@ -552,69 +49,90 @@
    if (ee->prop.cursor.file) free(ee->prop.cursor.file);
    if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
    if (ee->evas) evas_free(ee->evas);
-   if (ee->func.fn_free) ee->func.fn_free(ee);
-   ecore_evases = _ecore_list_remove(ecore_evases, ee);   
+   if (ee->engine.func->fn_free) ee->engine.func->fn_free(ee);
    free(ee);
 }
+
+#define IFC(_ee, _fn)  if (_ee->engine.func->_fn) {_ee->engine.func->_fn
+#define IFE            return;}
+
 void
 ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_resize_set) (ee, func);
+   IFE;
    ee->func.fn_resize = func;
 }
 
 void
 ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_move_set) (ee, func);
+   IFE;
    ee->func.fn_move = func;
 }
 
 void
 ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_show_set) (ee, func);
+   IFE;
    ee->func.fn_show = func;
 }
 
 void
 ecore_evas_callback_hide_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_hide_set) (ee, func);
+   IFE;
    ee->func.fn_hide = func;
 }
 
 void
 ecore_evas_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
-   if (func) ecore_x_window_prop_delete_request_set(ee->x11.win_container, 1);
-   else ecore_x_window_prop_delete_request_set(ee->x11.win_container, 0);
+   IFC(ee, fn_callback_delete_request_set) (ee, func);
+   IFE;
    ee->func.fn_delete_request = func;
 }
 
 void
 ecore_evas_callback_destroy_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_destroy_set) (ee, func);
+   IFE;
    ee->func.fn_destroy = func;
 }
 
 void
 ecore_evas_callback_focus_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_focus_in_set) (ee, func);
+   IFE;
    ee->func.fn_focus_in = func;
 }
 
 void
 ecore_evas_callback_focus_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_focus_out_set) (ee, func);
+   IFE;
    ee->func.fn_focus_out = func;
 }
 
 void
 ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_mouse_in_set) (ee, func);
+   IFE;
    ee->func.fn_mouse_in = func;
 }
 
 void
 ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee))
 {
+   IFC(ee, fn_callback_mouse_out_set) (ee, func);
+   IFE;
    ee->func.fn_mouse_out = func;
 }
 
@@ -627,19 +145,22 @@
 void
 ecore_evas_move(Ecore_Evas *ee, int x, int y)
 {
-   ecore_x_window_move(ee->x11.win_container, x, y);
+   IFC(ee, fn_move) (ee, x, y);
+   IFE;
 }
 
 void
 ecore_evas_resize(Ecore_Evas *ee, int w, int h)
 {
-   ecore_x_window_resize(ee->x11.win_container, w, h);
+   IFC(ee, fn_resize) (ee, w, h);
+   IFE;
 }
 
 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);
+   IFC(ee, fn_move_resize) (ee, x, y, w, h);
+   IFE;
 }
 
 void
@@ -654,6 +175,8 @@
 void
 ecore_evas_rotation_set(Ecore_Evas *ee, int rot)
 {
+   IFC(ee, fn_rotation_set) (ee, rot);
+   IFE;
 }
 
 int
@@ -665,32 +188,8 @@
 void
 ecore_evas_shaped_set(Ecore_Evas *ee, int shaped)
 {
-   Evas_Engine_Info_Software_X11 *einfo;
-   
-   if (((ee->shaped) && (shaped)) ||
-       ((!ee->shaped) && (!shaped)))
-     return;
-   ee->shaped = shaped;
-   einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas);
-   if (einfo)
-     {
-       if (ee->shaped)
-         {
-            ee->x11.mask = ecore_x_pixmap_new(ee->x11.win, ee->w, ee->h, 1);
-            einfo->info.mask = ee->x11.mask;
-            evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
-            evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
-         }
-       else
-         {
-            if (ee->x11.mask) ecore_x_pixmap_del(ee->x11.mask);
-            ee->x11.mask = 0;
-            einfo->info.mask = 0;
-            evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
-            ecore_x_window_shape_mask_set(ee->x11.win, 0);
-            ecore_x_window_shape_mask_set(ee->x11.win_container, 0);
-         }
-     }
+   IFC(ee, fn_shaped_set) (ee, shaped);
+   IFE;
 }
 
 int
@@ -702,13 +201,15 @@
 void
 ecore_evas_show(Ecore_Evas *ee)
 {
-   ecore_x_window_show(ee->x11.win_container);
+   IFC(ee, fn_show) (ee);
+   IFE;
 }
 
 void
 ecore_evas_hide(Ecore_Evas *ee)
 {
-   ecore_x_window_hide(ee->x11.win_container);
+   IFC(ee, fn_hide) (ee);
+   IFE;
 }
 
 int
@@ -720,22 +221,22 @@
 void
 ecore_evas_raise(Ecore_Evas *ee)
 {
-   ecore_x_window_raise(ee->x11.win_container);
+   IFC(ee, fn_raise) (ee);
+   IFE;
 }
 
 void
 ecore_evas_lower(Ecore_Evas *ee)
 {
-   ecore_x_window_lower(ee->x11.win_container);
+   IFC(ee, fn_lower) (ee);
+   IFE;
 }
 
 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);
+   IFC(ee, fn_title_set) (ee, t);
+   IFE;
 }
 
 const char *
@@ -747,13 +248,8 @@
 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);
+   IFC(ee, fn_name_class_set) (ee, n, c);
+   IFE;
 }
 
 void
@@ -766,12 +262,8 @@
 void
 ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h)
 {
-   if (w < 0) w = 0;
-   if (h < 0) h = 0;
-   if ((ee->prop.min.w == w) && (ee->prop.min.h == h)) return;
-   ee->prop.min.w = w;
-   ee->prop.min.h = h;
-   ecore_x_window_prop_min_size_set(ee->x11.win_container, ee->prop.min.w, 
ee->prop.min.h);
+   IFC(ee, fn_size_min_set) (ee, w, h);
+   IFE;
 }
 
 void
@@ -784,12 +276,8 @@
 void
 ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h)
 {
-   if (w < 0) w = 0;
-   if (h < 0) h = 0;
-   if ((ee->prop.max.w == w) && (ee->prop.max.h == h)) return;
-   ee->prop.max.w = w;
-   ee->prop.max.h = h;
-   ecore_x_window_prop_max_size_set(ee->x11.win_container, ee->prop.max.w, 
ee->prop.max.h);
+   IFC(ee, fn_size_max_set) (ee, w, h);
+   IFE;
 }
 
 void
@@ -802,12 +290,8 @@
 void
 ecore_evas_size_base_set(Ecore_Evas *ee, int w, int h)
 {
-   if (w < 0) w = 0;
-   if (h < 0) h = 0;
-   if ((ee->prop.base.w == w) && (ee->prop.base.h == h)) return;
-   ee->prop.base.w = w;
-   ee->prop.base.h = h;
-   ecore_x_window_prop_base_size_set(ee->x11.win_container, ee->prop.base.w, 
ee->prop.base.h);
+   IFC(ee, fn_size_base_set) (ee, w, h);
+   IFE;
 }
 
 void
@@ -820,12 +304,8 @@
 void
 ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h)
 {
-   if (w < 1) w = 1;
-   if (h < 1) h = 1;
-   if ((ee->prop.step.w == w) && (ee->prop.step.h == h)) return;
-   ee->prop.step.w = w;
-   ee->prop.step.h = h;
-   ecore_x_window_prop_step_size_set(ee->x11.win_container, ee->prop.step.w, 
ee->prop.step.h);
+   IFC(ee, fn_size_step_set) (ee, w, h);
+   IFE;
 }
 
 void
@@ -838,40 +318,8 @@
 void
 ecore_evas_cursor_set(Ecore_Evas *ee, const char *file, int layer, int hot_x, int 
hot_y)
 {
-   int x, y;
-   
-   if (!file)
-     {
-       if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
-       if (ee->prop.cursor.file) free(ee->prop.cursor.file);
-       ee->prop.cursor.object = NULL;
-       ee->prop.cursor.file = NULL;
-       ee->prop.cursor.layer = 0;
-       ee->prop.cursor.hot.x = 0;
-       ee->prop.cursor.hot.y = 0;
-       ecore_x_window_cursor_show(ee->x11.win, 1);
-       return;
-     }
-   ecore_x_window_cursor_show(ee->x11.win, 0);
-   if (!ee->prop.cursor.object) ee->prop.cursor.object = 
evas_object_image_add(ee->evas);
-   if (ee->prop.cursor.file) free(ee->prop.cursor.file);
-   ee->prop.cursor.file = strdup(file);
-   ee->prop.cursor.layer = layer;
-   ee->prop.cursor.hot.x = hot_x;
-   ee->prop.cursor.hot.y = hot_y;   
-   evas_pointer_output_xy_get(ee->evas, &x, &y);
-   evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
-   evas_object_color_set(ee->prop.cursor.object, 255, 255, 255, 255);
-   evas_object_move(ee->prop.cursor.object, 
-                   x - ee->prop.cursor.hot.x,
-                   y - ee->prop.cursor.hot.y);
-   evas_object_image_file_set(ee->prop.cursor.object, ee->prop.cursor.file, NULL);
-   evas_object_image_size_get(ee->prop.cursor.object, &x, &y);
-   evas_object_resize(ee->prop.cursor.object, x, y);
-   evas_object_image_fill_set(ee->prop.cursor.object, 0, 0, x, y);
-   evas_object_pass_events_set(ee->prop.cursor.object, 1);
-   if (evas_pointer_inside_get(ee->evas))
-     evas_object_show(ee->prop.cursor.object);
+   IFC(ee, fn_cursor_set) (ee, file, layer, hot_x, hot_y);
+   IFE;
 }
 
 void
@@ -886,9 +334,8 @@
 void
 ecore_evas_layer_set(Ecore_Evas *ee, int layer)
 {
-   if (ee->prop.layer == layer) return;
-   ee->prop.layer = layer;
-   ecore_x_window_prop_layer_set(ee->x11.win_container, ee->prop.layer);
+   IFC(ee, fn_layer_set) (ee, layer);
+   IFE;
 }
 
 int
@@ -900,7 +347,8 @@
 void
 ecore_evas_focus_set(Ecore_Evas *ee, int on)
 {
-   ecore_x_window_focus(ee->x11.win_container);
+   IFC(ee, fn_focus_set) (ee, on);
+   IFE;
 }
 
 int
@@ -912,7 +360,8 @@
 void
 ecore_evas_iconified_set(Ecore_Evas *ee, int on)
 {
-   printf("ecore_evas_iconified_set() does not do anything yet.\n");
+   IFC(ee, fn_iconified_set) (ee, on);
+   IFE;
 }
 
 int
@@ -924,10 +373,8 @@
 void
 ecore_evas_borderless_set(Ecore_Evas *ee, int on)
 {
-   if (((ee->prop.borderless) && (on)) ||
-       ((!ee->prop.borderless) && (!on))) return;
-   ee->prop.borderless = on;
-   ecore_x_window_prop_borderless_set(ee->x11.win_container, ee->prop.borderless);
+   IFC(ee, fn_borderless_set) (ee, on);
+   IFE;
 }
 
 int
@@ -939,32 +386,8 @@
 void
 ecore_evas_override_set(Ecore_Evas *ee, int on)
 {
-   if (((ee->prop.override) && (on)) ||
-       ((!ee->prop.override) && (!on))) return;
-   ecore_x_window_hide(ee->x11.win);
-   ecore_x_window_reparent(ee->x11.win, 0, 0, 0);      
-   ecore_x_window_del(ee->x11.win_container);
-   if (on)
-     ee->x11.win_container = ecore_x_window_override_new(0, ee->x, ee->y, ee->w, 
ee->h);
-   else
-     {
-       ee->x11.win_container = ecore_x_window_new(0, ee->x, ee->y, ee->w, ee->h);
-       ecore_x_window_prop_title_set(ee->x11.win_container, ee->prop.title);
-       ecore_x_window_prop_name_class_set(ee->x11.win_container, ee->prop.name, 
ee->prop.clas);
-       if (ee->func.fn_delete_request)
-         ecore_x_window_prop_delete_request_set(ee->x11.win_container, 1);
-       ecore_x_window_prop_min_size_set(ee->x11.win_container, ee->prop.min.w, 
ee->prop.min.h);
-       ecore_x_window_prop_max_size_set(ee->x11.win_container, ee->prop.max.w, 
ee->prop.max.h);
-       ecore_x_window_prop_base_size_set(ee->x11.win_container, ee->prop.base.w, 
ee->prop.base.h);
-       ecore_x_window_prop_step_size_set(ee->x11.win_container, ee->prop.step.w, 
ee->prop.step.h);
-       ecore_x_window_prop_borderless_set(ee->x11.win_container, ee->prop.borderless);
-       ecore_x_window_prop_layer_set(ee->x11.win_container, ee->prop.layer);
-     }
-   ecore_x_window_reparent(ee->x11.win, ee->x11.win_container, 0, 0);  
-   ecore_x_window_show(ee->x11.win);
-   if (ee->visible) ecore_x_window_show(ee->x11.win_container);
-   if (ee->prop.focused) ecore_x_window_focus(ee->x11.win_container);
-   ee->prop.override = on;
+   IFC(ee, fn_override_set) (ee, on);
+   IFE;
 }
 
 int
@@ -976,44 +399,21 @@
 void
 ecore_evas_maximized_set(Ecore_Evas *ee, int on)
 {
-   printf("ecore_evas_maximized_set() does not do anything yet.\n");
+   IFC(ee, fn_maximized_set) (ee, on);
+   IFE;
 }
 
 int
 ecore_evas_maximized_get(Ecore_Evas *ee)
 {
-   return 0;
+   return ee->prop.maximized;;
 }
 
 void
 ecore_evas_fullscreen_set(Ecore_Evas *ee, int on)
 {
-   if (((ee->prop.fullscreen) && (on)) ||
-       ((!ee->prop.fullscreen) && (!on))) return;
-   if (on)
-     {
-       int rw, rh;
-       
-       ecore_x_window_size_get(0, &rw, &rh);
-       ecore_x_window_resize(ee->x11.win, rw, rh);
-       ecore_x_window_reparent(ee->x11.win, 0, 0, 0);
-       ecore_x_window_raise(ee->x11.win);
-       ecore_x_window_show(ee->x11.win);
-       ecore_x_window_focus(ee->x11.win);
-       ecore_x_window_shape_mask_set(ee->x11.win_container, 0);
-       ee->x = 0;
-       ee->y = 0;
-     }
-   else
-     {
-       int pw, ph;
-       
-       ecore_x_window_size_get(ee->x11.win_container, &pw, &ph);
-       ecore_x_window_reparent(ee->x11.win, ee->x11.win_container, 0, 0);
-       ecore_x_window_resize(ee->x11.win, pw, ph);
-       ecore_x_window_shape_mask_set(ee->x11.win, 0);
-     }
-   ee->prop.fullscreen = on;
+   IFC(ee, fn_fullscreen_set) (ee, on);
+   IFE;
 }
 
 int
@@ -1025,33 +425,8 @@
 void
 ecore_evas_avoid_damage_set(Ecore_Evas *ee, int on)
 {
-   Evas_Engine_Info_Software_X11 *einfo;
-
-   if (((ee->prop.avoid_damage) && (on)) ||
-       ((!ee->prop.avoid_damage) && (!on)))
-     return;
-   ee->prop.avoid_damage = on;   
-   einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas);
-   if (einfo)
-     {
-       if (ee->prop.avoid_damage)
-         {
-            ee->x11.pmap = ecore_x_pixmap_new(ee->x11.win, ee->w, ee->h, 0);
-            ee->x11.gc = ecore_x_gc_new(ee->x11.pmap);
-            einfo->info.drawable = ee->x11.pmap;
-            evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
-            evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
-         }
-       else
-         {
-            if (ee->x11.pmap) ecore_x_pixmap_del(ee->x11.pmap);
-            if (ee->x11.gc) ecore_x_gc_del(ee->x11.gc);
-            ee->x11.pmap = 0;
-            ee->x11.gc = 0;
-            einfo->info.drawable = ee->x11.win;
-            evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
-         }
-     }
+   IFC(ee, fn_avoid_damage_set) (ee, on);
+   IFE;
 }
 
 int
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas_private.h,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -3 -r1.1.2.8 -r1.1.2.9
--- ecore_evas_private.h        9 Feb 2003 04:23:50 -0000       1.1.2.8
+++ ecore_evas_private.h        11 Feb 2003 06:27:09 -0000      1.1.2.9
@@ -2,11 +2,74 @@
 #define _ECORE_EVAS_PRIVATE_H
 
 #include <Evas.h>
+
+#ifdef BUILD_ECORE_X
 #include <Evas_Engine_Software_X11.h>
 #include <X11/Xutil.h>
+#endif
+#ifdef BUILD_ECORE_FB
+#include <Evas_Engine_FB.h>
+#endif
+
+typedef struct _Ecore_Evas             Ecore_Evas;
+typedef struct _Ecore_Evas_Engine      Ecore_Evas_Engine;
+typedef struct _Ecore_Evas_Engine_Func Ecore_Evas_Engine_Func;
 
-typedef struct _Ecore_Evas Ecore_Evas;
+struct _Ecore_Evas_Engine_Func
+{
+   void        (*fn_free) (Ecore_Evas *ee);      
+   void        (*fn_callback_resize_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_move_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_show_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_hide_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_delete_request_set) (Ecore_Evas *ee, void (*func) 
+(Ecore_Evas *ee));
+   void        (*fn_callback_destroy_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_focus_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_focus_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_mouse_in_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_callback_mouse_out_set) (Ecore_Evas *ee, void (*func) (Ecore_Evas 
+*ee));
+   void        (*fn_move) (Ecore_Evas *ee, int x, int y);
+   void        (*fn_resize) (Ecore_Evas *ee, int w, int h);
+   void        (*fn_move_resize) (Ecore_Evas *ee, int x, int y, int w, int h);
+   void (*fn_rotation_set) (Ecore_Evas *ee, int rot);
+   void        (*fn_shaped_set) (Ecore_Evas *ee, int shaped);
+   void        (*fn_show) (Ecore_Evas *ee);
+   void        (*fn_hide) (Ecore_Evas *ee);
+   void        (*fn_raise) (Ecore_Evas *ee);
+   void        (*fn_lower) (Ecore_Evas *ee);
+   void        (*fn_title_set) (Ecore_Evas *ee, const char *t);
+   void        (*fn_name_class_set) (Ecore_Evas *ee, const char *n, const char *c);
+   void        (*fn_size_min_set) (Ecore_Evas *ee, int w, int h);
+   void        (*fn_size_max_set) (Ecore_Evas *ee, int w, int h);
+   void        (*fn_size_base_set) (Ecore_Evas *ee, int w, int h);
+   void        (*fn_size_step_set) (Ecore_Evas *ee, int w, int h);
+   void        (*fn_cursor_set) (Ecore_Evas *ee, const char *file, int layer, int 
+hot_x, int hot_y);
+   void        (*fn_layer_set) (Ecore_Evas *ee, int layer);
+   void        (*fn_focus_set) (Ecore_Evas *ee, int on);
+   void (*fn_iconified_set) (Ecore_Evas *ee, int on);
+   void        (*fn_borderless_set) (Ecore_Evas *ee, int on);
+   void        (*fn_override_set) (Ecore_Evas *ee, int on);
+   void (*fn_maximized_set) (Ecore_Evas *ee, int on);
+   void        (*fn_fullscreen_set) (Ecore_Evas *ee, int on);
+   void        (*fn_avoid_damage_set) (Ecore_Evas *ee, int on);
+};
 
+struct _Ecore_Evas_Engine
+{
+   Ecore_Evas_Engine_Func *func;
+   
+#ifdef BUILD_ECORE_X
+   struct {
+      Window         win_container;
+      Window         win;
+      Pixmap         pmap;
+      Pixmap         mask;
+      GC             gc;
+      Region         damages;
+   } x;
+#endif   
+};
+  
 struct _Ecore_Evas
 {
    Ecore_List  __list_data;
@@ -48,7 +111,6 @@
    } prop;
    
    struct {
-      void          (*fn_free) (Ecore_Evas *ee);
       void          (*fn_resize) (Ecore_Evas *ee);
       void          (*fn_move) (Ecore_Evas *ee);
       void          (*fn_show) (Ecore_Evas *ee);
@@ -61,14 +123,16 @@
       void          (*fn_mouse_out) (Ecore_Evas *ee);
    } func;
    
-   struct {
-      Window         win_container;
-      Window         win;
-      Pixmap         pmap;
-      Pixmap         mask;
-      GC             gc;
-      Region         damages;
-   } x11;
+   Ecore_Evas_Engine engine;
 };
+
+#ifdef BUILD_ECORE_X
+int _ecore_evas_x_init(void);
+int _ecore_evas_x_shutdown(void);
+#endif
+#ifdef BUILD_ECORE_FB
+int _ecore_evas_fb_init(void);
+int _ecore_evas_fb_shutdown(void);
+#endif
 
 #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