aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects/TreeView.cs
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2016-08-05 18:32:18 +0200
committerjpbruyere <jp.bruyere@hotmail.com>2016-08-05 18:32:18 +0200
commitb9e90a3df66f4bd8228c1246af830d7801ea57ba (patch)
tree8de343d8341be621c4b5daa12899155e0bc2f26a /src/GraphicObjects/TreeView.cs
parente9963abca14fbad8ff6c215e5c9d6b45652b38dc (diff)
TreeView
template access with './', update all templates binding path begining with '/' starts at current level
Diffstat (limited to 'src/GraphicObjects/TreeView.cs')
-rw-r--r--src/GraphicObjects/TreeView.cs62
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 ();
+ }
}
}