@@ -31,28 +31,6 @@ public ThemeEditor()
3131 InitializeComponent ( ) ;
3232 }
3333
34- void UpdateColorPreview ( )
35- {
36- var newColor = new Color ( ) ;
37- newColor . R = ( byte ) sliderRed . Value ;
38- newColor . G = ( byte ) sliderGreen . Value ;
39- newColor . B = ( byte ) sliderBlue . Value ;
40- newColor . A = ( byte ) sliderAlpha . Value ;
41- var newColorBrush = new SolidColorBrush ( newColor ) ;
42- rectSelectedColor . Fill = newColorBrush ;
43-
44- // set new color into our collection values
45- themeColors [ themeColors . IndexOf ( ( ThemeColor ) gridThemeColors . SelectedItem ) ] . Brush = newColorBrush ;
46-
47- // NOTE slow but works..
48- gridThemeColors . Items . Refresh ( ) ;
49-
50- // apply color changes to mainwindow
51- var item = gridThemeColors . SelectedItem as ThemeColor ;
52- Application . Current . Resources [ item . Key ] = newColorBrush ;
53- forceValue = false ;
54- }
55-
5634 private void Window_Loaded ( object sender , RoutedEventArgs e )
5735 {
5836 themeColors . Clear ( ) ;
@@ -84,6 +62,34 @@ private void Window_Loaded(object sender, RoutedEventArgs e)
8462 gridThemeColors . SelectedIndex = 0 ;
8563 }
8664
65+ void UpdateColorPreview ( )
66+ {
67+ var newColor = new Color ( ) ;
68+ newColor . R = ( byte ) sliderRed . Value ;
69+ newColor . G = ( byte ) sliderGreen . Value ;
70+ newColor . B = ( byte ) sliderBlue . Value ;
71+ newColor . A = ( byte ) sliderAlpha . Value ;
72+ var newColorBrush = new SolidColorBrush ( newColor ) ;
73+ rectSelectedColor . Fill = newColorBrush ;
74+
75+ // set new color into our collection values
76+ themeColors [ themeColors . IndexOf ( ( ThemeColor ) gridThemeColors . SelectedItem ) ] . Brush = newColorBrush ;
77+
78+ gridThemeColors . Items . Refresh ( ) ;
79+
80+ // apply color changes to mainwindow
81+ var item = gridThemeColors . SelectedItem as ThemeColor ;
82+ Application . Current . Resources [ item . Key ] = newColorBrush ;
83+ forceValue = false ;
84+ }
85+
86+ void SetSlider ( Slider target , double color )
87+ {
88+ forceValue = true ;
89+ target . Value = color ;
90+ forceValue = false ;
91+ }
92+
8793 private void GridThemeColors_SelectionChanged ( object sender , SelectionChangedEventArgs e )
8894 {
8995 if ( gridThemeColors . SelectedIndex == - 1 ) return ;
@@ -95,15 +101,10 @@ private void GridThemeColors_SelectionChanged(object sender, SelectionChangedEve
95101 rectSelectedColor . Fill = item . Brush ;
96102
97103 // update RGBA sliders
98- forceValue = true ;
99- sliderRed . Value = item . Brush . Color . R ;
100- forceValue = true ;
101- sliderGreen . Value = item . Brush . Color . G ;
102- forceValue = true ;
103- sliderBlue . Value = item . Brush . Color . B ;
104- forceValue = true ;
105- sliderAlpha . Value = item . Brush . Color . A ;
106- forceValue = false ;
104+ SetSlider ( sliderRed , item . Brush . Color . R ) ;
105+ SetSlider ( sliderGreen , item . Brush . Color . G ) ;
106+ SetSlider ( sliderBlue , item . Brush . Color . B ) ;
107+ SetSlider ( sliderAlpha , item . Brush . Color . A ) ;
107108 }
108109
109110 private void BtnSaveTheme_Click ( object sender , RoutedEventArgs e )
@@ -139,7 +140,6 @@ private void BtnSaveTheme_Click(object sender, RoutedEventArgs e)
139140 previousSaveFileName = Path . GetFileNameWithoutExtension ( themePath ) ;
140141 File . WriteAllLines ( themePath , iniRows ) ;
141142 Console . WriteLine ( "Saved theme: " + themePath ) ;
142- // TODO close theme editor window?
143143 }
144144 }
145145
@@ -158,49 +158,39 @@ private void BtnResetTheme_Click(object sender, RoutedEventArgs e)
158158 if ( gridThemeColors . SelectedItem != null )
159159 {
160160 var item = gridThemeColors . SelectedItem as ThemeColor ;
161- forceValue = true ;
162- sliderRed . Value = item . Brush . Color . R ;
163- forceValue = true ;
164- sliderGreen . Value = item . Brush . Color . G ;
165- forceValue = true ;
166- sliderBlue . Value = item . Brush . Color . B ;
167- forceValue = true ;
168- sliderAlpha . Value = item . Brush . Color . A ;
169- forceValue = false ;
161+ SetSlider ( sliderRed , item . Brush . Color . R ) ;
162+ SetSlider ( sliderGreen , item . Brush . Color . G ) ;
163+ SetSlider ( sliderBlue , item . Brush . Color . B ) ;
164+ SetSlider ( sliderAlpha , item . Brush . Color . A ) ;
170165 }
171166
172167 UpdateColorPreview ( ) ;
173-
174168 gridThemeColors . Items . Refresh ( ) ;
175169 }
176170
177171 private void SliderRed_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
178172 {
179- if ( forceValue == true ) return ;
180- if ( txtRed == null ) return ; // onchanged is called before other components are ready..thanks wpf :D
173+ // onchanged is called before other components are ready..thanks wpf :D
174+ if ( forceValue == true || txtRed == null ) return ;
181175 UpdateColorPreview ( ) ;
182176 }
183177
184178 private void SliderGreen_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
185179 {
186- if ( forceValue == true ) return ;
187- if ( txtGreen == null ) return ;
180+ if ( forceValue == true || txtGreen == null ) return ;
188181 UpdateColorPreview ( ) ;
189182 }
190183
191184 private void SliderBlue_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
192185 {
193- if ( forceValue == true ) return ;
194- if ( txtBlue == null ) return ;
186+ if ( forceValue == true || txtBlue == null ) return ;
195187 UpdateColorPreview ( ) ;
196188 }
197189
198190 public void Executed_Undo ( object sender , ExecutedRoutedEventArgs e )
199191 {
200192 // restore previous color
201- forceValue = true ;
202- previousSlider . Value = previousValue ;
203- forceValue = false ;
193+ SetSlider ( previousSlider , previousValue ) ;
204194 UpdateColorPreview ( ) ;
205195 }
206196
@@ -209,17 +199,6 @@ public void CanExecute_Undo(object sender, CanExecuteRoutedEventArgs e)
209199 e . CanExecute = previousValue > - 1 ;
210200 }
211201
212- // TODO could add paste HTML code from clipboard
213- //public void Executed_Paste(object sender, ExecutedRoutedEventArgs e)
214- //{
215- // //OnPasteImageFromClipboard();
216- //}
217-
218- //public void CanExecute_Paste(object sender, CanExecuteRoutedEventArgs e)
219- //{
220- // e.CanExecute = true;
221- //}
222-
223202 private void SliderAlpha_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
224203 {
225204 if ( forceValue == true ) return ;
0 commit comments