3 * Copyright (C) 2005 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.
24 #include "gdkdisplay-quartz.h"
25 #include "gdkprivate-quartz.h"
26 #include "gdkscreen-quartz.h"
27 #include "gdkdevicemanager-core.h"
31 gdk_quartz_display_get_default_group (GdkDisplay *display)
33 g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
35 /* FIXME: Implement */
41 _gdk_windowing_set_default_display (GdkDisplay *display)
43 g_assert (display == NULL || _gdk_display == display);
47 _gdk_device_manager_new (GdkDisplay *display)
49 return g_object_new (GDK_TYPE_DEVICE_MANAGER_CORE,
55 gdk_display_open (const gchar *display_name)
57 if (_gdk_display != NULL)
60 /* Initialize application */
61 [NSApplication sharedApplication];
63 _gdk_display = g_object_new (GDK_TYPE_DISPLAY, NULL);
64 _gdk_display->device_manager = _gdk_device_manager_new (_gdk_display);
68 _gdk_screen = _gdk_screen_quartz_new ();
70 _gdk_windowing_window_init ();
77 /* FIXME: Remove the #if 0 when we have these functions */
81 g_signal_emit_by_name (gdk_display_manager_get (),
82 "display_opened", _gdk_display);
88 gdk_quartz_display_get_name (GdkDisplay *display)
90 static gchar *display_name = NULL;
94 GDK_QUARTZ_ALLOC_POOL;
95 display_name = g_strdup ([[[NSHost currentHost] name] UTF8String]);
96 GDK_QUARTZ_RELEASE_POOL;
103 gdk_quartz_display_get_n_screens (GdkDisplay *display)
105 g_return_val_if_fail (GDK_IS_DISPLAY (display), 0);
111 gdk_quartz_display_get_screen (GdkDisplay *display,
114 g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
115 g_return_val_if_fail (screen_num == 0, NULL);
121 gdk_quartz_display_get_default_screen (GdkDisplay *display)
127 gdk_quartz_display_beep (GdkDisplay *display)
129 g_return_if_fail (GDK_IS_DISPLAY (display));
135 gdk_quartz_display_supports_selection_notification (GdkDisplay *display)
137 g_return_val_if_fail (GDK_IS_DISPLAY (display), FALSE);
139 /* FIXME: Implement */
144 gdk_quartz_display_request_selection_notification (GdkDisplay *display,
148 /* FIXME: Implement */
153 gdk_quartz_display_supports_clipboard_persistence (GdkDisplay *display)
155 /* FIXME: Implement */
160 gdk_quartz_display_supports_shapes (GdkDisplay *display)
162 /* FIXME: Implement */
167 gdk_quartz_display_supports_input_shapes (GdkDisplay *display)
169 /* FIXME: Implement */
174 gdk_quartz_display_store_clipboard (GdkDisplay *display,
175 GdkWindow *clipboard_window,
177 const GdkAtom *targets,
180 /* FIXME: Implement */
185 gdk_quartz_display_supports_composite (GdkDisplay *display)
187 /* FIXME: Implement */
192 _gdk_windowing_window_get_next_serial (GdkDisplay *display)
197 G_DEFINE_TYPE (GdkDisplayQuartz, _gdk_display_quartz, GDK_TYPE_DISPLAY)
200 _gdk_display_quartz_init (GdkDisplayQuartz *display)
205 _gdk_display_quartz_finalize (GObject *object)
207 G_OBJECT_CLASS (_gdk_display_quartz_parent_class)->finalize (object);
211 _gdk_display_quartz_class_init (GdkDisplayQuartz *class)
213 GObjectClass *object_class = G_OBJECT_CLASS (class);
214 GdkDisplayClass *display_class = GDK_DISPLAY_CLASS (class);
216 object_class->finalize = _gdk_display_quartz_finalize;
218 display_class->get_name = gdk_quartz_display_get_name;
219 display_class->get_n_screens = gdk_quartz_display_get_n_screens;
220 display_class->get_screen = gdk_quartz_display_get_screen;
221 display_class->get_default_screen = gdk_quartz_display_get_default_screen;
222 display_class->beep = gdk_quartz_display_beep;
223 display_class->sync = _gdk_quartz_display_sync;
224 display_class->flush = _gdk_quartz_display_flush;
225 display_class->get_default_group = gdk_quartz_display_get_default_group;
226 display_class->supports_selection_notification = gdk_quartz_display_supports_selection_notification;
227 display_class->request_selection_notification = gdk_quartz_display_request_selection_notification;
228 display_class->supports_clipboard_persistence = gdk_quartz_display_supports_clipboard_persistence;
229 display_class->store_clipboard = gdk_quartz_display_store_clipboard;
230 display_class->supports_shapes = gdk_quartz_display_supports_shapes;
231 display_class->supports_input_shapes = gdk_quartz_display_supports_input_shapes;
232 display_class->supports_composite = gdk_quartz_display_supports_composite;
233 display_class->list_devices = _gdk_quartz_display_list_devices;
234 display_class->send_client_message = _gdk_quartz_display_send_client_message;
235 display_class->add_client_message_filter = _gdk_quartz_display_add_client_message_filter;
236 display_class->get_drag_protocol = _gdk_quartz_display_get_drag_protocol;