[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