]> Pileus Git - ~andy/gtk/blob - gdk/quartz/gdkprivate-quartz.h
quartz: Remove unused _gdk_quartz_colormap_get_cgcolor_from_pixel()
[~andy/gtk] / gdk / quartz / gdkprivate-quartz.h
1 /* gdkwindow-quartz.c
2  *
3  * Copyright (C) 2005-2007 Imendio AB
4  *
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.
9  *
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.
14  *
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.
19  */
20
21 #ifndef __GDK_PRIVATE_QUARTZ_H__
22 #define __GDK_PRIVATE_QUARTZ_H__
23
24 #define GDK_QUARTZ_ALLOC_POOL NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]
25 #define GDK_QUARTZ_RELEASE_POOL [pool release]
26
27 #include <gdk/gdkprivate.h>
28 #include <gdk/quartz/gdkwindow-quartz.h>
29 #include <gdk/quartz/gdkquartz.h>
30
31 #include <gdk/gdk.h>
32
33 #include "gdkinternals.h"
34
35 #include "config.h"
36
37 #define GDK_DRAG_CONTEXT_PRIVATE(context) ((GdkDragContextPrivate *) GDK_DRAG_CONTEXT (context)->windowing_data)
38
39 typedef struct _GdkCursorPrivate GdkCursorPrivate;
40 typedef struct _GdkDragContextPrivate GdkDragContextPrivate;
41
42 struct _GdkVisualClass
43 {
44   GObjectClass parent_class;
45 };
46
47 struct _GdkCursorPrivate
48 {
49   GdkCursor cursor;
50   NSCursor *nscursor;
51 };
52
53 struct _GdkDragContextPrivate
54 {
55   id <NSDraggingInfo> dragging_info;
56   GdkDevice *device;
57 };
58
59 extern GdkDisplay *_gdk_display;
60 extern GdkScreen *_gdk_screen;
61 extern GdkWindow *_gdk_root;
62
63 extern GdkDragContext *_gdk_quartz_drag_source_context;
64
65 #define GDK_WINDOW_IS_QUARTZ(win)        (GDK_IS_WINDOW_IMPL_QUARTZ (((GdkWindowObject *)win)->impl))
66
67 /* Initialization */
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);
74
75 /* GC */
76 typedef enum {
77   GDK_QUARTZ_CONTEXT_STROKE = 1 << 0,
78   GDK_QUARTZ_CONTEXT_FILL   = 1 << 1,
79   GDK_QUARTZ_CONTEXT_TEXT   = 1 << 2
80 } GdkQuartzContextValuesMask;
81
82 /* Window */
83 gboolean    _gdk_quartz_window_is_ancestor          (GdkWindow *ancestor,
84                                                      GdkWindow *window);
85 void       _gdk_quartz_window_gdk_xy_to_xy          (gint       gdk_x,
86                                                      gint       gdk_y,
87                                                      gint      *ns_x,
88                                                      gint      *ns_y);
89 void       _gdk_quartz_window_xy_to_gdk_xy          (gint       ns_x,
90                                                      gint       ns_y,
91                                                      gint      *gdk_x,
92                                                      gint      *gdk_y);
93 void       _gdk_quartz_window_nspoint_to_gdk_xy     (NSPoint    point,
94                                                      gint      *x,
95                                                      gint      *y);
96 GdkWindow *_gdk_quartz_window_find_child            (GdkWindow *window,
97                                                      gint       x,
98                                                      gint       y,
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,
105                                                      gint       number);
106
107 void       _gdk_quartz_window_set_needs_display_in_region (GdkWindow    *window,
108                                                            cairo_region_t    *region);
109
110 void       _gdk_quartz_window_update_position           (GdkWindow    *window);
111
112 /* Events */
113 typedef enum {
114   GDK_QUARTZ_EVENT_SUBTYPE_EVENTLOOP
115 } GdkQuartzEventSubType;
116
117 void         _gdk_quartz_events_update_focus_window    (GdkWindow *new_window,
118                                                         gboolean   got_focus);
119 void         _gdk_quartz_events_send_map_event         (GdkWindow *window);
120 GdkEventMask _gdk_quartz_events_get_current_event_mask (void);
121
122 void         _gdk_quartz_events_send_enter_notify_event (GdkWindow *window);
123
124 /* Event loop */
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);
128
129 /* Keys */
130 GdkEventType _gdk_quartz_keys_event_type  (NSEvent   *event);
131 gboolean     _gdk_quartz_keys_is_modifier (guint      keycode);
132
133 /* Drawable */
134 void        _gdk_quartz_drawable_finish (GdkDrawable *drawable);
135 void        _gdk_quartz_drawable_flush  (GdkDrawable *drawable);
136
137 /* Geometry */
138 void        _gdk_quartz_window_scroll      (GdkWindow       *window,
139                                             gint             dx,
140                                             gint             dy);
141 void        _gdk_quartz_window_translate   (GdkWindow       *window,
142                                             cairo_region_t  *area,
143                                             gint             dx,
144                                             gint             dy);
145 gboolean    _gdk_quartz_window_queue_antiexpose  (GdkWindow *window,
146                                                   cairo_region_t *area);
147
148 #endif /* __GDK_PRIVATE_QUARTZ_H__ */