]> O.S.I.I.S - jp/crow.git/commitdiff
* OpenTK:
authorjpbruyere <jp.bruyere@hotmail.com>
Sun, 21 Jun 2015 13:39:58 +0000 (15:39 +0200)
committerjpbruyere <jp.bruyere@hotmail.com>
Sun, 21 Jun 2015 13:39:58 +0000 (15:39 +0200)
* OpenTKGameWindow.cs:

* Tests.csproj:
* GOLIBTest_4.cs:
* GOLIBTest_1.cs:
* Window.goml:
* Listbox.goml:
* test4.goml:
* GOLIBTest_Expandable.cs:
* testExpandable.goml: debug and test

* Colors.cs: debug argb->rgba

* CompilerServices.cs: value type conversion

* Border.cs: default border =1

* Checkbox.cs:
* Expandable.cs: changes in update technic

* Group.cs: Clipping debug (need rework)

* Label.cs: debug text positionning

* Slider.cs: debug

* TextBox.cs: selectable=true by default

18 files changed:
Templates/Listbox.goml
Templates/Window.goml
Tests/GOLIBTest_1.cs
Tests/GOLIBTest_4.cs
Tests/GOLIBTest_Expandable.cs
Tests/Interfaces/test4.goml
Tests/Interfaces/testExpandable.goml
Tests/Tests.csproj
src/Colors.cs
src/CompilerServices/CompilerServices.cs
src/GraphicObjects/Border.cs
src/GraphicObjects/Checkbox.cs
src/GraphicObjects/Expandable.cs
src/GraphicObjects/Group.cs
src/GraphicObjects/Label.cs
src/GraphicObjects/Slider.cs
src/GraphicObjects/TextBox.cs
src/OpenTKGameWindow.cs

index 452877c3da99015035674a99f3f14555acd667e5..08b650d51f577075ea71146dac9ce240da929cf4 100755 (executable)
@@ -1,4 +1,4 @@
 <?xml version="1.0"?>\r
-<Border Margin="0" MinimumSize="0;200" Fit="True" Background="Gray">\r
+<Border BorderWidth="1" Margin="1" MinimumSize="0;100" Fit="True" Background="Gray">\r
        <VerticalStack Name="List" Margin="1" VerticalAlignment="Top"/>\r
 </Border>
\ No newline at end of file
index 5964d0239eb04ea710870abcd7f59990a85e4002..97e980c243f26c151aef011c9c59d32c7c6372f0 100755 (executable)
@@ -5,7 +5,7 @@
                        MouseMove="Window_MouseMove">\r
                        <HorizontalStack Margin="1" Spacing="1" Height="-1" Width="0" Focusable="true" MouseMove="Window_MouseMove">\r
                                <Image Name="Image" Margin="1" Width="16" Height="16" Path="#go.Images.Icons.tetra.png"/>\r
-                               <Label Width="0" Focusable="true" Name="Title" MouseMove="Window_MouseMove"/>\r
+                               <Label Width="0" Focusable="true" Name="Title" MouseMove="Window_MouseMove" Margin="5" />\r
                                <Image Focusable="true" Name="Image" Margin="1" Width="16" Height="16" Path="#go.Images.Icons.exit.svg"\r
                                        MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}" MouseClick="butQuitPress"/>\r
                        </HorizontalStack>\r
index 1f3760475dfd473030cc1cec0d100e2f16d30b27..f92cd16c9f3d3c2d05d70b18e0cfec0f379b5585 100644 (file)
@@ -27,7 +27,7 @@ namespace test
                protected override void OnLoad (EventArgs e)\r
                {\r
                        base.OnLoad (e);\r
-                       LoadInterface("Interfaces/log.xml", out g);\r
+                       LoadInterface("Interfaces/test1.goml", out g);\r
 \r
                }\r
                protected override void OnRenderFrame (FrameEventArgs e)\r
index 97e8c6262779e85f18c57ded10f8a4b2687f2ae5..c283b2e1c424fb4773bc7da93ff606109aed6e0d 100644 (file)
@@ -172,9 +172,9 @@ namespace test
                        }\r
                        frameCpt++;\r
 \r
-//                     if (pb.Value == pb.Maximum)\r
-//                             pb.Value = 0;\r
-//                     pb.Value++;\r
+                       if (pb.Value == pb.Maximum)\r
+                               pb.Value = 0;\r
+                       pb.Value++;\r
                        pb2.Value = pb.Value;\r
                        //labPb.Text = pb.Value.ToString ();\r
                        if (FocusedWidget==null)\r
index 9da9b1aba83a6bd0bb604b44a569a65ae0c0ad02..d96290c14add116559598c99b5ea79b5dcc9e38b 100644 (file)
@@ -1,4 +1,5 @@
 #define MONO_CAIRO_DEBUG_DISPOSE\r
+#define DEBUG_CLIP_RECTANGLE\r
 \r
 \r
 using System;\r
index 4eb5af9a38508801de412bef33e86a073bc0d4c0..646599c92eae7d1e0a1748452d85bc1ece0e6802 100755 (executable)
@@ -54,7 +54,7 @@
                                                Foreground="BlueCrayola" Background="DarkGray"\r
                                                BorderWidth="2" BorderColor="White"/>\r
                                        <Label Name="labPb"\r
-                                               Width="20"\r
+                                               Width="30"\r
                                                TextAlignment="RightCenter"/>\r
                                </HorizontalStack>\r
                                <HorizontalStack  Name="hsFocus">\r
                                <Button  Margin="5" BorderWidth="0" Width="-1" Height="-1"  HorizontalAlignment="Center">\r
                                        <Label FontSize="18" Text="This is a test" Margin="5" Foreground="Black" />\r
                                </Button>\r
-                               <TextBoxWidget  TextAlignment="LeftCenter" Font="droid,14"                                              \r
+                               <TextBoxWidget Name="textbox1" TextAlignment="LeftCenter" Font="droid,14"                                               \r
                                                                Width="300" Height="-1" Margin="2"\r
                                                                BorderColor="White" BorderWidth="1"\r
                                                                Text="editable text"/>\r
-                                                               <Slider Height="10" Width="300" BorderWidth="1" Background="Transparent" />\r
-                                                               <Slider Height="10" Width="300" BorderWidth="1" Background="Transparent" />\r
                                <GroupBox Title="Group Box" Width="300" Height="100" \r
                                        BorderColor="White" BorderWidth="2" Margin="3">\r
                                        <Label Name="labValue" FontSize="14" Text="000" TextAlignment="Center"/>\r
@@ -90,7 +88,9 @@
                                        <Image Path="#Tests.image.tetra.png"/>\r
                                </Button>\r
                                <Popper Width="100">\r
-                                       <Image Fit="true" Path="#Tests.image.tetra.png"/>\r
+                                       <Border Margin="10" Fit="True" Background="ArmyGreen">\r
+                                               <Image Fit="true" Path="#go.Images.Icons.tetra.png"/>\r
+                                       </Border>\r
                                </Popper>\r
                                <Expandable Name="expander" Width="150" Height="-1">\r
                                        <VerticalStack Name="vsExpanded" Width="100">\r
index 3349f61d484fc4610d2aa3b538e107c30588d757..a292cdde1d785f4712fda436436fa5055cf1f894 100755 (executable)
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>\r
-<Container Name="TopContainer" Width="400" Height="-1"\r
+<Container Name="TopContainer" Width="400" Height="400"\r
        Margin="20" Focusable="True" Background="Gray">\r
 \r
-       <Expandable Width="150" Background="Green" Margin="2">\r
-                       <VerticalStack Width="100" Background="Red">\r
+       <Expandable Width="150" Height="-1" Margin="2" VerticalAlignment="Top">\r
+                       <VerticalStack Width="100" >\r
                                <Checkbox Name="chk1"/>\r
                                <Checkbox Name="chk2" IsChecked="true"/>\r
                                <Checkbox Name="chk3"/>\r
index 9ca28ed0081afcef48325075e70cc5562920b834..57e19ad4f408d183e7abd9684da91b4e066c4973 100644 (file)
@@ -8,7 +8,7 @@
     <OutputType>Exe</OutputType>
     <RootNamespace>Tests</RootNamespace>
     <AssemblyName>Tests</AssemblyName>
-    <StartupObject>test.GOLIBTest_Window</StartupObject>
+    <StartupObject>test.GOLIBTest_4</StartupObject>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <OutputPath>..\bin\$(configuration)</OutputPath>
     <IntermediateOutputPath>obj\$(configuration)</IntermediateOutputPath>
index 2d428bae7547051392a61ff45b3ccb8fbf2b56b1..96d17f2a86bc90b6e9cceeb98f7e2676d14e9c20 100755 (executable)
@@ -1021,11 +1021,11 @@ namespace go
                #region IXmlSerializable\r
                public void ReadXml(System.Xml.XmlReader reader)\r
         {\r
-            string[] c = reader["Color"].Split(new char[] { ';' });\r
-            A = double.Parse(c[0]);\r
-            R = double.Parse(c[1]);\r
-            G = double.Parse(c[2]);\r
-            B = double.Parse(c[3]);\r
+            string[] c = reader["Color"].Split(new char[] { ';' });            \r
+            R = double.Parse(c[0]);\r
+            G = double.Parse(c[1]);\r
+            B = double.Parse(c[2]);\r
+                       A = double.Parse(c[3]);\r
         }\r
         public void WriteXml(System.Xml.XmlWriter writer)\r
         {\r
index d7d19fa1b7c7db9ec1a8b15522a80b49696cd92c..ae4b700ad115e86ab300514cc6c5fd4e295ae520 100644 (file)
@@ -270,8 +270,12 @@ namespace go
                                
                                if (!srcValueType.IsValueType)
                                        il.Emit(OpCodes.Castclass, srcValueType);
-                               if (piTarget.PropertyType == typeof(string))
-                                       il.Emit(OpCodes.Callvirt, miToStr);
+                               else
+                                       il.Emit( OpCodes.Callvirt, GetConvertMethod( piTarget.PropertyType ));
+                       //      if (piTarget.PropertyType == typeof(string))
+//                             else if ( srcValueType != piTarget.PropertyType)
+//                                     
+                               
                                il.Emit(OpCodes.Callvirt, piTarget.GetSetMethod());
                        }
                        il.MarkLabel(labFailed);
@@ -284,6 +288,31 @@ namespace go
                        //Delegate del = dm.CreateDelegate(typeof(System.EventHandler));
                        addHandler.Invoke(_source, new object[] {del});
                }
+
+               #region conversions
+
+               internal static MethodInfo GetConvertMethod( Type targetType )
+               {
+                       string name;
+
+                       if( targetType == typeof( bool ) )
+                               name = "ToBoolean";
+                       else if( targetType == typeof( byte ) )
+                               name = "ToByte";
+                       else if( targetType == typeof( short ) )
+                               name = "ToInt16";
+                       else if( targetType == typeof( int ) )
+                               name = "ToInt32";
+                       else if( targetType == typeof( long ) )
+                               name = "ToInt64";
+                       else if (targetType == typeof (string ) )
+                               return typeof(object).GetMethod("ToString", Type.EmptyTypes);
+                       else
+                               throw new NotImplementedException( string.Format( "Conversion to {0} is not implemented.", targetType.Name ) );
+
+                       return typeof( Convert ).GetMethod( name, BindingFlags.Static | BindingFlags.Public, null, new Type[] { typeof( object ) }, null );
+               }
+               #endregion
                        
                public static FieldInfo getEventHandlerField(Type type, string eventName)
                {
index 352b626a31441e15c2a0077cea3b0d9de4f9017f..f2ce01e274e7d41144c951fbfe7d2706d8ca0f35 100644 (file)
@@ -16,7 +16,7 @@ namespace go
                #endregion
 
                #region public properties
-               [XmlAttributeAttribute()][DefaultValue(2)]
+               [XmlAttributeAttribute()][DefaultValue(1)]
                public virtual int BorderWidth {
                        get { return _borderWidth; }
                        set {
index 0e20ddb700373757aafa34f8d3d3d79996bb137e..30db3849ce88c07ef24e212b311078609824fe9d 100644 (file)
@@ -62,7 +62,7 @@ namespace go
                                else\r
                                        _image.SvgSub = "unchecked";\r
                                                \r
-                registerForGraphicUpdate();\r
+                //registerForGraphicUpdate();\r
             }\r
         }\r
 \r
index 369930a84381d576724625fe85cefc3fcb3b623a..8b3f4b1a7be7d6ebf5b506816534c802f72a6a6a 100644 (file)
@@ -54,8 +54,8 @@ namespace go
                                return;\r
                        _image.SvgSub = "collapsed";\r
 \r
-                       this.Expand += (object sender, EventArgs e) => {_image.SvgSub = "expanded";};\r
-                       this.Collapse += (object sender, EventArgs e) => {_image.SvgSub = "collapsed";};\r
+//                     this.Expand += (object sender, EventArgs e) => {};\r
+//                     this.Collapse += (object sender, EventArgs e) => {};\r
 \r
                }\r
                        \r
@@ -86,18 +86,20 @@ namespace go
                                else\r
                                        onCollapse (this, null);\r
 \r
-                registerForGraphicUpdate();\r
+                //registerForGraphicUpdate();\r
             }\r
         }\r
 \r
                public virtual void onExpand(object sender, EventArgs e)\r
                {\r
                        _contentContainer.Visible = true;\r
+                       _image.SvgSub = "expanded";\r
                        Expand.Raise (this, e);\r
                }\r
                public virtual void onCollapse(object sender, EventArgs e)\r
                {\r
                        _contentContainer.Visible = false;\r
+                       _image.SvgSub = "collapsed";\r
                        Collapse.Raise (this, e);\r
                }\r
                        \r
index f1620a2a4261c3f87ac7135fdcee4f11d6b76397..aac566dbdd01a112301c380755b67178744c2bf6 100644 (file)
@@ -178,8 +178,13 @@ namespace go
                                if (clip != null) {\r
                                        clip.Rebase (this);                                                                     \r
                                        //localClip = clip.intersectingRects (Slot.Size);\r
-                               } else\r
+                               } else {\r
                                        clip = new Rectangles ();\r
+                                       //TODO:added lately slot to empty clip,\r
+                                       //should rework this precise case causing expandable not\r
+                                       //to show image changes\r
+                                       clip.AddRectangle (ContextCoordinates (Slot.Size));\r
+                               }\r
 \r
                                if (!DrawingIsValid || clip != null) {//false when 1 child has changed\r
                                        //child having their content changed has to be repainted\r
index 27a766d2d25550a165fe1953d636fde76fb65a4b..e9951862d42e47c1d24ba2d53596fe1af040c465 100755 (executable)
@@ -287,6 +287,8 @@ namespace go
                        //gr.FontOptions.HintMetrics = HintMetrics.On;\r
 \r
                        rText = new Rectangle(measureRawSize());\r
+                       rText.Width -= 2 * Margin;\r
+                       rText.Height -= 2 * Margin;\r
 \r
                        widthRatio = 1f;\r
                        heightRatio = 1f;\r
@@ -479,6 +481,24 @@ namespace go
                                if (string.IsNullOrWhiteSpace (l))\r
                                        continue;\r
                        \r
+//                             double t = rText.Y;\r
+//                             gr.LineWidth = 1;\r
+//                             gr.Color = Color.Green;\r
+//                             gr.MoveTo (rText.X, t);\r
+//                             gr.LineTo (rText.X + rText.Width, t);\r
+//                             gr.Stroke ();\r
+//                             gr.MoveTo (rText.X, t + rText.Height);\r
+//                             gr.LineTo (rText.X + rText.Width, t + rText.Height);\r
+//                             gr.Stroke ();\r
+//                             gr.Rectangle (rText);\r
+//                             gr.Fill ();\r
+//\r
+//                             t += fe.Ascent;\r
+//                             gr.Color = Color.Red;\r
+//                             gr.MoveTo (rText.X, t);\r
+//                             gr.LineTo (rText.X + rText.Width, t);\r
+//                             gr.Stroke ();\r
+\r
                                gr.Color = Foreground;                          \r
                                gr.MoveTo (rText.X, rText.Y + fe.Ascent + fe.Height * i);\r
 \r
index 7a5623f826847ff20d730cf98defe060e1f54896..25da2241c9e108cf16984966edb3dc03b90ceb94 100644 (file)
@@ -119,7 +119,6 @@ namespace go
 \r
                        cursor.TopLeft = new Point(r.Left + (int)(Value * unity),\r
                                         (int)(p1.Y - cursor.Height / 2));  \r
-                       Debug.WriteLine (cursor.TopLeft.ToString ());\r
         }\r
         \r
                #region mouse handling\r
index 28e7c74cd16232ddeeb9fa98e9d6a3a4f2bc98e2..7ba10fe858982bbddfe66293acfc599afdd91d57 100644 (file)
@@ -44,6 +44,11 @@ namespace go
                        get { return base.Focusable; }\r
                        set { base.Focusable = value; }\r
                }\r
+               [XmlAttributeAttribute()][DefaultValue(true)]\r
+               public override bool Selectable {\r
+                       get { return base.Selectable; }\r
+                       set { base.Selectable = value; }\r
+               }\r
                [XmlAttributeAttribute()][DefaultValue("White")]\r
                public override Color Background {\r
                        get { return base.Background; }\r
index 38d230f7401fcb978fa2b8c017d3a047309f13eb..81fea59d9a778b18de0f1a5b42afbe4884d724fe 100755 (executable)
@@ -1,6 +1,4 @@
 // Released to the public domain. Use, modify and relicense at will.\r
-//#define DEBUG_CLIP_RECTANGLE\r
-\r
 using System;\r
 \r
 using OpenTK;\r