public void SetCanStore(Gtk.TargetEntry targets, int n_targets) { IntPtr native_targets = GLib.Marshaller.StructureToPtrAlloc(targets); gtk_clipboard_set_can_store(Handle, native_targets, n_targets); Marshal.FreeHGlobal(native_targets); }
public static void AddTargets(Gtk.Widget widget, Gdk.Atom selection, Gtk.TargetEntry targets, uint ntargets) { IntPtr native_targets = GLib.Marshaller.StructureToPtrAlloc(targets); gtk_selection_add_targets(widget == null ? IntPtr.Zero : widget.Handle, selection == null ? IntPtr.Zero : selection.Handle, native_targets, ntargets); Marshal.FreeHGlobal(native_targets); }
public static void TableFree(Gtk.TargetEntry targets, int n_targets) { IntPtr native_targets = GLib.Marshaller.StructureToPtrAlloc(targets); gtk_target_table_free(native_targets, n_targets); Marshal.FreeHGlobal(native_targets); }
static Gtk.TargetEntry[] CreateTargetEntries(string type) { lock (dragTargets) { Gtk.TargetEntry[] entries; if (dragTargets.TryGetValue(type, out entries)) { return(entries); } uint id = targetIdCounter++; switch (type) { case TransferDataType.Uri: { Gtk.TargetList list = new Gtk.TargetList(); list.AddUriTargets(id); entries = (Gtk.TargetEntry[])list; break; } case TransferDataType.Text: { Gtk.TargetList list = new Gtk.TargetList(); list.AddTextTargets(id); //HACK: work around gtk_selection_data_set_text causing crashes on Mac w/ QuickSilver, Clipbard History etc. if (Platform.IsMac) { list.Remove("COMPOUND_TEXT"); list.Remove("TEXT"); list.Remove("STRING"); } entries = (Gtk.TargetEntry[])list; break; } case TransferDataType.Rtf: { Gdk.Atom atom; if (Platform.IsMac) { atom = Gdk.Atom.Intern("NSRTFPboardType", false); //TODO: use public.rtf when dep on MacOS 10.6 } else { atom = Gdk.Atom.Intern("text/rtf", false); } entries = new Gtk.TargetEntry[] { new Gtk.TargetEntry(atom, 0, id) }; break; } default: entries = new Gtk.TargetEntry[] { new Gtk.TargetEntry(Gdk.Atom.Intern("application/" + type, false), 0, id) }; break; } foreach (var a in entries.Select(e => e.Target)) { atomToType [a] = type; } return(dragTargets [type] = entries); } }
public static Gtk.TargetEntry[] TableNewFromList(Gtk.TargetList list) { int n_targets; IntPtr array_ptr = gtk_target_table_new_from_list (list.Handle, out n_targets); Gtk.TargetEntry[] ret = new Gtk.TargetEntry [n_targets]; int unmanaged_struct_size = Marshal.SizeOf (typeof (Gtk.TargetEntry)); for (int i = 0; i < n_targets; i++) { ret [i] = Gtk.TargetEntry.New (new IntPtr (array_ptr.ToInt64 () + i * unmanaged_struct_size)); } return ret; }
static DND() { widgetIcon = Gdk.Pixbuf.LoadFromResource ("widget.png"); steticWidgetType = Gdk.Atom.Intern ("application/x-stetic-widget", false); targets = new Gtk.TargetEntry[2]; targets[0] = new Gtk.TargetEntry ("application/x-stetic-widget", 0, SteticType); targets[1] = new Gtk.TargetEntry ((string)GladeUtils.ApplicationXGladeAtom, 0, GladeType); targetList = new Gtk.TargetList (); targetList.Add (steticWidgetType, 0, 0); targetList.Add (GladeUtils.ApplicationXGladeAtom, 0, 1); }
static DND() { widgetIcon = Gdk.Pixbuf.LoadFromResource("widget.png"); steticWidgetType = Gdk.Atom.Intern("application/x-stetic-widget", false); targets = new Gtk.TargetEntry[2]; targets[0] = new Gtk.TargetEntry("application/x-stetic-widget", 0, SteticType); targets[1] = new Gtk.TargetEntry((string)GladeUtils.ApplicationXGladeAtom, 0, GladeType); targetList = new Gtk.TargetList(); targetList.Add(steticWidgetType, 0, 0); targetList.Add(GladeUtils.ApplicationXGladeAtom, 0, 1); }
public static Gtk.TargetEntry[] TableNewFromList(Gtk.TargetList list) { int n_targets; IntPtr array_ptr = gtk_target_table_new_from_list(list.Handle, out n_targets); Gtk.TargetEntry[] ret = new Gtk.TargetEntry [n_targets]; int unmanaged_struct_size = Marshal.SizeOf(typeof(Gtk.TargetEntry)); for (int i = 0; i < n_targets; i++) { ret [i] = Gtk.TargetEntry.New(new IntPtr(array_ptr.ToInt64() + i * unmanaged_struct_size)); } return(ret); }
// Support dropping text/uri-lists and _NETSCAPE_URLs currently. void SetupDragAndDrop() { Gtk.TargetEntry [] targets = new Gtk.TargetEntry [] { new Gtk.TargetEntry("text/uri-list", 0, 0), new Gtk.TargetEntry("_NETSCAPE_URL", 0, 0) }; Gtk.Drag.DestSet(this, Gtk.DestDefaults.All, targets, Gdk.DragAction.Copy); DragDataReceived += OnDragDataReceived; }
static DND() { try { widgetIcon = Gdk.Pixbuf.LoadFromResource("widget.png"); } catch (Exception e) { Console.WriteLine("Error while loading pixbuf 'widget.png': " + e); } steticWidgetType = Gdk.Atom.Intern("application/x-stetic-widget", false); targets = new Gtk.TargetEntry[2]; targets[0] = new Gtk.TargetEntry(steticWidgetType, 0, SteticType); targets[1] = new Gtk.TargetEntry((string)GladeUtils.ApplicationXGladeAtom, 0, GladeType); targetList = new Gtk.TargetList(targets); targets = (Gtk.TargetEntry[])targetList; }
static DND () { try { widgetIcon = Gdk.Pixbuf.LoadFromResource ("widget.png"); } catch (Exception e) { Console.WriteLine ("Error while loading pixbuf 'widget.png': " + e); } steticWidgetType = Gdk.Atom.Intern ("application/x-stetic-widget", false); targets = new Gtk.TargetEntry[2]; targets[0] = new Gtk.TargetEntry (steticWidgetType, 0, SteticType); targets[1] = new Gtk.TargetEntry ((string) GladeUtils.ApplicationXGladeAtom, 0, GladeType); targetList = new Gtk.TargetList (targets); targets = (Gtk.TargetEntry[]) targetList; }
public NotebooksTreeView(Gtk.TreeModel model) : base (model) { noteManager = Tomboy.DefaultNoteManager; // Set up the notebooksTree as a drag target so that notes // can be dragged into the notebook. Gtk.TargetEntry [] targets = new Gtk.TargetEntry [] { new Gtk.TargetEntry ("text/uri-list", Gtk.TargetFlags.App, 1) }; Gtk.Drag.DestSet (this, Gtk.DestDefaults.All, targets, Gdk.DragAction.Move); }
public NotebooksTreeView(Gtk.TreeModel model) : base(model) { noteManager = Tomboy.DefaultNoteManager; // Set up the notebooksTree as a drag target so that notes // can be dragged into the notebook. Gtk.TargetEntry [] targets = new Gtk.TargetEntry [] { new Gtk.TargetEntry("text/uri-list", Gtk.TargetFlags.App, 1) }; Gtk.Drag.DestSet(this, Gtk.DestDefaults.All, targets, Gdk.DragAction.Move); }
static Gtk.TargetEntry[] CreateTargetEntries(TransferDataType type) { lock (dragTargets) { Gtk.TargetEntry[] entries; if (dragTargets.TryGetValue (type, out entries)) return entries; uint id = targetIdCounter++; if (type == TransferDataType.Uri) { Gtk.TargetList list = new Gtk.TargetList (); list.AddUriTargets (id); entries = (Gtk.TargetEntry[])list; } else if (type == TransferDataType.Text) { Gtk.TargetList list = new Gtk.TargetList (); list.AddTextTargets (id); //HACK: work around gtk_selection_data_set_text causing crashes on Mac w/ QuickSilver, Clipbard History etc. if (Platform.IsMac) { list.Remove ("COMPOUND_TEXT"); list.Remove ("TEXT"); list.Remove ("STRING"); } entries = (Gtk.TargetEntry[])list; } else if (type == TransferDataType.Rtf) { Gdk.Atom atom; if (Platform.IsMac) atom = Gdk.Atom.Intern ("NSRTFPboardType", false); //TODO: use public.rtf when dep on MacOS 10.6 else atom = Gdk.Atom.Intern ("text/rtf", false); entries = new Gtk.TargetEntry[] { new Gtk.TargetEntry (atom, 0, id) }; } else { entries = new Gtk.TargetEntry[] { new Gtk.TargetEntry (Gdk.Atom.Intern ("application/" + type.Id, false), 0, id) }; } foreach (var a in entries.Select (e => e.Target)) atomToType [a] = type; return dragTargets [type] = entries; } }
static Gtk.TargetEntry[] CreateTargetEntries(TransferDataType type) { lock (dragTargets) { Gtk.TargetEntry[] entries; if (dragTargets.TryGetValue(type, out entries)) { return(entries); } uint id = targetIdCounter++; if (type == TransferDataType.Uri) { Gtk.TargetList list = new Gtk.TargetList(); list.AddUriTargets(id); entries = (Gtk.TargetEntry[])list; } else if (type == TransferDataType.Text) { Gtk.TargetList list = new Gtk.TargetList(); list.AddTextTargets(id); //HACK: work around gtk_selection_data_set_text causing crashes on Mac w/ QuickSilver, Clipbard History etc. if (Platform.IsMac) { list.Remove("COMPOUND_TEXT"); list.Remove("TEXT"); list.Remove("STRING"); } entries = (Gtk.TargetEntry[])list; } else if (type == TransferDataType.Rtf) { Gdk.Atom atom; if (Platform.IsMac) { atom = Gdk.Atom.Intern("NSRTFPboardType", false); //TODO: use public.rtf when dep on MacOS 10.6 } else if (Platform.IsWindows) { atom = Gdk.Atom.Intern("Rich Text Format", false); } else { atom = Gdk.Atom.Intern("text/rtf", false); } entries = new Gtk.TargetEntry[] { new Gtk.TargetEntry(atom, 0, id) }; } else if (type == TransferDataType.Html) { Gdk.Atom atom; if (Platform.IsMac) { atom = Gdk.Atom.Intern("Apple HTML pasteboard type", false); //TODO: use public.rtf when dep on MacOS 10.6 } else if (Platform.IsWindows) { atom = Gdk.Atom.Intern("HTML Format", false); } else { atom = Gdk.Atom.Intern("text/html", false); } entries = new Gtk.TargetEntry[] { new Gtk.TargetEntry(atom, 0, id) }; } else if (type == TransferDataType.Image) { Gtk.TargetList list = new Gtk.TargetList(); list.AddImageTargets(id, true); entries = (Gtk.TargetEntry[])list; } else { entries = new Gtk.TargetEntry[] { new Gtk.TargetEntry(Gdk.Atom.Intern("application/" + type.Id, false), 0, id) }; } foreach (var a in entries.Select(e => e.Target)) { atomToType [a] = type; } return(dragTargets [type] = entries); } }
// Support dropping text/uri-lists and _NETSCAPE_URLs currently. void SetupDragAndDrop () { Gtk.TargetEntry [] targets = new Gtk.TargetEntry [] { new Gtk.TargetEntry ("text/uri-list", 0, 0), new Gtk.TargetEntry ("_NETSCAPE_URL", 0, 0) }; Gtk.Drag.DestSet (this, Gtk.DestDefaults.All, targets, Gdk.DragAction.Copy); DragDataReceived += OnDragDataReceived; }