2008-07-01 22:57:50 +00:00
|
|
|
/* GTK - The GIMP Toolkit
|
1997-11-24 22:37:52 +00:00
|
|
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
2000-07-26 11:33:08 +00:00
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
1997-11-24 22:37:52 +00:00
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
2000-07-26 11:33:08 +00:00
|
|
|
* Lesser General Public License for more details.
|
1997-11-24 22:37:52 +00:00
|
|
|
*
|
2000-07-26 11:33:08 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
2012-02-27 13:01:10 +00:00
|
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
1997-11-24 22:37:52 +00:00
|
|
|
*/
|
1999-02-24 07:37:18 +00:00
|
|
|
|
|
|
|
/*
|
2000-07-26 11:33:08 +00:00
|
|
|
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
|
1999-02-24 07:37:18 +00:00
|
|
|
* file for a list of people on the GTK+ Team. See the ChangeLog
|
|
|
|
* files for a list of changes. These files are distributed with
|
2008-05-28 15:35:43 +00:00
|
|
|
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
1999-02-24 07:37:18 +00:00
|
|
|
*/
|
|
|
|
|
2012-12-28 14:57:34 +00:00
|
|
|
#ifndef __GTK_SELECTION_H__
|
|
|
|
#define __GTK_SELECTION_H__
|
|
|
|
|
2009-10-21 18:30:04 +00:00
|
|
|
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
|
2008-05-28 15:07:04 +00:00
|
|
|
#error "Only <gtk/gtk.h> can be included directly."
|
|
|
|
#endif
|
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
#include <gtk/gtkwidget.h>
|
2006-03-07 13:46:11 +00:00
|
|
|
#include <gtk/gtktextiter.h>
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2005-03-20 07:01:23 +00:00
|
|
|
G_BEGIN_DECLS
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2002-03-02 19:11:47 +00:00
|
|
|
#define GTK_TYPE_SELECTION_DATA (gtk_selection_data_get_type ())
|
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-11-20 02:54:42 +00:00
|
|
|
GdkContentFormats * gtk_content_formats_add_text_targets (GdkContentFormats *list) G_GNUC_WARN_UNUSED_RESULT;
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-11-20 02:54:42 +00:00
|
|
|
GdkContentFormats * gtk_content_formats_add_image_targets (GdkContentFormats *list,
|
|
|
|
gboolean writable) G_GNUC_WARN_UNUSED_RESULT;
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-11-20 02:54:42 +00:00
|
|
|
GdkContentFormats * gtk_content_formats_add_uri_targets (GdkContentFormats *list) G_GNUC_WARN_UNUSED_RESULT;
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
GdkAtom gtk_selection_data_get_target (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
GdkAtom gtk_selection_data_get_data_type (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
gint gtk_selection_data_get_format (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
const guchar *gtk_selection_data_get_data (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
gint gtk_selection_data_get_length (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-03 17:11:41 +00:00
|
|
|
const guchar *gtk_selection_data_get_data_with_length
|
|
|
|
(const GtkSelectionData *selection_data,
|
|
|
|
gint *length);
|
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
GdkDisplay *gtk_selection_data_get_display (const GtkSelectionData *selection_data);
|
2008-06-28 17:02:20 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
Remove g_convert (moved to glib) and now useless utf_to_latin1()
Thu Sep 14 12:21:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktexttypes.[ch]: Remove g_convert (moved to
glib) and now useless utf_to_latin1() latin1_to_utf()
* gtk/gtktextview.[ch]: Change ::move_insert and
::delete_text action signals to ::move and ::delete;
create the signals with the right enumeration type,
not GTK_TYPE_ENUM so that bindings work. Add C-d, M-d,
C-v bindings, change Home, End to move to beginning/end
of line, Add C-Home C-End to move to beginning/end
of buffer. Change ::cut_text to ::cut_clipboard, etc;
combine ::scroll_text into ::move; use new GtkSelectionData
functions to simplify DND text handling.
* gtk/gtkenums.h gtk/gtktextview.h: Move movement,
deletion enumerations here, rename enumeration values to
be consistently plural.
* gtk/gtktextbuffer.c: Use new clipboard interfaces
for cut/copy/paste and primary selection.
* gtk/gtktextbuffer.[ch]: Remove excess time and
'interactive' arguments from cut/copy/paste;
rename cut to cut_clipboard, etc; remove
gtk_text_buffer_get_clipboard_contents().
* gtk/gtktextlayout.[ch]: Add
gtk_text_layout_move_iter_to_line_end() to move the iter to
line ends.
* gtk/gtkselection.[ch] (gtk_selection_data_set/get_text):
Functions to set or get a UTF-8 string on the selection
data.
* gtk/gtkclipboard.[ch]: New, simplified selection handling
interfaces.
* gtk/gtkinvisible.c (gtk_invisible_new): Realize newly
created widgets - one of these is useless if we don't.
* gtk/gtkselection.[ch] (gtk_selection_clear_targets): Export
a public function clear all targets registered for the
widget.
* gtk/gtkselection.c (gtk_selection_owner_set) docs/Changes-2.0.txt:
Never call gtk_widget_realize() - that was just asking
for bizarre side-effects.
* gtk/gtkselection.c (gtk_selection_owner_set): Call
gdk_selection_owner_set even if the widget is the
same so that we reliably update the timestamp on
the server.
* gdk/x11/gdkevents-x11.c gdk/x11/gdkx.h: Add a
gdk_x11_get_server_time() function.
* gdk/x11/gdkevents-x11.c gdk/x11/gdkprivate-x11.h
gdk/x11/gdkselection-x11.c gdk/x11/gdkwindow-x11.h:
Add some tricky filtering on serial numbers for
selection clear events to fix up long-standard
race condition FIXME's in gtkselection.c.
* gdk/gdkproperty.h gdk/x11/gdkselection-x11.h: Add
routines to convert from utf8 to compound text or
STRING and from a text property to UTF-8.
* gtk/gtkmain.[ch] (gtk_get_current_event_time): Add
a convenience function gdk_get_current_event_time().
* gtk/gtkselection.c (gtk_selection_data_copy/free): Copy
and free selection_data->data properly
2000-09-14 16:41:20 +00:00
|
|
|
void gtk_selection_data_set (GtkSelectionData *selection_data,
|
2011-01-15 00:20:56 +00:00
|
|
|
GdkAtom type,
|
|
|
|
gint format,
|
|
|
|
const guchar *data,
|
|
|
|
gint length);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
Remove g_convert (moved to glib) and now useless utf_to_latin1()
Thu Sep 14 12:21:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktexttypes.[ch]: Remove g_convert (moved to
glib) and now useless utf_to_latin1() latin1_to_utf()
* gtk/gtktextview.[ch]: Change ::move_insert and
::delete_text action signals to ::move and ::delete;
create the signals with the right enumeration type,
not GTK_TYPE_ENUM so that bindings work. Add C-d, M-d,
C-v bindings, change Home, End to move to beginning/end
of line, Add C-Home C-End to move to beginning/end
of buffer. Change ::cut_text to ::cut_clipboard, etc;
combine ::scroll_text into ::move; use new GtkSelectionData
functions to simplify DND text handling.
* gtk/gtkenums.h gtk/gtktextview.h: Move movement,
deletion enumerations here, rename enumeration values to
be consistently plural.
* gtk/gtktextbuffer.c: Use new clipboard interfaces
for cut/copy/paste and primary selection.
* gtk/gtktextbuffer.[ch]: Remove excess time and
'interactive' arguments from cut/copy/paste;
rename cut to cut_clipboard, etc; remove
gtk_text_buffer_get_clipboard_contents().
* gtk/gtktextlayout.[ch]: Add
gtk_text_layout_move_iter_to_line_end() to move the iter to
line ends.
* gtk/gtkselection.[ch] (gtk_selection_data_set/get_text):
Functions to set or get a UTF-8 string on the selection
data.
* gtk/gtkclipboard.[ch]: New, simplified selection handling
interfaces.
* gtk/gtkinvisible.c (gtk_invisible_new): Realize newly
created widgets - one of these is useless if we don't.
* gtk/gtkselection.[ch] (gtk_selection_clear_targets): Export
a public function clear all targets registered for the
widget.
* gtk/gtkselection.c (gtk_selection_owner_set) docs/Changes-2.0.txt:
Never call gtk_widget_realize() - that was just asking
for bizarre side-effects.
* gtk/gtkselection.c (gtk_selection_owner_set): Call
gdk_selection_owner_set even if the widget is the
same so that we reliably update the timestamp on
the server.
* gdk/x11/gdkevents-x11.c gdk/x11/gdkx.h: Add a
gdk_x11_get_server_time() function.
* gdk/x11/gdkevents-x11.c gdk/x11/gdkprivate-x11.h
gdk/x11/gdkselection-x11.c gdk/x11/gdkwindow-x11.h:
Add some tricky filtering on serial numbers for
selection clear events to fix up long-standard
race condition FIXME's in gtkselection.c.
* gdk/gdkproperty.h gdk/x11/gdkselection-x11.h: Add
routines to convert from utf8 to compound text or
STRING and from a text property to UTF-8.
* gtk/gtkmain.[ch] (gtk_get_current_event_time): Add
a convenience function gdk_get_current_event_time().
* gtk/gtkselection.c (gtk_selection_data_copy/free): Copy
and free selection_data->data properly
2000-09-14 16:41:20 +00:00
|
|
|
gboolean gtk_selection_data_set_text (GtkSelectionData *selection_data,
|
2011-01-15 00:20:56 +00:00
|
|
|
const gchar *str,
|
|
|
|
gint len);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
guchar * gtk_selection_data_get_text (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2004-10-31 05:40:25 +00:00
|
|
|
gboolean gtk_selection_data_set_pixbuf (GtkSelectionData *selection_data,
|
2011-01-15 00:20:56 +00:00
|
|
|
GdkPixbuf *pixbuf);
|
2018-02-05 19:13:20 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-10-23 03:22:28 +00:00
|
|
|
cairo_surface_t *gtk_selection_data_get_surface (GtkSelectionData *selection_data);
|
2018-02-05 19:13:20 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-10-22 20:19:31 +00:00
|
|
|
gboolean gtk_selection_data_set_surface (GtkSelectionData *selection_data,
|
|
|
|
cairo_surface_t *surface);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
GdkPixbuf *gtk_selection_data_get_pixbuf (const GtkSelectionData *selection_data);
|
2018-02-05 19:13:20 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-12-02 13:25:35 +00:00
|
|
|
gboolean gtk_selection_data_set_texture (GtkSelectionData *selection_data,
|
|
|
|
GdkTexture *texture);
|
2018-02-05 19:13:20 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-12-02 13:25:35 +00:00
|
|
|
GdkTexture *gtk_selection_data_get_texture (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2004-10-22 22:50:32 +00:00
|
|
|
gboolean gtk_selection_data_set_uris (GtkSelectionData *selection_data,
|
2011-01-15 00:20:56 +00:00
|
|
|
gchar **uris);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
gchar **gtk_selection_data_get_uris (const GtkSelectionData *selection_data);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
gboolean gtk_selection_data_get_targets (const GtkSelectionData *selection_data,
|
2011-01-15 00:20:56 +00:00
|
|
|
GdkAtom **targets,
|
|
|
|
gint *n_atoms);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
gboolean gtk_selection_data_targets_include_text (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
gboolean gtk_selection_data_targets_include_image (const GtkSelectionData *selection_data,
|
2011-01-15 00:20:56 +00:00
|
|
|
gboolean writable);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
gboolean gtk_selection_data_targets_include_uri (const GtkSelectionData *selection_data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2006-03-07 13:46:11 +00:00
|
|
|
gboolean gtk_targets_include_text (GdkAtom *targets,
|
2011-01-15 00:20:56 +00:00
|
|
|
gint n_targets);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2006-03-07 13:46:11 +00:00
|
|
|
gboolean gtk_targets_include_image (GdkAtom *targets,
|
2011-01-15 00:20:56 +00:00
|
|
|
gint n_targets,
|
|
|
|
gboolean writable);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2006-03-07 13:46:11 +00:00
|
|
|
gboolean gtk_targets_include_uri (GdkAtom *targets,
|
2011-01-15 00:20:56 +00:00
|
|
|
gint n_targets);
|
2001-10-22 20:47:01 +00:00
|
|
|
|
2002-03-02 19:11:47 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2004-11-23 20:02:15 +00:00
|
|
|
GType gtk_selection_data_get_type (void) G_GNUC_CONST;
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-12-17 14:41:59 +00:00
|
|
|
GtkSelectionData *gtk_selection_data_copy (const GtkSelectionData *data);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-15 00:20:56 +00:00
|
|
|
void gtk_selection_data_free (GtkSelectionData *data);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2005-03-20 07:01:23 +00:00
|
|
|
G_END_DECLS
|
1997-11-24 22:37:52 +00:00
|
|
|
|
|
|
|
#endif /* __GTK_SELECTION_H__ */
|