[Pkg-e-commits] [SCM] Core abstraction layer for enlightenment DR 0.17 branch, upstream-vcs, updated. fbccf3b6cae3945e0db311041de91f346fccbae1
doursse
doursse at alioth.debian.org
Mon Jun 9 12:45:09 UTC 2008
The following commit has been merged in the upstream-vcs branch:
commit d3c8791dabf20cb8543eeac3768b1c3a499451b7
Author: doursse <doursse>
Date: Thu Jun 5 07:23:41 2008 +0000
* add _size_get() and _geometry_get() methods
* fix use of resume() and suspend() functions when dealing with GAPI
diff --git a/src/lib/ecore_wince/Ecore_WinCE.h b/src/lib/ecore_wince/Ecore_WinCE.h
index bc6ae59..1bb4ec4 100644
--- a/src/lib/ecore_wince/Ecore_WinCE.h
+++ b/src/lib/ecore_wince/Ecore_WinCE.h
@@ -213,9 +213,19 @@ EAPI void ecore_wince_window_show(Ecore_WinCE_Window *window);
EAPI void ecore_wince_window_hide(Ecore_WinCE_Window *window);
-EAPI void ecore_wince_window_suspend_set(Ecore_WinCE_Window *window, int (*suspend)(void));
+ EAPI void ecore_wince_window_suspend_set(Ecore_WinCE_Window *window, int (*suspend)(int), int backend);
-EAPI void ecore_wince_window_resume_set(Ecore_WinCE_Window *window, int (*resume)(void));
+EAPI void ecore_wince_window_resume_set(Ecore_WinCE_Window *window, int (*resume)(int), int backend);
+
+EAPI void ecore_wince_window_geometry_get(Ecore_WinCE_Window *window,
+ int *x,
+ int *y,
+ int *width,
+ int *height);
+
+EAPI void ecore_wince_window_size_get(Ecore_WinCE_Window *window,
+ int *width,
+ int *height);
EAPI void *ecore_wince_window_window_get(Ecore_WinCE_Window *window);
diff --git a/src/lib/ecore_wince/ecore_wince_event.c b/src/lib/ecore_wince/ecore_wince_event.c
index cea9799..09ad6eb 100644
--- a/src/lib/ecore_wince/ecore_wince_event.c
+++ b/src/lib/ecore_wince/ecore_wince_event.c
@@ -355,7 +355,7 @@ _ecore_wince_event_handle_focus_in(Ecore_WinCE_Callback_Data *msg)
}
if (window->resume)
- window->resume();
+ window->resume(window->backend);
e->window = window;
@@ -381,7 +381,7 @@ _ecore_wince_event_handle_focus_out(Ecore_WinCE_Callback_Data *msg)
return;
}
if (window->suspend)
- window->suspend();
+ window->suspend(window->backend);
e->window = window;
diff --git a/src/lib/ecore_wince/ecore_wince_private.h b/src/lib/ecore_wince/ecore_wince_private.h
index 0405033..68aeed2 100644
--- a/src/lib/ecore_wince/ecore_wince_private.h
+++ b/src/lib/ecore_wince/ecore_wince_private.h
@@ -24,14 +24,15 @@ struct _Ecore_WinCE_Callback_Data
};
-typedef int (*ecore_wince_suspend) (void);
-typedef int (*ecore_wince_resume) (void);
+typedef int (*ecore_wince_suspend) (int);
+typedef int (*ecore_wince_resume) (int);
struct _Ecore_WinCE_Window
{
HWND window;
+ int backend;
ecore_wince_suspend suspend;
ecore_wince_resume resume;
diff --git a/src/lib/ecore_wince/ecore_wince_window.c b/src/lib/ecore_wince/ecore_wince_window.c
index e9b8b8f..7959174 100644
--- a/src/lib/ecore_wince/ecore_wince_window.c
+++ b/src/lib/ecore_wince/ecore_wince_window.c
@@ -138,7 +138,7 @@ ecore_wince_window_hide(Ecore_WinCE_Window *window)
}
void
-ecore_wince_window_suspend_set(Ecore_WinCE_Window *window, int (*suspend)(void))
+ecore_wince_window_suspend_set(Ecore_WinCE_Window *window, int (*suspend)(int), int backend)
{
struct _Ecore_WinCE_Window *w;
@@ -146,11 +146,12 @@ ecore_wince_window_suspend_set(Ecore_WinCE_Window *window, int (*suspend)(void))
return;
w = (struct _Ecore_WinCE_Window *)window;
+ w->backend = backend;
w->suspend = suspend;
}
void
-ecore_wince_window_resume_set(Ecore_WinCE_Window *window, int (*resume)(void))
+ecore_wince_window_resume_set(Ecore_WinCE_Window *window, int (*resume)(int), int backend)
{
struct _Ecore_WinCE_Window *w;
@@ -158,9 +159,90 @@ ecore_wince_window_resume_set(Ecore_WinCE_Window *window, int (*resume)(void))
return;
w = (struct _Ecore_WinCE_Window *)window;
+ w->backend = backend;
w->resume = resume;
}
+void
+ecore_wince_window_geometry_get(Ecore_WinCE_Window *window,
+ int *x,
+ int *y,
+ int *width,
+ int *height)
+{
+ RECT rect;
+ int w;
+ int h;
+
+ printf ("ecore_wince_window_geometry_get %p\n", window);
+ if (!window)
+ {
+ if (x) *x = 0;
+ if (y) *y = 0;
+ if (width) *width = GetSystemMetrics(SM_CXSCREEN);
+ if (height) *height = GetSystemMetrics(SM_CYSCREEN);
+
+ return;
+ }
+
+ if (!GetClientRect(((struct _Ecore_WinCE_Window *)window)->window,
+ &rect))
+ {
+ if (x) *x = 0;
+ if (y) *y = 0;
+ if (width) *width = 0;
+ if (height) *height = 0;
+
+ return;
+ }
+
+ w = rect.right - rect.left;
+ h = rect.bottom - rect.top;
+
+ if (!GetWindowRect(((struct _Ecore_WinCE_Window *)window)->window,
+ &rect))
+ {
+ if (x) *x = 0;
+ if (y) *y = 0;
+ if (width) *width = 0;
+ if (height) *height = 0;
+
+ return;
+ }
+
+ if (x) *x = rect.left;
+ if (y) *y = rect.top;
+ if (width) *width = w;
+ if (height) *height = h;
+}
+
+void
+ecore_wince_window_size_get(Ecore_WinCE_Window *window,
+ int *width,
+ int *height)
+{
+ RECT rect;
+
+ printf ("ecore_wince_window_size_get %p\n", window);
+ if (!window)
+ {
+ if (width) *width = GetSystemMetrics(SM_CXSCREEN);
+ if (height) *height = GetSystemMetrics(SM_CYSCREEN);
+
+ return;
+ }
+
+ if (!GetClientRect(((struct _Ecore_WinCE_Window *)window)->window,
+ &rect))
+ {
+ if (width) *width = 0;
+ if (height) *height = 0;
+ }
+
+ if (width) *width = rect.right - rect.left;
+ if (height) *height = rect.bottom - rect.top;
+}
+
void *
ecore_wince_window_window_get(Ecore_WinCE_Window *window)
{
--
Core abstraction layer for enlightenment DR 0.17
More information about the Pkg-e-commits
mailing list