gtk+ r20697 - in trunk: . gdk/quartz
- From: kristian svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r20697 - in trunk: . gdk/quartz
- Date: Fri, 27 Jun 2008 17:06:06 +0000 (UTC)
Author: kristian
Date: Fri Jun 27 17:06:06 2008
New Revision: 20697
URL: http://svn.gnome.org/viewvc/gtk+?rev=20697&view=rev
Log:
2008-06-27 Kristian Rietveld <kris imendio com>
* gdk/quartz/gdkgeometry-quartz.c:
* gdk/quartz/gdkwindow-quartz.c:
* gdk/quartz/gdkprivate-quartz.h: adapt to use GdkWindowImpl
interface.
Modified:
trunk/ChangeLog
trunk/gdk/quartz/gdkgeometry-quartz.c
trunk/gdk/quartz/gdkprivate-quartz.h
trunk/gdk/quartz/gdkwindow-quartz.c
Modified: trunk/gdk/quartz/gdkgeometry-quartz.c
==============================================================================
--- trunk/gdk/quartz/gdkgeometry-quartz.c (original)
+++ trunk/gdk/quartz/gdkgeometry-quartz.c Fri Jun 27 17:06:06 2008
@@ -23,9 +23,9 @@
#include "gdkprivate-quartz.h"
void
-gdk_window_scroll (GdkWindow *window,
- gint dx,
- gint dy)
+_gdk_quartz_window_scroll (GdkWindow *window,
+ gint dx,
+ gint dy)
{
NSRect visible_nsrect;
GdkRectangle visible_rect, scrolled_rect;
@@ -36,8 +36,6 @@
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
GList *list;
- g_return_if_fail (GDK_IS_WINDOW (window));
-
/* Move the current invalid region */
if (private->update_area)
gdk_region_offset (private->update_area, dx, dy);
@@ -83,10 +81,10 @@
}
void
-gdk_window_move_region (GdkWindow *window,
- const GdkRegion *region,
- gint dx,
- gint dy)
+_gdk_quartz_window_move_region (GdkWindow *window,
+ const GdkRegion *region,
+ gint dx,
+ gint dy)
{
/* FIXME: Implement */
}
Modified: trunk/gdk/quartz/gdkprivate-quartz.h
==============================================================================
--- trunk/gdk/quartz/gdkprivate-quartz.h (original)
+++ trunk/gdk/quartz/gdkprivate-quartz.h Fri Jun 27 17:06:06 2008
@@ -187,4 +187,13 @@
/* Drawable */
void _gdk_quartz_drawable_finish (GdkDrawable *drawable);
+/* Geometry */
+void _gdk_quartz_window_scroll (GdkWindow *window,
+ gint dx,
+ gint dy);
+void _gdk_quartz_window_move_region (GdkWindow *window,
+ const GdkRegion *region,
+ gint dx,
+ gint dy);
+
#endif /* __GDK_PRIVATE_QUARTZ_H__ */
Modified: trunk/gdk/quartz/gdkwindow-quartz.c
==============================================================================
--- trunk/gdk/quartz/gdkwindow-quartz.c (original)
+++ trunk/gdk/quartz/gdkwindow-quartz.c Fri Jun 27 17:06:06 2008
@@ -23,6 +23,7 @@
#include <Carbon/Carbon.h>
#include "gdk.h"
+#include "gdkwindowimpl.h"
#include "gdkprivate-quartz.h"
static gpointer parent_class;
@@ -51,6 +52,8 @@
(GDK_WINDOW_TYPE (window) != GDK_WINDOW_CHILD && \
GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN)
+static void gdk_window_impl_iface_init (GdkWindowImplIface *iface);
+
NSView *
gdk_quartz_window_get_nsview (GdkWindow *window)
{
@@ -488,12 +491,22 @@
NULL
};
+ const GInterfaceInfo window_impl_info =
+ {
+ (GInterfaceInitFunc) gdk_window_impl_iface_init,
+ NULL,
+ NULL
+ };
+
object_type = g_type_register_static (GDK_TYPE_DRAWABLE_IMPL_QUARTZ,
"GdkWindowImplQuartz",
&object_info, 0);
g_type_add_interface_static (object_type,
GDK_TYPE_PAINTABLE,
&paintable_info);
+ g_type_add_interface_static (object_type,
+ GDK_TYPE_WINDOW_IMPL,
+ &window_impl_info);
}
return object_type;
@@ -801,7 +814,10 @@
parent = _gdk_root;
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_QUARTZ (private->impl);
draw_impl = GDK_DRAWABLE_IMPL_QUARTZ (private->impl);
draw_impl->wrapper = GDK_DRAWABLE (window);
@@ -1015,14 +1031,15 @@
_gdk_root = g_object_new (GDK_TYPE_WINDOW, NULL);
+ private = (GdkWindowObject *)_gdk_root;
+ private->impl = g_object_new (_gdk_window_impl_get_type (), NULL);
+
/* Note: This needs to be reworked for multi-screen support. */
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (_gdk_root)->impl);
rect = [[NSScreen mainScreen] frame];
impl->width = rect.size.width;
impl->height = rect.size.height;
- private = (GdkWindowObject *)_gdk_root;
-
private->state = 0; /* We don't want GDK_WINDOW_STATE_WITHDRAWN here */
private->window_type = GDK_WINDOW_ROOT;
private->depth = 24;
@@ -1114,8 +1131,8 @@
* possible to show a window without raising it?
*/
static void
-show_window_internal (GdkWindow *window,
- gboolean raise)
+gdk_window_quartz_show (GdkWindow *window,
+ gboolean raise)
{
GdkWindowObject *private;
GdkWindowImplQuartz *impl;
@@ -1224,30 +1241,12 @@
}
void
-gdk_window_show_unraised (GdkWindow *window)
-{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- show_window_internal (window, FALSE);
-}
-
-void
-gdk_window_show (GdkWindow *window)
-{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- show_window_internal (window, TRUE);
-}
-
-void
-gdk_window_hide (GdkWindow *window)
+gdk_window_quartz_hide (GdkWindow *window)
{
GdkWindowObject *private = (GdkWindowObject *)window;
GdkWindowImplQuartz *impl;
GdkWindow *mouse_window;
- g_return_if_fail (GDK_IS_WINDOW (window));
-
/* Make sure we're not stuck in fullscreen mode. */
if (get_fullscreen_geometry (window))
SetSystemUIMode (kUIModeNormal, 0);
@@ -1294,7 +1293,7 @@
}
void
-gdk_window_withdraw (GdkWindow *window)
+gdk_window_quartz_withdraw (GdkWindow *window)
{
gdk_window_hide (window);
}
@@ -1459,10 +1458,10 @@
GDK_QUARTZ_RELEASE_POOL;
}
-void
-gdk_window_move (GdkWindow *window,
- gint x,
- gint y)
+static inline void
+window_quartz_move (GdkWindow *window,
+ gint x,
+ gint y)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1472,10 +1471,10 @@
move_resize_window_internal (window, x, y, -1, -1);
}
-void
-gdk_window_resize (GdkWindow *window,
- gint width,
- gint height)
+static inline void
+window_quartz_resize (GdkWindow *window,
+ gint width,
+ gint height)
{
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -1490,12 +1489,12 @@
move_resize_window_internal (window, -1, -1, width, height);
}
-void
-gdk_window_move_resize (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height)
+static inline void
+window_quartz_move_resize (GdkWindow *window,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
{
if (width < 1)
width = 1;
@@ -1505,11 +1504,30 @@
move_resize_window_internal (window, x, y, width, height);
}
-void
-_gdk_window_reparent (GdkWindow *window,
- GdkWindow *new_parent,
- gint x,
- gint y)
+static void
+gdk_window_quartz_move_resize (GdkWindow *window,
+ gboolean with_move,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
+{
+ if (with_move && (width < 0 && height < 0))
+ window_quartz_move (window, x, y);
+ else
+ {
+ if (with_move)
+ window_quartz_move_resize (window, x, y, width, height);
+ else
+ window_quartz_resize (window, width, height);
+ }
+}
+
+static gboolean
+gdk_window_quartz_reparent (GdkWindow *window,
+ GdkWindow *new_parent,
+ gint x,
+ gint y)
{
GdkWindowObject *private, *old_parent_private, *new_parent_private;
GdkWindowImplQuartz *impl, *old_parent_impl, *new_parent_impl;
@@ -1519,7 +1537,7 @@
{
/* Could be added, just needs implementing. */
g_warning ("Reparenting to root window is not supported yet in the Mac OS X backend");
- return;
+ return FALSE;
}
private = GDK_WINDOW_OBJECT (window);
@@ -1552,24 +1570,17 @@
new_parent_private->children = g_list_prepend (new_parent_private->children, window);
new_parent_impl->sorted_children = g_list_prepend (new_parent_impl->sorted_children, window);
-}
-void
-_gdk_windowing_window_clear_area (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height)
-{
- /* FIXME: Implement */
+ return TRUE;
}
-void
-_gdk_windowing_window_clear_area_e (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height)
+static void
+gdk_window_quartz_clear_area (GdkWindow *window,
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gboolean send_expose)
{
/* FIXME: Implement */
}
@@ -1625,11 +1636,9 @@
root_impl->sorted_children = NULL;
}
-void
-gdk_window_raise (GdkWindow *window)
+static void
+gdk_window_quartz_raise (GdkWindow *window)
{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
if (GDK_WINDOW_DESTROYED (window))
return;
@@ -1658,11 +1667,9 @@
}
}
-void
-gdk_window_lower (GdkWindow *window)
+static void
+gdk_window_quartz_lower (GdkWindow *window)
{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
if (GDK_WINDOW_DESTROYED (window))
return;
@@ -1691,15 +1698,13 @@
}
}
-void
-gdk_window_set_background (GdkWindow *window,
- const GdkColor *color)
+static void
+gdk_window_quartz_set_background (GdkWindow *window,
+ const GdkColor *color)
{
GdkWindowObject *private = (GdkWindowObject *)window;
GdkWindowImplQuartz *impl;
- g_return_if_fail (GDK_IS_WINDOW (window));
-
if (GDK_WINDOW_DESTROYED (window))
return;
@@ -1715,17 +1720,13 @@
private->bg_pixmap = NULL;
}
-void
-gdk_window_set_back_pixmap (GdkWindow *window,
- GdkPixmap *pixmap,
- gboolean parent_relative)
+static void
+gdk_window_quartz_set_back_pixmap (GdkWindow *window,
+ GdkPixmap *pixmap,
+ gboolean 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 (GDK_WINDOW_DESTROYED (window))
return;
@@ -1753,16 +1754,14 @@
}
}
-void
-gdk_window_set_cursor (GdkWindow *window,
- GdkCursor *cursor)
+static void
+gdk_window_quartz_set_cursor (GdkWindow *window,
+ GdkCursor *cursor)
{
GdkWindowImplQuartz *impl;
GdkCursorPrivate *cursor_private;
NSCursor *nscursor;
- g_return_if_fail (GDK_IS_WINDOW (window));
-
impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
cursor_private = (GdkCursorPrivate *)cursor;
@@ -1786,22 +1785,17 @@
_gdk_quartz_events_update_cursor (_gdk_quartz_events_get_mouse_window (TRUE));
}
-void
-gdk_window_get_geometry (GdkWindow *window,
- gint *x,
- gint *y,
- gint *width,
- gint *height,
- gint *depth)
+static void
+gdk_window_quartz_get_geometry (GdkWindow *window,
+ gint *x,
+ gint *y,
+ gint *width,
+ gint *height,
+ gint *depth)
{
GdkWindowImplQuartz *impl;
NSRect ns_rect;
- g_return_if_fail (window == NULL || GDK_IS_WINDOW (window));
-
- if (!window)
- window = _gdk_root;
-
if (GDK_WINDOW_DESTROYED (window))
return;
@@ -1868,10 +1862,10 @@
*depth = gdk_drawable_get_depth (window);
}
-gboolean
-gdk_window_get_origin (GdkWindow *window,
- gint *x,
- gint *y)
+static gint
+gdk_window_quartz_get_origin (GdkWindow *window,
+ gint *x,
+ gint *y)
{
GdkWindowObject *private;
int tmp_x = 0, tmp_y = 0;
@@ -1879,8 +1873,6 @@
NSRect content_rect;
GdkWindowImplQuartz *impl;
- g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
-
if (GDK_WINDOW_DESTROYED (window))
{
if (x)
@@ -1888,14 +1880,14 @@
if (y)
*y = 0;
- return FALSE;
+ return 0;
}
if (window == _gdk_root)
{
*x = 0;
*y = 0;
- return TRUE;
+ return 1;
}
private = GDK_WINDOW_OBJECT (window);
@@ -2091,23 +2083,19 @@
return found_window;
}
-GdkEventMask
-gdk_window_get_events (GdkWindow *window)
+static GdkEventMask
+gdk_window_quartz_get_events (GdkWindow *window)
{
- g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
-
if (GDK_WINDOW_DESTROYED (window))
return 0;
else
return GDK_WINDOW_OBJECT (window)->event_mask;
}
-void
-gdk_window_set_events (GdkWindow *window,
- GdkEventMask event_mask)
+static void
+gdk_window_quartz_set_events (GdkWindow *window,
+ GdkEventMask event_mask)
{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
if (!GDK_WINDOW_DESTROYED (window))
{
GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
@@ -2280,21 +2268,20 @@
GDK_QUARTZ_RELEASE_POOL;
}
-void
-gdk_window_shape_combine_region (GdkWindow *window,
- const GdkRegion *shape,
- gint x,
- gint y)
+static void
+gdk_window_quartz_shape_combine_region (GdkWindow *window,
+ const GdkRegion *shape,
+ gint x,
+ gint y)
{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
/* FIXME: Implement */
}
-void
-gdk_window_shape_combine_mask (GdkWindow *window,
- GdkBitmap *mask,
- gint x, gint y)
+static void
+gdk_window_quartz_shape_combine_mask (GdkWindow *window,
+ GdkBitmap *mask,
+ gint x,
+ gint y)
{
/* FIXME: Implement */
}
@@ -2343,31 +2330,27 @@
private->accept_focus = accept_focus != FALSE;
}
-void
-gdk_window_set_child_shapes (GdkWindow *window)
+static void
+gdk_window_quartz_set_child_shapes (GdkWindow *window)
{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
/* FIXME: Implement */
}
-void
-gdk_window_merge_child_shapes (GdkWindow *window)
+static void
+gdk_window_quartz_merge_child_shapes (GdkWindow *window)
{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
/* FIXME: Implement */
}
-void
-gdk_window_merge_child_input_shapes (GdkWindow *window)
+static void
+gdk_window_quartz_merge_child_input_shapes (GdkWindow *window)
{
/* FIXME: Implement */
}
-gboolean
-gdk_window_set_static_gravities (GdkWindow *window,
- gboolean use_static)
+static gboolean
+gdk_window_quartz_set_static_gravities (GdkWindow *window,
+ gboolean use_static)
{
/* FIXME: Implement */
return FALSE;
@@ -2790,9 +2773,9 @@
}
void
-_gdk_windowing_window_get_offsets (GdkWindow *window,
- gint *x_offset,
- gint *y_offset)
+gdk_window_quartz_get_offsets (GdkWindow *window,
+ gint *x_offset,
+ gint *y_offset)
{
*x_offset = *y_offset = 0;
}
@@ -3130,3 +3113,31 @@
_gdk_windowing_window_set_composited (GdkWindow *window, gboolean composited)
{
}
+
+static void
+gdk_window_impl_iface_init (GdkWindowImplIface *iface)
+{
+ iface->show = gdk_window_quartz_show;
+ iface->hide = gdk_window_quartz_hide;
+ iface->withdraw = gdk_window_quartz_withdraw;
+ iface->set_events = gdk_window_quartz_set_events;
+ iface->get_events = gdk_window_quartz_get_events;
+ iface->clear_area = gdk_window_quartz_clear_area;
+ iface->raise = gdk_window_quartz_raise;
+ iface->lower = gdk_window_quartz_lower;
+ iface->move_resize = gdk_window_quartz_move_resize;
+ iface->scroll = _gdk_quartz_window_scroll;
+ iface->move_region = _gdk_quartz_window_move_region;
+ iface->set_background = gdk_window_quartz_set_background;
+ iface->set_back_pixmap = gdk_window_quartz_set_back_pixmap;
+ iface->reparent = gdk_window_quartz_reparent;
+ iface->set_cursor = gdk_window_quartz_set_cursor;
+ iface->get_geometry = gdk_window_quartz_get_geometry;
+ iface->get_origin = gdk_window_quartz_get_origin;
+ iface->shape_combine_mask = gdk_window_quartz_shape_combine_mask;
+ iface->shape_combine_region = gdk_window_quartz_shape_combine_region;
+ iface->set_child_shapes = gdk_window_quartz_set_child_shapes;
+ iface->merge_child_shapes = gdk_window_quartz_merge_child_shapes;
+ iface->set_static_gravities = gdk_window_quartz_set_static_gravities;
+ iface->get_offsets = gdk_window_quartz_get_offsets;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]