]> O.S.I.I.S - jp/crow.git/commitdiff
- simplify value change with only actual value, not the old one
authorjpbruyere <jp.bruyere@hotmail.com>
Mon, 22 Jun 2015 10:48:11 +0000 (12:48 +0200)
committerjpbruyere <jp.bruyere@hotmail.com>
Mon, 22 Jun 2015 10:48:11 +0000 (12:48 +0200)
- First tests with Scrollbar

19 files changed:
GOLib.csproj
Templates/Scrollbar.goml [new file with mode: 0755]
Tests/GOLIBTest_4.cs
Tests/GOLIBTest_Container.cs
Tests/GOLIBTest_Label.cs
Tests/GOLIBTest_Scrollbar.cs [new file with mode: 0644]
Tests/GOLIBTest_Window.cs
Tests/GOLIBTest_fps.cs
Tests/Interfaces/test4.goml
Tests/Interfaces/testScrollbar.goml [new file with mode: 0755]
Tests/Tests.csproj
src/CompilerServices/CompilerServices.cs
src/GraphicObjects/Checkbox.cs
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/NumericControl.cs
src/GraphicObjects/Scrollbar.cs [new file with mode: 0644]
src/GraphicObjects/Slider.cs
src/GraphicObjects/TextBox.cs
src/TextChangeEventArgs.cs

index ddf23415d7bc3c781a21a07251fda9dca0c2ee2a..c119407bde6b14e05c36795bcfd9f75af3a4ffd2 100644 (file)
     <Compile Include="src\GraphicObjects\PrivateContainer.cs" />\r
     <Compile Include="src\GraphicObjects\TemplatedContainer.cs" />\r
     <Compile Include="src\GraphicObjects\Popper.cs" />\r
+    <Compile Include="src\GraphicObjects\Scrollbar.cs" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Reference Include="System" />\r
     <EmbeddedResource Include="Templates\Window.goml" />\r
     <EmbeddedResource Include="Images\Icons\tetra.png" />\r
     <EmbeddedResource Include="Images\Icons\exit.svg" />\r
+    <EmbeddedResource Include="Templates\Scrollbar.goml" />\r
   </ItemGroup>\r
 </Project>\r
diff --git a/Templates/Scrollbar.goml b/Templates/Scrollbar.goml
new file mode 100755 (executable)
index 0000000..1e3fa51
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>\r
+<Border BorderWidth="1" BorderColor="LightGray">\r
+       <GenericStack Orientation="{Orientation}" Width="0" Height="0">\r
+               <Button Width="12" Height="12" MouseClick="onScrollBack">\r
+                       <Image Margin="1" Path="#go.Images.Icons.updown.svg" SvgSub="up"/>\r
+               </Button>\r
+               <Slider Name="Slider" Width="{Width}" Height="{Height}" Orientation="{Orientation}"/>\r
+               <Button Width="12" Height="12" MouseClick="onScrollForth">\r
+                       <Image Margin="1" Path="#go.Images.Icons.updown.svg" SvgSub="down"/>\r
+               </Button>\r
+       </GenericStack>\r
+</Border>
\ No newline at end of file
index c283b2e1c424fb4773bc7da93ff606109aed6e0d..d9e899b1890fe218c021ef2324ec42169b9003e4 100644 (file)
@@ -40,18 +40,17 @@ namespace test
                                if (_fps == value)\r
                                        return;\r
 \r
-                               int oldVal = _fps;\r
                                _fps = value;\r
 \r
                                if (_fps > fpsMax) {\r
                                        fpsMax = _fps;\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax));\r
                                } else if (_fps < fpsMin) {\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin, _fps));\r
                                        fpsMin = _fps;\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin));\r
                                }\r
 \r
-                               ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
+                               ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", _fps));\r
                        }\r
                }\r
 \r
@@ -139,7 +138,7 @@ namespace test
                                if (i > 50)\r
                                        break;\r
                        }\r
-                       ValueChanged.Raise(this, new ValueChangeEventArgs ("TestList", null, TestList));\r
+                       ValueChanged.Raise(this, new ValueChangeEventArgs ("TestList", TestList));\r
                }\r
                void pFps_mousemove(object sender, MouseMoveEventArgs e)\r
                {\r
index 79ed43b60bd4c4ddf1a7155aa0d9cb31fb4921de..3e54e870191dd01497eaed85e512a11c21e502d2 100644 (file)
@@ -27,21 +27,18 @@ namespace test2
                                if (_fps == value)\r
                                        return;\r
                                \r
-                               int oldVal = _fps;\r
                                _fps = value;\r
 \r
                                if (_fps > fpsMax) {\r
                                        fpsMax = _fps;\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax));\r
                                } else if (_fps < fpsMin) {\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin, _fps));\r
                                        fpsMin = _fps;\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin));\r
                                }\r
 \r
                                if (ValueChanged != null)\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
-\r
-                               //ValueChanged.Raise (this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", _fps));\r
                        }\r
                }\r
                string name = "testName";\r
index 6a3feaadbed64f1e085033cb51f2e0c48d329ee9..ca9c0afdc189e5f49a6abf74a8c1c709e147e278 100644 (file)
@@ -27,21 +27,18 @@ namespace test
                                if (_fps == value)\r
                                        return;\r
                                \r
-                               int oldVal = _fps;\r
                                _fps = value;\r
 \r
                                if (_fps > fpsMax) {\r
                                        fpsMax = _fps;\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax));\r
                                } else if (_fps < fpsMin) {\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin, _fps));\r
                                        fpsMin = _fps;\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin));\r
                                }\r
 \r
                                if (ValueChanged != null)\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
-\r
-                               //ValueChanged.Raise (this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", _fps));\r
                        }\r
                }\r
                string name = "testName";\r
diff --git a/Tests/GOLIBTest_Scrollbar.cs b/Tests/GOLIBTest_Scrollbar.cs
new file mode 100644 (file)
index 0000000..67572d5
--- /dev/null
@@ -0,0 +1,56 @@
+#define MONO_CAIRO_DEBUG_DISPOSE\r
+#define DEBUG_CLIP_RECTANGLE\r
+\r
+\r
+using System;\r
+using System.Runtime.InteropServices;\r
+using OpenTK;\r
+using OpenTK.Graphics.OpenGL;\r
+using OpenTK.Input;\r
+\r
+using System.Diagnostics;\r
+\r
+//using GGL;\r
+using go;\r
+using System.Threading;\r
+\r
+\r
+namespace test2\r
+{\r
+       class GOLIBTest_Scrollbar : OpenTKGameWindow\r
+       {\r
+               public GOLIBTest_Scrollbar ()\r
+                       : base(1024, 600,"test")\r
+               {}\r
+\r
+               Group g;\r
+\r
+               protected override void OnLoad (EventArgs e)\r
+               {\r
+                       base.OnLoad (e);\r
+                       LoadInterface("Interfaces/testScrollbar.goml", out g);\r
+\r
+               }\r
+               protected override void OnRenderFrame (FrameEventArgs e)\r
+               {\r
+                       GL.Clear (ClearBufferMask.ColorBufferBit);\r
+                       base.OnRenderFrame (e);\r
+                       SwapBuffers ();\r
+               }\r
+\r
+               protected override void OnUpdateFrame (FrameEventArgs e)\r
+               {\r
+                       base.OnUpdateFrame (e);\r
+               }\r
+\r
+               [STAThread]\r
+               static void Main ()\r
+               {\r
+                       Console.WriteLine ("starting example");\r
+\r
+                       using (GOLIBTest_Scrollbar win = new GOLIBTest_Scrollbar( )) {\r
+                               win.Run (30.0);\r
+                       }\r
+               }\r
+       }\r
+}
\ No newline at end of file
index cb9daa497711a4cfdcc74d8ef11cf84b9eb96732..d998d8589d3f50e4966d32c849646d0d60b0a088 100644 (file)
@@ -27,21 +27,18 @@ namespace test
                                if (_fps == value)\r
                                        return;\r
                                \r
-                               int oldVal = _fps;\r
                                _fps = value;\r
 \r
                                if (_fps > fpsMax) {\r
                                        fpsMax = _fps;\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax));\r
                                } else if (_fps < fpsMin) {\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin, _fps));\r
                                        fpsMin = _fps;\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin));\r
                                }\r
 \r
                                if (ValueChanged != null)\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
-\r
-                               //ValueChanged.Raise (this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", _fps));\r
                        }\r
                }\r
                string name = "testName";\r
index 5142e7c90961a397d6fd6bec4fde3f322f1b781b..e2bf3ef79be50a23b31549264325eaf1afcd02d9 100644 (file)
@@ -27,21 +27,18 @@ namespace test
                                if (_fps == value)\r
                                        return;\r
                                \r
-                               int oldVal = _fps;\r
                                _fps = value;\r
 \r
                                if (_fps > fpsMax) {\r
                                        fpsMax = _fps;\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax));\r
                                } else if (_fps < fpsMin) {\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin, _fps));\r
                                        fpsMin = _fps;\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin));\r
                                }\r
 \r
                                if (ValueChanged != null)\r
-                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
-\r
-                               //ValueChanged.Raise (this, new ValueChangeEventArgs ("fps", oldVal, _fps));\r
+                                       ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", _fps));\r
                        }\r
                }\r
                string name = "testName";\r
index 646599c92eae7d1e0a1748452d85bc1ece0e6802..d0e644e9ce2b237476e7b42917dc6f571a860150 100755 (executable)
@@ -12,6 +12,7 @@
                <HorizontalStack Name="hs0"\r
                        WidgetSpacing="1" \r
                        VerticalAlignment="Top">\r
+                       <Slider Orientation="Vertical" Height="300" Width="10" Background="Transparent" />\r
                        <VerticalStack Name="vs1" Spacing="5">\r
                                <Slider Height="10" Width="300" BorderWidth="1" Background="Transparent" />\r
                                <Label Name="labMouse" Text="MousePos"/>\r
diff --git a/Tests/Interfaces/testScrollbar.goml b/Tests/Interfaces/testScrollbar.goml
new file mode 100755 (executable)
index 0000000..aa70255
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>\r
+<Group Name="TopContainer" Width="400" Height="400"\r
+       Focusable="True" Background="Gray">\r
+\r
+       <Scrollbar Orientation="Vertical" Width="16"></Scrollbar>\r
+</Group>
\ No newline at end of file
index 57e19ad4f408d183e7abd9684da91b4e066c4973..a137d53b35567f611cbb6668c377267ac6f7a8c3 100644 (file)
@@ -8,7 +8,7 @@
     <OutputType>Exe</OutputType>
     <RootNamespace>Tests</RootNamespace>
     <AssemblyName>Tests</AssemblyName>
-    <StartupObject>test.GOLIBTest_4</StartupObject>
+    <StartupObject>test2.GOLIBTest_Scrollbar</StartupObject>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <OutputPath>..\bin\$(configuration)</OutputPath>
     <IntermediateOutputPath>obj\$(configuration)</IntermediateOutputPath>
@@ -60,6 +60,7 @@
     <Compile Include="GOLIBTest_Label.cs" />
     <Compile Include="GOLIBTest_Window.cs" />
     <Compile Include="GOLIBTest_Container.cs" />
+    <Compile Include="GOLIBTest_Scrollbar.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="image\u.svg">
     <None Include="Interfaces\testContainer.goml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="Interfaces\testScrollbar.goml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Interfaces\" />
index ae4b700ad115e86ab300514cc6c5fd4e295ae520..7bd9180576cfa13240cb74d01698aeb0e07bd7c3 100644 (file)
@@ -270,8 +270,10 @@ namespace go
                                
                                if (!srcValueType.IsValueType)
                                        il.Emit(OpCodes.Castclass, srcValueType);
+                               else if (piTarget.PropertyType != srcValueType)
+                                       il.Emit(OpCodes.Callvirt, GetConvertMethod( piTarget.PropertyType ));
                                else
-                                       il.Emit( OpCodes.Callvirt, GetConvertMethod( piTarget.PropertyType ));
+                                       il.Emit(OpCodes.Unbox_Any, piTarget.PropertyType);
                        //      if (piTarget.PropertyType == typeof(string))
 //                             else if ( srcValueType != piTarget.PropertyType)
 //                                     
index 30db3849ce88c07ef24e212b311078609824fe9d..49532820c55f2ebbe1ed88aa1528f7dcca454230 100644 (file)
@@ -25,10 +25,7 @@ namespace go
                public Checkbox() : base()\r
                {\r
                }       \r
-               protected override void loadDefaultValues ()\r
-               {\r
-                       base.loadDefaultValues ();\r
-               }\r
+\r
                protected override void loadTemplate(GraphicObject template = null)\r
                {                       \r
                        base.loadTemplate (template);\r
@@ -71,10 +68,5 @@ namespace go
                        IsChecked = !IsChecked;\r
                        base.onMouseClick (sender, e);\r
                }\r
-\r
-               public override void ReadXml (System.Xml.XmlReader reader)\r
-               {\r
-                       base.ReadXml (reader);\r
-               }\r
        }\r
 }\r
index 0944703f9bf69919ffa3ebe1861586a944951554..5b896b539ac444b747d26f5a72fd574e68a11c82 100644 (file)
@@ -19,8 +19,16 @@ using System.Xml;
 \r
 namespace go\r
 {\r
-       public class GraphicObject : IXmlSerializable, ILayoutable\r
+       public class GraphicObject : IXmlSerializable, ILayoutable, IValueChange\r
        {\r
+               #region IValueChange implementation\r
+               public event EventHandler<ValueChangeEventArgs> ValueChanged;\r
+               void NotifyValueChanged(string MemberName, object _value)\r
+               {\r
+                       ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));                 \r
+               }\r
+               #endregion\r
+\r
                #region CTOR\r
                public GraphicObject ()\r
                {\r
@@ -115,7 +123,12 @@ namespace go
                [XmlAttributeAttribute()][DefaultValue("unamed")]\r
                public virtual string Name {\r
                        get { return _name; }\r
-                       set { _name = value; }\r
+                       set { \r
+                               if (_name == value)\r
+                                       return;\r
+                               _name = value; \r
+                               NotifyValueChanged("Name", _verticalAlignment);\r
+                       }\r
                }\r
                [XmlAttributeAttribute()][DefaultValue(VerticalAlignment.Center)]\r
                public virtual VerticalAlignment VerticalAlignment {\r
@@ -125,14 +138,19 @@ namespace go
                                        return;\r
 \r
                                _verticalAlignment = value; \r
-\r
-//                             if (Top > 0)\r
+                               NotifyValueChanged("VerticalAlignment", _verticalAlignment);\r
                        }\r
                }\r
                [XmlAttributeAttribute()][DefaultValue(HorizontalAlignment.Center)]\r
                public virtual HorizontalAlignment HorizontalAlignment {\r
                        get { return _horizontalAlignment; }\r
-                       set { _horizontalAlignment = value; }\r
+                       set { \r
+                               if (_horizontalAlignment == value)\r
+                                       return;\r
+\r
+                               _horizontalAlignment = value; \r
+                               NotifyValueChanged("HorizontalAlignment", _horizontalAlignment);\r
+                       }\r
                }\r
                [XmlAttributeAttribute()][DefaultValue(0)]\r
                public virtual int Left {\r
@@ -142,7 +160,7 @@ namespace go
                                        return;\r
 \r
                                Bounds.X = value;\r
-\r
+                               NotifyValueChanged ("Left", Bounds.X);\r
                                this.RegisterForLayouting ((int)LayoutingType.X);\r
                        }\r
                }\r
@@ -154,7 +172,7 @@ namespace go
                                        return;\r
 \r
                                Bounds.Y = value;\r
-\r
+                               NotifyValueChanged ("Top", Bounds.Y);\r
                                this.RegisterForLayouting ((int)LayoutingType.Y);\r
                        }\r
                }\r
@@ -166,7 +184,7 @@ namespace go
                                        return;\r
 \r
                                Bounds.Width = value;\r
-\r
+                               NotifyValueChanged ("Width", Bounds.Width);\r
                                this.RegisterForLayouting ((int)LayoutingType.Width);\r
                        }\r
                }\r
@@ -178,7 +196,7 @@ namespace go
                                        return;\r
 \r
                                Bounds.Height = value;\r
-\r
+                               NotifyValueChanged ("Height", Bounds.Height);\r
                                this.RegisterForLayouting ((int)LayoutingType.Height);\r
                        }\r
                }\r
index 247b4e9264d86e4e5533d6f66a3965f56cfbbd28..c6d76bcd47795ea3dd53d85742bc12b8ba054e18 100644 (file)
@@ -90,8 +90,6 @@ namespace go
                                if (value == _actualValue)
                                        return;
 
-                               int oldV = Convert.ToInt32(_actualValue);
-
                                if (value < minValue)
                                        _actualValue = minValue;
                                else if (value > maxValue)
@@ -99,7 +97,7 @@ namespace go
                                else                    
                                        _actualValue = value;
 
-                               onValueChanged(this,new ValueChangeEventArgs("Value", oldV, Convert.ToInt32( _actualValue)));
+                               onValueChanged(this,new ValueChangeEventArgs("Value", Convert.ToInt32( _actualValue)));
                                registerForGraphicUpdate();
                        }
                }
diff --git a/src/GraphicObjects/Scrollbar.cs b/src/GraphicObjects/Scrollbar.cs
new file mode 100644 (file)
index 0000000..ca17393
--- /dev/null
@@ -0,0 +1,59 @@
+using System;\r
+\r
+\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using System.Text;\r
+//using OpenTK.Graphics.OpenGL;\r
+\r
+using Cairo;\r
+\r
+using winColors = System.Drawing.Color;\r
+using System.Diagnostics;\r
+using System.Xml.Serialization;\r
+using OpenTK.Input;\r
+using System.ComponentModel;\r
+\r
+namespace go\r
+{\r
+       [DefaultTemplate("#go.Templates.Scrollbar.goml")]\r
+       public class Scrollbar : TemplatedControl, IValueChange\r
+       {\r
+               #region IValueChange implementation\r
+               public event EventHandler<ValueChangeEventArgs> ValueChanged;\r
+               #endregion\r
+\r
+               Orientation _orientation;\r
+               Slider _slider;\r
+\r
+               public Scrollbar() : base()\r
+               {\r
+               }       \r
+\r
+               protected override void loadTemplate(GraphicObject template = null)\r
+               {                       \r
+                       base.loadTemplate (template);\r
+                       _slider = this.child.FindByName ("Slider") as Slider;\r
+               }\r
+\r
+               [XmlAttributeAttribute()][DefaultValue(Orientation.Vertical)]\r
+               public virtual Orientation Orientation\r
+               {\r
+                       get { return _orientation; }\r
+                       set {                           \r
+                               if (_orientation == value)\r
+                                       return;\r
+                               _orientation = value;\r
+                               ValueChanged.Raise(this, new ValueChangeEventArgs ("Orientation", _orientation));\r
+                       }\r
+               }\r
+               public void onScrollBack (object sender, MouseButtonEventArgs e)\r
+               {\r
+                       _slider.Value -= _slider.LargeIncrement;\r
+               }\r
+               public void onScrollForth (object sender, MouseButtonEventArgs e)\r
+               {\r
+                       _slider.Value += _slider.LargeIncrement;\r
+               }\r
+       }\r
+}\r
index 25da2241c9e108cf16984966edb3dc03b90ceb94..4bf41d526ff97bc8d59505b25d041239ae1a1ed0 100644 (file)
@@ -31,8 +31,9 @@ namespace go
 \r
                #region private fields\r
         Rectangle cursor;\r
-               int _cursorWidth;\r
+               int _cursorSize;\r
                Color _cursorColor;\r
+               Orientation _orientation;\r
                bool holdCursor = false;\r
                #endregion\r
 \r
@@ -48,13 +49,19 @@ namespace go
                        }\r
                }\r
                [XmlAttributeAttribute()][DefaultValue(20)]\r
-               public virtual int CursorWidth {\r
-                       get { return _cursorWidth; }\r
+               public virtual int CursorSize {\r
+                       get { return _cursorSize; }\r
                        set {\r
-                               _cursorWidth = value;\r
+                               _cursorSize = value;\r
                                registerForGraphicUpdate ();\r
                        }\r
                }\r
+               [XmlAttributeAttribute()][DefaultValue(Orientation.Horizontal)]\r
+               public virtual Orientation Orientation\r
+               {\r
+                       get { return _orientation; }\r
+                       set { _orientation = value; }\r
+               }\r
                #endregion\r
 \r
                #region GraphicObject Overrides\r
@@ -80,8 +87,15 @@ namespace go
                        base.onDraw (gr);\r
 \r
                        Rectangle r = ClientRectangle;\r
-                       PointD pStart = r.TopLeft + new Point(cursor.Width/2, r.Height / 2);\r
-                       PointD pEnd = r.TopRight + new Point(-cursor.Width/2, r.Height / 2);\r
+                       PointD pStart;\r
+                       PointD pEnd;\r
+                       if (_orientation == Orientation.Horizontal) {\r
+                               pStart = r.TopLeft + new Point (_cursorSize / 2, r.Height / 2);\r
+                               pEnd = r.TopRight + new Point (-_cursorSize / 2, r.Height / 2);\r
+                       } else {\r
+                               pStart = r.TopLeft + new Point (r.Width / 2, _cursorSize / 2);\r
+                               pEnd = r.BottomLeft + new Point (r.Width / 2,- _cursorSize / 2);\r
+                       }\r
 \r
                        DrawGraduations (gr, pStart,pEnd);\r
 \r
@@ -110,15 +124,21 @@ namespace go
         void computeCursorPosition()\r
         {            \r
             Rectangle r = ClientRectangle;\r
-\r
-                       cursor = new Rectangle(new Size(_cursorWidth,(int) (r.Height)));\r
-\r
-                       PointD p1 = r.TopLeft + new Point(cursor.Width/2, r.Height / 2);\r
-\r
-                       unity = (double)(r.Width - cursor.Width) / (Maximum - Minimum);\r
-\r
-                       cursor.TopLeft = new Point(r.Left + (int)(Value * unity),\r
-                                        (int)(p1.Y - cursor.Height / 2));  \r
+                       PointD p1; \r
+\r
+                       if (_orientation == Orientation.Horizontal) {\r
+                               cursor = new Rectangle (new Size (_cursorSize, (int)(r.Height)));\r
+                               p1 = r.TopLeft + new Point (_cursorSize / 2, r.Height / 2);\r
+                               unity = (double)(r.Width - _cursorSize) / (Maximum - Minimum);\r
+                               cursor.TopLeft = new Point (r.Left + (int)(Value * unity),\r
+                                       (int)(p1.Y - cursor.Height / 2));\r
+                       } else {\r
+                               cursor = new Rectangle (new Size ((int)(r.Width), _cursorSize));\r
+                               p1 = r.TopLeft + new Point (r.Width / 2, _cursorSize / 2);\r
+                               unity = (double)(r.Height - _cursorSize) / (Maximum - Minimum);\r
+                               cursor.TopLeft = new Point ((int)(p1.X - r.Width / 2),\r
+                                       r.Top + (int)(Value * unity));                          \r
+                       }\r
         }\r
         \r
                #region mouse handling\r
@@ -126,13 +146,20 @@ namespace go
                {\r
                        base.onMouseButtonDown (sender, e);\r
 \r
-                       Rectangle cursInScreenCoord = ScreenCoordinates(cursor+Slot.Position);\r
-                       if (cursInScreenCoord.ContainsOrIsEqual(e.Position))\r
+                       Rectangle cursInScreenCoord = ScreenCoordinates (cursor + Slot.Position);\r
+                       if (cursInScreenCoord.ContainsOrIsEqual (e.Position))\r
                                holdCursor = true;\r
-                       else if (e.Position.X < cursInScreenCoord.Left)\r
-                               Value -= LargeIncrement;\r
-            else\r
-                               Value += LargeIncrement;\r
+                       else if (_orientation == Orientation.Horizontal) {\r
+                               if (e.Position.X < cursInScreenCoord.Left)\r
+                                       Value -= LargeIncrement;\r
+                               else\r
+                                       Value += LargeIncrement;\r
+                       } else {\r
+                               if (e.Position.Y < cursInScreenCoord.Top)\r
+                                       Value -= LargeIncrement;\r
+                               else\r
+                                       Value += LargeIncrement;\r
+                       }\r
                }\r
                public override void onMouseButtonUp (object sender, OpenTK.Input.MouseButtonEventArgs e)\r
                {\r
@@ -142,8 +169,12 @@ namespace go
                }\r
                public override void onMouseMove (object sender, OpenTK.Input.MouseMoveEventArgs e)\r
                {\r
-                       if (holdCursor)\r
-                               Value += (double)e.XDelta / unity;\r
+                       if (holdCursor) {\r
+                               if (_orientation == Orientation.Horizontal)\r
+                                       Value += (double)e.XDelta / unity;\r
+                               else\r
+                                       Value += (double)e.YDelta / unity;\r
+                       }\r
                        \r
                        base.onMouseMove (sender, e);\r
                }\r
index 7ba10fe858982bbddfe66293acfc599afdd91d57..65bfacb7744698c67cdf4cdd071b3f73076a2470 100644 (file)
@@ -69,7 +69,7 @@ namespace go
 \r
                public event EventHandler<TextChangeEventArgs> TextChanged;\r
 \r
-               public virtual void onTextChanged(Object sender, TextChangeEventArgs e)\r
+               public virtual void OnTextChanged(Object sender, TextChangeEventArgs e)\r
                {\r
                        TextChanged.Raise (this, e);\r
                }\r
@@ -102,7 +102,7 @@ namespace go
                                break;\r
                        case Key.Enter:\r
                        case Key.KeypadEnter:\r
-                               onTextChanged(this,new TextChangeEventArgs(Text));\r
+                               OnTextChanged(this,new TextChangeEventArgs(Text));\r
                                break;\r
                        case Key.Escape:\r
                                Text = "";\r
index 726c9ae9ad3127973d1732a37f8b7cfac7a70340..532d72f0fc4e9903643a85ca6d1d85d857e1917c 100644 (file)
@@ -5,14 +5,12 @@ namespace go
        public class ValueChangeEventArgs: EventArgs
        {
                public string MemberName;
-               public object OldValue;
                public object NewValue;
 
 
-               public ValueChangeEventArgs (string _memberName, object _oldValue, object _newValue) : base()
+               public ValueChangeEventArgs (string _memberName, object _newValue) : base()
                {
                        MemberName = _memberName;
-                       OldValue = _oldValue;
                        NewValue = _newValue;
                }
        }