* add _size_get() and _geometry_get() methods

* fix use of resume() and suspend() functions when dealing with GAPI


SVN revision: 34741
This commit is contained in:
doursse 2008-06-05 07:23:41 +00:00 committed by doursse
parent 5b73f44fd1
commit 30fc2a9064
4 changed files with 101 additions and 8 deletions

View File

@ -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_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); EAPI void *ecore_wince_window_window_get(Ecore_WinCE_Window *window);

View File

@ -355,7 +355,7 @@ _ecore_wince_event_handle_focus_in(Ecore_WinCE_Callback_Data *msg)
} }
if (window->resume) if (window->resume)
window->resume(); window->resume(window->backend);
e->window = window; e->window = window;
@ -381,7 +381,7 @@ _ecore_wince_event_handle_focus_out(Ecore_WinCE_Callback_Data *msg)
return; return;
} }
if (window->suspend) if (window->suspend)
window->suspend(); window->suspend(window->backend);
e->window = window; e->window = window;

View File

@ -24,14 +24,15 @@ struct _Ecore_WinCE_Callback_Data
}; };
typedef int (*ecore_wince_suspend) (void); typedef int (*ecore_wince_suspend) (int);
typedef int (*ecore_wince_resume) (void); typedef int (*ecore_wince_resume) (int);
struct _Ecore_WinCE_Window struct _Ecore_WinCE_Window
{ {
HWND window; HWND window;
int backend;
ecore_wince_suspend suspend; ecore_wince_suspend suspend;
ecore_wince_resume resume; ecore_wince_resume resume;

View File

@ -138,7 +138,7 @@ ecore_wince_window_hide(Ecore_WinCE_Window *window)
} }
void 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; struct _Ecore_WinCE_Window *w;
@ -146,11 +146,12 @@ ecore_wince_window_suspend_set(Ecore_WinCE_Window *window, int (*suspend)(void))
return; return;
w = (struct _Ecore_WinCE_Window *)window; w = (struct _Ecore_WinCE_Window *)window;
w->backend = backend;
w->suspend = suspend; w->suspend = suspend;
} }
void 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; struct _Ecore_WinCE_Window *w;
@ -158,9 +159,90 @@ ecore_wince_window_resume_set(Ecore_WinCE_Window *window, int (*resume)(void))
return; return;
w = (struct _Ecore_WinCE_Window *)window; w = (struct _Ecore_WinCE_Window *)window;
w->backend = backend;
w->resume = resume; 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 * void *
ecore_wince_window_window_get(Ecore_WinCE_Window *window) ecore_wince_window_window_get(Ecore_WinCE_Window *window)
{ {