<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="64"
- height="64"
- viewBox="0 0 63.999998 63.999998"
- id="svg2"
version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="radiobutton.svg">
- <defs
- id="defs4" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="3.9209764"
- inkscape:cx="36.635416"
- inkscape:cy="25.879033"
- inkscape:document-units="px"
- inkscape:current-layer="svg2"
- showgrid="false"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- units="px"
- inkscape:window-width="1280"
- inkscape:window-height="984"
- inkscape:window-x="0"
- inkscape:window-y="16"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
- </cc:Work>
- </rdf:RDF>
- </metadata>
+ viewBox="0 0 64 64"
+ height="64"
+ width="64">
<g
id="checked">
<circle
- r="27.214607"
- cy="35.563198"
- cx="32.071087"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.99999952;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1"
id="path4166"
- style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.99999952;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" />
+ cx="32"
+ cy="32"
+ r="30" />
<circle
- r="20.677874"
- cy="35.563194"
- cx="32.071083"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99999952;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1"
id="path4166-1"
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99999952;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" />
+ cx="32"
+ cy="32"
+ r="22" />
</g>
<circle
- style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.99999952;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1"
+ r="30"
+ cy="32"
+ cx="32"
id="unchecked"
- cx="32.071083"
- cy="35.563194"
- r="27.214603" />
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.99999952;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1" />
</svg>
<?xml version="1.0"?>\r
-<HorizontalStack Width="{Width}" Height="{Height}" Margin="0" Spacing="1">\r
- <Image Name="Image" Width="16" Height="16" Path="#go.Images.Icons.checkbox.svg"/>\r
- <Label Name="Caption" Height="{Height}" Width="-1"/>\r
+<HorizontalStack Spacing="1" Height="-1" Width="0">\r
+ <Image Margin="2" Width="14" Height="14" Path="{Image}" SvgSub="{SvgSub}"/>\r
+ <Label Text="{Caption}" Width="0"/>\r
</HorizontalStack>
\ No newline at end of file
<?xml version="1.0"?>\r
<Border BorderWidth="1" BorderColor="LightGray" Height="-1" Width="0" MouseClick="onMouseClick">\r
- <VerticalStack Height="-1" Width="0" Name="vsTemplateExpander">\r
- <HorizontalStack Spacing="1" Focusable="false" Height="-1" Width="0">\r
+ <VerticalStack Height="-1" Width="0">\r
+ <HorizontalStack Spacing="1" 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
<?xml version="1.0"?>\r
<Border BorderWidth="1" BorderColor="LightGray" Height="-1" MouseClick="onMouseClick">\r
- <HorizontalStack Spacing="1" Focusable="false" Height="-1" Width="0">\r
+ <HorizontalStack Spacing="1" Height="-1" >\r
<Image Margin="2" Width="12" Height="12" Path="{Image}" SvgSub="{SvgSub}"/>\r
<Label Text="{Title}" Width="0"/>\r
</HorizontalStack>\r
<?xml version="1.0"?>\r
-<HorizontalStack Width="{Width}" Height="{Height}" Margin="0" Spacing="1">\r
- <Image Name="Image" Width="12" Height="12" Path="#go.Images.Icons.radiobutton.svg"/>\r
- <Label Name="Caption" Height="{Height}" Width="-1"/>\r
+<HorizontalStack Spacing="1" Height="-1" Width="0">\r
+ <Image Margin="2" Width="14" Height="14" Path="{Image}" SvgSub="{SvgSub}"/>\r
+ <Label Text="{Caption}" Width="0"/>\r
</HorizontalStack>
\ 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
- "testLabel.goml",\r
- "testGrid.goml",\r
"test1.goml",\r
"test1.1.goml",\r
"test1.2.goml",\r
- "test1.3.goml",\r
- "test2.goml",\r
+ "testLabel.goml",\r
"testContainer.goml",\r
- "test_stack.goml",\r
- "testScrollbar.goml",\r
+ "testCheckbox.goml",\r
+ "testRadioButton.goml",\r
"testSpinner.goml",\r
+ "testPopper.goml",\r
+ "testExpandable.goml",\r
"testWindow.goml",\r
+ "testMsgBox.goml",\r
+ "testGrid.goml",\r
"fps.goml",\r
"testMeter.goml",\r
+ "test6.goml",\r
+ "testHStack.goml",\r
+ "test2.goml",\r
+ "test_stack.goml",\r
+ "testScrollbar.goml",\r
"test3.goml",\r
"test4.1.goml",\r
+ "test7.goml",\r
};\r
\r
#region FPS\r
+++ /dev/null
-<?xml version="1.0"?>\r
-<!--<GraphicObject\r
- Width="100" Height="100"\r
- Top="200" Left="200" \r
- Margin="10" Background="Green"/>-->\r
-<Border CornerRadius="5" Margin="1" BorderWidth="1" Fit="True" Background="SteelBlue">\r
- <HorizontalStack Name="hstack" Margin="0" Spacing="5">\r
- <Label Name="labCpt" Text="55"/>\r
- <VerticalStack Spacing="1" Name="vstack">\r
- <Button Width="10" Height="8" MouseClick="onUp">\r
- <Image Margin="1" Path="#go.Images.Icons.updown.svg" SvgSub="up"/>\r
- </Button>\r
- <Button Width="10" Height="8" MouseClick="onDown">\r
- <Image Margin="1" Path="#go.Images.Icons.updown.svg" SvgSub="down"/>\r
- </Button>\r
- </VerticalStack>\r
- </HorizontalStack>\r
-</Border>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0"?>\r
-<Container Name="MainMenu" \r
- Margin="30" Focusable="True" Height="-1" Width="300">\r
- <Border BorderWidth="1" Margin="40" Background="0,5;0,5;0,5;0,5">\r
- <VerticalStack WidgetSpacing="10">\r
- <Button Margin = "10" Text="Start New Game" Height="-1" Width="0" \r
- MouseClick="onStartNewGame"/>\r
- <Button Margin = "10" Text="Start New Game" Height="-1" Width="0"/>\r
- <Button Margin = "10" Text="Start New Game" Height="-1" Width="0"/>\r
- <Button Margin = "10" Text="Exit" Height="-1" Width="0"\r
- MouseClick="onButExit_MouseClick" />\r
- </VerticalStack>\r
- </Border> \r
-</Container>
\ No newline at end of file
MouseEnter="{BorderColor = White}"\r
MouseLeave="{BorderColor = Transparent}">\r
\r
- <HorizontalStack Name="hs0"\r
+ <HorizontalStack Name="hs0" Fit="true"\r
WidgetSpacing="10" \r
VerticalAlignment="Center" \r
Background="0,5;0,5;0,5;0,5">\r
<VerticalStack Name="vs1"\r
- Margin="20" Width="400">\r
+ Margin="20" Width="400" Height="-1">\r
<Label Name="labMouse" Text="MousePos"/>\r
- <HorizontalStack Name="hsPbar">\r
+ <HorizontalStack Name="hsPbar" Fit="true">\r
<ProgressBar Name="pbBar" \r
Width="100" Height="20"\r
Value="50"\r
Width="100" Height="10"\r
Value="30"/>-->\r
</HorizontalStack>\r
- <HorizontalStack Name="hsFocus">\r
+ <HorizontalStack Name="hsFocus" Fit="true">\r
<Label Text="Focused:"/>\r
<Label Name="labFocus" />\r
</HorizontalStack>\r
- <HorizontalStack>\r
+ <HorizontalStack Fit="true">\r
<Label Text="Active:" Name="hsActive"/>\r
<Label Name="labActive"/>\r
</HorizontalStack>\r
- <HorizontalStack>\r
+ <HorizontalStack Fit="true">\r
<Label Text="Hover:" Name="hsHover"/>\r
<Label Name="labHover" />\r
</HorizontalStack>\r
--- /dev/null
+<?xml version="1.0"?>\r
+<!--<GraphicObject\r
+ Width="100" Height="100"\r
+ Top="200" Left="200" \r
+ Margin="10" Background="Green"/>-->\r
+<Border CornerRadius="5" Margin="1" BorderWidth="1" Fit="True" Background="SteelBlue">\r
+ <HorizontalStack Name="hstack" Margin="0" Spacing="5" Fit="True">\r
+ <Label Name="labCpt" Text="55"/>\r
+ <VerticalStack Spacing="1" Name="vstack" Fit="True">\r
+ <Button Width="10" Height="8" >\r
+ <Image Margin="1" Path="#go.Images.Icons.updown.svg" SvgSub="up"/>\r
+ </Button>\r
+ <Button Width="10" Height="8" >\r
+ <Image Margin="1" Path="#go.Images.Icons.updown.svg" SvgSub="down"/>\r
+ </Button>\r
+ </VerticalStack>\r
+ </HorizontalStack>\r
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>\r
+<Checkbox Caption="Checkbox" Background="DimGray"/>\r
+\r
--- /dev/null
+<?xml version="1.0"?>\r
+<VerticalStack Width="200" Height="-1" Margin="20" Background="DimGray">\r
+ <RadioButton Caption="Radio1"/>\r
+ <RadioButton Caption="Radio2" IsChecked="true"/>\r
+ <RadioButton Caption="Radio3"/>\r
+ <RadioButton Caption="Radio4"/>\r
+</VerticalStack>\r
+\r
<None Include="Interfaces\test4.1.goml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
- <None Include="Interfaces\test1.3.goml">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
<None Include="Interfaces\fps.goml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Interfaces\testPopper.goml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
+ <None Include="Interfaces\testRadioButton.goml">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ <None Include="Interfaces\testCheckbox.goml">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
+ <None Include="Interfaces\test7.goml">
+ <LogicalName>Tests.Interfaces.test7.goml</LogicalName>
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </None>
</ItemGroup>
<ItemGroup>
<Folder Include="Interfaces\" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="image\tetra.png" />
- <EmbeddedResource Include="Interfaces\Checkbox.goml" />
</ItemGroup>
</Project>
[DefaultTemplate("#go.Templates.Checkbox.goml")]\r
public class Checkbox : TemplatedControl\r
{ \r
- Label _caption;\r
- Image _image;\r
+ string caption;\r
+ string image;\r
+ bool isChecked;\r
\r
+ #region CTOR\r
public Checkbox() : 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
- _image.SvgSub = "unchecked";\r
- }\r
- \r
-\r
- [XmlAttributeAttribute()][DefaultValue("Checkbox")]\r
- public string Caption {\r
- get { return _caption == null ? "" : _caption.Text; } \r
- set { \r
- if (_caption == null)\r
- return;\r
- _caption.Text = value; \r
- }\r
- }\r
- [XmlAttributeAttribute()][DefaultValue(false)]\r
- public bool IsChecked\r
- {\r
- get { return _image == null ? false :_image.SvgSub == "checked"; }\r
- set\r
- {\r
- if (value == IsChecked)\r
- return;\r
+ } \r
+ #endregion\r
\r
- if (value)\r
- _image.SvgSub = "checked";\r
- else\r
- _image.SvgSub = "unchecked";\r
- \r
- NotifyValueChanged("IsChecked", IsChecked);\r
- //registerForGraphicUpdate();\r
- }\r
- }\r
\r
+ #region GraphicObject overrides\r
[XmlAttributeAttribute()][DefaultValue(-1)]\r
public override int Height {\r
get { return base.Height; }\r
get { return base.Focusable; }\r
set { base.Focusable = value; }\r
}\r
+ #endregion\r
+\r
+ [XmlAttributeAttribute()][DefaultValue("Checkbox")]\r
+ public string Caption {\r
+ get { return caption; } \r
+ set {\r
+ if (caption == value)\r
+ return;\r
+ caption = value; \r
+ NotifyValueChanged ("Caption", caption);\r
+ }\r
+ } \r
+ [XmlAttributeAttribute()][DefaultValue("#go.Images.Icons.checkbox.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
+\r
+ [XmlAttributeAttribute()][DefaultValue(false)]\r
+ public bool IsChecked\r
+ {\r
+ get { return isChecked; }\r
+ set\r
+ {\r
+ isChecked = value;\r
+\r
+ NotifyValueChanged ("IsChecked", value);\r
+ if (isChecked)\r
+ NotifyValueChanged ("SvgSub", "checked");\r
+ else\r
+ NotifyValueChanged ("SvgSub", "unchecked");\r
+ }\r
+ }\r
public override void onMouseClick (object sender, MouseButtonEventArgs e)\r
{\r
IsChecked = !IsChecked;\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
+ } \r
[XmlAttributeAttribute()][DefaultValue(false)]\r
public bool IsExpanded\r
{\r
get { return _isExpanded; }\r
set\r
{\r
- if (value == _isExpanded)\r
- return;\r
-\r
_isExpanded = value;\r
- NotifyValueChanged ("SvgSub", SvgSub);\r
\r
- if (_isExpanded)\r
+ if (_isExpanded) {\r
onExpand (this, null);\r
- else\r
- onCollapse (this, null);\r
+ NotifyValueChanged ("SvgSub", "expanded");\r
+ return;\r
+ }\r
\r
- //registerForGraphicUpdate();\r
+ onCollapse (this, null);\r
+ NotifyValueChanged ("SvgSub", "collapsed");\r
}\r
}\r
\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
get { return _isPopped; }\r
set\r
{\r
- if (value == _isPopped)\r
- return;\r
-\r
_isPopped = value;\r
- NotifyValueChanged ("SvgSub", SvgSub);\r
\r
- if (_isPopped)\r
+ if (_isPopped) {\r
onPop (this, null);\r
- else\r
- onUnpop (this, null);\r
+ NotifyValueChanged ("SvgSub", "expanded");\r
+ return;\r
+ }\r
\r
- //registerForGraphicUpdate();\r
+ onUnpop (this, null);\r
+ NotifyValueChanged ("SvgSub", "collapsed");\r
}\r
}\r
\r
public virtual void onPop(object sender, EventArgs e)\r
{\r
+ IGOLibHost tc = TopContainer;\r
+ if (tc == null)\r
+ return;\r
if (Content != null) {\r
Rectangle r = this.ScreenCoordinates (this.Slot);\r
Content.Visible = true;\r
Content.Left = r.Left;\r
Content.Top = r.Bottom;\r
- TopContainer.AddWidget (Content);\r
+ tc.AddWidget (Content);\r
}\r
Pop.Raise (this, e);\r
}\r
public virtual void onUnpop(object sender, EventArgs e)\r
{\r
- TopContainer.DeleteWidget (Content);\r
+ IGOLibHost tc = TopContainer;\r
+ if (tc == null)\r
+ return;\r
+ tc.DeleteWidget (Content);\r
Unpop.Raise (this, e);\r
}\r
\r
[DefaultTemplate("#go.Templates.RadioButton.goml")]\r
public class RadioButton : TemplatedControl\r
{ \r
- Label _caption;\r
- Image _image;\r
+ string caption;\r
+ string image;\r
+ bool isChecked;\r
\r
- public RadioButton() : base()\r
- {\r
- } \r
-\r
- protected override void loadTemplate(GraphicObject template = null)\r
+ #region CTOR\r
+ public RadioButton() : base(){} \r
+ #endregion\r
+ \r
+ #region GraphicObject overrides\r
+ [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true\r
+ public override bool Focusable\r
{\r
- base.loadTemplate (template);\r
-\r
- _caption = this.child.FindByName ("Caption") as Label;//TODO:should use bindings instead\r
- _image = this.child.FindByName ("Image") as Image;\r
- _image.SvgSub = "unchecked";\r
+ get { return base.Focusable; }\r
+ set { base.Focusable = value; }\r
}\r
-\r
[XmlAttributeAttribute()][DefaultValue(-1)]\r
public override int Height {\r
get { return base.Height; }\r
set { base.Height = value; }\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
+ #endregion\r
\r
- [XmlAttributeAttribute][DefaultValue("RadioButton")]\r
+ [XmlAttributeAttribute()][DefaultValue("RadioButton")]\r
public string Caption {\r
- get { return _caption.Text; } \r
- set { \r
- _caption.Text = value; \r
+ get { return caption; } \r
+ set {\r
+ if (caption == value)\r
+ return;\r
+ caption = value; \r
+ NotifyValueChanged ("Caption", caption);\r
}\r
- }\r
+ } \r
+ [XmlAttributeAttribute()][DefaultValue("#go.Images.Icons.radiobutton.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
+ \r
[XmlAttributeAttribute()][DefaultValue(false)]\r
public bool IsChecked\r
{\r
- get { return _image == null ? false :_image.SvgSub == "checked"; }\r
+ get { return isChecked; }\r
set\r
{\r
-// if (value == IsChecked)\r
-// return;\r
-//\r
- if (value)\r
- _image.SvgSub = "checked";\r
+ isChecked = value;\r
+\r
+ NotifyValueChanged ("IsChecked", value);\r
+ if (isChecked)\r
+ NotifyValueChanged ("SvgSub", "checked");\r
else\r
- _image.SvgSub = "unchecked";\r
- \r
- registerForGraphicUpdate();\r
+ NotifyValueChanged ("SvgSub", "unchecked");\r
}\r
}\r
\r
if (pg != null) {\r
foreach (RadioButton c in pg.Children.OfType<RadioButton>())\r
c.IsChecked = (c == this);\r
- }\r
+ } else\r
+ IsChecked = !IsChecked;\r
\r
base.onMouseClick (sender, e);\r
}\r