1 /* gdkselection-quartz.c
3 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * Copyright (C) 1998-2002 Tor Lillqvist
5 * Copyright (C) 2005 Imendio AB
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
25 #include "gdkselection.h"
26 #include "gdkproperty.h"
29 _gdk_quartz_display_set_selection_owner (GdkDisplay *display,
35 /* FIXME: Implement */
40 _gdk_quartz_display_get_selection_owner (GdkDisplay *display,
43 /* FIXME: Implement */
48 _gdk_quartz_display_convert_selection (GdkDisplay *display,
54 /* FIXME: Implement */
58 _gdk_quartz_display_get_selection_property (GdkDisplay *display,
64 /* FIXME: Implement */
69 _gdk_quartz_display_utf8_to_string_target (GdkDisplay *display,
72 /* FIXME: Implement */
77 make_list (const gchar *text,
82 GSList *strings = NULL;
85 const gchar *p = text;
90 while (p < text + length)
95 while (*q && q < text + length)
100 str = g_convert (p, q - p,
101 "UTF-8", "ISO-8859-1",
106 g_warning ("Error converting selection from STRING: %s",
108 g_error_free (error);
112 str = g_strndup (p, q - p);
116 strings = g_slist_prepend (strings, str);
124 *list = g_new (gchar *, n_strings + 1);
126 (*list)[n_strings] = NULL;
133 (*list)[--i] = tmp_list->data;
135 g_free (tmp_list->data);
137 tmp_list = tmp_list->next;
140 g_slist_free (strings);
146 _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay *display,
153 g_return_val_if_fail (text != NULL, 0);
154 g_return_val_if_fail (length >= 0, 0);
156 if (encoding == GDK_TARGET_STRING)
158 return make_list ((gchar *)text, length, TRUE, list);
160 else if (encoding == gdk_atom_intern_static_string ("UTF8_STRING"))
162 return make_list ((gchar *)text, length, FALSE, list);
166 gchar *enc_name = gdk_atom_name (encoding);
168 g_warning ("gdk_text_property_to_utf8_list_for_display: encoding %s not handled\n", enc_name);