]> O.S.I.I.S - jp/crow.git/commitdiff
Merge branch 'master' into CrowIDE
authorjpbruyere <jp.bruyere@hotmail.com>
Thu, 5 Jan 2017 14:47:33 +0000 (15:47 +0100)
committerjpbruyere <jp.bruyere@hotmail.com>
Thu, 5 Jan 2017 14:47:33 +0000 (15:47 +0100)
1  2 
CrowIDE/CrowIDE.csproj
CrowIDE/src/MembersView.cs
Templates/ColorPicker.template
Tests/Tests.csproj
src/GraphicObjects/TemplatedGroup.cs

index d4990c503a77dcca33ef49cc090851b35b98c84c,0000000000000000000000000000000000000000..b9f16d25736e889476e922a74f440b193caba01b
mode 100644,000000..100644
--- /dev/null
@@@ -1,103 -1,0 +1,104 @@@
-       <HintPath>$(SolutionDir)packages\OpenTK.Next.1.2.2336.6514-pre\lib\net20\OpenTK.dll</HintPath>
 +<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <PropertyGroup>
 +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
 +    <ProductVersion>8.0.30703</ProductVersion>
 +    <SchemaVersion>2.0</SchemaVersion>
 +    <ProjectGuid>{B6D911CD-1D09-42FC-B300-9187190F2AE1}</ProjectGuid>
 +    <OutputType>Exe</OutputType>
 +    <RootNamespace>CrowIDE</RootNamespace>
 +    <AssemblyName>CrowIDE</AssemblyName>
 +    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
 +    <OutputPath>$(SolutionDir)build/$(Configuration)</OutputPath>
 +    <IntermediateOutputPath>$(SolutionDir)build/obj/$(Configuration)</IntermediateOutputPath>
 +    <CustomCommands>
 +      <CustomCommands>
 +      <Command type="Execute" command="${TargetName}" workingdir="${SolutionDir}/build/${ProjectConfigName}" />
 +      </CustomCommands>
 +    </CustomCommands>
 +    <ReleaseVersion>0.5</ReleaseVersion>
 +    <StartupObject>CrowIDE.CrowIDE</StartupObject>
 +  </PropertyGroup>
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 +    <DebugSymbols>true</DebugSymbols>
 +    <DebugType>full</DebugType>
 +    <Optimize>false</Optimize>
 +    <DefineConstants>DEBUG;</DefineConstants>
 +    <ErrorReport>prompt</ErrorReport>
 +    <WarningLevel>4</WarningLevel>
 +    <ConsolePause>false</ConsolePause>
 +    <IntermediateOutputPath>$(SolutionDir)build\obj\$(Configuration)</IntermediateOutputPath>
 +    <OutputPath>$(SolutionDir)build\$(Configuration)</OutputPath>
 +  </PropertyGroup>
 +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
 +    <DebugType>none</DebugType>
 +    <Optimize>true</Optimize>
 +    <ErrorReport>prompt</ErrorReport>
 +    <WarningLevel>0</WarningLevel>
 +    <ConsolePause>false</ConsolePause>
 +    <IntermediateOutputPath>$(SolutionDir)build\obj\$(Configuration)</IntermediateOutputPath>
 +    <OutputPath>$(SolutionDir)build\$(Configuration)</OutputPath>
 +  </PropertyGroup>
 +  <ItemGroup>
 +    <Reference Include="System" />
 +    <Reference Include="System.Data" />
 +    <Reference Include="System.Xml" />
 +    <Reference Include="System.Drawing" />
 +    <Reference Include="cairo-sharp">
 +      <Package>gtk-sharp-3.0</Package>
 +    </Reference>
 +    <Reference Include="gdk-sharp">
 +      <Package>gtk-sharp-2.0</Package>
 +    </Reference>
 +    <Reference Include="gio-sharp">
 +      <Package>gio-sharp-3.0</Package>
 +    </Reference>
 +    <Reference Include="glib-sharp">
 +      <Package>glib-sharp-3.0</Package>
 +    </Reference>
 +    <Reference Include="OpenTK">
++      <HintPath>$(SolutionDir)packages\OpenTK.2.0.0\lib\net20\OpenTK.dll</HintPath>
++      <Package>opentk</Package>
 +    </Reference>
 +  </ItemGroup>
 +  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
 +  <ItemGroup>
 +    <ProjectReference Include="..\Crow.csproj">
 +      <Project>{C2980F9B-4798-4C05-99E2-E174810F7C7B}</Project>
 +      <Name>Crow</Name>
 +    </ProjectReference>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <Compile Include="OpenTKGameWindow.cs" />
 +    <Compile Include="OpenGL\Shader.cs" />
 +    <Compile Include="OpenGL\Texture.cs" />
 +    <Compile Include="OpenGL\vaoMesh.cs" />
 +    <Compile Include="src\CrowIDE.cs" />
 +    <Compile Include="src\ImlVisualEditor.cs" />
 +    <Compile Include="src\MembersView.cs" />
 +    <Compile Include="src\Extensions.cs" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <Folder Include="ui\" />
 +    <Folder Include="src\" />
 +    <Folder Include="images\" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <EmbeddedResource Include="ui\imlEditor.crow" />
 +    <EmbeddedResource Include="images\save.svg" />
 +    <EmbeddedResource Include="ui\IDE.style" />
 +    <EmbeddedResource Include="ui\MembersView.template">
 +      <LogicalName>CrowIDE.MembersView.template</LogicalName>
 +    </EmbeddedResource>
 +    <EmbeddedResource Include="ui\bindingExplorer.crow" />
 +    <EmbeddedResource Include="ui\bindingExpITemp.crow" />
 +    <EmbeddedResource Include="ui\LQIsExplorer.crow" />
 +    <EmbeddedResource Include="Default.style" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <None Include="ui\test.crow">
 +      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
 +    </None>
 +  </ItemGroup>
 +</Project>
index d8a76951949bf7bd254903489c326ebe290975a0,0000000000000000000000000000000000000000..69f182d0a565bc44b2e0a0d19158c694cecbf677
mode 100644,000000..100644
--- /dev/null
@@@ -1,131 -1,0 +1,118 @@@
-       public class PropertyContainer : IBindable, IValueChange
 +//
 +//  MembersView.cs
 +//
 +//  Author:
 +//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
 +//
 +//  Copyright (c) 2016 jp
 +//
 +//  This program is free software: you can redistribute it and/or modify
 +//  it under the terms of the GNU General Public License as published by
 +//  the Free Software Foundation, either version 3 of the License, or
 +//  (at your option) any later version.
 +//
 +//  This program is distributed in the hope that it will be useful,
 +//  but WITHOUT ANY WARRANTY; without even the implied warranty of
 +//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +//  GNU General Public License for more details.
 +//
 +//  You should have received a copy of the GNU General Public License
 +//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 +using System;
 +using Crow;
 +using System.Xml.Serialization;
 +using System.ComponentModel;
 +using System.Reflection;
 +using System.Collections.Generic;
 +
 +namespace CrowIDE
 +{
-               #region IBindable implementation
-               public object DataSource {
-                       get { return null; }
-                       set {
-                               throw new NotImplementedException ();
-                       }
-               }
-               List<Binding> bindings = new List<Binding> ();
-               public List<Binding> Bindings {
-                       get { return bindings; }
-               }
-               #endregion
-               #region IValueChange implementation
++      public class PropertyContainer : IValueChange
 +      {
++                              #region IValueChange implementation
 +              public event EventHandler<ValueChangeEventArgs> ValueChanged;
 +              public virtual void NotifyValueChanged(string MemberName, object _value)
 +              {
 +                      ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
 +              }
 +              #endregion
 +
 +              PropertyInfo pi;
 +              object instance;
 +
 +              public string Name { get { return pi.Name; }}
 +              public object Value {
 +                      get { return pi.GetValue(instance); }
 +                      set {
 +                              try {
 +                                      if (!pi.PropertyType.IsAssignableFrom(value.GetType()) && pi.PropertyType != typeof(string)){
 +                                              if (pi.PropertyType.IsEnum) {
 +                                                      pi.SetValue (instance, value);
 +                                              } else {
 +                                                      MethodInfo me = pi.PropertyType.GetMethod
 +                                                              ("Parse", BindingFlags.Static | BindingFlags.Public,
 +                                                                      System.Type.DefaultBinder, new Type [] {typeof (string)},null);
 +                                                      pi.SetValue (instance, me.Invoke (null, new object[] { value }), null);
 +                                              }
 +                                      }else
 +                                              pi.SetValue(instance, value);
 +                              } catch (Exception ex) {
 +                                      System.Diagnostics.Debug.WriteLine ("Error setting property:"+ ex.ToString());
 +                              }
 +                              NotifyValueChanged ("Value", value);
 +                      }
 +              }
 +              public string Type { get { return pi.PropertyType.IsEnum ?
 +                                      "System.Enum"
 +                                      : pi.PropertyType.FullName; }}
 +              public string[] Choices {
 +                      get {
 +                              return Enum.GetNames (pi.PropertyType);
 +                      }
 +              }
 +
 +              public PropertyContainer(PropertyInfo prop, object _instance){
 +                      pi = prop;
 +                      instance = _instance;
 +              }
 +
 +      }
 +      public class MembersView : ListBox
 +      {               
 +              object instance;
 +
 +              [XmlAttributeAttribute][DefaultValue(null)]
 +              public virtual object Instance {
 +                      get { return instance; }
 +                      set {
 +                              if (instance == value)
 +                                      return;
 +                              instance = value;
 +                              NotifyValueChanged ("Instance", instance);
 +
 +                              if (instance == null) {
 +                                      Data = null;
 +                                      return;
 +                              }
 +
 +                              MemberInfo[] members = instance.GetType ().GetMembers (BindingFlags.Public | BindingFlags.Instance);
 +
 +                              List<PropertyContainer> props = new List<PropertyContainer> ();
 +                              foreach (MemberInfo m in members) {
 +                                      if (m.MemberType == MemberTypes.Property) {
 +                                              PropertyInfo pi = m as PropertyInfo;
 +                                              if (!pi.CanWrite)
 +                                                      continue;
 +                                              if (pi.GetCustomAttribute (typeof(XmlIgnoreAttribute)) != null)
 +                                                      continue;
 +                                              props.Add (new PropertyContainer (pi, instance));
 +                                      }
 +                              }
 +                              Data = props.ToArray ();
 +                      }
 +              }
 +              public MembersView () : base()
 +              {
 +              }
 +      }
 +}
index e128ff718774eaae47545bb82252b16cf33cbb1f,4c1e1280452544f0554449f491b41ef5e5940b97..dbc34851832f8498c768b6757c6a18139801e7b4
@@@ -46,4 -46,4 +46,4 @@@
                                </HorizontalStack>
                        </VerticalStack>
                </HorizontalStack>
--</Border>
++</Border>
index ea03ce1a3459b57010f749d1ede118e23661a5a0,a95a034a60c92b8d77cc7ef2be9f1cb1af679bb6..7fd48e3642229821cd39cf303fbe0f816e9a4eae
@@@ -46,7 -45,7 +45,8 @@@
        <Reference Include="gio-sharp"/>
        <Reference Include="glib-sharp"/>
      <Reference Include="OpenTK">
-       <HintPath>$(SolutionDir)packages\OpenTK.Next.1.2.2336.6514-pre\lib\net20\OpenTK.dll</HintPath>
+       <HintPath>$(SolutionDir)packages\OpenTK.2.0.0\lib\net20\OpenTK.dll</HintPath>
++      <Package>opentk</Package>
      </Reference>
    </ItemGroup>
    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Simple merge