]> O.S.I.I.S - jp/crow.git/commitdiff
made SeletedItem of templatedGroup writable
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Fri, 9 Feb 2018 19:44:48 +0000 (20:44 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Fri, 9 Feb 2018 19:48:02 +0000 (20:48 +0100)
Crow.OpenTK.nuspec
Crow.sln
Tests/Tests.csproj
src/ExtensionsMethods.cs
src/GraphicObjects/TemplatedGroup.cs
src/Instantiator.cs

index e336b178238308e02d73f8ac70ccdd134b37dd88..9d49b0a4605813637dacde45f7c96c14b4e52955 100644 (file)
@@ -2,7 +2,7 @@
 <package >
        <metadata>
                <id>Crow.OpenTK</id>
-               <version>0.6.0-pre1</version>
+               <version>0.6.0</version>
                <title>C# Rapid Open Widget Toolkit</title>
                <authors>JP Bruyere</authors>
                <owners>Grand Tetras Software</owners>
@@ -21,13 +21,15 @@ Crow.OpenTK is the OpenTK ready version.
                        - Bug fix #36
                        - group item templates in single file
                        - instantiation from code clarification
-                       - Only run on mono >= 5.0
                        - Cairo mesh patterns support.
-                       - Image resources sharing among controls.            
+                       - Image resources sharing among controls.
+                       - Some small api changes (LoadInterface replaced by AddWidget overload
+                       - Documentations
+                       - Tooltip for GraphicObject class               
                </releaseNotes>
-               <copyright>Copyright 2013-2017</copyright>
+               <copyright>Copyright 2013-2018</copyright>
                <dependencies>
-                       <dependency id="OpenTK" version="3.0.0-git00041" />
+                       <dependency id="OpenTK" version="2.0.0" />
                </dependencies>
         <tags>Crow OpenTK OpenGL Widget Interface GUI C# .Net Mono</tags>
         <references>
index 70736ea4699658f8c1e19c9668855c431bb50f50..5fc9079fa00801de87694084d1ff5da14ab6d424 100644 (file)
--- a/Crow.sln
+++ b/Crow.sln
@@ -16,17 +16,13 @@ Global
        EndGlobalSection
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
                {42C73BD8-51F5-4BB7-8EE9-9F0BE2D80A2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {42C73BD8-51F5-4BB7-8EE9-9F0BE2D80A2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {42C73BD8-51F5-4BB7-8EE9-9F0BE2D80A2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {42C73BD8-51F5-4BB7-8EE9-9F0BE2D80A2C}.Release|Any CPU.Build.0 = Release|Any CPU
                {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Release|Any CPU.Build.0 = Release|Any CPU
                {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.Build.0 = Release|Any CPU
                {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {C2980F9B-4798-4C05-99E2-E174810F7C7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
index 75969d9b1a8c89db4ef7d224439f2fe96ef6fabb..7fd3f6ed004a7861bb71c90501fdc793197c109c 100644 (file)
@@ -8,7 +8,7 @@
     <OutputType>Exe</OutputType>
     <RootNamespace>Tests</RootNamespace>
     <AssemblyName>Tests</AssemblyName>
-    <StartupObject>Tests.BasicTests</StartupObject>
+    <StartupObject>Tests.Showcase</StartupObject>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
     <ReleaseVersion>0.5</ReleaseVersion>
index 6198dee6185e9d67ae5378e10c9154de1ada7e05..6697be626de71f83754b1996899083aa79b87df7 100644 (file)
@@ -125,6 +125,14 @@ namespace Crow
                {
                        return c == '\t' || c == '\r' || c == '\n' || char.IsWhiteSpace (c);
                }
+               public static object GetDefaultValue(this object obj)
+               {                       
+                       Type t = obj.GetType ();
+                       if (t.IsValueType)
+                               return Activator.CreateInstance (t);
+                       
+                       return null;
+               }
        }
 }
 
index c32b2c44f4a7651e97b80e3e4956b55e7e906334..34d5772700a81bf28226c31ba7a1aadb7760a6cd 100644 (file)
@@ -148,7 +148,18 @@ namespace Crow
                        }
                }
                [XmlIgnore]public virtual object SelectedItem{
-                       get { return data == null ? null : _selectedIndex < 0 ? null : data[_selectedIndex]; }
+                       get { return data == null ? null : _selectedIndex < 0 ? data.GetDefaultValue() : data[_selectedIndex]; }
+                       set {
+                               if (data == null) {
+                                       SelectedIndex = -1;
+                                       return;
+                               }
+                               //TODO:double check if value type will be notified to binding sys
+                               if (value == SelectedItem)
+                                       return;
+                               
+                               SelectedIndex = data.IndexOf (value);
+                       }
                }
                [XmlIgnore]public bool HasItems {
                        get { return Items.Count > 0; }
index 297337edd31dd35026923fb20440cc0852708995..b3f070e7d609d1ba7231e36c296cb49caf900c59 100644 (file)
@@ -890,6 +890,9 @@ namespace Crow.IML
 
                                CompilerServices.emitConvert (il, piSource.PropertyType);
 
+                               if (!piSource.CanWrite)
+                                       throw new Exception ("Source member of bindind is read only:" + piSource.ToString());
+
                                il.Emit (OpCodes.Callvirt, piSource.GetSetMethod ());
 
                                il.MarkLabel (endMethod);