3 * Copyright (C) 2005-2007 Imendio AB
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
21 #ifndef __GDK_PRIVATE_QUARTZ_H__
22 #define __GDK_PRIVATE_QUARTZ_H__
24 #define GDK_QUARTZ_ALLOC_POOL NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]
25 #define GDK_QUARTZ_RELEASE_POOL [pool release]
27 #include <gdk/gdkprivate.h>
28 #include <gdk/quartz/gdkwindow-quartz.h>
29 #include <gdk/quartz/gdkquartz.h>
33 #include "gdkinternals.h"
37 #define GDK_DRAG_CONTEXT_PRIVATE(context) ((GdkDragContextPrivate *) GDK_DRAG_CONTEXT (context)->windowing_data)
39 typedef struct _GdkCursorPrivate GdkCursorPrivate;
40 typedef struct _GdkDragContextPrivate GdkDragContextPrivate;
42 struct _GdkVisualClass
44 GObjectClass parent_class;
47 struct _GdkCursorPrivate
53 struct _GdkDragContextPrivate
55 id <NSDraggingInfo> dragging_info;
59 extern GdkDisplay *_gdk_display;
60 extern GdkScreen *_gdk_screen;
61 extern GdkWindow *_gdk_root;
63 extern GdkDragContext *_gdk_quartz_drag_source_context;
65 #define GDK_WINDOW_IS_QUARTZ(win) (GDK_IS_WINDOW_IMPL_QUARTZ (((GdkWindowObject *)win)->impl))
68 void _gdk_windowing_update_window_sizes (GdkScreen *screen);
69 void _gdk_windowing_window_init (void);
70 void _gdk_events_init (void);
71 void _gdk_visual_init (void);
72 void _gdk_input_init (void);
73 void _gdk_quartz_event_loop_init (void);
77 GDK_QUARTZ_CONTEXT_STROKE = 1 << 0,
78 GDK_QUARTZ_CONTEXT_FILL = 1 << 1,
79 GDK_QUARTZ_CONTEXT_TEXT = 1 << 2
80 } GdkQuartzContextValuesMask;
83 gboolean _gdk_quartz_window_is_ancestor (GdkWindow *ancestor,
85 void _gdk_quartz_window_gdk_xy_to_xy (gint gdk_x,
89 void _gdk_quartz_window_xy_to_gdk_xy (gint ns_x,
93 void _gdk_quartz_window_nspoint_to_gdk_xy (NSPoint point,
96 GdkWindow *_gdk_quartz_window_find_child (GdkWindow *window,
99 gboolean get_toplevel);
100 void _gdk_quartz_window_attach_to_parent (GdkWindow *window);
101 void _gdk_quartz_window_detach_from_parent (GdkWindow *window);
102 void _gdk_quartz_window_did_become_main (GdkWindow *window);
103 void _gdk_quartz_window_did_resign_main (GdkWindow *window);
104 void _gdk_quartz_window_debug_highlight (GdkWindow *window,
107 void _gdk_quartz_window_set_needs_display_in_region (GdkWindow *window,
108 cairo_region_t *region);
110 void _gdk_quartz_window_update_position (GdkWindow *window);
114 GDK_QUARTZ_EVENT_SUBTYPE_EVENTLOOP
115 } GdkQuartzEventSubType;
117 void _gdk_quartz_events_update_focus_window (GdkWindow *new_window,
119 void _gdk_quartz_events_send_map_event (GdkWindow *window);
120 GdkEventMask _gdk_quartz_events_get_current_event_mask (void);
122 void _gdk_quartz_events_send_enter_notify_event (GdkWindow *window);
125 gboolean _gdk_quartz_event_loop_check_pending (void);
126 NSEvent * _gdk_quartz_event_loop_get_pending (void);
127 void _gdk_quartz_event_loop_release_event (NSEvent *event);
130 GdkEventType _gdk_quartz_keys_event_type (NSEvent *event);
131 gboolean _gdk_quartz_keys_is_modifier (guint keycode);
134 void _gdk_quartz_drawable_finish (GdkDrawable *drawable);
135 void _gdk_quartz_drawable_flush (GdkDrawable *drawable);
138 void _gdk_quartz_window_scroll (GdkWindow *window,
141 void _gdk_quartz_window_translate (GdkWindow *window,
142 cairo_region_t *area,
145 gboolean _gdk_quartz_window_queue_antiexpose (GdkWindow *window,
146 cairo_region_t *area);
148 #endif /* __GDK_PRIVATE_QUARTZ_H__ */