diff --git a/docs/reference/gdk/gdk-decl.txt b/docs/reference/gdk/gdk-decl.txt
index 4108b0b2ca..0d40604f54 100644
--- a/docs/reference/gdk/gdk-decl.txt
+++ b/docs/reference/gdk/gdk-decl.txt
@@ -265,6 +265,11 @@ GdkNativeWindow anid
gpointer
XID xid
+
+gdk_x11_get_server_time
+guint32
+GdkWindow *window
+
gdk_window_lookup
#define gdk_window_lookup(xid) ((GdkWindow*) gdk_xid_table_lookup (xid))
@@ -2606,39 +2611,6 @@ void
void
PangoContext *context,GdkColormap *colormap
-
-GdkPixbufAlphaMode
-typedef enum
-{
- GDK_PIXBUF_ALPHA_BILEVEL,
- GDK_PIXBUF_ALPHA_FULL
-} GdkPixbufAlphaMode;
-
-
-gdk_pixbuf_render_threshold_alpha
-void
-GdkPixbuf *pixbuf,GdkBitmap *bitmap,int src_x,int src_y,int dest_x,int dest_y,int width,int height,int alpha_threshold
-
-
-gdk_pixbuf_render_to_drawable
-void
-GdkPixbuf *pixbuf,GdkDrawable *drawable,GdkGC *gc,int src_x,int src_y,int dest_x,int dest_y,int width,int height,GdkRgbDither dither,int x_dither,int y_dither
-
-
-gdk_pixbuf_render_to_drawable_alpha
-void
-GdkPixbuf *pixbuf,GdkDrawable *drawable,int src_x,int src_y,int dest_x,int dest_y,int width,int height,GdkPixbufAlphaMode alpha_mode,int alpha_threshold,GdkRgbDither dither,int x_dither,int y_dither
-
-
-gdk_pixbuf_render_pixmap_and_mask
-void
-GdkPixbuf *pixbuf,GdkPixmap **pixmap_return,GdkBitmap **mask_return,int alpha_threshold
-
-
-gdk_pixbuf_get_from_drawable
-GdkPixbuf *
-GdkPixbuf *dest,GdkDrawable *src,GdkColormap *cmap,int src_x,int src_y,int dest_x,int dest_y,int width,int height
-
GdkPixmapObject
@@ -2764,6 +2736,21 @@ GdkWindow *window,GdkAtom property
GdkAtom encoding,gint format,const guchar *text,gint length,gchar ***list
+gdk_text_property_to_utf8_list
+gint
+GdkAtom encoding,gint format,const guchar *text,gint length,gchar ***list
+
+
+gdk_utf8_to_string_target
+gchar *
+const gchar *str
+
+
+gdk_utf8_to_compound_text
+gboolean
+const gchar *str,GdkAtom *encoding,gint *format,guchar **ctext,gint *length
+
+
gdk_free_text_list
void
gchar **list
@@ -3859,3 +3846,36 @@ GdkWindow *window,gboolean update_children
GDK_HAVE_WCTYPE_H
#define GDK_HAVE_WCTYPE_H 1
+
+GdkPixbufAlphaMode
+typedef enum
+{
+ GDK_PIXBUF_ALPHA_BILEVEL,
+ GDK_PIXBUF_ALPHA_FULL
+} GdkPixbufAlphaMode;
+
+
+gdk_pixbuf_render_threshold_alpha
+void
+GdkPixbuf *pixbuf,GdkBitmap *bitmap,int src_x,int src_y,int dest_x,int dest_y,int width,int height,int alpha_threshold
+
+
+gdk_pixbuf_render_to_drawable
+void
+GdkPixbuf *pixbuf,GdkDrawable *drawable,GdkGC *gc,int src_x,int src_y,int dest_x,int dest_y,int width,int height,GdkRgbDither dither,int x_dither,int y_dither
+
+
+gdk_pixbuf_render_to_drawable_alpha
+void
+GdkPixbuf *pixbuf,GdkDrawable *drawable,int src_x,int src_y,int dest_x,int dest_y,int width,int height,GdkPixbufAlphaMode alpha_mode,int alpha_threshold,GdkRgbDither dither,int x_dither,int y_dither
+
+
+gdk_pixbuf_render_pixmap_and_mask
+void
+GdkPixbuf *pixbuf,GdkPixmap **pixmap_return,GdkBitmap **mask_return,int alpha_threshold
+
+
+gdk_pixbuf_get_from_drawable
+GdkPixbuf *
+GdkPixbuf *dest,GdkDrawable *src,GdkColormap *cmap,int src_x,int src_y,int dest_x,int dest_y,int width,int height
+
diff --git a/docs/reference/gdk/gdk-sections.txt b/docs/reference/gdk/gdk-sections.txt
index 44193f11b2..7bb239bcb2 100644
--- a/docs/reference/gdk/gdk-sections.txt
+++ b/docs/reference/gdk/gdk-sections.txt
@@ -504,8 +504,11 @@ GdkAtom
GDK_NONE
gdk_text_property_to_text_list
gdk_free_text_list
+gdk_text_property_to_utf8_list
gdk_string_to_compound_text
gdk_free_compound_text
+gdk_utf8_to_string_target
+gdk_utf8_to_compound_text
gdk_atom_intern
gdk_atom_name
gdk_property_get
@@ -840,6 +843,7 @@ gdk_xid_table_lookup
gdk_window_lookup
gdk_pixmap_lookup
gdk_font_lookup
+gdk_x11_get_server_time
GDK_TYPE_GC_X11
diff --git a/docs/reference/gdk/tmpl/properties.sgml b/docs/reference/gdk/tmpl/properties.sgml
index d792214a1c..caee1ac68c 100644
--- a/docs/reference/gdk/tmpl/properties.sgml
+++ b/docs/reference/gdk/tmpl/properties.sgml
@@ -88,6 +88,19 @@ gdk_text_property_to_text_list().
a call to gdk_text_property_to_text_list().
+
+
+
+
+
+@encoding:
+@format:
+@text:
+@length:
+@list:
+@Returns:
+
+
Convert a string from the encoding of the current locale
@@ -110,6 +123,28 @@ Free the data returned from gdk_string_to_compound_text().
@ctext: The pointer stored in @ctext from a call to gdk_string_to_compound_text().
+
+
+
+
+
+@str:
+@Returns:
+
+
+
+
+
+
+
+@str:
+@encoding:
+@format:
+@ctext:
+@length:
+@Returns:
+
+
Find or create an atom corresponding to a given string.
diff --git a/docs/reference/gdk/tmpl/x_interaction.sgml b/docs/reference/gdk/tmpl/x_interaction.sgml
index 5de1e7e077..740f3911cd 100644
--- a/docs/reference/gdk/tmpl/x_interaction.sgml
+++ b/docs/reference/gdk/tmpl/x_interaction.sgml
@@ -295,3 +295,12 @@ X Window System Interaction
@xid:
+
+
+
+
+
+@window:
+@Returns:
+
+
diff --git a/docs/reference/gtk/tmpl/gtkclipboard.sgml b/docs/reference/gtk/tmpl/gtkclipboard.sgml
new file mode 100644
index 0000000000..2b46d0c677
--- /dev/null
+++ b/docs/reference/gtk/tmpl/gtkclipboard.sgml
@@ -0,0 +1,260 @@
+
+Clipboards
+
+
+Storing data on Clipboards.
+
+
+
+ The #GtkClipboard object represents a clipboard of data shared
+ between different processes or between different widgets in
+ the same process. Each clipboard is identified by a name encoded as a
+ #GdkAtom. (Conversion to and from strings can be done with
+ gdk_atom_intern() and gdk_atom_name().) The default clipboard
+ corresponds to the CLIPBOARD atom; another commonly used clipboard
+ is the PRIMARY clipboard, which, in X, traditionally contains
+ the currently selected text.
+
+
+ To support having a number of different formats on the clipboard
+ at the same time, the clipboard mechanism allows providing
+ callbacks instead of the actual data. When you set the contents
+ of the clipboard, you can either supply the data directly (via
+ functions like gtk_clipboard_set_text()), or you can supply a
+ callback to be called at a later time when the data is needed (via
+ gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().)
+ Providing a callback also avoids having to make copies of the data
+ when it is not needed.
+
+
+ gtk_clipboard_set_with_data() and gtk_clipboard_set_with_owner()
+ are quite similar; the choice between the two depends mostly on
+ which is more convenient in a particular situation.
+ The former is most useful when you want to have a blob of data
+ with callbacks to convert it into the various data types that you
+ advertise. When the @clear_func you provided is called, you
+ simply free the data blob. The latter is more useful when the
+ contents of clipboard reflect the internal state of a @GObject
+ (As an example, for the PRIMARY clipboard, when an entry widget
+ provides the clipboard's contents the contents are simply the
+ text within the selected region.) If the contents change, the
+ entry widget can call gtk_clipboard_set_with_owner() to update
+ the timestamp for clipboard ownership, without having to worry
+ about @clear_func being called.
+
+
+ Requesting the data from the clipboard is essentially
+ asynchronous. If the contents of the clipboard are provided within
+ the same process, then a direct function call will be made to
+ retrieve the data, but if they are provided by another process,
+ then the data needs to be retrieved from the other process, which
+ may take some time. To avoid blocking the user interface, the call
+ to request the selection, gtk_clipboard_request_contents() takes a
+ callback that will be called when the contents are received (or
+ when the request fails.) If you don't want to deal with providing
+ a separate callback, you can also use gtk_clipboard_wait_for_contents().
+ What this does is run the Glib main loop recursively waiting for
+ the contents. This can simplify the code flow, but you still have
+ to be aware that other callbacks in your program can be called
+ while this recursive mainloop is running.
+
+
+ Along with the functions to get the clipboard contents as an
+ arbitrary data chunk, there are also functions to retrieve
+ it as text, gtk_clipboard_request_text() and
+ gtk_clipboard_wait_for_text(). These functions take care of
+ determining which formats are advertised by the clipboard
+ provider, asking for the clipboard in the best available format
+ and converting the results into the UTF-8 encoding. (The standard
+ form for representing strings in GTK+.)
+
+
+
+
+
+
+
+#GtkSelection
+@GtkClipboard provides a high-level wrapper around the
+ lower level routines that deal with X selections. It is
+ also possibly to directly manipulate the X selections,
+ though it is seldom necessary to do so.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@selection:
+@Returns:
+
+
+
+
+
+
+
+@clipboard:
+@targets:
+@n_targets:
+@get_func:
+@clear_func:
+@user_data:
+@Returns:
+
+
+
+
+
+
+
+@clipboard:
+@targets:
+@n_targets:
+@get_func:
+@clear_func:
+@owner:
+@Returns:
+
+
+
+
+A function that will be called to provide the contents of the selection.
+If multiple types of data were advertised, the requested type can
+be determined from the @info parameter or by checking the target field
+of @selection_data. If the data could succesfully be converted into
+then it should be stored into the @selection_data object by
+calling gtk_selection_data_set() (or related functions such
+as gtk_seletion_data_get().) If no data is set, the requestor
+will be informed that the attempt to get the data failed.
+
+
+@clipboard: the #GtkClipboard
+@selection_data: a #GtkSelectionData argument in which the requested
+ data should be stored.
+@info: the info field corresponding to the requested
+ target from the #GtkTargetEntry array passed to
+ gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().
+@user_data_or_owner: the @user_data argument passed to gtk_clipboard_set_with_data(), or
+ the @owner argument passed to gtk_clipboard_set_owner()
+
+
+
+A function that will be called when the contents of the clipboard are changed
+or cleared. Once this has called, the @user_data_or_owner argument
+will not be used again.
+
+
+@clipboard: the #GtkClipboard
+@user_data_or_owner: the @user_data argument passed to gtk_clipboard_set_with_data(), or
+ the @owner argument passed to gtk_clipboard_set_owner()
+
+
+
+
+
+
+
+@clipboard:
+@Returns:
+
+
+
+
+
+
+
+@clipboard:
+
+
+
+
+
+
+
+@clipboard:
+@text:
+@len:
+
+
+
+
+
+
+
+@clipboard:
+@target:
+@callback:
+@user_data:
+
+
+
+
+ A function to be called when the results of gtk_clipboard_request_text()
+ are received, or when the request fails.
+
+
+@clipboard: the #GtkClipboard
+@selection_data: a #GtkSelectionData containing the data was received.
+ If retrieving the data failed, then then length field
+ of @selection_data will be negative.
+@data: the @user_data supplied to gtk_clipboard_request_contents().
+
+
+
+
+
+
+
+@clipboard:
+@callback:
+@user_data:
+
+
+
+
+ A function to be called when the results of gtk_clipboard_request_text()
+ are received, or when the request fails.
+
+
+@clipboard: the #GtkClipboard
+@text: the text received, as a UTF-8 encoded string, or %NULL
+ if retrieving the data failed.
+@data: the @user_data supplied to gtk_clipboard_request_text().
+
+
+
+
+
+
+
+@clipboard:
+@target:
+@Returns:
+
+
+
+
+
+
+
+@clipboard:
+@Returns:
+
+
+
diff --git a/docs/reference/gtk/tmpl/gtkselection.sgml b/docs/reference/gtk/tmpl/gtkselection.sgml
index a819f84cab..eaeb6e1987 100644
--- a/docs/reference/gtk/tmpl/gtkselection.sgml
+++ b/docs/reference/gtk/tmpl/gtkselection.sgml
@@ -7,12 +7,37 @@ Functions for handling inter-process communication via selections.
-See the documentation for #GtkWidget for descriptions
-of the "selection_get" and "selection_received" signals.
+The selection mechanism provides the basis for different types
+of IPC between processes. In particular, drag and drop and
+#GtkClipboard work via selections. You will very seldom or
+never need to use most of the functions in this section directly;
+#GtkClipboard provides a nicer interface to the same functionality.
+
+
+Some of the datatypes defined this section are used in
+the #GtkClipboard and drag-and-drop API's as well. The
+#GtkTargetEntry structure and #GtkTargetList objects represent
+lists of data types that are supported when sending or
+receiving data. The #GtkSelectionData object is used to
+store a chunk of data along with the data type and other
+associated information.
+
+
+
+#GtkWidget
+Much of the operation of selections happens via
+ signals for #GtkWidget. In particular, if you are
+ using the functions in this section, you may need
+ to pay attention to ::selection_get,
+ ::selection_received, and :selection_clear_event
+ signals.
+
+
+
@@ -159,6 +184,15 @@ for a given widget and selection.
@ntargets: number of entries in @targets
+
+
+
+
+
+@widget:
+@selection:
+
+
Request the contents of a selection. When received,
@@ -175,6 +209,29 @@ a "selection_received" signal will be generated.
this widget).
+
+
+Removes all handlers and unsets ownership of all
+selections for a widget. Called when widget is being
+destroyed. This function will not generally be
+called by applications.
+
+
+@widget: a #GtkWidget
+
+
+
+
+
+
+
+@selection:
+@target:
+@type:
+@format:
+@data:
+@length:
+
Store new data into a GtkSelectionData object. Should
@@ -189,15 +246,23 @@ Null terminates the stored data.
@length: length of the data
-
+
-Removes all handlers and unsets ownership of all
-selections for a widget. Called when widget is being
-destroyed. This function will not generally be
-called by applications.
+
-@widget: a #GtkWidget
+@selection_data:
+@str:
+@Returns:
+
+
+
+
+
+
+
+@selection_data:
+@Returns: