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/gdkdnd-quartz.h>
30 #include <gdk/quartz/gdkquartz.h>
34 #include "gdkinternals.h"
38 extern GdkDisplay *_gdk_display;
39 extern GdkScreen *_gdk_screen;
40 extern GdkWindow *_gdk_root;
42 extern GdkDragContext *_gdk_quartz_drag_source_context;
44 #define GDK_WINDOW_IS_QUARTZ(win) (GDK_IS_WINDOW_IMPL_QUARTZ (((GdkWindow *)win)->impl))
47 void _gdk_windowing_update_window_sizes (GdkScreen *screen);
48 void _gdk_windowing_window_init (void);
49 void _gdk_quartz_events_init (void);
50 void _gdk_quartz_input_init (void);
51 void _gdk_quartz_event_loop_init (void);
55 GDK_QUARTZ_CONTEXT_STROKE = 1 << 0,
56 GDK_QUARTZ_CONTEXT_FILL = 1 << 1,
57 GDK_QUARTZ_CONTEXT_TEXT = 1 << 2
58 } GdkQuartzContextValuesMask;
61 gboolean _gdk_quartz_window_is_ancestor (GdkWindow *ancestor,
63 void _gdk_quartz_window_gdk_xy_to_xy (gint gdk_x,
67 void _gdk_quartz_window_xy_to_gdk_xy (gint ns_x,
71 void _gdk_quartz_window_nspoint_to_gdk_xy (NSPoint point,
74 GdkWindow *_gdk_quartz_window_find_child (GdkWindow *window,
77 gboolean get_toplevel);
78 void _gdk_quartz_window_attach_to_parent (GdkWindow *window);
79 void _gdk_quartz_window_detach_from_parent (GdkWindow *window);
80 void _gdk_quartz_window_did_become_main (GdkWindow *window);
81 void _gdk_quartz_window_did_resign_main (GdkWindow *window);
82 void _gdk_quartz_window_debug_highlight (GdkWindow *window,
85 void _gdk_quartz_window_set_needs_display_in_region (GdkWindow *window,
86 cairo_region_t *region);
88 void _gdk_quartz_window_update_position (GdkWindow *window);
92 GDK_QUARTZ_EVENT_SUBTYPE_EVENTLOOP
93 } GdkQuartzEventSubType;
95 void _gdk_quartz_events_update_focus_window (GdkWindow *new_window,
97 void _gdk_quartz_events_send_map_event (GdkWindow *window);
98 GdkEventMask _gdk_quartz_events_get_current_event_mask (void);
100 void _gdk_quartz_events_send_enter_notify_event (GdkWindow *window);
103 gboolean _gdk_quartz_event_loop_check_pending (void);
104 NSEvent * _gdk_quartz_event_loop_get_pending (void);
105 void _gdk_quartz_event_loop_release_event (NSEvent *event);
108 GdkEventType _gdk_quartz_keys_event_type (NSEvent *event);
109 gboolean _gdk_quartz_keys_is_modifier (guint keycode);
112 void _gdk_quartz_window_scroll (GdkWindow *window,
115 void _gdk_quartz_window_translate (GdkWindow *window,
116 cairo_region_t *area,
119 gboolean _gdk_quartz_window_queue_antiexpose (GdkWindow *window,
120 cairo_region_t *area);
122 void _gdk_quartz_window_set_startup_id (GdkWindow *window,
123 const gchar *startup_id);
124 void _gdk_quartz_window_register_dnd (GdkWindow *window);
125 GdkDragContext * _gdk_quartz_window_drag_begin (GdkWindow *window,
130 void _gdk_quartz_display_sync (GdkDisplay *display);
131 void _gdk_quartz_display_flush (GdkDisplay *display);
132 void _gdk_quartz_display_queue_events (GdkDisplay *display);
133 gboolean _gdk_quartz_display_has_pending (GdkDisplay *display);
135 GdkCursor *_gdk_quartz_display_get_cursor_for_type (GdkDisplay *display,
137 GdkCursor *_gdk_quartz_display_get_cursor_for_name (GdkDisplay *display,
139 GdkCursor *_gdk_quartz_display_get_cursor_for_pixbuf (GdkDisplay *display,
143 gboolean _gdk_quartz_display_supports_cursor_alpha (GdkDisplay *display);
144 gboolean _gdk_quartz_display_supports_cursor_color (GdkDisplay *display);
145 void _gdk_quartz_display_get_default_cursor_size (GdkDisplay *display,
148 void _gdk_quartz_display_get_maximal_cursor_size (GdkDisplay *display,
151 void _gdk_quartz_display_before_process_all_updates (GdkDisplay *display);
152 void _gdk_quartz_display_after_process_all_updates (GdkDisplay *display);
153 void _gdk_quartz_display_notify_startup_complete (GdkDisplay *display,
155 void _gdk_quartz_display_event_data_copy (GdkDisplay *display,
158 void _gdk_quartz_display_event_data_free (GdkDisplay *display,
160 void _gdk_quartz_display_create_window_impl (GdkDisplay *display,
162 GdkWindow *real_parent,
164 GdkEventMask event_mask,
165 GdkWindowAttr *attributes,
166 gint attributes_mask);
167 GdkKeymap * _gdk_quartz_display_get_keymap (GdkDisplay *display);
170 GdkDisplay * _gdk_quartz_display_open (const gchar *name);
172 GdkNativeWindow _gdk_quartz_display_get_drag_protocol (GdkDisplay *display,
174 GdkDragProtocol *protocol,
178 gboolean _gdk_quartz_display_send_client_message (GdkDisplay *display,
180 GdkNativeWindow winid);
181 void _gdk_quartz_display_add_client_message_filter (GdkDisplay *display,
182 GdkAtom message_type,
186 GdkVisual * _gdk_quartz_screen_get_rgba_visual (GdkScreen *screen);
187 GdkVisual * _gdk_quartz_screen_get_system_visual (GdkScreen *screen);
188 gint _gdk_quartz_screen_visual_get_best_depth (GdkScreen *screen);
189 GdkVisualType _gdk_quartz_screen_visual_get_best_type (GdkScreen *screen);
190 GdkVisual * _gdk_quartz_screen_get_system_visual (GdkScreen *screen);
191 GdkVisual* _gdk_quartz_screen_visual_get_best (GdkScreen *screen);
192 GdkVisual* _gdk_quartz_screen_visual_get_best_with_depth (GdkScreen *screen,
194 GdkVisual* _gdk_quartz_screen_visual_get_best_with_type (GdkScreen *screen,
195 GdkVisualType visual_type);
196 GdkVisual* _gdk_quartz_screen_visual_get_best_with_both (GdkScreen *screen,
198 GdkVisualType visual_type);
199 void _gdk_quartz_screen_query_depths (GdkScreen *screen,
202 void _gdk_quartz_screen_query_visual_types (GdkScreen *screen,
203 GdkVisualType **visual_types,
205 void _gdk_quartz_screen_init_visuals (GdkScreen *screen);
206 GList * _gdk_quartz_screen_list_visuals (GdkScreen *screen);
209 void _gdk_quartz_screen_broadcast_client_message (GdkScreen *screen,
211 gboolean _gdk_quartz_screen_get_setting (GdkScreen *screen,
215 GdkScreen *_gdk_quartz_screen_new (void);
217 GdkAtom _gdk_quartz_display_manager_atom_intern (GdkDisplayManager *manager,
218 const gchar *atom_name,
220 gchar * _gdk_quartz_display_manager_get_atom_name (GdkDisplayManager *manager,
223 void _gdk_quartz_display_manager_add_display (GdkDisplayManager *manager,
224 GdkDisplay *display);
225 void _gdk_quartz_display_manager_remove_display (GdkDisplayManager *manager,
226 GdkDisplay *display);
228 void _gdk_quartz_window_sync_rendering (GdkWindow *window);
229 gboolean _gdk_quartz_window_simulate_key (GdkWindow *window,
233 GdkModifierType modifiers,
234 GdkEventType key_pressrelease);
235 gboolean _gdk_quartz_window_simulate_button (GdkWindow *window,
239 GdkModifierType modifiers,
240 GdkEventType button_pressrelease);
242 gboolean _gdk_quartz_window_get_property (GdkWindow *window,
248 GdkAtom *actual_property_type,
249 gint *actual_format_type,
252 void _gdk_quartz_window_change_property (GdkWindow *window,
259 void _gdk_quartz_window_delete_property (GdkWindow *window,
262 gboolean _gdk_quartz_display_set_selection_owner (GdkDisplay *display,
266 gboolean send_event);
267 GdkWindow * _gdk_quartz_display_get_selection_owner (GdkDisplay *display,
269 void _gdk_quartz_display_send_selection_notify (GdkDisplay *display,
270 GdkNativeWindow requestor,
275 gint _gdk_quartz_display_get_selection_property (GdkDisplay *display,
276 GdkWindow *requestor,
280 void _gdk_quartz_display_convert_selection (GdkDisplay *display,
281 GdkWindow *requestor,
285 gint _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay *display,
291 gchar * _gdk_quartz_display_utf8_to_string_target (GdkDisplay *displayt,
295 #endif /* __GDK_PRIVATE_QUARTZ_H__ */