"string 3"\r
}); */\r
\r
+ public String Hover {\r
+ get { return hoverWidget == null ? "None" : hoverWidget.ToString(); }\r
+ }\r
+ Point mPos;\r
+ public string MousePos {\r
+ get { return mPos.ToString(); }\r
+ }\r
protected override void OnLoad (EventArgs e)\r
{\r
base.OnLoad (e);\r
\r
// TestList [1].Field = "test string";\r
// ValueChanged.Raise(this, new ValueChangeEventArgs ("TestList", TestList));\r
-\r
-\r
+ }\r
+ protected override void OnMouseMove (MouseMoveEventArgs e)\r
+ { \r
+ base.OnMouseMove (e);\r
+ ValueChanged.Raise (this, new ValueChangeEventArgs ("Hover", Hover));\r
+ ValueChanged.Raise (this, new ValueChangeEventArgs ("MousePos", e.Position.ToString()));\r
}\r
\r
protected override void OnUpdateFrame (FrameEventArgs e)\r
TestList.Add ("newly added list item");\r
ValueChanged.Raise(this, new ValueChangeEventArgs ("TestList", TestList));\r
}\r
+\r
[STAThread]\r
static void Main ()\r
{\r
<?xml version="1.0"?>\r
<!--<ListBox Data="{TestList}" Focusable="true"/>-->\r
-<ListBox Data="{TestList}" Background="0,5;0,5;0,5;0,5"\r
- HorizontalAlignment="Center" Width="-1" Height="150" Margin="5">\r
- <Template>\r
- <Border BorderWidth="1" MinimumSize="20;20" Height="{../TemplatedHeight}" Width="{../TemplatedWidth}">\r
- <HorizontalStack Margin="1" Height="{../../TemplatedHeight}" Width="{../../TemplatedWidth}">\r
- <Scroller Name="scroller1" Height="{../../../TemplatedHeight}" Width="{../../../TemplatedWidth}" \r
- Margin="2" VerticalScrolling="true" ScrollY="{../scrollbar1.Scroll}">\r
- <VerticalStack Width="{../../../../TemplatedWidth}" Height="-1" \r
- Name="List" Margin="0" VerticalAlignment="Top" />\r
- </Scroller>\r
- <Scrollbar Name="scrollbar1" Scroll="{../scroller1.ScrollY}" \r
- MaximumScroll="{../scroller1.MaximumScroll}" Orientation="Vertical" \r
- Width="10" Height="{../../../TemplatedHeight}" />\r
- </HorizontalStack>\r
- </Border>\r
- </Template>\r
-</ListBox>\r
-\r
+<VerticalStack Fit="true">\r
+ <Label Text="{MousePos}" Width="-1" Background="DarkGreen"/>\r
+ <Label Text="{Hover}" Width="-1" Background="DarkGreen"/>\r
+ <Button Text="button 1" Width="150"/>\r
+ <ListBox Data="{TestList}" Background="0,5;0,5;0,5;0,5"\r
+ HorizontalAlignment="Center" Width="-1" Height="150" Margin="5">\r
+ <Template>\r
+ <Border BorderWidth="1" MinimumSize="20;20" Height="{../TemplatedHeight}" Width="{../TemplatedWidth}">\r
+ <HorizontalStack Margin="1" Height="{../../TemplatedHeight}" Width="{../../TemplatedWidth}">\r
+ <Scroller Name="scroller1" Height="{../../../TemplatedHeight}" Width="{../../../TemplatedWidth}" \r
+ Margin="2" VerticalScrolling="true" ScrollY="{../scrollbar1.Scroll}">\r
+ <VerticalStack Width="{../../../../TemplatedWidth}" Height="-1" \r
+ Name="List" Margin="0" VerticalAlignment="Top" />\r
+ </Scroller>\r
+ <Scrollbar Name="scrollbar1" Scroll="{../scroller1.ScrollY}" \r
+ MaximumScroll="{../scroller1.MaximumScroll}" Orientation="Vertical" \r
+ Width="10" Height="{../../../TemplatedHeight}" />\r
+ </HorizontalStack>\r
+ </Border>\r
+ </Template>\r
+ </ListBox>\r
+ <Button Text="button 1" Width="0"/>\r
+</VerticalStack>\r
<OutputType>Exe</OutputType>
<RootNamespace>Tests</RootNamespace>
<AssemblyName>Tests</AssemblyName>
- <StartupObject>test.GOLIBTests</StartupObject>
+ <StartupObject>test.GOLIBTest_Listbox</StartupObject>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<OutputPath>..\bin\$(configuration)</OutputPath>
<IntermediateOutputPath>obj\$(configuration)</IntermediateOutputPath>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <SynchReleaseVersion>false</SynchReleaseVersion>
+ <ReleaseVersion>0.2</ReleaseVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>..\bin\Debug</OutputPath>
#region Mouse handling\r
public virtual bool MouseIsIn(Point m)\r
{\r
- return Visible ? ScreenCoordinates(Slot).ContainsOrIsEqual (m) : false; \r
+ if (!Visible) \r
+ return false;\r
+ if (ScreenCoordinates (Slot).ContainsOrIsEqual (m)) {\r
+ Scroller scr = Parent as Scroller;\r
+ if (scr == null)\r
+ return true;\r
+ return scr.MouseIsIn (scr.savedMousePos);\r
+ }\r
+ return false; \r
}\r
public virtual void checkHoverWidget(MouseMoveEventArgs e)\r
{\r
#endregion\r
\r
#region Mouse handling\r
+ internal Point savedMousePos;\r
public override bool MouseIsIn (Point m)\r
{ \r
// Debug.WriteLine ("Mouse in scroller: {0} scr coord:{1} mouse:{2}",\r
}\r
public override void checkHoverWidget (MouseMoveEventArgs e)\r
{\r
+ savedMousePos = e.Position;\r
Point m = e.Position - new Point ((int)ScrollX, (int)ScrollY);\r
base.checkHoverWidget (new MouseMoveEventArgs(m.X,m.Y,e.XDelta,e.YDelta));\r
}\r
if (HorizontalScrolling )\r
ScrollX -= e.Delta * ScrollSpeed;\r
}\r
+ public override void onMouseMove (object sender, MouseMoveEventArgs e)\r
+ {\r
+ savedMousePos.X += e.XDelta;\r
+ savedMousePos.Y += e.YDelta;\r
+ base.onMouseMove (sender, new MouseMoveEventArgs(savedMousePos.X,savedMousePos.Y,e.XDelta,e.YDelta));\r
+ }\r
#endregion\r
\r
public override Rectangle ContextCoordinates (Rectangle r)\r