diff options
Diffstat (limited to 'src/GraphicObjects/Button.cs')
| -rw-r--r-- | src/GraphicObjects/Button.cs | 110 |
1 files changed, 66 insertions, 44 deletions
diff --git a/src/GraphicObjects/Button.cs b/src/GraphicObjects/Button.cs index 5d3e81ca..17fbe328 100644 --- a/src/GraphicObjects/Button.cs +++ b/src/GraphicObjects/Button.cs @@ -13,71 +13,93 @@ using System.ComponentModel; namespace Crow
{
- public class Button : Container, IXmlSerializable
+ [DefaultTemplate("#Crow.Templates.Button.crow")]
+ public class Button : TemplatedContainer
{
#region CTOR
public Button() : base()
{
//MouseEnter += delegate { Background = Color.RedDevil;};
//MouseLeave += delegate { Background = Color.Transparent;};
- MouseButtonDown += delegate { BackImgSub = "pressed"; registerForGraphicUpdate();};
- MouseButtonUp += delegate { BackImgSub = "normal";registerForGraphicUpdate();};
+// MouseButtonDown += delegate { BackImgSub = "pressed"; registerForGraphicUpdate();};
+// MouseButtonUp += delegate { BackImgSub = "normal";registerForGraphicUpdate();};
}
#endregion
- #region GraphicObject Overrides
- [XmlAttributeAttribute()][DefaultValue(50)]
- public override int Width {
- get { return base.Width; }
- set { base.Width = value; }
- }
- [XmlAttributeAttribute()][DefaultValue(20)]
- public override int Height {
- get { return base.Height; }
- set { base.Height = value; }
+ string caption;
+ string image;
+ Container _contentContainer;
+
+ public override GraphicObject Content {
+ get {
+ return _contentContainer == null ? null : _contentContainer.Child;
+ }
+ set {
+ if (_contentContainer != null)
+ _contentContainer.SetChild(value);
+ }
}
- [XmlAttributeAttribute()][DefaultValue("Transparent")]
- public override Color Background {
- get { return base.Background; }
- set { base.Background = value; }
+ protected override void loadTemplate(GraphicObject template = null)
+ {
+ base.loadTemplate (template);
+
+ _contentContainer = this.child.FindByName ("Content") as Container;
}
+
+ #region GraphicObject Overrides
+// [XmlAttributeAttribute()][DefaultValue(50)]
+// public override int Width {
+// get { return base.Width; }
+// set { base.Width = value; }
+// }
+// [XmlAttributeAttribute()][DefaultValue(20)]
+// public override int Height {
+// get { return base.Height; }
+// set { base.Height = value; }
+// }
[XmlAttributeAttribute()][DefaultValue(true)]
public override bool Focusable
{
get { return base.Focusable; }
set { base.Focusable = value; }
}
- [XmlAttributeAttribute()][DefaultValue("#Crow.Images.button.svg")]
- public override Picture BackgroundImage {
- get {
- return base.BackgroundImage;
- }
- set {
- base.BackgroundImage = value;
- BackImgSub = "normal";
- }
+ public override void ResolveBindings ()
+ {
+ base.ResolveBindings ();
+ if (Content != null)
+ Content.ResolveBindings ();
+ }
+ public override void onMouseDown (object sender, MouseButtonEventArgs e)
+ {
+ base.onMouseDown (sender, e);
+ NotifyValueChanged ("State", "pressed");
+ }
+ public override void onMouseUp (object sender, MouseButtonEventArgs e)
+ {
+ base.onMouseUp (sender, e);
+ NotifyValueChanged ("State", "normal");
}
#endregion
- [XmlAttributeAttribute][DefaultValue("Button")]
- public string Text
- {
- get {
- Label l = Child as Label;
- return l == null ? "" : l.Text;
+ [XmlAttributeAttribute()][DefaultValue("Button")]
+ public string Caption {
+ get { return caption; }
+ set {
+ if (caption == value)
+ return;
+ caption = value;
+ NotifyValueChanged ("Caption", caption);
}
- set
- {
- Label l = Child as Label;
- if (l == null)
- this.SetChild(new Label (value)
- {
- TextAlignment = Alignment.Center,
- Foreground = Color.Black
- });
- else
- l.Text = value;
+ }
+ [XmlAttributeAttribute()][DefaultValue("#Crow.Images.button.svg")]
+ public string Image {
+ get { return image; }
+ set {
+ if (image == value)
+ return;
+ image = value;
+ NotifyValueChanged ("Image", image);
}
- }
+ }
}
}
|