diff options
10 files changed, 105 insertions, 19 deletions
diff --git a/Xamarin.PropertyEditing.Tests/MockControls/MockControl.cs b/Xamarin.PropertyEditing.Tests/MockControls/MockControl.cs index 5e44981..635bcb0 100644 --- a/Xamarin.PropertyEditing.Tests/MockControls/MockControl.cs +++ b/Xamarin.PropertyEditing.Tests/MockControls/MockControl.cs @@ -28,9 +28,9 @@ namespace Xamarin.PropertyEditing.Tests.MockControls Values.Add (propertyInfo, default (T)); } - public void AddReadOnlyProperty<T> (string name) + public void AddReadOnlyProperty<T> (string name, string category = "") { - AddProperty<T> (name, "", false); + AddProperty<T> (name, category, false); } public void AddEvent(string name) diff --git a/Xamarin.PropertyEditing.Tests/MockControls/MockSampleControl.cs b/Xamarin.PropertyEditing.Tests/MockControls/MockSampleControl.cs new file mode 100644 index 0000000..b49ab79 --- /dev/null +++ b/Xamarin.PropertyEditing.Tests/MockControls/MockSampleControl.cs @@ -0,0 +1,56 @@ +using System; +using Xamarin.PropertyEditing.Drawing; + +namespace Xamarin.PropertyEditing.Tests.MockControls +{ + public class MockSampleControl : MockControl + { + public MockSampleControl() + { + AddProperty<bool> ("Boolean", ReadWrite); + AddProperty<long> ("Integer", ReadWrite); + AddProperty<double> ("FloatingPoint", ReadWrite); + AddProperty<string> ("String", ReadWrite); + AddProperty<Enumeration> ("Enumeration", ReadWrite); + AddProperty<Flags> ("Flags", ReadWrite, canWrite: true, flag: true); + AddProperty<CommonPoint> ("Point", ReadWrite); + AddProperty<CommonSize> ("Size", ReadWrite); + AddProperty<CommonThickness> ("Thickness", ReadWrite); + + AddReadOnlyProperty<bool> ("ReadOnlyBoolean", ReadOnly); + AddReadOnlyProperty<long> ("ReadOnlyInteger", ReadOnly); + AddReadOnlyProperty<double> ("ReadOnlyFloatingPoint", ReadOnly); + AddReadOnlyProperty<string> ("ReadOnlyString", ReadOnly); + AddReadOnlyProperty<Enumeration> ("ReadOnlyEnumeration", ReadOnly); + AddProperty<Flags> ("ReadOnlyFlags", ReadOnly, canWrite: false, flag: true); + AddReadOnlyProperty<CommonPoint> ("ReadOnlyPoint", ReadOnly); + AddReadOnlyProperty<CommonSize> ("ReadOnlySize", ReadOnly); + AddReadOnlyProperty<CommonThickness> ("ReadOnlyThickness", ReadOnly); + + AddProperty<NotImplemented> ("Uncategorized", None); + + AddEvents ("Click", "Hover", "Focus"); + } + + // Categories + public static readonly string ReadWrite = nameof (ReadWrite); + public static readonly string ReadOnly = nameof (ReadOnly); + public static readonly string None = ""; + + // Some enumeration and flags to test with + public enum Enumeration + { + FirstOption, + SecondOption, + ThirdOption + } + + [Flags] + public enum Flags + { + FlagOne, + FlagTwo, + FlagThree + } + } +} diff --git a/Xamarin.PropertyEditing.Tests/Xamarin.PropertyEditing.Tests.csproj b/Xamarin.PropertyEditing.Tests/Xamarin.PropertyEditing.Tests.csproj index be0ceb7..38df8f2 100644 --- a/Xamarin.PropertyEditing.Tests/Xamarin.PropertyEditing.Tests.csproj +++ b/Xamarin.PropertyEditing.Tests/Xamarin.PropertyEditing.Tests.csproj @@ -60,6 +60,7 @@ <Compile Include="BrushPropertyViewModelTests.cs" /> <Compile Include="Helpers.cs" /> <Compile Include="MockControls\MockControl.cs" /> + <Compile Include="MockControls\MockSampleControl.cs" /> <Compile Include="MockControls\MockWpfButton.cs" /> <Compile Include="MockControls\MockWpfControl.cs" /> <Compile Include="MockEditorProvider.cs" /> diff --git a/Xamarin.PropertyEditing.Windows.Standalone/IMockedControl.cs b/Xamarin.PropertyEditing.Windows.Standalone/IMockedControl.cs new file mode 100644 index 0000000..3edab63 --- /dev/null +++ b/Xamarin.PropertyEditing.Windows.Standalone/IMockedControl.cs @@ -0,0 +1,7 @@ +namespace Xamarin.PropertyEditing.Windows.Standalone +{ + interface IMockedControl + { + object MockedControl { get; } + } +} diff --git a/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml b/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml index 53a11d9..e5fb974 100644 --- a/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml +++ b/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml @@ -1,4 +1,4 @@ -<Window x:Class="Xamarin.PropertyEditing.Windows.Standalone.MainWindow" +<Window x:Class="Xamarin.PropertyEditing.Windows.Standalone.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" @@ -16,11 +16,15 @@ <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> + <RowDefinition /> + <RowDefinition /> </Grid.RowDefinitions> - <local:MockedWpfButton Grid.Row="0" Grid.Column="0" Click="Button_Click">Select me (Mock)</local:MockedWpfButton> - <Button Grid.Row="1" Grid.Column="0" Click="Button_Click">Select me (WPF)</Button> + <local:MockedSampleControlButton Grid.Row="0" Grid.Column="0" Click="Button_Click">Mocked Sample 1</local:MockedSampleControlButton> + <local:MockedSampleControlButton Grid.Row="1" Grid.Column="0" Click="Button_Click">Mocked Sample 2</local:MockedSampleControlButton> + <local:MockedWpfButton Grid.Row="2" Grid.Column="0" Click="Button_Click">Mocked WPF button</local:MockedWpfButton> + <Button Grid.Row="3" Grid.Column="0" Click="Button_Click">Actual WPF button</Button> - <xamarinprops:PropertyEditorPanel Name="panel" Grid.Row="0" Grid.RowSpan="2" Grid.Column="1" /> + <xamarinprops:PropertyEditorPanel Name="panel" Grid.Row="0" Grid.RowSpan="4" Grid.Column="1" /> </Grid> </Window>
\ No newline at end of file diff --git a/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs b/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs index 7037535..92fe3c8 100644 --- a/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs +++ b/Xamarin.PropertyEditing.Windows.Standalone/MainWindow.xaml.cs @@ -16,7 +16,7 @@ namespace Xamarin.PropertyEditing.Windows.Standalone private void Button_Click (object sender, RoutedEventArgs e) { - var mockedButton = sender as MockedWpfButton; + var mockedButton = sender as IMockedControl; var inspectedObject = (mockedButton == null || mockedButton.MockedControl == null) ? sender : mockedButton.MockedControl; if (this.panel.SelectedItems.Contains (inspectedObject)) diff --git a/Xamarin.PropertyEditing.Windows.Standalone/MockedControlButton.cs b/Xamarin.PropertyEditing.Windows.Standalone/MockedControlButton.cs new file mode 100644 index 0000000..cda6719 --- /dev/null +++ b/Xamarin.PropertyEditing.Windows.Standalone/MockedControlButton.cs @@ -0,0 +1,18 @@ +using System.Windows.Controls; +using Xamarin.PropertyEditing.Tests.MockControls; + +namespace Xamarin.PropertyEditing.Windows.Standalone +{ + public abstract class MockedControlButton<T> : Button, IMockedControl + where T : MockControl + { + public MockedControlButton(T mockedControl) + { + MockedControl = mockedControl; + } + + public T MockedControl { get; } + + object IMockedControl.MockedControl => MockedControl; + } +} diff --git a/Xamarin.PropertyEditing.Windows.Standalone/MockedSampleControlButton.cs b/Xamarin.PropertyEditing.Windows.Standalone/MockedSampleControlButton.cs new file mode 100644 index 0000000..17d9317 --- /dev/null +++ b/Xamarin.PropertyEditing.Windows.Standalone/MockedSampleControlButton.cs @@ -0,0 +1,8 @@ +using Xamarin.PropertyEditing.Tests.MockControls; + +namespace Xamarin.PropertyEditing.Windows.Standalone +{ + public class MockedSampleControlButton: MockedControlButton<MockSampleControl> { + public MockedSampleControlButton () : base(new MockSampleControl ()) { } + } +} diff --git a/Xamarin.PropertyEditing.Windows.Standalone/MockedWpfControlButton.cs b/Xamarin.PropertyEditing.Windows.Standalone/MockedWpfControlButton.cs index 67e4312..5bce465 100644 --- a/Xamarin.PropertyEditing.Windows.Standalone/MockedWpfControlButton.cs +++ b/Xamarin.PropertyEditing.Windows.Standalone/MockedWpfControlButton.cs @@ -1,20 +1,9 @@ -using System.Windows.Controls; using Xamarin.PropertyEditing.Tests.MockControls; namespace Xamarin.PropertyEditing.Windows.Standalone { - public abstract class MockedWpfControlButton<T> : Button - where T : MockControl - { - public MockedWpfControlButton(T mockedControl) - { - MockedControl = mockedControl; - } - public T MockedControl { get; } - } - - public class MockedWpfButton: MockedWpfControlButton<MockWpfButton> { + public class MockedWpfButton: MockedControlButton<MockWpfButton> { public MockedWpfButton() : base(new MockWpfButton()) { } } } diff --git a/Xamarin.PropertyEditing.Windows.Standalone/Xamarin.PropertyEditing.Windows.Standalone.csproj b/Xamarin.PropertyEditing.Windows.Standalone/Xamarin.PropertyEditing.Windows.Standalone.csproj index eaf6ab0..0f2ed58 100644 --- a/Xamarin.PropertyEditing.Windows.Standalone/Xamarin.PropertyEditing.Windows.Standalone.csproj +++ b/Xamarin.PropertyEditing.Windows.Standalone/Xamarin.PropertyEditing.Windows.Standalone.csproj @@ -62,12 +62,15 @@ <DependentUpon>App.xaml</DependentUpon> <SubType>Code</SubType> </Compile> + <Compile Include="IMockedControl.cs" /> <Compile Include="MainWindow.xaml.cs"> <DependentUpon>MainWindow.xaml</DependentUpon> <SubType>Code</SubType> </Compile> </ItemGroup> <ItemGroup> + <Compile Include="MockedControlButton.cs" /> + <Compile Include="MockedSampleControlButton.cs" /> <Compile Include="MockedWpfControlButton.cs" /> <Compile Include="Properties\AssemblyInfo.cs"> <SubType>Code</SubType> |