2
// Copyright (C) 2010 Chris Szikszoy
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <http://www.gnu.org/licenses/>.
19
using System.Text.RegularExpressions;
31
public class DockletTile : AbstractTileObject
33
public Addin Addin { get; private set; }
34
public AbstractDockItemProvider Provider { get; private set; }
35
Gtk.Button ConfigButton;
37
public DockletTile (string addinID) : this (addinID, null)
41
public DockletTile (string addinID, AbstractDockItemProvider provider)
43
Addin = PluginManager.AddinFromID (addinID);
46
ButtonStateDisabledText = Catalog.GetString ("_Add");
47
ButtonStateEnabledText = Catalog.GetString ("_Remove");
48
SubDescriptionTitle = Catalog.GetString ("Author");
49
Enabled = Addin.Enabled;
52
Description = Addin.Description.Description;
53
SubDescriptionText = Addin.Description.Author;
55
ConfigButton = new Gtk.Button (Catalog.GetString ("Settings"));
56
ConfigButton.Clicked += delegate {
57
if (PluginManager.ConfigForAddin (Addin.Id) != null)
58
PluginManager.ConfigForAddin (Addin.Id).Show ();
66
if (Enabled && PluginManager.ConfigForAddin (Addin.Id) != null)
67
AddUserButton (ConfigButton);
69
RemoveUserButton (ConfigButton);
72
Icon = PluginManager.DefaultPluginIcon;
77
public override void OnActiveChanged ()
79
if (ConfigurationWindow.Instance.ActiveDock == null)
85
Provider = PluginManager.Enable (Addin);
86
ConfigurationWindow.Instance.ActiveDock.Preferences.AddProvider (Provider);
88
PluginManager.Disable (Addin);
89
ConfigurationWindow.Instance.ActiveDock.Preferences.RemoveProvider (Provider);