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