3
// GNOME Do is the legal property of its developers, whose names are too numerous
4
// to list here. Please refer to the COPYRIGHT file distributed with this
5
// source distribution.
7
// This program is free software: you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation, either version 3 of the License, or
10
// (at your option) any later version.
12
// This program is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
17
// You should have received a copy of the GNU General Public License
18
// along with this program. If not, see <http://www.gnu.org/licenses/>.
24
namespace Do.Universe {
26
public interface IProxyItem : IItem {
32
public class DoProxyItem : DoItem, IProxyItem {
34
string name, description, icon;
36
public DoProxyItem ():
37
this (new EmptyItem ())
41
public DoProxyItem (IItem item):
42
this (null, null, null, item)
46
public DoProxyItem (string name):
47
this (name, new EmptyItem ())
51
public DoProxyItem (string name, IItem item):
52
this (name, null, null, item)
56
public DoProxyItem (string name, string description):
57
this (name, description, new EmptyItem ())
61
public DoProxyItem (string name, string description, IItem item):
62
this (name, description, null, item)
66
public DoProxyItem (string name, string description, string icon):
67
this (name, description, icon, new EmptyItem ())
71
public DoProxyItem (string name, string description, string icon, IItem item):
75
this.description = description;
79
public override string Name {
80
get { return name ?? base.Name; }
83
public override string Description {
84
get { return description ?? base.Description; }
87
public override string Icon {
88
get { return icon ?? base.Icon; }
91
public override string UID {
92
get { return base.Inner.GetType ().ToString ()+Name+Description; }