diff options
| author | j-p <jp.bruyere@live.be> | 2016-08-05 18:48:09 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-05 18:48:09 +0200 |
| commit | beba8120aa8f1529d79ccf0f52f02069b02aaf4d (patch) | |
| tree | 8de343d8341be621c4b5daa12899155e0bc2f26a /src/GraphicObjects/TreeView.cs | |
| parent | da0cd66b6af42a3df1f35014617f1e0882ae9e63 (diff) | |
| parent | b9e90a3df66f4bd8228c1246af830d7801ea57ba (diff) | |
Merge pull request #15 from jpbruyere/TemplateImprovments
Template improvments
Diffstat (limited to 'src/GraphicObjects/TreeView.cs')
| -rw-r--r-- | src/GraphicObjects/TreeView.cs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/GraphicObjects/TreeView.cs b/src/GraphicObjects/TreeView.cs index 64d4afcb..51080281 100644 --- a/src/GraphicObjects/TreeView.cs +++ b/src/GraphicObjects/TreeView.cs @@ -19,6 +19,9 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. using System; +using System.Xml.Serialization; +using System.Diagnostics; +using System.ComponentModel; namespace Crow { @@ -27,9 +30,68 @@ namespace Crow [DefaultTemplate("#Crow.Templates.TreeView.crow")] public class TreeView : ListBox { + GraphicObject selectedItemContainer = null; + Color selBackground; + Color selForeground; + bool isRoot; + + public TreeView () : base() { } + [XmlAttributeAttribute()][DefaultValue(false)] + public virtual bool IsRoot { + get { return isRoot; } + set { + if (isRoot == value) + return; + isRoot = value; + NotifyValueChanged ("IsRoot", isRoot); + } + } + + [XmlAttributeAttribute][DefaultValue("SteelBlue")]//DeepJungleGreen + public virtual Color SelectionBackground { + get { return selBackground; } + set { + if (value == selBackground) + return; + selBackground = value; + NotifyValueChanged ("SelectionBackground", selBackground); + RegisterForRedraw (); + } + } + [XmlAttributeAttribute][DefaultValue("White")] + public virtual Color SelectionForeground { + get { return selForeground; } + set { + if (value == selForeground) + return; + selForeground = value; + NotifyValueChanged ("SelectionForeground", selForeground); + RegisterForRedraw (); + } + } + + [XmlIgnore]public override object SelectedItem { + get { + return selectedItemContainer == null ? + "" : selectedItemContainer.DataSource; + } + } + internal override void itemClick (object sender, MouseButtonEventArgs e) + { + GraphicObject tmp = sender as GraphicObject; + if (selectedItemContainer != null) { + selectedItemContainer.Foreground = Color.Transparent; + selectedItemContainer.Background = Color.Transparent; + } + selectedItemContainer = tmp; + selectedItemContainer.Foreground = SelectionForeground; + selectedItemContainer.Background = SelectionBackground; + NotifyValueChanged ("SelectedItem", SelectedItem); + raiseSelectedItemChanged (); + } } } |