[gtk+] add gtk_selection_data_get_data_with_length API which can be bound



commit c7f39eb07ecaba5cb0b9538be8a7d64e5b862f57
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jan 3 12:11:41 2011 -0500

    add gtk_selection_data_get_data_with_length API which can be bound
    
    * gtk_selection_data_get_data can't be bound because we need to know the length
      of data inorder to marshal it
    
    https://bugzilla.gnome.org/show_bug.cgi?id=635299

 docs/reference/gtk/gtk3-sections.txt |    1 +
 gtk/gtk.symbols                      |    1 +
 gtk/gtkselection.c                   |   23 +++++++++++++++++++++++
 gtk/gtkselection.h                   |    4 ++++
 4 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt
index 51d5f63..37f7c28 100644
--- a/docs/reference/gtk/gtk3-sections.txt
+++ b/docs/reference/gtk/gtk3-sections.txt
@@ -5824,6 +5824,7 @@ gtk_selection_data_targets_include_rich_text
 gtk_selection_data_get_selection
 gtk_selection_data_get_data
 gtk_selection_data_get_length
+gtk_selection_data_get_data_with_length
 gtk_selection_data_get_data_type
 gtk_selection_data_get_display
 gtk_selection_data_get_format
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 2dbb2ff..e5c5c75 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -2292,6 +2292,7 @@ gtk_selection_data_get_data_type
 gtk_selection_data_get_display
 gtk_selection_data_get_format
 gtk_selection_data_get_length
+gtk_selection_data_get_data_with_length
 gtk_selection_data_get_pixbuf
 gtk_selection_data_get_selection
 gtk_selection_data_get_target
diff --git a/gtk/gtkselection.c b/gtk/gtkselection.c
index 5ee7b25..06aa146 100644
--- a/gtk/gtkselection.c
+++ b/gtk/gtkselection.c
@@ -1223,6 +1223,29 @@ gtk_selection_data_get_length (const GtkSelectionData *selection_data)
 }
 
 /**
+ * gtk_selection_data_get_data_with_length:
+ * @selection_data: a pointer to a #GtkSelectionData structure
+ * @length: return location for length of the data segment
+ *
+ * Retrieves the raw data of the selection along with its length.
+ *
+ * Returns: (array length=length): the raw data of the selection
+ *
+ * Rename to: gtk_selection_data_get_data
+ * Since: 3.0
+ */
+const guchar*
+gtk_selection_data_get_data_with_length (const GtkSelectionData *selection_data,
+                                         gint                   *length)
+{
+  g_return_val_if_fail (selection_data != NULL, NULL);
+
+  *length = selection_data->length;
+
+  return selection_data->data;
+}
+
+/**
  * gtk_selection_data_get_display:
  * @selection_data: a pointer to a #GtkSelectionData structure.
  *
diff --git a/gtk/gtkselection.h b/gtk/gtkselection.h
index 761d2b2..6b409bb 100644
--- a/gtk/gtkselection.h
+++ b/gtk/gtkselection.h
@@ -133,6 +133,10 @@ GdkAtom       gtk_selection_data_get_data_type (const GtkSelectionData *selectio
 gint          gtk_selection_data_get_format    (const GtkSelectionData *selection_data);
 const guchar *gtk_selection_data_get_data      (const GtkSelectionData *selection_data);
 gint          gtk_selection_data_get_length    (const GtkSelectionData *selection_data);
+const guchar *gtk_selection_data_get_data_with_length
+                                               (const GtkSelectionData *selection_data,
+                                                gint                   *length);
+
 GdkDisplay   *gtk_selection_data_get_display   (const GtkSelectionData *selection_data);
 
 void     gtk_selection_data_set      (GtkSelectionData     *selection_data,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]