]> Pileus Git - ~andy/gtk/blob - gdk/quartz/gdkdisplay-quartz.c
3f9a01f254fbac106f48e77ec7af06d52835bfcf
[~andy/gtk] / gdk / quartz / gdkdisplay-quartz.c
1 /* gdkdisplay-quartz.c
2  *
3  * Copyright (C) 2005 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 #include <config.h>
22
23 #include "gdk.h"
24 #include "gdkprivate-quartz.h"
25
26 GdkWindow *
27 gdk_display_get_default_group (GdkDisplay *display)
28 {
29   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
30
31   /* FIXME: Implement */
32
33   return NULL;
34 }
35
36 void
37 _gdk_windowing_set_default_display (GdkDisplay *display)
38 {
39   g_assert (_gdk_display == display);
40 }
41
42 GdkDisplay *
43 gdk_display_open (const gchar *display_name)
44 {
45   if (_gdk_display != NULL)
46     return NULL;
47
48   /* Initialize application */
49   [NSApplication sharedApplication];
50
51   _gdk_display = g_object_new (GDK_TYPE_DISPLAY, NULL);
52   _gdk_screen = g_object_new (GDK_TYPE_SCREEN, NULL);
53
54   NSScreen *nsscreen;
55   nsscreen = [[NSScreen screens] objectAtIndex:0];
56   gdk_screen_set_resolution (_gdk_screen, 72.0 * [nsscreen userSpaceScaleFactor]);
57
58   _gdk_visual_init ();
59   gdk_screen_set_default_colormap (_gdk_screen,
60                                    gdk_screen_get_system_colormap (_gdk_screen));
61   _gdk_windowing_window_init ();
62
63   _gdk_events_init ();
64   _gdk_input_init ();
65
66 #if 0
67   /* FIXME: Remove the #if 0 when we have these functions */
68   _gdk_dnd_init ();
69 #endif
70
71   g_signal_emit_by_name (gdk_display_manager_get (),
72                          "display_opened", _gdk_display);
73
74   return _gdk_display;
75 }
76
77 G_CONST_RETURN gchar *
78 gdk_display_get_name (GdkDisplay *display)
79 {
80   static gchar *display_name = NULL;
81
82   if (!display_name)
83     {
84       GDK_QUARTZ_ALLOC_POOL;
85       display_name = g_strdup ([[[NSHost currentHost] name] UTF8String]);
86       GDK_QUARTZ_RELEASE_POOL;
87     }
88
89   return display_name;
90 }
91
92 int
93 gdk_display_get_n_screens (GdkDisplay *display)
94 {
95   g_return_val_if_fail (GDK_IS_DISPLAY (display), 0);
96
97   return 1;
98 }
99
100 GdkScreen *
101 gdk_display_get_screen (GdkDisplay *display,
102                         gint        screen_num)
103 {
104   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
105   g_return_val_if_fail (screen_num == 0, NULL);
106
107   return _gdk_screen;
108 }
109
110 GdkScreen *
111 gdk_display_get_default_screen (GdkDisplay *display)
112 {
113   return _gdk_screen;
114 }
115
116 void
117 gdk_display_beep (GdkDisplay *display)
118 {
119   g_return_if_fail (GDK_IS_DISPLAY (display));
120
121   NSBeep();
122 }
123
124 gboolean 
125 gdk_display_supports_selection_notification (GdkDisplay *display)
126 {
127   g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
128
129   /* FIXME: Implement */
130   return FALSE;
131 }
132
133 gboolean 
134 gdk_display_request_selection_notification (GdkDisplay *display,
135                                             GdkAtom     selection)
136
137 {
138   /* FIXME: Implement */
139   return FALSE;
140 }
141
142 gboolean
143 gdk_display_supports_clipboard_persistence (GdkDisplay *display)
144 {
145   /* FIXME: Implement */
146   return FALSE;
147 }
148
149 gboolean 
150 gdk_display_supports_shapes (GdkDisplay *display)
151 {
152   /* FIXME: Implement */
153   return FALSE;
154 }
155
156 gboolean 
157 gdk_display_supports_input_shapes (GdkDisplay *display)
158 {
159   /* FIXME: Implement */
160   return FALSE;
161 }
162
163 void
164 gdk_display_store_clipboard (GdkDisplay *display,
165                              GdkWindow  *clipboard_window,
166                              guint32     time_,
167                              GdkAtom    *targets,
168                              gint        n_targets)
169 {
170   /* FIXME: Implement */
171 }
172
173
174 gboolean
175 gdk_display_supports_composite (GdkDisplay *display)
176 {
177   /* FIXME: Implement */
178   return FALSE;
179 }