Skip to content

Commit

Permalink
Replacing WPFColorPicker with ColorControl
Browse files Browse the repository at this point in the history
  • Loading branch information
BrianLima committed Sep 5, 2017
1 parent 1d3dd8e commit 15f1d8f
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 60 deletions.
2 changes: 1 addition & 1 deletion HueHue/App.config
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<value>COM4</value>
</setting>
<setting name="CurrentMode" serializeAs="String">
<value>0</value>
<value>4</value>
</setting>
<setting name="TotalLeds" serializeAs="String">
<value>90</value>
Expand Down
13 changes: 12 additions & 1 deletion HueHue/Helpers/LEDBulb.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Drawing;
using System.Windows.Media;

namespace HueHue.Helpers
{
Expand Down Expand Up @@ -51,9 +52,19 @@ public int Id
set { _id = value; }
}

public static explicit operator LEDBulb(Color v)
public static explicit operator LEDBulb(System.Drawing.Color v)
{
return new LEDBulb(v.R, v.G, v.B);
}

public static explicit operator LEDBulb(System.Windows.Media.Color v)
{
return new LEDBulb(v.R, v.G, v.B);
}

public static explicit operator System.Drawing.Color(LEDBulb v)
{
return System.Drawing.Color.FromArgb(v.R, v.G, v.B);
}
}
}
4 changes: 2 additions & 2 deletions HueHue/HueHue.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@
<ApplicationIcon>HueHue.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="ColorPickerLib">
<HintPath>Resources\ColorPickerLib.dll</HintPath>
<Reference Include="ColorTools">
<HintPath>..\..\ColorControlbriano\ColorTools\bin\Release\ColorTools.dll</HintPath>
</Reference>
<Reference Include="CSCore, Version=1.2.1.1, Culture=neutral, PublicKeyToken=5a08f2b6f4415dea, processorArchitecture=MSIL">
<HintPath>..\packages\CSCore.1.2.1.1\lib\net35-client\CSCore.dll</HintPath>
Expand Down
2 changes: 1 addition & 1 deletion HueHue/Properties/Settings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion HueHue/Properties/Settings.settings
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<Value Profile="(Default)">COM4</Value>
</Setting>
<Setting Name="CurrentMode" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
<Value Profile="(Default)">4</Value>
</Setting>
<Setting Name="TotalLeds" Type="System.Int32" Scope="User">
<Value Profile="(Default)">90</Value>
Expand Down
21 changes: 10 additions & 11 deletions HueHue/Views/FixedColors.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,29 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:HueHue"
xmlns:controls="clr-namespace:ColorPickerLib.Controls;assembly=ColorPickerLib"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:ColorPickerLib="clr-namespace:ColorPickerLib;assembly=ColorPickerLib" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" x:Class="HueHue.FixedColors"
xmlns:controls="clr-namespace:ColorTools;assembly=ColorTools"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
x:Class="HueHue.FixedColors"
mc:Ignorable="d"
FontFamily="Segoe UI"
FontFamily="Segoe UI"
d:DesignHeight="510" d:DesignWidth="720" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="71*"/>
<ColumnDefinition Width="73*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition/>
</Grid.RowDefinitions>
<materialDesign:ColorZone x:Name="colorZone" Padding="16" materialDesign:ShadowAssist.ShadowDepth="Depth2" Mode="PrimaryMid" VerticalAlignment="Stretch" Grid.ColumnSpan="2" Margin="0,0,0,4"/>
<materialDesign:PackIcon Kind="Brush" Height="24" Width="24" Grid.Column="1" Margin="0,10,10,0" HorizontalAlignment="Right" />
<!--https://wpfcolorpickercontrol.codeplex.com/-->
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1" Grid.ColumnSpan="2" Margin="0,1,0,0.4">
<materialDesign:ColorZone x:Name="colorZone" Padding="16" materialDesign:ShadowAssist.ShadowDepth="Depth2" Mode="PrimaryMid" VerticalAlignment="Stretch" Margin="0,0,0,4"/>
<materialDesign:PackIcon Kind="Brush" Height="24" Width="24" Margin="0,10,10,0" HorizontalAlignment="Right" />
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1" Margin="0,1,0,0">
<Grid HorizontalAlignment="Left" Height="461" Grid.Row="1" VerticalAlignment="Top" Width="720" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:ColorCanvas x:Name="colorPicker" Margin="10,10,0,91" HorizontalAlignment="Left" Width="343" SelectedColorChanged="colorPicker_SelectedColorChanged" UsingAlphaChannel="False" Background="{x:Null}" BorderBrush="{x:Null}"/>
<controls:ColorCanvas x:Name="colorPicker2" Margin="358,10,0,91" HorizontalAlignment="Left" Width="343" SelectedColorChanged="colorPicker2_SelectedColorChanged" UsingAlphaChannel="False" Background="{x:Null}" BorderBrush="{x:Null}"/>
<controls:ColorControlPanel x:Name="colorPicker" Margin="10,10,0,277" HorizontalAlignment="Left" Width="410" ColorChanged="colorPicker_ColorChanged" DockAlphaVisibility="Hidden" TextForeground="{DynamicResource MaterialDesignBody}" Foreground="{DynamicResource MaterialDesignPaper}"/>
<controls:ColorControlPanel x:Name="colorPicker2" Margin="10,189,0,98" HorizontalAlignment="Left" Width="410" ColorChanged="colorPicker2_ColorChanged" DockAlphaVisibility="Hidden" TextForeground="{DynamicResource MaterialDesignBody}" Foreground="{DynamicResource MaterialDesignPaper}"/>
</Grid>
</ScrollViewer>
</Grid>
Expand Down
37 changes: 17 additions & 20 deletions HueHue/Views/FixedColors.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
using HueHue.Helpers;
using System.Drawing;
using System.Windows;
using System.Windows.Controls;
using Drawing = System.Drawing;
using Media = System.Windows.Media;

namespace HueHue
{
Expand All @@ -22,26 +23,33 @@ public FixedColors()
}
else
{
colorPicker2.Visibility = Visibility.Collapsed;
colorPicker2.Visibility = Visibility.Hidden;
colorZone.Content = "Fixed Color";
}

//I couldn't in ANY way make it bind the color properly, at least this works
//Binding each value from the RGB is broken
//Binding the color it self conflicts because the controler uses System.Windows.Media.Color instead of System.Drawing.Color
//I give up, this is it, MVVM for a later day.
colorPicker.SelectedColor =System.Windows.Media.Color.FromArgb(App.settings.ColorOne.A, App.settings.ColorOne.R, App.settings.ColorOne.G, App.settings.ColorOne.B);
colorPicker.SelectedColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorOne.A, App.settings.ColorOne.R, App.settings.ColorOne.G, App.settings.ColorOne.B));
colorPicker.InitialColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorOne.A, App.settings.ColorOne.R, App.settings.ColorOne.G, App.settings.ColorOne.B));

colorPicker2.SelectedColor = System.Windows.Media.Color.FromArgb(App.settings.ColorTwo.A, App.settings.ColorTwo.R, App.settings.ColorTwo.G, App.settings.ColorTwo.B);
colorPicker2.SelectedColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorTwo.A, App.settings.ColorTwo.R, App.settings.ColorTwo.G, App.settings.ColorTwo.B));
colorPicker2.InitialColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorTwo.A, App.settings.ColorTwo.R, App.settings.ColorTwo.G, App.settings.ColorTwo.B));
}

private void colorPicker_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<System.Windows.Media.Color?> e)
private void colorPicker_ColorChanged(object sender, ColorTools.ColorControlPanel.ColorChangedEventArgs e)
{
Effects.ColorOne.R = e.NewValue.Value.R;
Effects.ColorOne.G = e.NewValue.Value.G;
Effects.ColorOne.B = e.NewValue.Value.B;
Effects.ColorOne = (LEDBulb)e.CurrentColor;
App.settings.ColorOne = (Drawing.Color)Effects.ColorOne;

App.settings.ColorOne = Color.FromArgb(e.NewValue.Value.R, e.NewValue.Value.G, e.NewValue.Value.B);
FillColor();
}

private void colorPicker2_ColorChanged(object sender, ColorTools.ColorControlPanel.ColorChangedEventArgs e)
{
Effects.ColorTwo = (LEDBulb)e.CurrentColor;
App.settings.ColorTwo = (Drawing.Color)Effects.ColorTwo;

FillColor();
}
Expand All @@ -57,16 +65,5 @@ private void FillColor()
Effects.TwoAlternateColor();
}
}

private void colorPicker2_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<System.Windows.Media.Color?> e)
{
Effects.ColorTwo.B = e.NewValue.Value.B;
Effects.ColorTwo.G = e.NewValue.Value.G;
Effects.ColorTwo.R = e.NewValue.Value.R;

App.settings.ColorTwo = Color.FromArgb(e.NewValue.Value.R, e.NewValue.Value.G, e.NewValue.Value.B);

FillColor();
}
}
}
7 changes: 3 additions & 4 deletions HueHue/Views/SnakeMode.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:HueHue.Views"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:controls="clr-namespace:ColorPickerLib.Controls;assembly=ColorPickerLib"
xmlns:controls="clr-namespace:ColorTools;assembly=ColorTools"
mc:Ignorable="d"
FontFamily="Segoe UI"
d:DesignHeight="500" d:DesignWidth="710">
Expand All @@ -19,14 +19,13 @@
<RowDefinition/>
</Grid.RowDefinitions>
<materialDesign:ColorZone x:Name="colorZone" Padding="16" materialDesign:ShadowAssist.ShadowDepth="Depth2" Mode="PrimaryMid" VerticalAlignment="Stretch" Content="Snake Colors" Grid.ColumnSpan="2" Margin="0,0,0.4,3"/>
<!--https://wpfcolorpickercontrol.codeplex.com/-->
<ScrollViewer VerticalScrollBarVisibility="Hidden" Grid.Row="1" Grid.ColumnSpan="2" Margin="0,0,0.4,0" HorizontalScrollBarVisibility="Auto">
<Grid HorizontalAlignment="Left" Height="461" Grid.Row="1" VerticalAlignment="Top" Width="720" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:ColorCanvas R="{Binding R}" G="{Binding G}" B="{Binding B}" x:Name="colorPicker" Margin="10,10,0,91" HorizontalAlignment="Left" Width="343" SelectedColorChanged="colorPicker_SelectedColorChanged" Background="{x:Null}" BorderBrush="{x:Null}" UsingAlphaChannel="False"/>
<controls:ColorCanvas R="{Binding R}" G="{Binding G}" B="{Binding B}" x:Name="colorPicker2" Margin="358,10,0,91" HorizontalAlignment="Left" Width="343" SelectedColorChanged="colorPicker2_SelectedColorChanged" Background="{x:Null}" BorderBrush="{x:Null}" UsingAlphaChannel="False"/>
<controls:ColorControlPanel x:Name="colorPicker" Margin="10,10,0,288" HorizontalAlignment="Left" Width="410" DockAlphaVisibility="Hidden" ColorChanged="colorPicker_ColorChanged" TextForeground="{DynamicResource MaterialDesignBody}" Foreground="{DynamicResource MaterialDesignPaper}"/>
<controls:ColorControlPanel x:Name="colorPicker2" Margin="10,178,0,120" HorizontalAlignment="Left" Width="410" DockAlphaVisibility="Hidden" ColorChanged="colorPicker2_ColorChanged" TextForeground="{DynamicResource MaterialDesignBody}" Foreground="{DynamicResource MaterialDesignPaper}"/>
<Grid x:Name="GridSnakeColorSettings" Margin="10,375,10,10">
<Slider x:Name="sliderSpeed" Value="{Binding Speed}" HorizontalAlignment="Right" Margin="0,-5,234,27.8" Width="165" Minimum="10" Maximum="3000" Style="{StaticResource MaterialDesignDiscreteSlider}" Height="53" VerticalAlignment="Bottom" ValueChanged="sliderSpeed_ValueChanged"/>
<Label Content="Speed:" HorizontalAlignment="Right" Margin="0,0,399,27.8" Height="26" VerticalAlignment="Bottom"/>
Expand Down
36 changes: 17 additions & 19 deletions HueHue/Views/SnakeMode.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using Drawing = System.Drawing;
using Media = System.Windows.Media;


namespace HueHue.Views
{
Expand Down Expand Up @@ -41,32 +43,24 @@ public SnakeMode()
//Binding each value from the RGB is broken
//Binding the color it self conflicts because the controler uses System.Windows.Media.Color instead of System.Drawing.Color
//I give up, this is it, MVVM for a later day.
colorPicker.SelectedColor = System.Windows.Media.Color.FromArgb(App.settings.ColorOne.A, App.settings.ColorOne.R, App.settings.ColorOne.G, App.settings.ColorOne.B);
colorPicker.SelectedColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorOne.A, App.settings.ColorOne.R, App.settings.ColorOne.G, App.settings.ColorOne.B));
colorPicker.InitialColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorOne.A, App.settings.ColorOne.R, App.settings.ColorOne.G, App.settings.ColorOne.B));

colorPicker2.SelectedColor = System.Windows.Media.Color.FromArgb(App.settings.ColorTwo.A, App.settings.ColorTwo.R, App.settings.ColorTwo.G, App.settings.ColorTwo.B);
colorPicker2.SelectedColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorTwo.A, App.settings.ColorTwo.R, App.settings.ColorTwo.G, App.settings.ColorTwo.B));
colorPicker2.InitialColorBrush = new Media.SolidColorBrush(Media.Color.FromArgb(App.settings.ColorTwo.A, App.settings.ColorTwo.R, App.settings.ColorTwo.G, App.settings.ColorTwo.B));
}

private void Timer_Tick(object sender, EventArgs e)
{
Effects.Snake(App.settings.Length);
}

private void colorPicker_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color?> e)
private void colorPicker_ColorChanged(object sender, ColorTools.ColorControlPanel.ColorChangedEventArgs e)
{
Effects.ColorOne.B = e.NewValue.Value.B;
Effects.ColorOne.G = e.NewValue.Value.G;
Effects.ColorOne.R = e.NewValue.Value.R;

App.settings.ColorOne = System.Drawing.Color.FromArgb(e.NewValue.Value.R, e.NewValue.Value.G, e.NewValue.Value.B);
Effects.ColorOne = (LEDBulb)e.CurrentColor;
App.settings.ColorOne = (Drawing.Color)Effects.ColorOne;
}

private void colorPicker2_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color?> e)
private void colorPicker2_ColorChanged(object sender, ColorTools.ColorControlPanel.ColorChangedEventArgs e)
{
Effects.ColorTwo.B = e.NewValue.Value.B;
Effects.ColorTwo.G = e.NewValue.Value.G;
Effects.ColorTwo.R = e.NewValue.Value.R;

App.settings.ColorTwo = System.Drawing.Color.FromArgb(e.NewValue.Value.R, e.NewValue.Value.G, e.NewValue.Value.B);
Effects.ColorTwo = (LEDBulb)e.CurrentColor;
App.settings.ColorTwo = (Drawing.Color)Effects.ColorTwo;
}

private void sliderSpeed_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
Expand All @@ -78,6 +72,10 @@ private void sliderSpeed_ValueChanged(object sender, RoutedPropertyChangedEventA
timer.Start();
}
}
private void Timer_Tick(object sender, EventArgs e)
{
Effects.Snake(App.settings.Length);
}

private void Grid_Unloaded(object sender, RoutedEventArgs e)
{
Expand Down

0 comments on commit 15f1d8f

Please sign in to comment.