diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2015-04-18 15:42:59 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2015-04-18 15:42:59 +0200 |
commit | 84a27086bbd9f493128b354300f9c77ccb32a56b (patch) | |
tree | 977cb323f0ac6953f10bc20d84f45ebd5a6d4535 /src/actionGroups/clipboardGroup.vala | |
parent | b683ce2789d95b2e9f221e75adc30efd91cfb901 (diff) |
Imported Upstream version 0.6.0upstream/0.6.0
Diffstat (limited to 'src/actionGroups/clipboardGroup.vala')
-rw-r--r-- | src/actionGroups/clipboardGroup.vala | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/src/actionGroups/clipboardGroup.vala b/src/actionGroups/clipboardGroup.vala index c104d62..ad18740 100644 --- a/src/actionGroups/clipboardGroup.vala +++ b/src/actionGroups/clipboardGroup.vala @@ -1,23 +1,23 @@ -/* -Copyright (c) 2011 by Simon Schneegans - -This program is free software: you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the Free -Software Foundation, either version 3 of the License, or (at your option) -any later version. - -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 General Public License for -more details. - -You should have received a copy of the GNU General Public License along with -this program. If not, see <http://www.gnu.org/licenses/>. -*/ +///////////////////////////////////////////////////////////////////////// +// Copyright (c) 2011-2015 by Simon Schneegans +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or (at +// your option) any later version. +// +// 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 +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +///////////////////////////////////////////////////////////////////////// namespace GnomePie { -///////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////// /// This Group keeps a history of the last used Clipboard entries. /// Experimental. Not enabled. ///////////////////////////////////////////////////////////////////////// @@ -25,40 +25,40 @@ namespace GnomePie { public class ClipboardGroup : ActionGroup { ///////////////////////////////////////////////////////////////////// - /// + /// ///////////////////////////////////////////////////////////////////// private class ClipboardItem : GLib.Object { - + public string name { get; private set; } public string icon { get; private set; } - + private Gtk.SelectionData contents; - + public ClipboardItem(Gtk.SelectionData contents) { this.contents = contents.copy(); this.name = this.contents.get_text() ?? ""; this.icon = "edit-paste"; } - + public void paste() { debug(name); } } - + public ClipboardGroup(string parent_id) { GLib.Object(parent_id : parent_id); } - + ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// - + ///////////////////////////////////////////////////////////////////// /// Used to register this type of ActionGroup. It sets the display - /// name for this ActionGroup, it's icon name and the string used in + /// name for this ActionGroup, it's icon name and the string used in /// the pies.conf file for this kind of ActionGroups. ///////////////////////////////////////////////////////////////////// - + public static GroupRegistry.TypeDescription register() { var description = new GroupRegistry.TypeDescription(); description.name = _("Group: Clipboard"); @@ -67,45 +67,45 @@ public class ClipboardGroup : ActionGroup { description.id = "clipboard"; return description; } - + ///////////////////////////////////////////////////////////////////// /// The clipboard to be monitored. ///////////////////////////////////////////////////////////////////// - + private Gtk.Clipboard clipboard; - - + + ///////////////////////////////////////////////////////////////////// /// The maximum remembered items of the clipboard. ///////////////////////////////////////////////////////////////////// - + private static const int max_items = 6; - + private Gee.ArrayList<ClipboardItem?> items; - + construct { this.items = new Gee.ArrayList<ClipboardItem?>(); this.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD); this.clipboard.owner_change.connect(this.on_change); } - + private void on_change() { if (this.clipboard.wait_is_text_available()) { this.clipboard.request_contents(Gdk.Atom.intern("text/plain", false), this.add_item); } } - + private void add_item(Gtk.Clipboard c, Gtk.SelectionData contents) { var new_item = new ClipboardItem(contents); - + if (this.items.size == ClipboardGroup.max_items) this.items.remove_at(0); - + this.items.add(new_item); - + // update slices this.delete_all(); - + for (int i=0; i<this.items.size; ++i) { var action = new SigAction(items[i].name, items[i].icon, i.to_string()); action.activated.connect(() => { |