Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_win32


Modified Files:
        ecore_win32.c ecore_win32_cursor.c ecore_win32_event.c 
        ecore_win32_glew.c ecore_win32_private.h ecore_win32_window.c 
Removed Files:
        ecore_win32_ddraw.cpp ecore_win32_direct3d.cpp 


Log Message:
reorganize header files and fix minor warnings

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_win32/ecore_win32.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ecore_win32.c       26 Jun 2008 04:30:29 -0000      1.6
+++ ecore_win32.c       26 Jun 2008 05:11:16 -0000      1.7
@@ -2,17 +2,211 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>   /* for printf */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
 #include <windowsx.h>
 
+#ifdef HAVE_OPENGL_GLEW
+# include <GL/glew.h>
+#endif /* HAVE_OPENGL_GLEW */
+
+#include "Ecore.h"
+#include "Ecore_Win32.h"
 #include "ecore_win32_private.h"
 
 
+/***** Global declarations *****/
+
 HINSTANCE           _ecore_win32_instance = NULL;
 double              _ecore_win32_double_click_time = 0.25;
 double              _ecore_win32_event_last_time = 0.0;
 Ecore_Win32_Window *_ecore_win32_event_last_window = NULL;
 
-static int          _ecore_win32_init_count = 0;
+int ECORE_WIN32_EVENT_KEY_DOWN              = 0;
+int ECORE_WIN32_EVENT_KEY_UP                = 0;
+int ECORE_WIN32_EVENT_MOUSE_BUTTON_DOWN     = 0;
+int ECORE_WIN32_EVENT_MOUSE_BUTTON_UP       = 0;
+int ECORE_WIN32_EVENT_MOUSE_MOVE            = 0;
+int ECORE_WIN32_EVENT_MOUSE_IN              = 0;
+int ECORE_WIN32_EVENT_MOUSE_OUT             = 0;
+int ECORE_WIN32_EVENT_MOUSE_WHEEL           = 0;
+int ECORE_WIN32_EVENT_WINDOW_FOCUS_IN       = 0;
+int ECORE_WIN32_EVENT_WINDOW_FOCUS_OUT      = 0;
+int ECORE_WIN32_EVENT_WINDOW_DAMAGE         = 0;
+int ECORE_WIN32_EVENT_WINDOW_CREATE         = 0;
+int ECORE_WIN32_EVENT_WINDOW_DESTROY        = 0;
+int ECORE_WIN32_EVENT_WINDOW_SHOW           = 0;
+int ECORE_WIN32_EVENT_WINDOW_HIDE           = 0;
+int ECORE_WIN32_EVENT_WINDOW_CONFIGURE      = 0;
+int ECORE_WIN32_EVENT_WINDOW_RESIZE         = 0;
+int ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST = 0;
+
+
+/***** Private declarations *****/
+
+static int       _ecore_win32_init_count = 0;
+
+LRESULT CALLBACK _ecore_win32_window_procedure(HWND   window,
+                                               UINT   message,
+                                               WPARAM window_param,
+                                               LPARAM data_param);
+
+
+/***** API *****/
+
+
+int
+ecore_win32_init()
+{
+   WNDCLASS wc;
+
+   if (_ecore_win32_init_count > 0)
+     {
+       _ecore_win32_init_count++;
+       return _ecore_win32_init_count;
+     }
+
+   printf (" *** ecore_win32_init\n");
+   _ecore_win32_instance = GetModuleHandle(NULL);
+   if (!_ecore_win32_instance)
+     return 0;
+
+   memset (&wc, 0, sizeof (WNDCLASS));
+   wc.style = CS_HREDRAW | CS_VREDRAW;
+   wc.lpfnWndProc = _ecore_win32_window_procedure;
+   wc.cbClsExtra = 0;
+   wc.cbWndExtra = 0;
+   wc.hInstance = _ecore_win32_instance;
+   wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
+   wc.hCursor = LoadCursor (NULL, IDC_ARROW);
+   wc.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
+   wc.lpszMenuName =  NULL;
+   wc.lpszClassName = ECORE_WIN32_WINDOW_CLASS;
+
+   if(!RegisterClass(&wc))
+     {
+        FreeLibrary(_ecore_win32_instance);
+        return 0;
+     }
+
+   if (!ECORE_WIN32_EVENT_KEY_DOWN)
+     {
+        ECORE_WIN32_EVENT_KEY_DOWN              = ecore_event_type_new();
+        ECORE_WIN32_EVENT_KEY_UP                = ecore_event_type_new();
+        ECORE_WIN32_EVENT_MOUSE_BUTTON_DOWN     = ecore_event_type_new();
+        ECORE_WIN32_EVENT_MOUSE_BUTTON_UP       = ecore_event_type_new();
+        ECORE_WIN32_EVENT_MOUSE_MOVE            = ecore_event_type_new();
+        ECORE_WIN32_EVENT_MOUSE_IN              = ecore_event_type_new();
+        ECORE_WIN32_EVENT_MOUSE_OUT             = ecore_event_type_new();
+        ECORE_WIN32_EVENT_MOUSE_WHEEL           = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_FOCUS_IN       = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_FOCUS_OUT      = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_DAMAGE         = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_CREATE         = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_DESTROY        = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_SHOW           = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_HIDE           = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_CONFIGURE      = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_RESIZE         = ecore_event_type_new();
+        ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST = ecore_event_type_new();
+     }
+
+#ifdef HAVE_OPENGL_GLEW
+   if (GLEW_VERSION_2_0)
+     {
+        printf ("pas 2.0\n");
+        return 0;
+     }
+   else {
+      printf ("2.0 !!\n");
+   }
+#endif /* HAVE_OPENGL_GLEW */
+
+   _ecore_win32_init_count++;
+
+   return _ecore_win32_init_count;
+}
+
+int
+ecore_win32_shutdown()
+{
+   _ecore_win32_init_count++;
+   if (_ecore_win32_init_count > 0) return _ecore_win32_init_count;
+   if (!_ecore_win32_instance) return _ecore_win32_init_count;
+
+   UnregisterClass(ECORE_WIN32_WINDOW_CLASS, _ecore_win32_instance);
+   FreeLibrary(_ecore_win32_instance);
+   _ecore_win32_instance = NULL;
+
+   if (_ecore_win32_init_count < 0) _ecore_win32_init_count = 0;
+
+   return _ecore_win32_init_count;
+}
+
+int
+ecore_win32_screen_depth_get()
+{
+   HDC dc;
+   int depth;
+
+   dc = GetDC(NULL);
+   if (!dc)
+     return 0;
+
+   depth = GetDeviceCaps(dc, BITSPIXEL);
+   ReleaseDC(NULL, dc);
+
+   return depth;
+}
+
+/**
+ * Sets the timeout for a double and triple clicks to be flagged.
+ *
+ * This sets the time between clicks before the double_click flag is
+ * set in a button down event. If 3 clicks occur within double this
+ * time, the triple_click flag is also set.
+ *
+ * @param t The time in seconds
+ */
+void
+ecore_win32_double_click_time_set(double t)
+{
+   if (t < 0.0) t = 0.0;
+   _ecore_win32_double_click_time = t;
+}
+
+/**
+ * Retrieves the double and triple click flag timeout.
+ *
+ * See @ref ecore_win32_double_click_time_set for more information.
+ *
+ * @return The timeout for double clicks in seconds.
+ */
+double
+ecore_win32_double_click_time_get(void)
+{
+   return _ecore_win32_double_click_time;
+}
+
+/**
+ * Return the last event time
+ */
+double
+ecore_win32_current_time_get(void)
+{
+   return _ecore_win32_event_last_time;
+}
+
+
+/***** Private functions definitions *****/
 
 
 LRESULT CALLBACK
@@ -230,192 +424,4 @@
        return DefWindowProc(window, message, window_param, data_param);
      }
 
-}
-
-/*
-  Events:
-
-x * key down
-  * key sys down
-x * key up
-  * key sys up
-x * mouse button down left
-x * mouse button down middle
-x * mouse button down right
-x * mouse button up left
-x * mouse button up middle
-x * mouse button up right
-x * mouse move (contains enter)
-x * mouse leave
-x * focus in
-x * focus out
-x * expose
-x * create
-x * destroy
-x * configure
-x * resize
-x * delete
-
-*/
-
-EAPI int ECORE_WIN32_EVENT_KEY_DOWN              = 0;
-EAPI int ECORE_WIN32_EVENT_KEY_UP                = 0;
-EAPI int ECORE_WIN32_EVENT_MOUSE_BUTTON_DOWN     = 0;
-EAPI int ECORE_WIN32_EVENT_MOUSE_BUTTON_UP       = 0;
-EAPI int ECORE_WIN32_EVENT_MOUSE_MOVE            = 0;
-EAPI int ECORE_WIN32_EVENT_MOUSE_IN              = 0;
-EAPI int ECORE_WIN32_EVENT_MOUSE_OUT             = 0;
-EAPI int ECORE_WIN32_EVENT_MOUSE_WHEEL           = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_FOCUS_IN       = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_FOCUS_OUT      = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_DAMAGE         = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_CREATE         = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_DESTROY        = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_SHOW           = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_HIDE           = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_CONFIGURE      = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_RESIZE         = 0;
-EAPI int ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST = 0;
-
-
-EAPI int
-ecore_win32_init()
-{
-   WNDCLASS wc;
-
-   if (_ecore_win32_init_count > 0)
-     {
-       _ecore_win32_init_count++;
-       return _ecore_win32_init_count;
-     }
-
-   printf (" *** ecore_win32_init\n");
-   _ecore_win32_instance = GetModuleHandle(NULL);
-   if (!_ecore_win32_instance)
-     return 0;
-
-   memset (&wc, 0, sizeof (WNDCLASS));
-   wc.style = CS_HREDRAW | CS_VREDRAW;
-   wc.lpfnWndProc = _ecore_win32_window_procedure;
-   wc.cbClsExtra = 0;
-   wc.cbWndExtra = 0;
-   wc.hInstance = _ecore_win32_instance;
-   wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
-   wc.hCursor = LoadCursor (NULL, IDC_ARROW);
-   wc.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
-   wc.lpszMenuName =  NULL;
-   wc.lpszClassName = ECORE_WIN32_WINDOW_CLASS;
-
-   if(!RegisterClass(&wc))
-     {
-        FreeLibrary(_ecore_win32_instance);
-        return 0;
-     }
-
-   if (!ECORE_WIN32_EVENT_KEY_DOWN)
-     {
-        ECORE_WIN32_EVENT_KEY_DOWN              = ecore_event_type_new();
-        ECORE_WIN32_EVENT_KEY_UP                = ecore_event_type_new();
-        ECORE_WIN32_EVENT_MOUSE_BUTTON_DOWN     = ecore_event_type_new();
-        ECORE_WIN32_EVENT_MOUSE_BUTTON_UP       = ecore_event_type_new();
-        ECORE_WIN32_EVENT_MOUSE_MOVE            = ecore_event_type_new();
-        ECORE_WIN32_EVENT_MOUSE_IN              = ecore_event_type_new();
-        ECORE_WIN32_EVENT_MOUSE_OUT             = ecore_event_type_new();
-        ECORE_WIN32_EVENT_MOUSE_WHEEL           = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_FOCUS_IN       = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_FOCUS_OUT      = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_DAMAGE         = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_CREATE         = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_DESTROY        = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_SHOW           = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_HIDE           = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_CONFIGURE      = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_RESIZE         = ecore_event_type_new();
-        ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST = ecore_event_type_new();
-     }
-
-#ifdef HAVE_OPENGL_GLEW
-   if (GLEW_VERSION_2_0)
-     {
-        printf ("pas 2.0\n");
-        return 0;
-     }
-   else {
-      printf ("2.0 !!\n");
-   }
-#endif /* HAVE_OPENGL_GLEW */
-
-   _ecore_win32_init_count++;
-
-   return _ecore_win32_init_count;
-}
-
-EAPI int
-ecore_win32_shutdown()
-{
-   _ecore_win32_init_count++;
-   if (_ecore_win32_init_count > 0) return _ecore_win32_init_count;
-   if (!_ecore_win32_instance) return _ecore_win32_init_count;
-
-   UnregisterClass(ECORE_WIN32_WINDOW_CLASS, _ecore_win32_instance);
-   FreeLibrary(_ecore_win32_instance);
-   _ecore_win32_instance = NULL;
-
-   if (_ecore_win32_init_count < 0) _ecore_win32_init_count = 0;
-
-   return _ecore_win32_init_count;
-}
-
-EAPI int
-ecore_win32_screen_depth_get()
-{
-   HDC dc;
-   int depth;
-
-   dc = GetDC(NULL);
-   if (!dc)
-     return 0;
-
-   depth = GetDeviceCaps(dc, BITSPIXEL);
-   ReleaseDC(NULL, dc);
-
-   return depth;
-}
-
-/**
- * Sets the timeout for a double and triple clicks to be flagged.
- *
- * This sets the time between clicks before the double_click flag is
- * set in a button down event. If 3 clicks occur within double this
- * time, the triple_click flag is also set.
- *
- * @param t The time in seconds
- */
-EAPI void
-ecore_win32_double_click_time_set(double t)
-{
-   if (t < 0.0) t = 0.0;
-   _ecore_win32_double_click_time = t;
-}
-
-/**
- * Retrieves the double and triple click flag timeout.
- *
- * See @ref ecore_win32_double_click_time_set for more information.
- *
- * @return The timeout for double clicks in seconds.
- */
-EAPI double
-ecore_win32_double_click_time_get(void)
-{
-   return _ecore_win32_double_click_time;
-}
-
-/**
- * Return the last event time
- */
-EAPI double
-ecore_win32_current_time_get(void)
-{
-   return _ecore_win32_event_last_time;
 }
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_win32/ecore_win32_cursor.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ecore_win32_cursor.c        29 Oct 2007 20:05:39 -0000      1.2
+++ ecore_win32_cursor.c        26 Jun 2008 05:11:16 -0000      1.3
@@ -2,9 +2,21 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2

  */

 

+#ifdef HAVE_CONFIG_H

+# include <config.h>

+#endif

+

+#define WIN32_LEAN_AND_MEAN

+#include <windows.h>

+#undef WIN32_LEAN_AND_MEAN

+

+#include "Ecore_Win32.h"

 #include "ecore_win32_private.h"

 

-EAPI Ecore_Win32_Cursor *

+

+/***** API *****/

+

+Ecore_Win32_Cursor *

 ecore_win32_cursor_new(const void *pixels_and,

                        const void *pixels_xor,

                        int         width,

@@ -33,13 +45,13 @@
    return cursor;

 }

 

-EAPI void

+void

 ecore_win32_cursor_free(Ecore_Win32_Cursor *cursor)

 {

    DestroyCursor(cursor);

 }

 

-EAPI Ecore_Win32_Cursor *

+Ecore_Win32_Cursor *

 ecore_win32_cursor_shape_get(Ecore_Win32_Cursor_Shape shape)

 {

    Ecore_Win32_Cursor *cursor = NULL;

@@ -99,7 +111,7 @@
    return cursor;

 }

 

-EAPI int

+int

 ecore_win32_cursor_size_get(void)

 {

    int width;

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_win32/ecore_win32_event.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ecore_win32_event.c 26 Jun 2008 04:30:29 -0000      1.4
+++ ecore_win32_event.c 26 Jun 2008 05:11:16 -0000      1.5
@@ -2,13 +2,26 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>   /* for printf */
+
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
 #include <windowsx.h>
 
 #include "Ecore.h"
+#include "Ecore_Win32.h"
 #include "ecore_win32_private.h"
 
 
+/***** Private declarations *****/
+
+
 static Ecore_Win32_Window *_ecore_win32_mouse_down_last_window = NULL;
 static Ecore_Win32_Window *_ecore_win32_mouse_down_last_last_window = NULL;
 static double              _ecore_win32_mouse_down_last_time = 0;
@@ -16,422 +29,128 @@
 static int                 _ecore_win32_mouse_down_did_triple = 0;
 static int                 _ecore_win32_mouse_up_count = 0;
 
-static void
-_ecore_win32_event_free_key_down(void *data,
-                                 void *ev)
+static void _ecore_win32_event_free_key_down(void *data,
+                                             void *ev);
+
+static void _ecore_win32_event_free_key_up(void *data,
+                                           void *ev);
+
+static int  _ecore_win32_event_keystroke_get(int    key,
+                                             char **keyname,
+                                             char **keysymbol,
+                                             char **keycompose);
+
+static int  _ecore_win32_event_char_get(int    key,
+                                        char **keyname,
+                                        char **keysymbol,
+                                        char **keycompose);
+
+
+/***** Global functions definitions *****/
+
+void
+_ecore_win32_event_handle_key_press(Ecore_Win32_Callback_Data *msg,
+                                    int                        is_keystroke)
 {
    Ecore_Win32_Event_Key_Down *e;
 
-   e = ev;
-   if (e->keyname) free(e->keyname);
-   if (e->keysymbol) free(e->keysymbol);
-   if (e->keycompose) free(e->keycompose);
-   free(e);
+   e = (Ecore_Win32_Event_Key_Down 
*)malloc(sizeof(Ecore_Win32_Event_Key_Down));
+   if (!e) return;
+
+   if (is_keystroke)
+     {
+        if (!_ecore_win32_event_keystroke_get(LOWORD(msg->window_param),
+                                              &e->keyname,
+                                              &e->keysymbol,
+                                              &e->keycompose))
+          {
+             free(e);
+             return;
+          }
+        goto store_key;
+     }
+   else
+     {
+        if (!_ecore_win32_event_char_get(LOWORD(msg->window_param),
+                                         &e->keyname,
+                                         &e->keysymbol,
+                                         &e->keycompose))
+          {
+             free(e);
+             return;
+          }
+     }
+
+ store_key:
+   e->window = (void *)GetWindowLong(msg->window, GWL_USERDATA);
+   if (!e->window)
+     {
+        free(e);
+        return;
+     }
+   e->time = (double)msg->time / 1000.0;
+
+   _ecore_win32_event_last_time = e->time;
+
+   ecore_event_add(ECORE_WIN32_EVENT_KEY_DOWN, e, 
_ecore_win32_event_free_key_down, NULL);
 }
 
-static void
-_ecore_win32_event_free_key_up(void *data,
-                               void *ev)
+void
+_ecore_win32_event_handle_key_release(Ecore_Win32_Callback_Data *msg,
+                                      int                        is_keystroke)
 {
    Ecore_Win32_Event_Key_Up *e;
 
-   e = ev;
-   if (e->keyname) free(e->keyname);
-   if (e->keysymbol) free(e->keysymbol);
-   if (e->keycompose) free(e->keycompose);
-   free(e);
+   e = (Ecore_Win32_Event_Key_Up *)calloc(1, sizeof(Ecore_Win32_Event_Key_Up));
+   if (!e) return;
+
+   if (is_keystroke)
+     {
+        if (!_ecore_win32_event_keystroke_get(LOWORD(msg->window_param),
+                                              &e->keyname,
+                                              &e->keysymbol,
+                                              &e->keycompose))
+          {
+             free(e);
+             return;
+          }
+        goto store_key;
+     }
+   else
+     {
+        if (!_ecore_win32_event_char_get(LOWORD(msg->window_param),
+                                         &e->keyname,
+                                         &e->keysymbol,
+                                         &e->keycompose))
+          {
+             free(e);
+             return;
+          }
+     }
+
+ store_key:
+   e->window = (void *)GetWindowLong(msg->window, GWL_USERDATA);
+   if (!e->window)
+     {
+        free(e);
+        return;
+     }
+   e->time = (double)msg->time / 1000.0;
+
+   _ecore_win32_event_last_time = e->time;
+
+   ecore_event_add(ECORE_WIN32_EVENT_KEY_UP, e, 
_ecore_win32_event_free_key_up, NULL);
 }
 
-static int
-_ecore_win32_event_keystroke_get(int    key,
-                                 char **keyname,
-                                 char **keysymbol,
-                                 char **keycompose)
+void
+_ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg,
+                                       int                        button)
 {
-  char *kn;
-  char *ks;
-  char *kc;
+   Ecore_Win32_Window *window;
 
-  *keyname = NULL;
-  *keysymbol = NULL;
-  *keycompose = NULL;
+   window = (void *)GetWindowLong(msg->window, GWL_USERDATA);
 
-   switch (key)
-     {
-       /* Keystroke */
-     case VK_PRIOR:
-       kn = "KP_Prior";
-       ks = "KP_Prior";
-       kc = "";
-       break;
-     case VK_NEXT:
-       kn = "KP_Next";
-       ks = "KP_Next";
-       kc = "";
-       break;
-     case VK_END:
-       kn = "KP_End";
-       ks = "KP_End";
-       kc = "";
-       break;
-     case VK_HOME:
-       kn = "KP_Home";
-       ks = "KP_Home";
-       kc = "";
-       break;
-     case VK_LEFT:
-       kn = "KP_Left";
-       ks = "KP_Left";
-       kc = "";
-       break;
-     case VK_UP:
-       kn = "KP_Up";
-       ks = "KP_Up";
-       kc = "";
-       break;
-     case VK_RIGHT:
-       kn = "KP_Right";
-       ks = "KP_Right";
-       kc = "";
-       break;
-     case VK_DOWN:
-       kn = "KP_Down";
-       ks = "KP_Down";
-       kc = "";
-       break;
-     case VK_INSERT:
-       kn = "KP_Insert";
-       ks = "KP_Insert";
-       kc = "";
-       break;
-     case VK_DELETE:
-       kn = "KP_Delete";
-       ks = "KP_Delete";
-       kc = "";
-       break;
-     case VK_F1:
-       kn = "F1";
-       ks = "F1";
-       kc = "";
-       break;
-     case VK_F2:
-       kn = "F2";
-       ks = "F2";
-       kc = "";
-       break;
-     case VK_F3:
-       kn = "F3";
-       ks = "F3";
-       kc = "";
-       break;
-     case VK_F4:
-       kn = "F4";
-       ks = "F4";
-       kc = "";
-       break;
-     case VK_F5:
-       kn = "F5";
-       ks = "F5";
-       kc = "";
-       break;
-     case VK_F6:
-       kn = "F6";
-       ks = "F6";
-       kc = "";
-       break;
-     case VK_F7:
-       kn = "F7";
-       ks = "F7";
-       kc = "";
-       break;
-     case VK_F8:
-       kn = "F8";
-       ks = "F8";
-       kc = "";
-       break;
-     case VK_F9:
-       kn = "F9";
-       ks = "F9";
-       kc = "";
-       break;
-     case VK_F10:
-       kn = "F10";
-       ks = "F10";
-       kc = "";
-       break;
-     case VK_F11:
-       kn = "F11";
-       ks = "F11";
-       kc = "";
-       break;
-     case VK_F12:
-       kn = "F12";
-       ks = "F12";
-       kc = "";
-       break;
-     case VK_F13:
-       kn = "F13";
-       ks = "F13";
-       kc = "";
-       break;
-     case VK_F14:
-       kn = "F14";
-       ks = "F14";
-       kc = "";
-       break;
-     case VK_F15:
-       kn = "F15";
-       ks = "F15";
-       kc = "";
-       break;
-     case VK_F16:
-       kn = "F16";
-       ks = "F16";
-       kc = "";
-       break;
-     case VK_F17:
-       kn = "F17";
-       ks = "F17";
-       kc = "";
-       break;
-     case VK_F18:
-       kn = "F18";
-       ks = "F18";
-       kc = "";
-       break;
-     case VK_F19:
-       kn = "F19";
-       ks = "F19";
-       kc = "";
-       break;
-     case VK_F20:
-       kn = "F20";
-       ks = "F20";
-       kc = "";
-       break;
-     case VK_F21:
-       kn = "F21";
-       ks = "F21";
-       kc = "";
-       break;
-     case VK_F22:
-       kn = "F22";
-       ks = "F22";
-       kc = "";
-       break;
-     case VK_F23:
-       kn = "F23";
-       ks = "F23";
-       kc = "";
-       break;
-     case VK_F24:
-       kn = "F24";
-       ks = "F24";
-       kc = "";
-       break;
-     default:
-       /* other non keystroke characters */
-       return 0;
-     }
-   *keyname = strdup(kn);
-   if (!*keyname) return 0;
-   *keysymbol = strdup(ks);
-   if (!*keysymbol)
-     {
-        free(*keyname);
-        *keyname = NULL;
-        return 0;
-     }
-   *keycompose = strdup(kc);
-   if (!*keycompose)
-     {
-        free(*keyname);
-        free(*keysymbol);
-        *keyname = NULL;
-        *keysymbol = NULL;
-        return 0;
-     }
-
-   return 1;
-}
-
-static int
-_ecore_win32_event_char_get(int    key,
-                            char **keyname,
-                            char **keysymbol,
-                            char **keycompose)
-{
-  char kn[32];
-  char ks[32];
-  char *kc;
-
-  *keyname = NULL;
-  *keysymbol = NULL;
-  *keycompose = NULL;
-
-   switch (key)
-     {
-     case VK_BACK:
-       strncpy(kn, "Backspace", 32);
-       strncpy(ks, "Backspace", 32);
-       kc = "";
-       break;
-     case VK_TAB:
-       strncpy(kn, "Tab", 32);
-       strncpy(ks, "Tab", 32);
-       kc = "";
-       break;
-     case 0x0a:
-       /* Line feed (Shift + Enter) */
-       strncpy(kn, "LineFeed", 32);
-       strncpy(ks, "LineFeed", 32);
-       kc = "";
-       break;
-     case VK_RETURN:
-       strncpy(kn, "Return", 32);
-       strncpy(ks, "Return", 32);
-       kc = "";
-       break;
-     case VK_ESCAPE:
-       strncpy(kn, "Escape", 32);
-       strncpy(ks, "Escape", 32);
-       kc = "";
-       break;
-     default:
-       /* displayable characters */
-       printf (" * key : %d\n", key);
-       kn[0] = (TCHAR)key;
-       kn[1] = '\0';
-       ks[0] = (TCHAR)key;
-       ks[1] = '\0';
-       kc = "";
-       break;
-     }
-   *keyname = strdup(kn);
-   if (!*keyname) return 0;
-   *keysymbol = strdup(ks);
-   if (!*keysymbol)
-     {
-        free(*keyname);
-        *keyname = NULL;
-        return 0;
-     }
-   *keycompose = strdup(kc);
-   if (!*keycompose)
-     {
-        free(*keyname);
-        free(*keysymbol);
-        *keyname = NULL;
-        *keysymbol = NULL;
-        return 0;
-     }
-
-   return 1;
-}
-
-void
-_ecore_win32_event_handle_key_press(Ecore_Win32_Callback_Data *msg,
-                                    int                        is_keystroke)
-{
-   Ecore_Win32_Event_Key_Down *e;
-
-   e = (Ecore_Win32_Event_Key_Down 
*)malloc(sizeof(Ecore_Win32_Event_Key_Down));
-   if (!e) return;
-
-   if (is_keystroke)
-     {
-        if (!_ecore_win32_event_keystroke_get(LOWORD(msg->window_param),
-                                              &e->keyname,
-                                              &e->keysymbol,
-                                              &e->keycompose))
-          {
-             free(e);
-             return;
-          }
-        goto store_key;
-     }
-   else
-     {
-        if (!_ecore_win32_event_char_get(LOWORD(msg->window_param),
-                                         &e->keyname,
-                                         &e->keysymbol,
-                                         &e->keycompose))
-          {
-             free(e);
-             return;
-          }
-     }
-
- store_key:
-   e->window = (void *)GetWindowLong(msg->window, GWL_USERDATA);
-   if (!e->window)
-     {
-        free(e);
-        return;
-     }
-   e->time = (double)msg->time / 1000.0;
-
-   _ecore_win32_event_last_time = e->time;
-
-   ecore_event_add(ECORE_WIN32_EVENT_KEY_DOWN, e, 
_ecore_win32_event_free_key_down, NULL);
-}
-
-void
-_ecore_win32_event_handle_key_release(Ecore_Win32_Callback_Data *msg,
-                                      int                        is_keystroke)
-{
-   Ecore_Win32_Event_Key_Up *e;
-
-   e = (Ecore_Win32_Event_Key_Up *)calloc(1, sizeof(Ecore_Win32_Event_Key_Up));
-   if (!e) return;
-
-   if (is_keystroke)
-     {
-        if (!_ecore_win32_event_keystroke_get(LOWORD(msg->window_param),
-                                              &e->keyname,
-                                              &e->keysymbol,
-                                              &e->keycompose))
-          {
-             free(e);
-             return;
-          }
-        goto store_key;
-     }
-   else
-     {
-        if (!_ecore_win32_event_char_get(LOWORD(msg->window_param),
-                                         &e->keyname,
-                                         &e->keysymbol,
-                                         &e->keycompose))
-          {
-             free(e);
-             return;
-          }
-     }
-
- store_key:
-   e->window = (void *)GetWindowLong(msg->window, GWL_USERDATA);
-   if (!e->window)
-     {
-        free(e);
-        return;
-     }
-   e->time = (double)msg->time / 1000.0;
-
-   _ecore_win32_event_last_time = e->time;
-
-   ecore_event_add(ECORE_WIN32_EVENT_KEY_UP, e, 
_ecore_win32_event_free_key_up, NULL);
-}
-
-void
-_ecore_win32_event_handle_button_press(Ecore_Win32_Callback_Data *msg,
-                                       int                        button)
-{
-   Ecore_Win32_Window *window;
-
-   window = (void *)GetWindowLong(msg->window, GWL_USERDATA);
-
-   if (button > 3)
+   if (button > 3)
      {
         Ecore_Win32_Event_Mouse_Wheel *e;
 
@@ -850,4 +569,320 @@
    e->time = _ecore_win32_event_last_time;
 
    ecore_event_add(ECORE_WIN32_EVENT_WINDOW_DELETE_REQUEST, e, NULL, NULL);
+}
+
+
+/***** Private functions definitions *****/
+
+static void
+_ecore_win32_event_free_key_down(void *data,
+                                 void *ev)
+{
+   Ecore_Win32_Event_Key_Down *e;
+
+   e = ev;
+   if (e->keyname) free(e->keyname);
+   if (e->keysymbol) free(e->keysymbol);
+   if (e->keycompose) free(e->keycompose);
+   free(e);
+}
+
+static void
+_ecore_win32_event_free_key_up(void *data,
+                               void *ev)
+{
+   Ecore_Win32_Event_Key_Up *e;
+
+   e = ev;
+   if (e->keyname) free(e->keyname);
+   if (e->keysymbol) free(e->keysymbol);
+   if (e->keycompose) free(e->keycompose);
+   free(e);
+}
+
+static int
+_ecore_win32_event_keystroke_get(int    key,
+                                 char **keyname,
+                                 char **keysymbol,
+                                 char **keycompose)
+{
+  char *kn;
+  char *ks;
+  char *kc;
+
+  *keyname = NULL;
+  *keysymbol = NULL;
+  *keycompose = NULL;
+
+   switch (key)
+     {
+       /* Keystroke */
+     case VK_PRIOR:
+       kn = "KP_Prior";
+       ks = "KP_Prior";
+       kc = "";
+       break;
+     case VK_NEXT:
+       kn = "KP_Next";
+       ks = "KP_Next";
+       kc = "";
+       break;
+     case VK_END:
+       kn = "KP_End";
+       ks = "KP_End";
+       kc = "";
+       break;
+     case VK_HOME:
+       kn = "KP_Home";
+       ks = "KP_Home";
+       kc = "";
+       break;
+     case VK_LEFT:
+       kn = "KP_Left";
+       ks = "KP_Left";
+       kc = "";
+       break;
+     case VK_UP:
+       kn = "KP_Up";
+       ks = "KP_Up";
+       kc = "";
+       break;
+     case VK_RIGHT:
+       kn = "KP_Right";
+       ks = "KP_Right";
+       kc = "";
+       break;
+     case VK_DOWN:
+       kn = "KP_Down";
+       ks = "KP_Down";
+       kc = "";
+       break;
+     case VK_INSERT:
+       kn = "KP_Insert";
+       ks = "KP_Insert";
+       kc = "";
+       break;
+     case VK_DELETE:
+       kn = "KP_Delete";
+       ks = "KP_Delete";
+       kc = "";
+       break;
+     case VK_F1:
+       kn = "F1";
+       ks = "F1";
+       kc = "";
+       break;
+     case VK_F2:
+       kn = "F2";
+       ks = "F2";
+       kc = "";
+       break;
+     case VK_F3:
+       kn = "F3";
+       ks = "F3";
+       kc = "";
+       break;
+     case VK_F4:
+       kn = "F4";
+       ks = "F4";
+       kc = "";
+       break;
+     case VK_F5:
+       kn = "F5";
+       ks = "F5";
+       kc = "";
+       break;
+     case VK_F6:
+       kn = "F6";
+       ks = "F6";
+       kc = "";
+       break;
+     case VK_F7:
+       kn = "F7";
+       ks = "F7";
+       kc = "";
+       break;
+     case VK_F8:
+       kn = "F8";
+       ks = "F8";
+       kc = "";
+       break;
+     case VK_F9:
+       kn = "F9";
+       ks = "F9";
+       kc = "";
+       break;
+     case VK_F10:
+       kn = "F10";
+       ks = "F10";
+       kc = "";
+       break;
+     case VK_F11:
+       kn = "F11";
+       ks = "F11";
+       kc = "";
+       break;
+     case VK_F12:
+       kn = "F12";
+       ks = "F12";
+       kc = "";
+       break;
+     case VK_F13:
+       kn = "F13";
+       ks = "F13";
+       kc = "";
+       break;
+     case VK_F14:
+       kn = "F14";
+       ks = "F14";
+       kc = "";
+       break;
+     case VK_F15:
+       kn = "F15";
+       ks = "F15";
+       kc = "";
+       break;
+     case VK_F16:
+       kn = "F16";
+       ks = "F16";
+       kc = "";
+       break;
+     case VK_F17:
+       kn = "F17";
+       ks = "F17";
+       kc = "";
+       break;
+     case VK_F18:
+       kn = "F18";
+       ks = "F18";
+       kc = "";
+       break;
+     case VK_F19:
+       kn = "F19";
+       ks = "F19";
+       kc = "";
+       break;
+     case VK_F20:
+       kn = "F20";
+       ks = "F20";
+       kc = "";
+       break;
+     case VK_F21:
+       kn = "F21";
+       ks = "F21";
+       kc = "";
+       break;
+     case VK_F22:
+       kn = "F22";
+       ks = "F22";
+       kc = "";
+       break;
+     case VK_F23:
+       kn = "F23";
+       ks = "F23";
+       kc = "";
+       break;
+     case VK_F24:
+       kn = "F24";
+       ks = "F24";
+       kc = "";
+       break;
+     default:
+       /* other non keystroke characters */
+       return 0;
+     }
+   *keyname = strdup(kn);
+   if (!*keyname) return 0;
+   *keysymbol = strdup(ks);
+   if (!*keysymbol)
+     {
+        free(*keyname);
+        *keyname = NULL;
+        return 0;
+     }
+   *keycompose = strdup(kc);
+   if (!*keycompose)
+     {
+        free(*keyname);
+        free(*keysymbol);
+        *keyname = NULL;
+        *keysymbol = NULL;
+        return 0;
+     }
+
+   return 1;
+}
+
+static int
+_ecore_win32_event_char_get(int    key,
+                            char **keyname,
+                            char **keysymbol,
+                            char **keycompose)
+{
+  char kn[32];
+  char ks[32];
+  char *kc;
+
+  *keyname = NULL;
+  *keysymbol = NULL;
+  *keycompose = NULL;
+
+   switch (key)
+     {
+     case VK_BACK:
+       strncpy(kn, "Backspace", 32);
+       strncpy(ks, "Backspace", 32);
+       kc = "";
+       break;
+     case VK_TAB:
+       strncpy(kn, "Tab", 32);
+       strncpy(ks, "Tab", 32);
+       kc = "";
+       break;
+     case 0x0a:
+       /* Line feed (Shift + Enter) */
+       strncpy(kn, "LineFeed", 32);
+       strncpy(ks, "LineFeed", 32);
+       kc = "";
+       break;
+     case VK_RETURN:
+       strncpy(kn, "Return", 32);
+       strncpy(ks, "Return", 32);
+       kc = "";
+       break;
+     case VK_ESCAPE:
+       strncpy(kn, "Escape", 32);
+       strncpy(ks, "Escape", 32);
+       kc = "";
+       break;
+     default:
+       /* displayable characters */
+       printf (" * key : %d\n", key);
+       kn[0] = (TCHAR)key;
+       kn[1] = '\0';
+       ks[0] = (TCHAR)key;
+       ks[1] = '\0';
+       kc = "";
+       break;
+     }
+   *keyname = strdup(kn);
+   if (!*keyname) return 0;
+   *keysymbol = strdup(ks);
+   if (!*keysymbol)
+     {
+        free(*keyname);
+        *keyname = NULL;
+        return 0;
+     }
+   *keycompose = strdup(kc);
+   if (!*keycompose)
+     {
+        free(*keyname);
+        free(*keysymbol);
+        *keyname = NULL;
+        *keysymbol = NULL;
+        return 0;
+     }
+
+   return 1;
 }
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_win32/ecore_win32_glew.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ecore_win32_glew.c  16 Nov 2007 19:32:25 -0000      1.1
+++ ecore_win32_glew.c  26 Jun 2008 05:11:16 -0000      1.2
@@ -2,11 +2,20 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>   /* for printf */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+
 #include <GL/glew.h>
-#include "ecore_win32_private.h"
+
 #include "Ecore_Win32.h"
-#include <stdio.h>
+#include "ecore_win32_private.h"
 
 
 static int _ecore_win32_glew_init = 0;
@@ -18,9 +27,7 @@
    PIXELFORMATDESCRIPTOR pfd;
    int                   format;
 
-   RECT                        rect;
    struct _Ecore_Win32_Window *w;
-   DWORD                       flag;
 
    if (!window)
      return 0;
@@ -85,7 +92,6 @@
    return 1;
 
  no_glew_2_0:
- no_glew_init:
  no_format:
    ReleaseDC (w->window, w->glew.dc);
  no_dc:
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_win32/ecore_win32_private.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ecore_win32_private.h       26 Jun 2008 04:30:29 -0000      1.5
+++ ecore_win32_private.h       26 Jun 2008 05:11:16 -0000      1.6
@@ -6,23 +6,6 @@
 #define __ECORE_WIN32_PRIVATE_H__
 
 
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#undef WIN32_LEAN_AND_MEAN
-#ifdef HAVE_OPENGL_GLEW
-# include <GL/glew.h>
-#endif /* HAVE_OPENGL_GLEW */
-
-#include <Ecore.h>
-#include <Ecore_Data.h>
-
-#include "Ecore_Win32.h"
-
-
 #define ECORE_WIN32_WINDOW_CLASS "Ecore_Win32_Window_Class"
 
 
@@ -104,7 +87,6 @@
 };
 
 
-extern Ecore_List         *_ecore_win32_windows_list;
 extern HINSTANCE           _ecore_win32_instance;
 extern double              _ecore_win32_double_click_time;
 extern double              _ecore_win32_event_last_time;
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_win32/ecore_win32_window.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ecore_win32_window.c        26 Jun 2008 04:30:29 -0000      1.6
+++ ecore_win32_window.c        26 Jun 2008 05:11:16 -0000      1.7
@@ -2,13 +2,24 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
-#include <stdio.h>
-
-#include <Ecore.h>
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>   /* for printf */
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
 
+#include "Ecore_Win32.h"
 #include "ecore_win32_private.h"
 
 
+/***** Private declarations *****/
+
+
 typedef enum _Ecore_Win32_Window_Z_Order Ecore_Win32_Window_Z_Order;
 enum _Ecore_Win32_Window_Z_Order
 {
@@ -18,122 +29,17 @@
   ECORE_WIN32_WINDOW_Z_ORDER_TOPMOST
 };
 
+static Ecore_Win32_Window *ecore_win32_window_internal_new(Ecore_Win32_Window 
*parent,
+                                                           int                 
x,
+                                                           int                 
y,
+                                                           int                 
width,
+                                                           int                 
height,
+                                                           DWORD               
style);
 
-static Ecore_Win32_Window *
-ecore_win32_window_internal_new(Ecore_Win32_Window *parent,
-                                int                 x,
-                                int                 y,
-                                int                 width,
-                                int                 height,
-                                DWORD               style)
-{
-   RECT                        rect;
-   struct _Ecore_Win32_Window *w;
-   int                         minimal_width;
-   int                         minimal_height;
-
-   w = (struct _Ecore_Win32_Window *)calloc(1, sizeof(struct 
_Ecore_Win32_Window));
-   if (!w)
-     return NULL;
-
-   printf (" *** ecore_win32_window_new : %p  %d %d %d\n",
-           w,
-           width, height, GetSystemMetrics(SM_CXMIN));
-   rect.left = 0;
-   rect.top = 0;
-   rect.right = width;
-   rect.bottom = height;
-   if (!AdjustWindowRect(&rect, style, FALSE))
-     {
-        free(w);
-        return NULL;
-     }
-   printf (" * ecore : new debut : %ld %d %d\n",
-           rect.right - rect.left, GetSystemMetrics(SM_CXMIN), 
GetSystemMetrics(SM_CYMIN));
-
-   minimal_width = GetSystemMetrics(SM_CXMIN);
-   minimal_height = GetSystemMetrics(SM_CYMIN);
-/*    if (((rect.right - rect.left) < minimal_width) || */
-/*        ((rect.bottom - rect.top) < minimal_height)) */
-/*      { */
-/*         fprintf (stderr, "[Ecore] [Win32] ERROR !!\n"); */
-/*         fprintf (stderr, "                Wrong size %ld\n", rect.right - 
rect.left); */
-/*         free(w); */
-/*         return NULL; */
-/*      } */
-   if ((rect.right - rect.left) < minimal_width)
-     {
-       rect.right = rect.left + minimal_width;
-     }
-
-   w->window = CreateWindow(ECORE_WIN32_WINDOW_CLASS, "",
-                            style,
-                            x, y,
-                            rect.right - rect.left,
-                            rect.bottom - rect.top,
-                            parent ? ((struct _Ecore_Win32_Window 
*)parent)->window : NULL,
-                            NULL, _ecore_win32_instance, NULL);
-   if (!w->window)
-     {
-        free(w);
-        return NULL;
-     }
-
-   SetLastError(0);
-   if (!SetWindowLong(w->window, GWL_USERDATA, (LONG)w) && (GetLastError() != 
0))
-     {
-        DestroyWindow(w->window);
-        free(w);
-        return NULL;
-     }
-
-   w->backend = ECORE_WIN32_BACKEND_NONE;
-
-   w->min_width   = 0;
-   w->min_height  = 0;
-   w->max_width   = 32767;
-   w->max_height  = 32767;
-   w->base_width  = -1;
-   w->base_height = -1;
-   w->step_width  = -1;
-   w->step_height = -1;
-
-   w->state.iconified         = 0;
-   w->state.modal             = 0;
-   w->state.sticky            = 0;
-   w->state.maximized_vert    = 0;
-   w->state.maximized_horz    = 0;
-   w->state.shaded            = 0;
-   w->state.hidden            = 0;
-   w->state.fullscreen        = 0;
-   w->state.above             = 0;
-   w->state.below             = 0;
-   w->state.demands_attention = 0;
-
-   w->type.desktop = 0;
-   w->type.dock    = 0;
-   w->type.toolbar = 0;
-   w->type.menu    = 0;
-   w->type.utility = 0;
-   w->type.splash  = 0;
-   w->type.dialog  = 0;
-   w->type.normal  = 0;
-
-   w->pointer_is_in = 0;
-   w->borderless    = 0;
-   w->iconified     = 0;
-   w->fullscreen    = 0;
-
-   printf (" *** ecore_win32_window_new fin : (%d %d) (%d %d)\n",
-           w->min_width,
-           w->min_height,
-           w->max_width,
-           w->max_height);
 
-   return w;
-}
+/***** API *****/
 
-EAPI Ecore_Win32_Window *
+Ecore_Win32_Window *
 ecore_win32_window_new(Ecore_Win32_Window *parent,
                        int                 x,
                        int                 y,
@@ -147,7 +53,7 @@
 }
 
 /* simulate X11 override windows */
-EAPI Ecore_Win32_Window *
+Ecore_Win32_Window *
 ecore_win32_window_override_new(Ecore_Win32_Window *parent,
                                 int                 x,
                                 int                 y,
@@ -160,11 +66,9 @@
                                           WS_POPUP);
 }
 
-EAPI void
+void
 ecore_win32_window_del(Ecore_Win32_Window *window)
 {
-   Ecore_Win32_Window *w;
-
    if (!window) return;
 
    switch (((struct _Ecore_Win32_Window *)window)->backend)
@@ -189,7 +93,7 @@
 }
 
 /*
-EAPI void
+void
 ecore_win32_window_configure(Ecore_Win32_Window        *window,
                              Ecore_Win32_Window_Z_Order order,
                              int                        x,
@@ -220,7 +124,7 @@
 }
 */
 
-EAPI void
+void
 ecore_win32_window_move(Ecore_Win32_Window *window,
                         int                 x,
                         int                 y)
@@ -241,7 +145,7 @@
               TRUE);
 }
 
-EAPI void
+void
 ecore_win32_window_resize(Ecore_Win32_Window *window,
                           int                 width,
                           int                 height)
@@ -293,7 +197,7 @@
    printf ("ecore_win32_window_resize 4 : %d %d\n", width, height);
 }
 
-EAPI void
+void
 ecore_win32_window_move_resize(Ecore_Win32_Window *window,
                                int                 x,
                                int                 y,
@@ -310,10 +214,10 @@
    w = ((struct _Ecore_Win32_Window *)window);
    rect.left = 0;
    rect.top = 0;
-   if (width < w->min_width) width = w->min_width;
-   if (width > w->max_width) width = w->max_width;
-   if (height < w->min_height) height = w->min_height;
-   if (height > w->max_height) height = w->max_height;
+   if ((unsigned int)width < w->min_width) width = w->min_width;
+   if ((unsigned int)width > w->max_width) width = w->max_width;
+   if ((unsigned int)height < w->min_height) height = w->min_height;
+   if ((unsigned int)height > w->max_height) height = w->max_height;
    printf ("ecore_win32_window_move_resize 1 : %d %d\n", width, height);
    rect.right = width;
    rect.bottom = height;
@@ -327,7 +231,7 @@
               TRUE);
 }
 
-EAPI void
+void
 ecore_win32_window_geometry_get(Ecore_Win32_Window *window,
                                 int                *x,
                                 int                *y,
@@ -380,7 +284,7 @@
    if (height) *height = h;
 }
 
-EAPI void
+void
 ecore_win32_window_size_get(Ecore_Win32_Window *window,
                             int                *width,
                             int                *height)
@@ -407,7 +311,7 @@
    if (height) *height = rect.bottom - rect.top;
 }
 
-EAPI void
+void
 ecore_win32_window_size_min_set(Ecore_Win32_Window *window,
                                 unsigned int        min_width,
                                 unsigned int        min_height)
@@ -422,7 +326,7 @@
    w->min_height = min_height;
 }
 
-EAPI void
+void
 ecore_win32_window_size_min_get(Ecore_Win32_Window *window,
                                 unsigned int       *min_width,
                                 unsigned int       *min_height)
@@ -437,7 +341,7 @@
    if (min_height) *min_height = w->min_height;
 }
 
-EAPI void
+void
 ecore_win32_window_size_max_set(Ecore_Win32_Window *window,
                                 unsigned int        max_width,
                                 unsigned int        max_height)
@@ -452,7 +356,7 @@
    w->max_height = max_height;
 }
 
-EAPI void
+void
 ecore_win32_window_size_max_get(Ecore_Win32_Window *window,
                                 unsigned int       *max_width,
                                 unsigned int       *max_height)
@@ -467,7 +371,7 @@
    if (max_height) *max_height = w->max_height;
 }
 
-EAPI void
+void
 ecore_win32_window_size_base_set(Ecore_Win32_Window *window,
                                  unsigned int        base_width,
                                  unsigned int        base_height)
@@ -482,7 +386,7 @@
    w->base_height = base_height;
 }
 
-EAPI void
+void
 ecore_win32_window_size_base_get(Ecore_Win32_Window *window,
                                  unsigned int       *base_width,
                                  unsigned int       *base_height)
@@ -497,7 +401,7 @@
    if (base_height) *base_height = w->base_height;
 }
 
-EAPI void
+void
 ecore_win32_window_size_step_set(Ecore_Win32_Window *window,
                                  unsigned int        step_width,
                                  unsigned int        step_height)
@@ -512,7 +416,7 @@
    w->step_height = step_height;
 }
 
-EAPI void
+void
 ecore_win32_window_size_step_get(Ecore_Win32_Window *window,
                                  unsigned int       *step_width,
                                  unsigned int       *step_height)
@@ -529,7 +433,7 @@
 
 /* TODO: ecore_win32_window_shaped_set */
 
-EAPI void
+void
 ecore_win32_window_show(Ecore_Win32_Window *window)
 {
    if (!window) return;
@@ -540,7 +444,7 @@
 }
 
 /* FIXME: seems to block the taskbar */
-EAPI void
+void
 ecore_win32_window_hide(Ecore_Win32_Window *window)
 {
    if (!window) return;
@@ -549,7 +453,7 @@
    ShowWindow(((struct _Ecore_Win32_Window *)window)->window, SW_HIDE);
 }
 
-EAPI void
+void
 ecore_win32_window_raise(Ecore_Win32_Window *window)
 {
    if (!window) return;
@@ -560,7 +464,7 @@
                 SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
 }
 
-EAPI void
+void
 ecore_win32_window_lower(Ecore_Win32_Window *window)
 {
    if (!window) return;
@@ -571,7 +475,7 @@
                 SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
 }
 
-EAPI void
+void
 ecore_win32_window_title_set(Ecore_Win32_Window *window,
                              const char         *title)
 {
@@ -582,7 +486,7 @@
    SetWindowText(((struct _Ecore_Win32_Window *)window)->window, title);
 }
 
-EAPI void
+void
 ecore_win32_window_focus_set(Ecore_Win32_Window *window)
 {
    if (!window) return;
@@ -590,7 +494,7 @@
    SetFocus(((struct _Ecore_Win32_Window *)window)->window);
 }
 
-EAPI void
+void
 ecore_win32_window_iconified_set(Ecore_Win32_Window *window,
                                  int                 on)
 {
@@ -616,7 +520,7 @@
    ew->iconified = on;
 }
 
-EAPI void
+void
 ecore_win32_window_borderless_set(Ecore_Win32_Window *window,
                                   int                 on)
 {
@@ -655,7 +559,7 @@
    ew->borderless = on;
 }
 
-EAPI void
+void
 ecore_win32_window_fullscreen_set(Ecore_Win32_Window *window,
                                   int                 on)
 {
@@ -699,7 +603,7 @@
      }
 }
 
-EAPI void
+void
 ecore_win32_window_cursor_set(Ecore_Win32_Window *window,
                               Ecore_Win32_Cursor *cursor)
 {
@@ -707,7 +611,7 @@
                 GCL_HCURSOR, (LONG)cursor);
 }
 
-EAPI void
+void
 ecore_win32_window_state_set(Ecore_Win32_Window       *window,
                              Ecore_Win32_Window_State *state,
                              unsigned int              num)
@@ -765,7 +669,7 @@
      }
 }
 
-EAPI void
+void
 ecore_win32_window_state_request_send(Ecore_Win32_Window      *window,
                                       Ecore_Win32_Window_State state,
                                       unsigned int             set)
@@ -874,7 +778,7 @@
      }
 }
 
-EAPI void
+void
 ecore_win32_window_type_set(Ecore_Win32_Window      *window,
                             Ecore_Win32_Window_Type  type)
 {
@@ -908,4 +812,121 @@
        ((struct _Ecore_Win32_Window *)window)->type.normal = 1;
        break;
      }
+}
+
+
+/***** Private functions definitions *****/
+
+static Ecore_Win32_Window *
+ecore_win32_window_internal_new(Ecore_Win32_Window *parent,
+                                int                 x,
+                                int                 y,
+                                int                 width,
+                                int                 height,
+                                DWORD               style)
+{
+   RECT                        rect;
+   struct _Ecore_Win32_Window *w;
+   int                         minimal_width;
+   int                         minimal_height;
+
+   w = (struct _Ecore_Win32_Window *)calloc(1, sizeof(struct 
_Ecore_Win32_Window));
+   if (!w)
+     return NULL;
+
+   printf (" *** ecore_win32_window_new : %p  %d %d %d\n",
+           w,
+           width, height, GetSystemMetrics(SM_CXMIN));
+   rect.left = 0;
+   rect.top = 0;
+   rect.right = width;
+   rect.bottom = height;
+   if (!AdjustWindowRect(&rect, style, FALSE))
+     {
+        free(w);
+        return NULL;
+     }
+   printf (" * ecore : new debut : %ld %d %d\n",
+           rect.right - rect.left, GetSystemMetrics(SM_CXMIN), 
GetSystemMetrics(SM_CYMIN));
+
+   minimal_width = GetSystemMetrics(SM_CXMIN);
+   minimal_height = GetSystemMetrics(SM_CYMIN);
+/*    if (((rect.right - rect.left) < minimal_width) || */
+/*        ((rect.bottom - rect.top) < minimal_height)) */
+/*      { */
+/*         fprintf (stderr, "[Ecore] [Win32] ERROR !!\n"); */
+/*         fprintf (stderr, "                Wrong size %ld\n", rect.right - 
rect.left); */
+/*         free(w); */
+/*         return NULL; */
+/*      } */
+   if ((rect.right - rect.left) < minimal_width)
+     {
+       rect.right = rect.left + minimal_width;
+     }
+
+   w->window = CreateWindow(ECORE_WIN32_WINDOW_CLASS, "",
+                            style,
+                            x, y,
+                            rect.right - rect.left,
+                            rect.bottom - rect.top,
+                            parent ? ((struct _Ecore_Win32_Window 
*)parent)->window : NULL,
+                            NULL, _ecore_win32_instance, NULL);
+   if (!w->window)
+     {
+        free(w);
+        return NULL;
+     }
+
+   SetLastError(0);
+   if (!SetWindowLong(w->window, GWL_USERDATA, (LONG)w) && (GetLastError() != 
0))
+     {
+        DestroyWindow(w->window);
+        free(w);
+        return NULL;
+     }
+
+   w->backend = ECORE_WIN32_BACKEND_NONE;
+
+   w->min_width   = 0;
+   w->min_height  = 0;
+   w->max_width   = 32767;
+   w->max_height  = 32767;
+   w->base_width  = -1;
+   w->base_height = -1;
+   w->step_width  = -1;
+   w->step_height = -1;
+
+   w->state.iconified         = 0;
+   w->state.modal             = 0;
+   w->state.sticky            = 0;
+   w->state.maximized_vert    = 0;
+   w->state.maximized_horz    = 0;
+   w->state.shaded            = 0;
+   w->state.hidden            = 0;
+   w->state.fullscreen        = 0;
+   w->state.above             = 0;
+   w->state.below             = 0;
+   w->state.demands_attention = 0;
+
+   w->type.desktop = 0;
+   w->type.dock    = 0;
+   w->type.toolbar = 0;
+   w->type.menu    = 0;
+   w->type.utility = 0;
+   w->type.splash  = 0;
+   w->type.dialog  = 0;
+   w->type.normal  = 0;
+
+   w->pointer_is_in = 0;
+   w->borderless    = 0;
+   w->iconified     = 0;
+   w->fullscreen    = 0;
+
+   printf (" *** ecore_win32_window_new fin : (%d %d) (%d %d)\n",
+           w->min_width,
+           w->min_height,
+           w->max_width,
+           w->max_height);
+
+   return w;
 }



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to