aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
-rw-r--r--Crow.OpenTK.nuspec12
-rw-r--r--Crow.sln4
-rw-r--r--CrowIDE/src/ImlVisualEditor.cs13
-rw-r--r--CrowIDE/src/MembersView.cs10
-rw-r--r--CrowIDE/ui/CSProjExplorer.crow2
-rw-r--r--CrowIDE/ui/GTreeExpITemp.crow2
-rw-r--r--CrowIDE/ui/MembersItem.template2
-rwxr-xr-xCrowIDE/ui/MembersView.template2
-rw-r--r--CrowIDE/ui/imlEditor.crow4
-rw-r--r--Tests/Tests.csproj2
-rw-r--r--src/ExtensionsMethods.cs8
-rw-r--r--src/GraphicObjects/TemplatedGroup.cs13
-rw-r--r--src/Instantiator.cs3
13 files changed, 44 insertions, 33 deletions
diff --git a/Crow.OpenTK.nuspec b/Crow.OpenTK.nuspec
index e336b178..9d49b0a4 100644
--- a/Crow.OpenTK.nuspec
+++ b/Crow.OpenTK.nuspec
@@ -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>
diff --git a/Crow.sln b/Crow.sln
index 70736ea4..5fc9079f 100644
--- 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
diff --git a/CrowIDE/src/ImlVisualEditor.cs b/CrowIDE/src/ImlVisualEditor.cs
index 9c51338f..e238a706 100644
--- a/CrowIDE/src/ImlVisualEditor.cs
+++ b/CrowIDE/src/ImlVisualEditor.cs
@@ -129,19 +129,6 @@ namespace CrowIDE
get { return imlVE.GraphicTree; }
}
-
- public CrowMSBuild.Project CSProj {
- get {
- CrowMSBuild.Project proj = null;
- XmlSerializer serializer = new XmlSerializer(typeof(CrowMSBuild.Project));
- string path=@"/mnt/data2/devel/crow/Tests/Tests.csproj";
- using (StreamReader reader = new StreamReader (path)) {
- proj = (CrowMSBuild.Project)serializer.Deserialize (reader);
- }
- return proj;
- }
- }
-
void reloadFromSource(){
if (string.IsNullOrEmpty (imlSource)) {
reload_iTor (null);
diff --git a/CrowIDE/src/MembersView.cs b/CrowIDE/src/MembersView.cs
index 18f1a709..67c712bd 100644
--- a/CrowIDE/src/MembersView.cs
+++ b/CrowIDE/src/MembersView.cs
@@ -24,6 +24,7 @@ using System.Xml.Serialization;
using System.ComponentModel;
using System.Reflection;
using System.Collections.Generic;
+using System.Linq;
namespace CrowIDE
{
@@ -47,7 +48,10 @@ namespace CrowIDE
try {
if (!pi.PropertyType.IsAssignableFrom(value.GetType()) && pi.PropertyType != typeof(string)){
if (pi.PropertyType.IsEnum) {
- pi.SetValue (instance, value);
+ if (value is string) {
+ pi.SetValue (instance, Enum.Parse (pi.PropertyType, (string)value));
+ }else
+ pi.SetValue (instance, value);
} else {
MethodInfo me = pi.PropertyType.GetMethod
("Parse", BindingFlags.Static | BindingFlags.Public,
@@ -65,9 +69,9 @@ namespace CrowIDE
public string Type { get { return pi.PropertyType.IsEnum ?
"System.Enum"
: pi.PropertyType.FullName; }}
- public string[] Choices {
+ public object[] Choices {
get {
- return Enum.GetNames (pi.PropertyType);
+ return Enum.GetValues (pi.PropertyType).Cast<object>().ToArray();
}
}
diff --git a/CrowIDE/ui/CSProjExplorer.crow b/CrowIDE/ui/CSProjExplorer.crow
index f8155a23..5f9f9949 100644
--- a/CrowIDE/ui/CSProjExplorer.crow
+++ b/CrowIDE/ui/CSProjExplorer.crow
@@ -51,7 +51,7 @@
<HorizontalStack Height="Fit">
<GraphicObject Width="12" Height="10"/>
<TreeView Name="List" Height="Fit"
- Template="#Crow.Templates.treeList.crow" />
+ Template="#Crow.Templates.treeList.template" />
</HorizontalStack>
</Expandable>
</ItemTemplate>
diff --git a/CrowIDE/ui/GTreeExpITemp.crow b/CrowIDE/ui/GTreeExpITemp.crow
index 32eeb43b..4be4f094 100644
--- a/CrowIDE/ui/GTreeExpITemp.crow
+++ b/CrowIDE/ui/GTreeExpITemp.crow
@@ -23,6 +23,6 @@
<HorizontalStack Height="Fit">
<GraphicObject Width="12" Height="10"/>
<TreeView Name="List" Height="Fit"
- Template="#Crow.Templates.treeList.crow" />
+ Template="#Crow.Templates.treeList.template" />
</HorizontalStack>
</Expandable>
diff --git a/CrowIDE/ui/MembersItem.template b/CrowIDE/ui/MembersItem.template
index 4b1c97c7..abf8c24c 100644
--- a/CrowIDE/ui/MembersItem.template
+++ b/CrowIDE/ui/MembersItem.template
@@ -21,7 +21,7 @@
MouseLeave="{Background=Transparent}" >
<Label Margin="1" Text="{Name}" Height="Fit" Width="50%"/>
<ComboBox Margin="0" Height="Stretched" Width="50%" Data="{Choices}"
- SelectedIndex="{²Value}">
+ SelectedItem="{²Value}">
<Template>
<Popper Name="popper" PopDirection="Bottom">
<Template>
diff --git a/CrowIDE/ui/MembersView.template b/CrowIDE/ui/MembersView.template
index 48475116..92f132f3 100755
--- a/CrowIDE/ui/MembersView.template
+++ b/CrowIDE/ui/MembersView.template
@@ -2,7 +2,7 @@
<Window Template="#Crow.ToolWindow.template" Caption="Properties" MinimumSize="10,10" Width="Stretched" Height="Stretched">
<VerticalStack>
<Border Height="Fit">
- <Label TextAlignment="Left" Text="{./Instance}" Width="Stretched"/>
+ <Label TextAlignment="Left" Text="{../../../../Instance}" Width="Stretched"/>
</Border>
<Scroller Name="scroller1" Margin="1" VerticalScrolling="true"
ValueChanged="./_scroller_ValueChanged">
diff --git a/CrowIDE/ui/imlEditor.crow b/CrowIDE/ui/imlEditor.crow
index 4df6b40d..2b2fc8ec 100644
--- a/CrowIDE/ui/imlEditor.crow
+++ b/CrowIDE/ui/imlEditor.crow
@@ -29,9 +29,9 @@
<!-- <HorizontalStack Height="Fit" Margin="2">
<Image Style="icon" Path="#CrowIDE.images.save.svg" MouseClick="onCommandSave"/>
</HorizontalStack>-->
- <Border Margin="1" Background="Onyx" Height="Fit">
+<!-- <Border Margin="1" Background="Onyx" Height="Fit">
<Label Width="Stretched" Margin="1" Text="{../../dv.SelectedItem}"/>
- </Border>
+ </Border>-->
<HorizontalStack>
<TreeView Name="treeview" Width="20%" Height="100%" IsRoot="true"
DataSource="{CurrentSolution}" Data="{Projects}"
diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj
index 75969d9b..7fd3f6ed 100644
--- a/Tests/Tests.csproj
+++ b/Tests/Tests.csproj
@@ -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>
diff --git a/src/ExtensionsMethods.cs b/src/ExtensionsMethods.cs
index 6198dee6..6697be62 100644
--- a/src/ExtensionsMethods.cs
+++ b/src/ExtensionsMethods.cs
@@ -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;
+ }
}
}
diff --git a/src/GraphicObjects/TemplatedGroup.cs b/src/GraphicObjects/TemplatedGroup.cs
index c32b2c44..34d57727 100644
--- a/src/GraphicObjects/TemplatedGroup.cs
+++ b/src/GraphicObjects/TemplatedGroup.cs
@@ -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; }
diff --git a/src/Instantiator.cs b/src/Instantiator.cs
index 297337ed..b3f070e7 100644
--- a/src/Instantiator.cs
+++ b/src/Instantiator.cs
@@ -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);