// // This program is free software; you can redistribute it and/or // modify it under the terms of version 2 of the Lesser GNU General // Public License as published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this program; if not, write to the // Free Software Foundation, Inc., 59 Temple Place - Suite 330, // Boston, MA 02111-1307, USA. /* public static Hashtable clipboard_objects = new Hashtable (); private static uint clipboard_object_next_id = 0; [DllImport("libgtk-win32-2.0-0.dll")] static extern bool gtk_clipboard_set_with_data(IntPtr raw, IntPtr targets, int n_targets, GtkSharp.GtkClipboardGetFuncNative get_func, GtkSharp.GtkClipboardClearFuncNative clear_func, uint id); [DllImport("gtksharpglue")] static extern IntPtr gtksharp_clipboard_target_list_add (IntPtr list, string name, uint flags, uint info); [DllImport("gtksharpglue")] static extern IntPtr gtksharp_clipboard_target_list_to_array (IntPtr list); [DllImport("gtksharpglue")] static extern void gtksharp_clipboard_target_array_free (IntPtr targets); [DllImport("gtksharpglue")] static extern void gtksharp_clipboard_target_list_free (IntPtr list); GtkSharp.GtkClipboardGetFuncWrapper get_func_wrapper; GtkSharp.GtkClipboardClearFuncWrapper clear_func_wrapper; public bool Set (Gtk.TargetEntry[] targets, Gtk.ClipboardGetFunc get_func, Gtk.ClipboardClearFunc clear_func, object data) { uint this_id; lock (clipboard_objects) { this_id = clipboard_object_next_id++; clipboard_objects[this_id] = data; } get_func_wrapper = new GtkSharp.GtkClipboardGetFuncWrapper (get_func, this); clear_func_wrapper = new GtkSharp.GtkClipboardClearFuncWrapper (clear_func, this); IntPtr list = IntPtr.Zero; foreach (Gtk.TargetEntry t in targets) { list = gtksharp_clipboard_target_list_add (list, t.target, t.flags, t.info); } IntPtr array = gtksharp_clipboard_target_list_to_array (list); bool ret = gtk_clipboard_set_with_data (Handle, array, targets.Length, get_func_wrapper.NativeDelegate, clear_func_wrapper.NativeDelegate, this_id); gtksharp_clipboard_target_array_free (array); gtksharp_clipboard_target_list_free (list); return ret; } */