示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
文件: Util.cs 项目: migueldeicaza/xwt
        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);
            }
        }
示例#5
0
		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;
		}
示例#6
0
文件: DND.cs 项目: mono/stetic
        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);
        }
示例#7
0
文件: DND.cs 项目: orf53975/stetic
        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);
        }
示例#8
0
        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);
        }
示例#9
0
        // 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;
        }
示例#10
0
        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;
		}
示例#12
0
		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);
		}
示例#13
0
        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);
        }
示例#14
0
文件: Util.cs 项目: samclarke/xwt
        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;
            }
        }
示例#15
0
        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);
            }
        }
示例#16
0
		// 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;
		}