9ad6d1b6a4
use when the IntPtr is NULL. * generator/SignalHandler.cs, generator/CallbackGen.cs: removed call to Initialize for structs * gtk/Clipboard.custom, gtk/ClipboardClearFunc.cs, gtk/ClipboardGetFunc.cs, gtk/GtkSharp.GtkClipboardClearFuncNative.cs, gtk/GtkSharp.ClipboardGetFuncNative.cs, SelectionData.custom: Hand-wrapped selection handling stuff, along with relevant signals and the like. * gnome/voidObjectAffineSVPintSignal.cs: removed Initialize for hand-wrapped signal * sample/GnomeHelloWorld.cs, sample/Size.cs: compare against .Zero instead of using IsNull * api/gtk-api.xml, sources/Gtk.metadata: metadata updates for hiding some manually-wrapped stuff svn path=/trunk/gtk-sharp/; revision=8912
56 lines
1.1 KiB
C
56 lines
1.1 KiB
C
/*
|
|
* clipboard.c
|
|
*/
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
GSList *
|
|
gtksharp_clipboard_target_list_add (GSList *list, char *target, guint flags, guint info)
|
|
{
|
|
GtkTargetEntry *entry = g_new0 (GtkTargetEntry, 1);
|
|
|
|
entry->target = g_strdup (target);
|
|
entry->flags = flags;
|
|
entry->info = info;
|
|
|
|
return g_slist_prepend (list, entry);
|
|
}
|
|
|
|
GtkTargetEntry *
|
|
gtksharp_clipboard_target_list_to_array (GSList *list)
|
|
{
|
|
GtkTargetEntry *targets;
|
|
GSList *iter;
|
|
int i;
|
|
|
|
targets = g_new0 (GtkTargetEntry, g_slist_length (list));
|
|
for (iter = list, i = 0; iter; iter = iter->next, i++) {
|
|
GtkTargetEntry *t = (GtkTargetEntry *) iter->data;
|
|
targets[i].target = t->target; /* NOT COPIED */
|
|
targets[i].flags = t->flags;
|
|
targets[i].info = t->info;
|
|
}
|
|
|
|
return targets;
|
|
}
|
|
|
|
void
|
|
gtksharp_clipboard_target_array_free (GtkTargetEntry *targets)
|
|
{
|
|
g_free (targets);
|
|
}
|
|
|
|
void
|
|
gtksharp_clipboard_target_list_free (GSList *list)
|
|
{
|
|
GSList *iter;
|
|
|
|
for (iter = list; iter; iter = iter->next) {
|
|
GtkTargetEntry *t = (GtkTargetEntry *) iter->data;
|
|
g_free (t->target);
|
|
g_free (t);
|
|
}
|
|
|
|
g_slist_free (list);
|
|
}
|
|
|