<?xml version="1.0"?>\r
<Border BorderWidth="1" BorderColor="LightGray" Height="-1" Width="0" MouseClick="onMouseClick">\r
- <VerticalStack MouseClick="onMouseClick" Height="-1" Width="0" Name="vsTemplateExpander">\r
- <HorizontalStack Name="hsTemplateExpander" Spacing="1" Focusable="false" Height="-1" Width="0">\r
- <Image Name="Image" Margin="3" Width="16" Height="16" Path="#go.Images.Icons.expandable.svg"/>\r
- <Label Name="Caption"/>\r
+ <VerticalStack Height="-1" Width="0" Name="vsTemplateExpander">\r
+ <HorizontalStack Spacing="1" Focusable="false" Height="-1" Width="0">\r
+ <Image Margin="2" Width="12" Height="12" Path="{Image}" SvgSub="{SvgSub}"/>\r
+ <Label Text="{Title}" Width="0"/>\r
</HorizontalStack>\r
<Container Name="Content" Visible="false"/>\r
</VerticalStack>\r
<?xml version="1.0"?>\r
<Border BorderWidth="1" BorderColor="LightGray" Height="-1" MouseClick="onMouseClick">\r
- <HorizontalStack Name="hsTemplateExpander" Spacing="1" Focusable="false" Height="-1" Width="0">\r
- <Image Name="Image" Margin="3" Width="16" Height="16" Path="#go.Images.Icons.expandable.svg"/>\r
- <Label Name="Caption"/>\r
+ <HorizontalStack Spacing="1" Focusable="false" Height="-1" Width="0">\r
+ <Image Margin="2" Width="12" Height="12" Path="{Image}" SvgSub="{SvgSub}"/>\r
+ <Label Text="{Title}" Width="0"/>\r
</HorizontalStack>\r
</Border>
\ No newline at end of file
int frameCpt = 0;\r
int idx = 0;\r
string[] testFiles = {\r
+ "testPopper.goml",\r
+ "testExpandable.goml",\r
"test6.goml",\r
"testHStack.goml",\r
"testMsgBox.goml",\r
"test_stack.goml",\r
"testScrollbar.goml",\r
"testSpinner.goml",\r
- "testExpandable.goml",\r
"testWindow.goml",\r
"fps.goml",\r
"testMeter.goml",\r
<?xml version="1.0"?>\r
-<Container Name="TopContainer" Width="400" Height="400"\r
- Margin="20" Focusable="True" Background="Gray">\r
-\r
- <Expandable Width="150" Height="-1" Margin="2" VerticalAlignment="Top">\r
- <VerticalStack Width="100" Height="-1">\r
- <Checkbox Name="chk1"/>\r
- <Checkbox Name="chk2" IsChecked="true"/>\r
- <Checkbox Name="chk3"/>\r
- <Checkbox Name="chk4"/>\r
- </VerticalStack> \r
- </Expandable>\r
-</Container>
\ No newline at end of file
+<Expandable Title="Test expandable" Width="150" Background="DimGray">\r
+ <VerticalStack Width="100" Height="-1">\r
+ <Checkbox Name="chk1"/>\r
+ <Checkbox Name="chk2" IsChecked="true"/>\r
+ <Checkbox Name="chk3"/>\r
+ <Checkbox Name="chk4"/>\r
+ </VerticalStack> \r
+</Expandable>\r
--- /dev/null
+<?xml version="1.0"?>\r
+<Popper Title="TestPopper" Width="100" Background="DimGray">\r
+ <Border Fit="True" Background="ArmyGreen">\r
+ <Image Fit="true" Path="#go.Images.Icons.tetra.png" Margin="10"/>\r
+ </Border>\r
+</Popper>\r
<None Include="Interfaces\test6.goml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
+ <None Include="Interfaces\testPopper.goml">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
</ItemGroup>
<ItemGroup>
<Folder Include="Interfaces\" />
public class Expandable : TemplatedContainer\r
{ \r
bool _isExpanded;\r
- Label _caption;\r
- Image _image;\r
+ string title;\r
+ string image;\r
Container _contentContainer;\r
\r
public event EventHandler Expand;\r
base.loadTemplate (template);\r
\r
_contentContainer = this.child.FindByName ("Content") as Container;\r
- _caption = this.child.FindByName ("Caption") as Label;\r
- _image = this.child.FindByName ("Image") as Image;\r
-\r
- if (_image == null)\r
- return;\r
- _image.SvgSub = "collapsed";\r
-\r
-// this.Expand += (object sender, EventArgs e) => {};\r
-// this.Collapse += (object sender, EventArgs e) => {};\r
-\r
}\r
+\r
[XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true\r
public override bool Focusable\r
{\r
get { return base.Focusable; }\r
set { base.Focusable = value; }\r
}\r
+ [XmlAttributeAttribute()][DefaultValue(-1)]\r
+ public override int Height {\r
+ get { return base.Height; }\r
+ set { base.Height = value; }\r
+ }\r
\r
[XmlAttributeAttribute()][DefaultValue("Expandable")]\r
public string Title {\r
- get { return _caption.Text; } \r
+ get { return title; } \r
set {\r
- if (_caption == null)\r
+ if (title == value)\r
return;\r
- _caption.Text = value; \r
+ title = value; \r
+ NotifyValueChanged ("Title", title);\r
}\r
} \r
+ [XmlAttributeAttribute()][DefaultValue("#go.Images.Icons.expandable.svg")]\r
+ public string Image {\r
+ get { return image; } \r
+ set {\r
+ if (image == value)\r
+ return;\r
+ image = value; \r
+ NotifyValueChanged ("Image", image);\r
+ }\r
+ } \r
+ [XmlAttributeAttribute()][DefaultValue("collapsed")]\r
+ public string SvgSub {\r
+ get { return IsExpanded ? "expanded" : "collapsed"; } \r
+ } \r
\r
[XmlAttributeAttribute()][DefaultValue(false)]\r
public bool IsExpanded\r
return;\r
\r
_isExpanded = value;\r
+ NotifyValueChanged ("SvgSub", SvgSub);\r
\r
if (_isExpanded)\r
onExpand (this, null);\r
public virtual void onExpand(object sender, EventArgs e)\r
{\r
_contentContainer.Visible = true;\r
- _image.SvgSub = "expanded";\r
Expand.Raise (this, e);\r
}\r
public virtual void onCollapse(object sender, EventArgs e)\r
{\r
_contentContainer.Visible = false;\r
- _image.SvgSub = "collapsed";\r
Collapse.Raise (this, e);\r
}\r
\r
public class Popper : TemplatedContainer\r
{ \r
bool _isPopped;\r
- Label _caption;\r
- Image _image;\r
+ string title;\r
+ string image;\r
GraphicObject _content;\r
\r
public event EventHandler Pop;\r
public Popper() : base()\r
{\r
} \r
-\r
- protected override void loadTemplate(GraphicObject template = null)\r
- {\r
- base.loadTemplate (template);\r
-\r
- _caption = this.child.FindByName ("Caption") as Label;\r
- _image = this.child.FindByName ("Image") as Image;\r
-\r
- if (_image == null)\r
- return;\r
- _image.SvgSub = "collapsed";\r
-\r
- this.Pop += (object sender, EventArgs e) => {_image.SvgSub = "expanded";};\r
- this.Unpop += (object sender, EventArgs e) => {_image.SvgSub = "collapsed";};\r
-\r
- }\r
+ \r
[XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true\r
public override bool Focusable\r
{\r
get { return base.Focusable; }\r
set { base.Focusable = value; }\r
}\r
+ [XmlAttributeAttribute()][DefaultValue(-1)]\r
+ public override int Height {\r
+ get { return base.Height; }\r
+ set { base.Height = value; }\r
+ }\r
\r
[XmlAttributeAttribute()][DefaultValue("Popper")]\r
public string Title {\r
- get { return _caption.Text; } \r
+ get { return title; } \r
set {\r
- if (_caption == null)\r
+ if (title == value)\r
return;\r
- _caption.Text = value; \r
+ title = value; \r
+ NotifyValueChanged ("Title", title);\r
}\r
} \r
- \r
+ [XmlAttributeAttribute()][DefaultValue("#go.Images.Icons.expandable.svg")]\r
+ public string Image {\r
+ get { return image; } \r
+ set {\r
+ if (image == value)\r
+ return;\r
+ image = value; \r
+ NotifyValueChanged ("Image", image);\r
+ }\r
+ } \r
+ [XmlAttributeAttribute()][DefaultValue("collapsed")]\r
+ public string SvgSub {\r
+ get { return IsPopped ? "expanded" : "collapsed"; } \r
+ } \r
+\r
[XmlAttributeAttribute()][DefaultValue(false)]\r
public bool IsPopped\r
{\r
return;\r
\r
_isPopped = value;\r
+ NotifyValueChanged ("SvgSub", SvgSub);\r
\r
if (_isPopped)\r
onPop (this, null);\r
else\r
onUnpop (this, null);\r
\r
- registerForGraphicUpdate();\r
+ //registerForGraphicUpdate();\r
}\r
}\r
-\r
+ \r
public virtual void onPop(object sender, EventArgs e)\r
{\r
if (Content != null) {\r