int frameCpt = 0;
int idx = 0;
string[] testFiles = {
+ "testPopper.goml",
+ "testTextBox.crow",
"testColorList.crow",
"0.crow",
"testExpandable.goml",
// "testButton2.crow",
"test2WayBinding.crow",
"fps.goml",
- "testTextBox.crow",
"testImage.crow",
"test4.goml",
"2.crow",
"testWindow3.goml",
"testWindow.goml",
"testCheckbox.goml",
- "testPopper.goml",
"testLabel.goml",
"testAll.goml",
// "testSpinner.goml",
- "testRadioButton2.goml",
+// "testRadioButton2.goml",
"testContainer.goml",
"testRadioButton.goml",
"testMsgBox.goml",
- "testMeter.goml",
+// "testMeter.goml",
};
#region FPS
public string update = "";
public string drawing = "";
public string layouting = "";
+ public Alignment alignment = Alignment.Left;
#endregion
public int intValue = 25;
return;
intValue = Convert.ToInt32(e.NewValue);
}
+ void change_alignment(object sender, EventArgs e){
+ RadioButton rb = sender as RadioButton;
+ if (rb == null)
+ return;
+ NotifyValueChanged ("alignment", Enum.Parse(typeof(Alignment), rb.Caption));
+ }
IList<Color> testList = null;
public IList<Color> TestList {
set{
<?xml version="1.0"?>
-<Popper Caption="TestPopper" Width="100" Background="DimGray">
- <Border Fit="True" Background="ArmyGreen">
-<!-- <Image Fit="true" Path="#go.Images.Icons.tetra.png" Margin="10"/>-->
- <VerticalStack Fit="true" Margin="10" Background="CornflowerBlue">
- <CheckBox Name="chk1" Background="Red"/>
- <CheckBox Name="chk2" IsChecked="true"/>
- <CheckBox Name="chk3"/>
- <CheckBox Name="chk4"/>
- <HorizontalStack Fit="true" Margin="20">
- <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
- <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center" Background="AoEnglish"/>
- </HorizontalStack>
- </VerticalStack>
+<VerticalStack>
+ <Border Fit="true" Margin="10">
+ <VerticalStack Width="150" Height="-1">
+ <RadioButton Width="0" Caption="Left" IsChecked="true" Checked="change_alignment"/>
+ <RadioButton Width="0" Caption="Right" Checked="change_alignment"/>
+ <RadioButton Width="0" Caption="Top" Checked="change_alignment"/>
+ <RadioButton Width="0" Caption="Bottom" Checked="change_alignment"/>
+ </VerticalStack>
</Border>
-</Popper>
+ <Popper Caption="TestPopper" Width="100" Background="DimGray" PopDirection="{alignment}">
+ <Border Fit="True" Background="ArmyGreen">
+ <!-- <Image Fit="true" Path="#go.Images.Icons.tetra.png" Margin="10"/>-->
+ <VerticalStack Fit="true" Margin="10" Background="CornflowerBlue">
+ <CheckBox Name="chk1" Background="Red"/>
+ <CheckBox Name="chk2" IsChecked="true"/>
+ <CheckBox Name="chk3"/>
+ <CheckBox Name="chk4"/>
+ <HorizontalStack Fit="true" Margin="20">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center" Background="AoEnglish"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </Border>
+ </Popper>
+</VerticalStack>
}
}
- void _content_MouseLeave (object sender, MouseMoveEventArgs e)
- {
- IsPopped = false;
- }
-
void _content_LayoutChanged (object sender, LayoutingEventArgs e)
{
ILayoutable tc = Content.Parent as ILayoutable;
return;
Rectangle r = this.ScreenCoordinates (this.Slot);
if (e.LayoutType.HasFlag(LayoutingType.Width)) {
- if (Content.Slot.Width < tc.ClientRectangle.Width) {
- if (r.Left + Content.Slot.Width > tc.ClientRectangle.Right)
- Content.Left = tc.ClientRectangle.Right - Content.Slot.Width;
+ if (popDirection.HasFlag (Alignment.Right)) {
+ if (r.Right + Content.Slot.Width > tc.ClientRectangle.Right)
+ Content.Left = r.Left - Content.Slot.Width;
+ else
+ Content.Left = r.Right;
+ } else if (popDirection.HasFlag (Alignment.Left)) {
+ if (r.Left - Content.Slot.Width < tc.ClientRectangle.Left)
+ Content.Left = r.Right;
else
- Content.Left = r.Left;
- } else
- Content.Left = 0;
+ Content.Left = r.Left - Content.Slot.Width;
+ } else {
+ if (Content.Slot.Width < tc.ClientRectangle.Width) {
+ if (r.Left + Content.Slot.Width > tc.ClientRectangle.Right)
+ Content.Left = tc.ClientRectangle.Right - Content.Slot.Width;
+ else
+ Content.Left = r.Left;
+ } else
+ Content.Left = 0;
+ }
}
if (e.LayoutType.HasFlag(LayoutingType.Height)) {
if (Content.Slot.Height < tc.ClientRectangle.Height) {
- if (r.Bottom + Content.Slot.Height > tc.ClientRectangle.Bottom)
- Content.Top = r.Top - Content.Slot.Height;
- else
- Content.Top = r.Bottom;
+ if (PopDirection.HasFlag (Alignment.Bottom)) {
+ if (r.Bottom + Content.Slot.Height > tc.ClientRectangle.Bottom)
+ Content.Top = r.Top - Content.Slot.Height;
+ else
+ Content.Top = r.Bottom;
+ } else if (PopDirection.HasFlag (Alignment.Top)) {
+ if (r.Top - Content.Slot.Height < tc.ClientRectangle.Top)
+ Content.Top = r.Bottom;
+ else
+ Content.Top = r.Top - Content.Slot.Height;
+ } else
+ Content.Top = r.Top;
}else
Content.Top = 0;
}
}
+
+ #region GraphicObject overrides
+ [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true
+ public override bool Focusable
+ {
+ get { return base.Focusable; }
+ set { base.Focusable = value; }
+ }
public override void ClearBinding ()
{
//ensure popped window is cleared
Content.ResolveBindings ();
}
- [XmlAttributeAttribute()][DefaultValue(true)]//overiden to get default to true
- public override bool Focusable
+ public override void onMouseClick (object sender, MouseButtonEventArgs e)
{
- get { return base.Focusable; }
- set { base.Focusable = value; }
+ IsPopped = !IsPopped;
+ base.onMouseClick (sender, e);
}
- [XmlAttributeAttribute()][DefaultValue(-1)]
- public override int Height {
- get { return base.Height; }
- set { base.Height = value; }
+ public override void onMouseLeave (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseLeave (sender, e);
+ IsPopped = false;
}
+ #endregion
+ #region Public Properties
[XmlAttributeAttribute()][DefaultValue("Popper")]
public string Caption {
get { return caption; }
NotifyValueChanged ("Image", image);
}
}
-
[XmlAttributeAttribute()][DefaultValue(false)]
public bool IsPopped
{
NotifyValueChanged ("SvgSub", "collapsed");
}
}
+ Alignment popDirection;
+ [XmlAttributeAttribute()][DefaultValue(Alignment.Bottom)]
+ public virtual Alignment PopDirection {
+ get { return popDirection; }
+ set {
+ if (popDirection == value)
+ return;
+ popDirection = value;
+ NotifyValueChanged ("PopDirection", popDirection);
+ }
+ }
+ #endregion
public virtual void onPop(object sender, EventArgs e)
{
Content.Visible = false;
Unpop.Raise (this, e);
}
-
- public override void onMouseClick (object sender, MouseButtonEventArgs e)
- {
- IsPopped = !IsPopped;
- base.onMouseClick (sender, e);
- }
}
}