Move GtkSelection docs inline

At the same time, move private selection API to gtkselectionprivate.h
This commit is contained in:
Matthias Clasen 2011-01-14 19:20:56 -05:00
parent 00a3685f41
commit abc8ac1a8b
8 changed files with 138 additions and 629 deletions

View File

@ -60,6 +60,7 @@ gtkscale.sgml
gtkscalebutton.sgml
gtkscrollbar.sgml
gtkscrolledwindow.sgml
gtkselection.sgml
gtkseparator.sgml
gtkseparatormenuitem.sgml
gtkseparatortoolitem.sgml

View File

@ -1,542 +0,0 @@
<!-- ##### SECTION Title ##### -->
Selections
<!-- ##### SECTION Short_Description ##### -->
Functions for handling inter-process communication via selections
<!-- ##### SECTION Long_Description ##### -->
<para>
The selection mechanism provides the basis for different types
of communication 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.
</para>
<para>
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.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<variablelist>
<varlistentry>
<term>#GtkWidget</term>
<listitem><para>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.</para></listitem>
</varlistentry>
</variablelist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT GtkTargetEntry ##### -->
<para>
A #GtkTargetEntry structure represents a single type of
data than can be supplied for by a widget for a selection
or for supplied or received during drag-and-drop. It
contains a string representing the drag type, a flags
field (used only for drag and drop - see #GtkTargetFlags),
and an application assigned integer ID. The integer
ID will later be passed as a signal parameter for signals
like "selection_get". It allows the application to identify
the target type without extensive string compares.
</para>
@target:
@flags:
@info:
<!-- ##### STRUCT GtkTargetList ##### -->
<para>
A #GtkTargetList structure is a reference counted list
of #GtkTargetPair. It is used to represent the same
information as a table of #GtkTargetEntry, but in
an efficient form. This structure should be treated as
opaque.
</para>
@list:
@ref_count:
<!-- ##### STRUCT GtkTargetPair ##### -->
<para>
Internally used structure in the drag-and-drop and
selection handling code.
</para>
@target:
@flags:
@info:
<!-- ##### FUNCTION gtk_target_entry_new ##### -->
<para>
</para>
@target:
@flags:
@info:
@Returns:
<!-- ##### FUNCTION gtk_target_entry_copy ##### -->
<para>
</para>
@data:
@Returns:
<!-- ##### FUNCTION gtk_target_entry_free ##### -->
<para>
</para>
@data:
<!-- ##### FUNCTION gtk_target_list_new ##### -->
<para>
</para>
@targets:
@ntargets:
@Returns:
<!-- ##### FUNCTION gtk_target_list_ref ##### -->
<para>
</para>
@list:
@Returns:
<!-- ##### FUNCTION gtk_target_list_unref ##### -->
<para>
</para>
@list:
<!-- ##### FUNCTION gtk_target_list_add ##### -->
<para>
</para>
@list:
@target:
@flags:
@info:
<!-- ##### FUNCTION gtk_target_list_add_table ##### -->
<para>
</para>
@list:
@targets:
@ntargets:
<!-- ##### FUNCTION gtk_target_list_add_text_targets ##### -->
<para>
</para>
@list:
@info:
<!-- ##### FUNCTION gtk_target_list_add_image_targets ##### -->
<para>
</para>
@list:
@info:
@writable:
<!-- ##### FUNCTION gtk_target_list_add_uri_targets ##### -->
<para>
</para>
@list:
@info:
<!-- ##### FUNCTION gtk_target_list_add_rich_text_targets ##### -->
<para>
</para>
@list:
@info:
@deserializable:
@buffer:
<!-- ##### FUNCTION gtk_target_list_remove ##### -->
<para>
</para>
@list:
@target:
<!-- ##### FUNCTION gtk_target_list_find ##### -->
<para>
</para>
@list:
@target:
@info:
@Returns:
<!-- ##### FUNCTION gtk_target_table_free ##### -->
<para>
</para>
@targets:
@n_targets:
<!-- ##### FUNCTION gtk_target_table_new_from_list ##### -->
<para>
</para>
@list:
@n_targets:
@Returns:
<!-- ##### FUNCTION gtk_selection_owner_set ##### -->
<para>
</para>
@widget:
@selection:
@time_:
@Returns:
<!-- ##### FUNCTION gtk_selection_owner_set_for_display ##### -->
<para>
</para>
@display:
@widget:
@selection:
@time_:
@Returns:
<!-- ##### FUNCTION gtk_selection_add_target ##### -->
<para>
</para>
@widget:
@selection:
@target:
@info:
<!-- ##### FUNCTION gtk_selection_add_targets ##### -->
<para>
</para>
@widget:
@selection:
@targets:
@ntargets:
<!-- ##### FUNCTION gtk_selection_clear_targets ##### -->
<para>
</para>
@widget:
@selection:
<!-- ##### FUNCTION gtk_selection_convert ##### -->
<para>
</para>
@widget:
@selection:
@target:
@time_:
@Returns: x
<!-- ##### FUNCTION gtk_selection_data_set ##### -->
<para>
</para>
@selection_data:
@type:
@format:
@data:
@length:
<!-- ##### FUNCTION gtk_selection_data_set_text ##### -->
<para>
</para>
@selection_data:
@str:
@len:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_text ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_set_pixbuf ##### -->
<para>
</para>
@selection_data:
@pixbuf:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_pixbuf ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_set_uris ##### -->
<para>
</para>
@selection_data:
@uris:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_uris ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_targets ##### -->
<para>
</para>
@selection_data:
@targets:
@n_atoms:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_targets_include_image ##### -->
<para>
</para>
@selection_data:
@writable:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_targets_include_text ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_targets_include_uri ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_targets_include_rich_text ##### -->
<para>
</para>
@selection_data:
@buffer:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_selection ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_data ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_length ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_data_type ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_display ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_format ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_get_target ##### -->
<para>
</para>
@selection_data:
@Returns:
<!-- ##### FUNCTION gtk_targets_include_image ##### -->
<para>
</para>
@targets:
@n_targets:
@writable:
@Returns:
<!-- ##### FUNCTION gtk_targets_include_text ##### -->
<para>
</para>
@targets:
@n_targets:
@Returns:
<!-- ##### FUNCTION gtk_targets_include_uri ##### -->
<para>
</para>
@targets:
@n_targets:
@Returns:
<!-- ##### FUNCTION gtk_targets_include_rich_text ##### -->
<para>
</para>
@targets:
@n_targets:
@buffer:
@Returns:
<!-- ##### FUNCTION gtk_selection_remove_all ##### -->
<para>
</para>
@widget:
<!-- ##### FUNCTION gtk_selection_data_copy ##### -->
<para>
</para>
@data:
@Returns:
<!-- ##### FUNCTION gtk_selection_data_free ##### -->
<para>
</para>
@data:

View File

@ -122,7 +122,7 @@
#include "gtkmodules.h"
#include "gtkrc.h"
#include "gtkrecentmanager.h"
#include "gtkselection.h"
#include "gtkselectionprivate.h"
#include "gtksettingsprivate.h"
#include "gtkwidgetprivate.h"
#include "gtkwindowprivate.h"

View File

@ -51,6 +51,32 @@
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
/**
* SECTION:gtkselection
* @Title: Selections
* @Short_description: Functions for handling inter-process communication
* via selections
* @See_also: #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
* #GtkWidget::selection-get, #GtkWidget::selection-received and
* #GtkWidget::selection-clear-event signals
*
* The selection mechanism provides the basis for different types
* of communication 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.
*/
#include "config.h"
#include "gtkselection.h"

View File

@ -31,19 +31,39 @@
#ifndef __GTK_SELECTION_H__
#define __GTK_SELECTION_H__
#include <gtk/gtkwidget.h>
#include <gtk/gtktextiter.h>
G_BEGIN_DECLS
typedef struct _GtkTargetList GtkTargetList;
typedef struct _GtkTargetEntry GtkTargetEntry;
/**
* GtkTargetList:
*
* A #GtkTargetList structure is a reference counted list
* of #GtkTargetPair. It is used to represent the same
* information as a table of #GtkTargetEntry, but in
* an efficient form. This structure should be treated as
* opaque.
*/
typedef struct _GtkTargetList GtkTargetList;
typedef struct _GtkTargetEntry GtkTargetEntry;
#define GTK_TYPE_SELECTION_DATA (gtk_selection_data_get_type ())
#define GTK_TYPE_TARGET_LIST (gtk_target_list_get_type ())
/**
* GtkTargetEntry:
* @target: a string representation of the target type
* @flags: #GtkTargetFlags for DND
* @info: an application-assigned integer ID which will
* get passed as a parater to e.g the #GtkWiget::selection-get
* signal. It allows the application to identify the target
* type without extensive string compares.
*
* A #GtkTargetEntry structure represents a single type of
* data than can be supplied for by a widget for a selection
* or for supplied or received during drag-and-drop.
*/
struct _GtkTargetEntry
{
gchar *target;
@ -51,32 +71,15 @@ struct _GtkTargetEntry
guint info;
};
/* These structures not public, and are here only for the convenience of
* gtkdnd.c
*/
typedef struct _GtkTargetPair GtkTargetPair;
/* This structure is a list of destinations, and associated guint id's */
struct _GtkTargetList {
GList *list;
guint ref_count;
};
struct _GtkTargetPair {
GdkAtom target;
guint flags;
guint info;
};
GType gtk_target_list_get_type (void) G_GNUC_CONST;
GtkTargetList *gtk_target_list_new (const GtkTargetEntry *targets,
guint ntargets);
guint ntargets);
GtkTargetList *gtk_target_list_ref (GtkTargetList *list);
void gtk_target_list_unref (GtkTargetList *list);
void gtk_target_list_add (GtkTargetList *list,
GdkAtom target,
guint flags,
guint info);
GdkAtom target,
guint flags,
guint info);
void gtk_target_list_add_text_targets (GtkTargetList *list,
guint info);
void gtk_target_list_add_rich_text_targets (GtkTargetList *list,
@ -89,43 +92,42 @@ void gtk_target_list_add_image_targets (GtkTargetList *list,
void gtk_target_list_add_uri_targets (GtkTargetList *list,
guint info);
void gtk_target_list_add_table (GtkTargetList *list,
const GtkTargetEntry *targets,
guint ntargets);
const GtkTargetEntry *targets,
guint ntargets);
void gtk_target_list_remove (GtkTargetList *list,
GdkAtom target);
GdkAtom target);
gboolean gtk_target_list_find (GtkTargetList *list,
GdkAtom target,
guint *info);
GdkAtom target,
guint *info);
GtkTargetEntry * gtk_target_table_new_from_list (GtkTargetList *list,
gint *n_targets);
void gtk_target_table_free (GtkTargetEntry *targets,
gint n_targets);
/* Public interface */
gboolean gtk_selection_owner_set (GtkWidget *widget,
GdkAtom selection,
guint32 time_);
GdkAtom selection,
guint32 time_);
gboolean gtk_selection_owner_set_for_display (GdkDisplay *display,
GtkWidget *widget,
GdkAtom selection,
guint32 time_);
GtkWidget *widget,
GdkAtom selection,
guint32 time_);
void gtk_selection_add_target (GtkWidget *widget,
GdkAtom selection,
GdkAtom target,
guint info);
GdkAtom selection,
GdkAtom target,
guint info);
void gtk_selection_add_targets (GtkWidget *widget,
GdkAtom selection,
const GtkTargetEntry *targets,
guint ntargets);
GdkAtom selection,
const GtkTargetEntry *targets,
guint ntargets);
void gtk_selection_clear_targets (GtkWidget *widget,
GdkAtom selection);
GdkAtom selection);
gboolean gtk_selection_convert (GtkWidget *widget,
GdkAtom selection,
GdkAtom target,
guint32 time_);
GdkAtom selection,
GdkAtom target,
guint32 time_);
void gtk_selection_remove_all (GtkWidget *widget);
GdkAtom gtk_selection_data_get_selection (const GtkSelectionData *selection_data);
GdkAtom gtk_selection_data_get_target (const GtkSelectionData *selection_data);
@ -140,68 +142,52 @@ const guchar *gtk_selection_data_get_data_with_length
GdkDisplay *gtk_selection_data_get_display (const GtkSelectionData *selection_data);
void gtk_selection_data_set (GtkSelectionData *selection_data,
GdkAtom type,
gint format,
const guchar *data,
gint length);
GdkAtom type,
gint format,
const guchar *data,
gint length);
gboolean gtk_selection_data_set_text (GtkSelectionData *selection_data,
const gchar *str,
gint len);
const gchar *str,
gint len);
guchar * gtk_selection_data_get_text (const GtkSelectionData *selection_data);
gboolean gtk_selection_data_set_pixbuf (GtkSelectionData *selection_data,
GdkPixbuf *pixbuf);
GdkPixbuf *pixbuf);
GdkPixbuf *gtk_selection_data_get_pixbuf (const GtkSelectionData *selection_data);
gboolean gtk_selection_data_set_uris (GtkSelectionData *selection_data,
gchar **uris);
gchar **uris);
gchar **gtk_selection_data_get_uris (const GtkSelectionData *selection_data);
gboolean gtk_selection_data_get_targets (const GtkSelectionData *selection_data,
GdkAtom **targets,
gint *n_atoms);
GdkAtom **targets,
gint *n_atoms);
gboolean gtk_selection_data_targets_include_text (const GtkSelectionData *selection_data);
gboolean gtk_selection_data_targets_include_rich_text (const GtkSelectionData *selection_data,
GtkTextBuffer *buffer);
gboolean gtk_selection_data_targets_include_image (const GtkSelectionData *selection_data,
gboolean writable);
gboolean writable);
gboolean gtk_selection_data_targets_include_uri (const GtkSelectionData *selection_data);
gboolean gtk_targets_include_text (GdkAtom *targets,
gint n_targets);
gint n_targets);
gboolean gtk_targets_include_rich_text (GdkAtom *targets,
gint n_targets,
gint n_targets,
GtkTextBuffer *buffer);
gboolean gtk_targets_include_image (GdkAtom *targets,
gint n_targets,
gboolean writable);
gint n_targets,
gboolean writable);
gboolean gtk_targets_include_uri (GdkAtom *targets,
gint n_targets);
gint n_targets);
/* Called when a widget is destroyed */
void gtk_selection_remove_all (GtkWidget *widget);
/* Event handlers */
gboolean _gtk_selection_clear (GtkWidget *widget,
GdkEventSelection *event);
gboolean _gtk_selection_request (GtkWidget *widget,
GdkEventSelection *event);
gboolean _gtk_selection_incr_event (GdkWindow *window,
GdkEventProperty *event);
gboolean _gtk_selection_notify (GtkWidget *widget,
GdkEventSelection *event);
gboolean _gtk_selection_property_notify (GtkWidget *widget,
GdkEventProperty *event);
GType gtk_selection_data_get_type (void) G_GNUC_CONST;
GtkSelectionData *gtk_selection_data_copy (const GtkSelectionData *data);
void gtk_selection_data_free (GtkSelectionData *data);
void gtk_selection_data_free (GtkSelectionData *data);
GType gtk_target_entry_get_type (void) G_GNUC_CONST;
GtkTargetEntry *gtk_target_entry_new (const char *target, guint flags, guint info);
GtkTargetEntry *gtk_target_entry_new (const gchar *target,
guint flags,
guint info);
GtkTargetEntry *gtk_target_entry_copy (GtkTargetEntry *data);
void gtk_target_entry_free (GtkTargetEntry *data);
GType gtk_target_list_get_type (void) G_GNUC_CONST;
void gtk_target_entry_free (GtkTargetEntry *data);
G_END_DECLS

View File

@ -28,6 +28,13 @@
* sent.
*/
#ifndef __GTK_SELECTIONPRIVATE_H__
#define __GTK_SELECTIONPRIVATE_H__
#include "gtkselection.h"
G_BEGIN_DECLS
struct _GtkSelectionData
{
GdkAtom selection;
@ -38,3 +45,33 @@ struct _GtkSelectionData
gint length;
GdkDisplay *display;
};
struct _GtkTargetList
{
GList *list;
guint ref_count;
};
typedef struct _GtkTargetPair GtkTargetPair;
struct _GtkTargetPair
{
GdkAtom target;
guint flags;
guint info;
};
gboolean _gtk_selection_clear (GtkWidget *widget,
GdkEventSelection *event);
gboolean _gtk_selection_request (GtkWidget *widget,
GdkEventSelection *event);
gboolean _gtk_selection_incr_event (GdkWindow *window,
GdkEventProperty *event);
gboolean _gtk_selection_notify (GtkWidget *widget,
GdkEventSelection *event);
gboolean _gtk_selection_property_notify (GtkWidget *widget,
GdkEventProperty *event);
G_END_DECLS
#endif /* __GTK_SELECTIONPRIVATE_H__ */

View File

@ -40,6 +40,7 @@
#include "gtkmenuitem.h"
#include "gtkseparatormenuitem.h"
#include "gtksettings.h"
#include "gtkselectionprivate.h"
#include "gtkstock.h"
#include "gtktextbufferrichtext.h"
#include "gtktextdisplay.h"

View File

@ -42,7 +42,7 @@
#include "gtkmainprivate.h"
#include "gtkmarshalers.h"
#include "gtkrc.h"
#include "gtkselection.h"
#include "gtkselectionprivate.h"
#include "gtksettingsprivate.h"
#include "gtksizegroup-private.h"
#include "gtkwidget.h"