@@ -31,28 +31,6 @@ public ThemeEditor()
31
31
InitializeComponent ( ) ;
32
32
}
33
33
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
-
56
34
private void Window_Loaded ( object sender , RoutedEventArgs e )
57
35
{
58
36
themeColors . Clear ( ) ;
@@ -84,6 +62,34 @@ private void Window_Loaded(object sender, RoutedEventArgs e)
84
62
gridThemeColors . SelectedIndex = 0 ;
85
63
}
86
64
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
+
87
93
private void GridThemeColors_SelectionChanged ( object sender , SelectionChangedEventArgs e )
88
94
{
89
95
if ( gridThemeColors . SelectedIndex == - 1 ) return ;
@@ -95,15 +101,10 @@ private void GridThemeColors_SelectionChanged(object sender, SelectionChangedEve
95
101
rectSelectedColor . Fill = item . Brush ;
96
102
97
103
// 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 ) ;
107
108
}
108
109
109
110
private void BtnSaveTheme_Click ( object sender , RoutedEventArgs e )
@@ -139,7 +140,6 @@ private void BtnSaveTheme_Click(object sender, RoutedEventArgs e)
139
140
previousSaveFileName = Path . GetFileNameWithoutExtension ( themePath ) ;
140
141
File . WriteAllLines ( themePath , iniRows ) ;
141
142
Console . WriteLine ( "Saved theme: " + themePath ) ;
142
- // TODO close theme editor window?
143
143
}
144
144
}
145
145
@@ -158,49 +158,39 @@ private void BtnResetTheme_Click(object sender, RoutedEventArgs e)
158
158
if ( gridThemeColors . SelectedItem != null )
159
159
{
160
160
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 ) ;
170
165
}
171
166
172
167
UpdateColorPreview ( ) ;
173
-
174
168
gridThemeColors . Items . Refresh ( ) ;
175
169
}
176
170
177
171
private void SliderRed_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
178
172
{
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 ;
181
175
UpdateColorPreview ( ) ;
182
176
}
183
177
184
178
private void SliderGreen_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
185
179
{
186
- if ( forceValue == true ) return ;
187
- if ( txtGreen == null ) return ;
180
+ if ( forceValue == true || txtGreen == null ) return ;
188
181
UpdateColorPreview ( ) ;
189
182
}
190
183
191
184
private void SliderBlue_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
192
185
{
193
- if ( forceValue == true ) return ;
194
- if ( txtBlue == null ) return ;
186
+ if ( forceValue == true || txtBlue == null ) return ;
195
187
UpdateColorPreview ( ) ;
196
188
}
197
189
198
190
public void Executed_Undo ( object sender , ExecutedRoutedEventArgs e )
199
191
{
200
192
// restore previous color
201
- forceValue = true ;
202
- previousSlider . Value = previousValue ;
203
- forceValue = false ;
193
+ SetSlider ( previousSlider , previousValue ) ;
204
194
UpdateColorPreview ( ) ;
205
195
}
206
196
@@ -209,17 +199,6 @@ public void CanExecute_Undo(object sender, CanExecuteRoutedEventArgs e)
209
199
e . CanExecute = previousValue > - 1 ;
210
200
}
211
201
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
-
223
202
private void SliderAlpha_ValueChanged ( object sender , RoutedPropertyChangedEventArgs < double > e )
224
203
{
225
204
if ( forceValue == true ) return ;
0 commit comments