mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-11 11:20:12 +00:00
Bug 541162 – [Win32] Update for the new GdkWindowImpl stuff
2008-07-02 Cody Russell <bratsche@gnome.org> Bug 541162 – [Win32] Update for the new GdkWindowImpl stuff * gdk/win32/gdkprivate-win32.h: * gdk/win32/gdkgeometry-win32.c: * gdk/win32/gdkevents-win32.c: * gdk/win32/gdkwindow-win32.c: Update Win32 backend according to the newly refactored GdkWindow code. svn path=/trunk/; revision=20729
This commit is contained in:
parent
2b5d149c61
commit
e625b41a1d
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2008-07-02 Cody Russell <bratsche@gnome.org>
|
||||
|
||||
Bug 541162 – [Win32] Update for the new GdkWindowImpl stuff
|
||||
|
||||
* gdk/win32/gdkprivate-win32.h:
|
||||
* gdk/win32/gdkgeometry-win32.c:
|
||||
* gdk/win32/gdkevents-win32.c:
|
||||
* gdk/win32/gdkwindow-win32.c: Update Win32 backend according to
|
||||
the newly refactored GdkWindow code.
|
||||
|
||||
2008-07-01 Cody Russell <bratsche@gnome.org>
|
||||
|
||||
Bug 539164 – Windows' System Menu blocks main loop
|
||||
|
@ -1366,7 +1366,7 @@ synthesize_enter_or_leave_event (GdkWindow *window,
|
||||
event->crossing.window = window;
|
||||
event->crossing.subwindow = NULL;
|
||||
event->crossing.time = _gdk_win32_get_next_tick (msg->time);
|
||||
_gdk_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
_gdk_win32_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
event->crossing.x = x + xoffset;
|
||||
event->crossing.y = y + yoffset;
|
||||
event->crossing.x_root = msg->pt.x + _gdk_offset_x;
|
||||
@ -2012,7 +2012,7 @@ handle_wm_paint (MSG *msg,
|
||||
|
||||
update_region = _gdk_win32_hrgn_to_region (hrgn);
|
||||
|
||||
_gdk_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
_gdk_win32_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
gdk_region_offset (update_region, xoffset, yoffset);
|
||||
|
||||
_gdk_window_process_expose (window, update_region);
|
||||
@ -2063,7 +2063,7 @@ generate_button_event (GdkEventType type,
|
||||
translate_mouse_coords (orig_window, window, msg);
|
||||
event->button.x = current_x = (gint16) GET_X_LPARAM (msg->lParam);
|
||||
event->button.y = current_y = (gint16) GET_Y_LPARAM (msg->lParam);
|
||||
_gdk_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
_gdk_win32_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
event->button.x += xoffset;
|
||||
event->button.y += yoffset;
|
||||
event->button.x_root = msg->pt.x + _gdk_offset_x;
|
||||
@ -2633,7 +2633,7 @@ gdk_event_translate (MSG *msg,
|
||||
event->motion.time = _gdk_win32_get_next_tick (msg->time);
|
||||
event->motion.x = current_x = (gint16) GET_X_LPARAM (msg->lParam);
|
||||
event->motion.y = current_y = (gint16) GET_Y_LPARAM (msg->lParam);
|
||||
_gdk_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
_gdk_win32_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
event->motion.x += xoffset;
|
||||
event->motion.y += yoffset;
|
||||
event->motion.x_root = current_root_x;
|
||||
@ -2724,7 +2724,7 @@ gdk_event_translate (MSG *msg,
|
||||
event->scroll.direction = (((short) HIWORD (msg->wParam)) > 0) ?
|
||||
GDK_SCROLL_UP : GDK_SCROLL_DOWN;
|
||||
event->scroll.time = _gdk_win32_get_next_tick (msg->time);
|
||||
_gdk_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
_gdk_win32_windowing_window_get_offsets (window, &xoffset, &yoffset);
|
||||
event->scroll.x = (gint16) point.x + xoffset;
|
||||
event->scroll.y = (gint16) point.y + yoffset;
|
||||
event->scroll.x_root = (gint16) GET_X_LPARAM (msg->lParam) + _gdk_offset_x;
|
||||
|
@ -75,9 +75,9 @@ static void gdk_window_post_scroll (GdkWindow *window,
|
||||
GdkRegion *new_clip_region);
|
||||
|
||||
void
|
||||
_gdk_windowing_window_get_offsets (GdkWindow *window,
|
||||
gint *x_offset,
|
||||
gint *y_offset)
|
||||
_gdk_win32_windowing_window_get_offsets (GdkWindow *window,
|
||||
gint *x_offset,
|
||||
gint *y_offset)
|
||||
{
|
||||
GdkWindowImplWin32 *impl =
|
||||
GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
|
||||
@ -101,9 +101,9 @@ _gdk_window_init_position (GdkWindow *window)
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_scroll (GdkWindow *window,
|
||||
gint dx,
|
||||
gint dy)
|
||||
_gdk_win32_window_scroll (GdkWindow *window,
|
||||
gint dx,
|
||||
gint dy)
|
||||
{
|
||||
GdkRegion *invalidate_region;
|
||||
GdkWindowImplWin32 *impl;
|
||||
@ -112,11 +112,6 @@ gdk_window_scroll (GdkWindow *window,
|
||||
GdkWindowParentPos parent_pos;
|
||||
HRGN native_invalidate_region;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
GDK_NOTE (EVENTS, g_print ("gdk_window_scroll: %p %d,%d\n",
|
||||
GDK_WINDOW_HWND (window), dx, dy));
|
||||
|
||||
@ -172,10 +167,10 @@ gdk_window_scroll (GdkWindow *window,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_move_region (GdkWindow *window,
|
||||
const GdkRegion *region,
|
||||
gint dx,
|
||||
gint dy)
|
||||
_gdk_win32_window_move_region (GdkWindow *window,
|
||||
const GdkRegion *region,
|
||||
gint dx,
|
||||
gint dy)
|
||||
{
|
||||
GdkRegion *invalidate_region;
|
||||
GdkWindowImplWin32 *impl;
|
||||
@ -184,11 +179,6 @@ gdk_window_move_region (GdkWindow *window,
|
||||
HRGN hrgn;
|
||||
RECT clipRect, destRect;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
obj = GDK_WINDOW_OBJECT (window);
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (obj->impl);
|
||||
|
||||
|
@ -209,6 +209,20 @@ void _gdk_window_move_resize_child (GdkWindow *window,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
/* GdkWindowImpl methods */
|
||||
void _gdk_win32_window_scroll (GdkWindow *window,
|
||||
gint dx,
|
||||
gint dy);
|
||||
void _gdk_win32_window_move_region (GdkWindow *window,
|
||||
const GdkRegion *region,
|
||||
gint dx,
|
||||
gint dy);
|
||||
void _gdk_win32_windowing_window_get_offsets (GdkWindow *window,
|
||||
gint *x_offset,
|
||||
gint *y_offset);
|
||||
|
||||
|
||||
void _gdk_window_process_expose (GdkWindow *window,
|
||||
GdkRegion *invalidate_region);
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "gdk.h"
|
||||
#include "gdkwindowimpl.h"
|
||||
#include "gdkprivate-win32.h"
|
||||
#include "gdkinput-win32.h"
|
||||
|
||||
@ -61,6 +62,8 @@ static gboolean _gdk_window_get_functions (GdkWindow *window,
|
||||
(GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD && \
|
||||
GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
|
||||
|
||||
static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
|
||||
|
||||
GType
|
||||
_gdk_window_impl_win32_get_type (void)
|
||||
{
|
||||
@ -80,10 +83,20 @@ _gdk_window_impl_win32_get_type (void)
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gdk_window_impl_win32_init,
|
||||
};
|
||||
|
||||
const GInterfaceInfo window_impl_info =
|
||||
{
|
||||
(GInterfaceInitFunc) gdk_window_impl_iface_init,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_WIN32,
|
||||
"GdkWindowImplWin32",
|
||||
&object_info, 0);
|
||||
g_type_add_interface_static (object_type,
|
||||
GDK_TYPE_WINDOW_IMPL,
|
||||
&window_impl_info);
|
||||
}
|
||||
|
||||
return object_type;
|
||||
@ -282,6 +295,7 @@ _gdk_windowing_window_init (void)
|
||||
|
||||
_gdk_root = g_object_new (GDK_TYPE_WINDOW, NULL);
|
||||
private = (GdkWindowObject *)_gdk_root;
|
||||
private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
|
||||
draw_impl = GDK_DRAWABLE_IMPL_WIN32 (private->impl);
|
||||
|
||||
draw_impl->handle = GetDesktopWindow ();
|
||||
@ -522,6 +536,7 @@ gdk_window_new_internal (GdkWindow *parent,
|
||||
|
||||
window = g_object_new (GDK_TYPE_WINDOW, NULL);
|
||||
private = (GdkWindowObject *)window;
|
||||
private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
|
||||
draw_impl = GDK_DRAWABLE_IMPL_WIN32 (private->impl);
|
||||
draw_impl->wrapper = GDK_DRAWABLE (window);
|
||||
@ -1124,28 +1139,16 @@ show_window_internal (GdkWindow *window,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_show_unraised (GdkWindow *window)
|
||||
gdk_win32_window_show (GdkWindow *window, gboolean raise)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
show_window_internal (window, FALSE, FALSE);
|
||||
show_window_internal (window, raise, FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_show (GdkWindow *window)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
show_window_internal (window, TRUE, FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_hide (GdkWindow *window)
|
||||
gdk_win32_window_hide (GdkWindow *window)
|
||||
{
|
||||
GdkWindowObject *private;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
private = (GdkWindowObject*) window;
|
||||
if (private->destroyed)
|
||||
return;
|
||||
@ -1177,12 +1180,10 @@ gdk_window_hide (GdkWindow *window)
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_withdraw (GdkWindow *window)
|
||||
gdk_win32_window_withdraw (GdkWindow *window)
|
||||
{
|
||||
GdkWindowObject *private;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
private = (GdkWindowObject*) window;
|
||||
if (private->destroyed)
|
||||
return;
|
||||
@ -1195,119 +1196,16 @@ gdk_window_withdraw (GdkWindow *window)
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_move (GdkWindow *window,
|
||||
gint x,
|
||||
gint y)
|
||||
{
|
||||
GdkWindowObject *private = (GdkWindowObject *)window;
|
||||
GdkWindowImplWin32 *impl;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
GDK_NOTE (MISC, g_print ("gdk_window_move: %p: %+d%+d\n",
|
||||
GDK_WINDOW_HWND (window), x, y));
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
|
||||
|
||||
if (private->state & GDK_WINDOW_STATE_FULLSCREEN)
|
||||
return;
|
||||
|
||||
/* Don't check GDK_WINDOW_TYPE (private) == GDK_WINDOW_CHILD.
|
||||
* Foreign windows (another app's windows) might be children of our
|
||||
* windows! Especially in the case of gtkplug/socket.
|
||||
*/
|
||||
if (GetAncestor (GDK_WINDOW_HWND (window), GA_PARENT) != GetDesktopWindow ())
|
||||
{
|
||||
_gdk_window_move_resize_child (window, x, y, impl->width, impl->height);
|
||||
}
|
||||
else
|
||||
{
|
||||
RECT outer_rect;
|
||||
|
||||
get_outer_rect (window, impl->width, impl->height, &outer_rect);
|
||||
|
||||
adjust_for_gravity_hints (impl, &outer_rect, &x, &y);
|
||||
|
||||
GDK_NOTE (MISC, g_print ("... SetWindowPos(%p,NULL,%d,%d,0,0,"
|
||||
"NOACTIVATE|NOSIZE|NOZORDER)\n",
|
||||
GDK_WINDOW_HWND (window),
|
||||
x - _gdk_offset_x, y - _gdk_offset_y));
|
||||
|
||||
API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), NULL,
|
||||
x - _gdk_offset_x, y - _gdk_offset_y, 0, 0,
|
||||
SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_resize (GdkWindow *window,
|
||||
gint width,
|
||||
gint height)
|
||||
gdk_win32_window_move_resize (GdkWindow *window,
|
||||
gboolean with_move,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GdkWindowObject *private = (GdkWindowObject*) window;
|
||||
GdkWindowImplWin32 *impl;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
if (width < 1)
|
||||
width = 1;
|
||||
if (height < 1)
|
||||
height = 1;
|
||||
|
||||
GDK_NOTE (MISC, g_print ("gdk_window_resize: %p: %dx%d\n",
|
||||
GDK_WINDOW_HWND (window), width, height));
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
|
||||
|
||||
if (private->state & GDK_WINDOW_STATE_FULLSCREEN)
|
||||
return;
|
||||
|
||||
if (GetAncestor (GDK_WINDOW_HWND (window), GA_PARENT) != GetDesktopWindow ())
|
||||
{
|
||||
_gdk_window_move_resize_child (window, private->x, private->y, width, height);
|
||||
}
|
||||
else
|
||||
{
|
||||
RECT outer_rect;
|
||||
|
||||
get_outer_rect (window, width, height, &outer_rect);
|
||||
|
||||
GDK_NOTE (MISC, g_print ("... SetWindowPos(%p,NULL,0,0,%ld,%ld,"
|
||||
"NOACTIVATE|NOMOVE|NOZORDER)\n",
|
||||
GDK_WINDOW_HWND (window),
|
||||
outer_rect.right - outer_rect.left,
|
||||
outer_rect.bottom - outer_rect.top));
|
||||
|
||||
API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), NULL,
|
||||
0, 0,
|
||||
outer_rect.right - outer_rect.left,
|
||||
outer_rect.bottom - outer_rect.top,
|
||||
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER));
|
||||
private->resize_count += 1;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_move_resize (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
GdkWindowObject *private = (GdkWindowObject*) window;
|
||||
GdkWindowImplWin32 *impl;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
if (width < 1)
|
||||
width = 1;
|
||||
if (height < 1)
|
||||
@ -1340,20 +1238,26 @@ gdk_window_move_resize (GdkWindow *window,
|
||||
x - _gdk_offset_x, y - _gdk_offset_y,
|
||||
outer_rect.right - outer_rect.left,
|
||||
outer_rect.bottom - outer_rect.top));
|
||||
|
||||
|
||||
UINT uflags = SWP_NOACTIVATE | SWP_NOZORDER;
|
||||
if (with_move == FALSE)
|
||||
uflags |= SWP_NOMOVE;
|
||||
if (width == -1 || height == -1)
|
||||
uflags |= SWP_NOSIZE;
|
||||
|
||||
API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), NULL,
|
||||
x - _gdk_offset_x, y - _gdk_offset_y,
|
||||
outer_rect.right - outer_rect.left,
|
||||
outer_rect.bottom - outer_rect.top,
|
||||
SWP_NOACTIVATE | SWP_NOZORDER));
|
||||
uflags));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_window_reparent (GdkWindow *window,
|
||||
GdkWindow *new_parent,
|
||||
gint x,
|
||||
gint y)
|
||||
static gboolean
|
||||
gdk_win32_window_reparent (GdkWindow *window,
|
||||
GdkWindow *new_parent,
|
||||
gint x,
|
||||
gint y)
|
||||
{
|
||||
GdkWindowObject *window_private;
|
||||
GdkWindowObject *parent_private;
|
||||
@ -1439,6 +1343,8 @@ _gdk_window_reparent (GdkWindow *window,
|
||||
|
||||
parent_private->children = g_list_prepend (parent_private->children, window);
|
||||
_gdk_window_init_position (GDK_WINDOW (window_private));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1575,78 +1481,60 @@ erase_background (GdkWindow *window,
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_windowing_window_clear_area (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height)
|
||||
_gdk_win32_window_clear_area (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height,
|
||||
gboolean send_expose)
|
||||
{
|
||||
GdkWindowImplWin32 *impl;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
|
||||
|
||||
if (!GDK_WINDOW_DESTROYED (window))
|
||||
{
|
||||
HDC hdc;
|
||||
|
||||
if (width == 0)
|
||||
width = impl->width - x;
|
||||
if (height == 0)
|
||||
height = impl->height - y;
|
||||
GDK_NOTE (MISC, g_print ("_gdk_windowing_window_clear_area: %p: "
|
||||
"%dx%d@%+d%+d\n",
|
||||
GDK_WINDOW_HWND (window),
|
||||
width, height, x, y));
|
||||
hdc = GetDC (GDK_WINDOW_HWND (window));
|
||||
IntersectClipRect (hdc, x, y, x + width, y + height);
|
||||
erase_background (window, hdc);
|
||||
GDI_CALL (ReleaseDC, (GDK_WINDOW_HWND (window), hdc));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_gdk_windowing_window_clear_area_e (GdkWindow *window,
|
||||
gint x,
|
||||
gint y,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (!GDK_WINDOW_DESTROYED (window))
|
||||
{
|
||||
HDC hdc;
|
||||
RECT rect;
|
||||
|
||||
GDK_NOTE (MISC, g_print ("_gdk_windowing_window_clear_area_e: %p: "
|
||||
"%dx%d@%+d%+d\n",
|
||||
GDK_WINDOW_HWND (window),
|
||||
width, height, x, y));
|
||||
|
||||
/* The background should be erased before the expose event is
|
||||
generated */
|
||||
hdc = GetDC (GDK_WINDOW_HWND (window));
|
||||
IntersectClipRect (hdc, x, y, x + width, y + height);
|
||||
erase_background (window, hdc);
|
||||
GDI_CALL (ReleaseDC, (GDK_WINDOW_HWND (window), hdc));
|
||||
|
||||
rect.left = x;
|
||||
rect.right = x + width;
|
||||
rect.top = y;
|
||||
rect.bottom = y + height;
|
||||
if (!send_expose)
|
||||
{
|
||||
if (width == 0)
|
||||
width = impl->width - x;
|
||||
if (height == 0)
|
||||
height = impl->height - y;
|
||||
GDK_NOTE (MISC, g_print ("_gdk_windowing_window_clear_area: %p: "
|
||||
"%dx%d@%+d%+d\n",
|
||||
GDK_WINDOW_HWND (window),
|
||||
width, height, x, y));
|
||||
IntersectClipRect (hdc, x, y, x + width, y + height);
|
||||
erase_background (window, hdc);
|
||||
GDI_CALL (ReleaseDC, (GDK_WINDOW_HWND (window), hdc));
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The background should be erased before the expose event is
|
||||
generated */
|
||||
IntersectClipRect (hdc, x, y, x + width, y + height);
|
||||
erase_background (window, hdc);
|
||||
GDI_CALL (ReleaseDC, (GDK_WINDOW_HWND (window), hdc));
|
||||
|
||||
GDI_CALL (InvalidateRect, (GDK_WINDOW_HWND (window), &rect, TRUE));
|
||||
UpdateWindow (GDK_WINDOW_HWND (window));
|
||||
rect.left = x;
|
||||
rect.right = x + width;
|
||||
rect.top = y;
|
||||
rect.bottom = y + height;
|
||||
|
||||
GDI_CALL (InvalidateRect, (GDK_WINDOW_HWND (window), &rect, TRUE));
|
||||
UpdateWindow (GDK_WINDOW_HWND (window));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_raise (GdkWindow *window)
|
||||
gdk_win32_window_raise (GdkWindow *window)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (!GDK_WINDOW_DESTROYED (window))
|
||||
{
|
||||
GDK_NOTE (MISC, g_print ("gdk_window_raise: %p\n",
|
||||
@ -1666,10 +1554,8 @@ gdk_window_raise (GdkWindow *window)
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_lower (GdkWindow *window)
|
||||
gdk_win32_window_lower (GdkWindow *window)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (!GDK_WINDOW_DESTROYED (window))
|
||||
{
|
||||
GDK_NOTE (MISC, g_print ("gdk_window_lower: %p\n"
|
||||
@ -2074,13 +1960,11 @@ _gdk_modal_current ()
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_set_background (GdkWindow *window,
|
||||
const GdkColor *color)
|
||||
gdk_win32_window_set_background (GdkWindow *window,
|
||||
const GdkColor *color)
|
||||
{
|
||||
GdkWindowObject *private = (GdkWindowObject *)window;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
GDK_NOTE (MISC, g_print ("gdk_window_set_background: %p: %s\n",
|
||||
GDK_WINDOW_HWND (window),
|
||||
_gdk_win32_color_to_string (color)));
|
||||
@ -2097,16 +1981,12 @@ gdk_window_set_background (GdkWindow *window,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_set_back_pixmap (GdkWindow *window,
|
||||
GdkPixmap *pixmap,
|
||||
gint parent_relative)
|
||||
gdk_win32_window_set_back_pixmap (GdkWindow *window,
|
||||
GdkPixmap *pixmap,
|
||||
gint parent_relative)
|
||||
{
|
||||
GdkWindowObject *private = (GdkWindowObject *)window;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
g_return_if_fail (pixmap == NULL || !parent_relative);
|
||||
g_return_if_fail (pixmap == NULL || gdk_drawable_get_depth (window) == gdk_drawable_get_depth (pixmap));
|
||||
|
||||
if (pixmap && !gdk_drawable_get_colormap (pixmap))
|
||||
{
|
||||
g_warning ("gdk_window_set_back_pixmap(): pixmap must have a colormap");
|
||||
@ -2138,8 +2018,8 @@ gdk_window_set_back_pixmap (GdkWindow *window,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_set_cursor (GdkWindow *window,
|
||||
GdkCursor *cursor)
|
||||
gdk_win32_window_set_cursor (GdkWindow *window,
|
||||
GdkCursor *cursor)
|
||||
{
|
||||
GdkWindowImplWin32 *impl;
|
||||
GdkCursorPrivate *cursor_private;
|
||||
@ -2147,8 +2027,6 @@ gdk_window_set_cursor (GdkWindow *window,
|
||||
HCURSOR hcursor;
|
||||
HCURSOR hprevcursor;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
|
||||
cursor_private = (GdkCursorPrivate*) cursor;
|
||||
|
||||
@ -2246,15 +2124,13 @@ gdk_window_set_cursor (GdkWindow *window,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_get_geometry (GdkWindow *window,
|
||||
gint *x,
|
||||
gint *y,
|
||||
gint *width,
|
||||
gint *height,
|
||||
gint *depth)
|
||||
gdk_win32_window_get_geometry (GdkWindow *window,
|
||||
gint *x,
|
||||
gint *y,
|
||||
gint *width,
|
||||
gint *height,
|
||||
gint *depth)
|
||||
{
|
||||
g_return_if_fail (window == NULL || GDK_IS_WINDOW (window));
|
||||
|
||||
if (!window)
|
||||
window = _gdk_root;
|
||||
|
||||
@ -2312,16 +2188,14 @@ gdk_window_get_geometry (GdkWindow *window,
|
||||
}
|
||||
|
||||
gint
|
||||
gdk_window_get_origin (GdkWindow *window,
|
||||
gint *x,
|
||||
gint *y)
|
||||
gdk_win32_window_get_origin (GdkWindow *window,
|
||||
gint *x,
|
||||
gint *y)
|
||||
{
|
||||
gint return_val;
|
||||
gint tx = 0;
|
||||
gint ty = 0;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
|
||||
|
||||
if (!GDK_WINDOW_DESTROYED (window))
|
||||
{
|
||||
POINT pt;
|
||||
@ -2561,10 +2435,8 @@ _gdk_windowing_window_at_pointer (GdkDisplay *display,
|
||||
}
|
||||
|
||||
GdkEventMask
|
||||
gdk_window_get_events (GdkWindow *window)
|
||||
gdk_win32_window_get_events (GdkWindow *window)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return 0;
|
||||
|
||||
@ -2572,14 +2444,9 @@ gdk_window_get_events (GdkWindow *window)
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_set_events (GdkWindow *window,
|
||||
gdk_win32_window_set_events (GdkWindow *window,
|
||||
GdkEventMask event_mask)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
/* gdk_window_new() always sets the GDK_STRUCTURE_MASK, so better
|
||||
* set it here, too. Not that I know or remember why it is
|
||||
* necessary, will have to test some day.
|
||||
@ -2612,14 +2479,12 @@ do_shape_combine_region (GdkWindow *window,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_shape_combine_mask (GdkWindow *window,
|
||||
GdkBitmap *mask,
|
||||
gint x, gint y)
|
||||
gdk_win32_window_shape_combine_mask (GdkWindow *window,
|
||||
GdkBitmap *mask,
|
||||
gint x, gint y)
|
||||
{
|
||||
GdkWindowObject *private = (GdkWindowObject *)window;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (!mask)
|
||||
{
|
||||
GDK_NOTE (MISC, g_print ("gdk_window_shape_combine_mask: %p: none\n",
|
||||
@ -3135,10 +3000,8 @@ gdk_propagate_shapes (HANDLE win,
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_set_child_shapes (GdkWindow *window)
|
||||
gdk_win32_window_set_child_shapes (GdkWindow *window)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
@ -3146,10 +3009,8 @@ gdk_window_set_child_shapes (GdkWindow *window)
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_merge_child_shapes (GdkWindow *window)
|
||||
gdk_win32_window_merge_child_shapes (GdkWindow *window)
|
||||
{
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
@ -3177,7 +3038,7 @@ gdk_window_merge_child_input_shapes (GdkWindow *window)
|
||||
}
|
||||
|
||||
gboolean
|
||||
gdk_window_set_static_gravities (GdkWindow *window,
|
||||
gdk_win32_window_set_static_gravities (GdkWindow *window,
|
||||
gboolean use_static)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
|
||||
@ -3666,15 +3527,13 @@ gdk_window_get_type_hint (GdkWindow *window)
|
||||
}
|
||||
|
||||
void
|
||||
gdk_window_shape_combine_region (GdkWindow *window,
|
||||
const GdkRegion *shape_region,
|
||||
gint offset_x,
|
||||
gint offset_y)
|
||||
gdk_win32_window_shape_combine_region (GdkWindow *window,
|
||||
const GdkRegion *shape_region,
|
||||
gint offset_x,
|
||||
gint offset_y)
|
||||
{
|
||||
GdkWindowObject *private = (GdkWindowObject *)window;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW (window));
|
||||
|
||||
if (GDK_WINDOW_DESTROYED (window))
|
||||
return;
|
||||
|
||||
@ -3784,3 +3643,31 @@ void
|
||||
_gdk_windowing_window_set_composited (GdkWindow *window, gboolean composited)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_impl_iface_init (GdkWindowImplIface *iface)
|
||||
{
|
||||
iface->show = gdk_win32_window_show;
|
||||
iface->hide = gdk_win32_window_hide;
|
||||
iface->withdraw = gdk_win32_window_withdraw;
|
||||
iface->set_events = gdk_win32_window_set_events;
|
||||
iface->get_events = gdk_win32_window_get_events;
|
||||
iface->clear_area = _gdk_win32_window_clear_area;
|
||||
iface->raise = gdk_win32_window_raise;
|
||||
iface->lower = gdk_win32_window_lower;
|
||||
iface->move_resize = gdk_win32_window_move_resize;
|
||||
iface->scroll = _gdk_win32_window_scroll;
|
||||
iface->move_region = _gdk_win32_window_move_region;
|
||||
iface->set_background = gdk_win32_window_set_background;
|
||||
iface->set_back_pixmap = gdk_win32_window_set_back_pixmap;
|
||||
iface->reparent = gdk_win32_window_reparent;
|
||||
iface->set_cursor = gdk_win32_window_set_cursor;
|
||||
iface->get_geometry = gdk_win32_window_get_geometry;
|
||||
iface->get_origin = gdk_win32_window_get_origin;
|
||||
iface->shape_combine_mask = gdk_win32_window_shape_combine_mask;
|
||||
iface->shape_combine_region = gdk_win32_window_shape_combine_region;
|
||||
iface->set_child_shapes = gdk_win32_window_set_child_shapes;
|
||||
iface->merge_child_shapes = gdk_win32_window_merge_child_shapes;
|
||||
iface->set_static_gravities = gdk_win32_window_set_static_gravities;
|
||||
iface->get_offsets = _gdk_win32_windowing_window_get_offsets;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user