diff --git a/ChangeLog b/ChangeLog index 09df8698d..9cb2c89e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-01-27 Mike Kestner + + * glue/selectiondata.c : expose data field. + * gtk/SelectionData.custom : add Data property. + [Fixes #53397] + 2004-01-27 John Luke * gtk/AccelKey.custom: add convenience ctor diff --git a/glue/selectiondata.c b/glue/selectiondata.c index e0d9210e3..6bdcdc206 100644 --- a/glue/selectiondata.c +++ b/glue/selectiondata.c @@ -10,6 +10,13 @@ gint gtksharp_gtk_selection_data_get_length (GtkSelectionData *data); gint gtksharp_gtk_selection_data_get_format (GtkSelectionData *data); +guchar *gtksharp_gtk_selection_data_get_data_pointer (GtkSelectionData *data); + +guchar * +gtksharp_gtk_selection_data_get_data_pointer (GtkSelectionData *data) +{ + return data->data; +} gint gtksharp_gtk_selection_data_get_length (GtkSelectionData *data) diff --git a/gtk/SelectionData.custom b/gtk/SelectionData.custom index e7fdc9982..905be8729 100644 --- a/gtk/SelectionData.custom +++ b/gtk/SelectionData.custom @@ -31,3 +31,14 @@ } } + [DllImport("gtksharpglue")] + private static extern IntPtr gtksharp_selection_data_get_data_pointer (IntPtr selection_data); + + public byte[] Data { + get { + IntPtr data_ptr = gtksharp_selection_data_get_data_pointer (Handle); + byte[] result = new byte [Length]; + Marshal.Copy (data_ptr, result, 0, Length); + return result; + } + }