]> O.S.I.I.S - jp/crow.git/commitdiff
resolve in scroller mouse handling bug, check if parent is scroller if mouse is in...
authorjpbruyere <jp.bruyere@hotmail.com>
Mon, 25 Jan 2016 13:26:47 +0000 (14:26 +0100)
committerjpbruyere <jp.bruyere@hotmail.com>
Mon, 25 Jan 2016 13:26:47 +0000 (14:26 +0100)
Tests/GOLIBTest_Listbox.cs
Tests/Interfaces/test_Listbox.goml
Tests/Tests.csproj
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/Scroller.cs

index b3cda6c575c5476dab705b31859a06a5bb0f2187..1d6b2f38ecddef1961eab1e25c0c8642b118c111 100644 (file)
@@ -71,6 +71,13 @@ namespace test
                                "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
@@ -81,8 +88,12 @@ namespace test
 \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
@@ -94,6 +105,7 @@ namespace test
                        TestList.Add ("newly added list item");\r
                        ValueChanged.Raise(this, new ValueChangeEventArgs ("TestList", TestList));\r
                }\r
+\r
                [STAThread]\r
                static void Main ()\r
                {\r
index b77ffcecab740adfca4d1bdcd1255f1265d62124..342f29093c811846b3a8bacafb67fe5d7de676d8 100755 (executable)
@@ -1,20 +1,25 @@
 <?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
index 14c98c01af0c5f3cf803a578504457c9e4b37138..4b4b8d3467f28653f4c5bb76a67adf17ecd0e732 100644 (file)
@@ -8,12 +8,12 @@
     <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>
index b5884d5e34e3e88fb181772e2c99daca510612ba..e03a9d4f4f28ad554c6bd8a5d973dc45c6267d8f 100644 (file)
@@ -770,7 +770,15 @@ namespace go
                #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
index 29c3b5061994dac68a197012e2e21e644a3bf7ea..2f21870a8c7874b9af90e9821791249a19e8cb37 100644 (file)
@@ -154,6 +154,7 @@ namespace go
                #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
@@ -164,6 +165,7 @@ namespace go
                }\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
@@ -181,6 +183,12 @@ namespace go
             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