Skip to content

Commit 8b70199

Browse files
committed
theme editor: allow writing into color text fields, escape = undo current textfield edit
1 parent c204190 commit 8b70199

File tree

2 files changed

+50
-4
lines changed

2 files changed

+50
-4
lines changed

UnityLauncherPro/ThemeEditor.xaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,22 +238,22 @@
238238
<StackPanel Orientation="Horizontal">
239239
<Label Foreground="#FFC1C1C1" Width="44">Red</Label>
240240
<Slider x:Name="sliderRed" AutoToolTipPlacement="TopLeft" AutoToolTipPrecision="0" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="200" Height="28" Value="255" Maximum="255" LargeChange="0" SmallChange="1" ValueChanged="SliderRed_ValueChanged" PreviewMouseLeftButtonDown="SliderRed_PreviewMouseLeftButtonDown" IsSnapToTickEnabled="True"/>
241-
<TextBox x:Name="txtRed" Text="{Binding ElementName=sliderRed,Path=Value}" Background="#FFAAAAAA" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Margin="5,0,0,8" IsReadOnly="True" />
241+
<TextBox x:Name="txtRed" Text="{Binding ElementName=sliderRed,Path=Value}" Background="#FFAAAAAA" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Margin="5,0,0,8" KeyUp="TxtRed_KeyUp" PreviewKeyDown="TxtColorField_PreviewKeyDown" />
242242
</StackPanel>
243243
<StackPanel Orientation="Horizontal">
244244
<Label Foreground="#FFC1C1C1" Width="44">Green</Label>
245245
<Slider x:Name="sliderGreen" AutoToolTipPlacement="TopLeft" AutoToolTipPrecision="0" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="200" Height="28" Value="255" Maximum="255" LargeChange="0" SmallChange="1" ValueChanged="SliderGreen_ValueChanged" PreviewMouseLeftButtonDown="SliderGreen_PreviewMouseLeftButtonDown" IsSnapToTickEnabled="True"/>
246-
<TextBox x:Name="txtGreen" Text="{Binding ElementName=sliderGreen,Path=Value}" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Background="#FFAAAAAA" Margin="5,0,0,8" IsReadOnly="True" />
246+
<TextBox x:Name="txtGreen" Text="{Binding ElementName=sliderGreen,Path=Value}" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Background="#FFAAAAAA" Margin="5,0,0,8" KeyUp="TxtGreen_KeyUp" PreviewKeyDown="TxtColorField_PreviewKeyDown" />
247247
</StackPanel>
248248
<StackPanel Orientation="Horizontal">
249249
<Label Foreground="#FFC1C1C1" Width="44">Blue</Label>
250250
<Slider x:Name="sliderBlue" AutoToolTipPlacement="TopLeft" AutoToolTipPrecision="0" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="200" Height="28" Value="255" Maximum="255" LargeChange="0" SmallChange="1" ValueChanged="SliderBlue_ValueChanged" PreviewMouseLeftButtonDown="SliderBlue_PreviewMouseLeftButtonDown" IsSnapToTickEnabled="True"/>
251-
<TextBox x:Name="txtBlue" Text="{Binding ElementName=sliderBlue,Path=Value}" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Background="#FFAAAAAA" Margin="5,0,0,8" IsReadOnly="True" />
251+
<TextBox x:Name="txtBlue" Text="{Binding ElementName=sliderBlue,Path=Value}" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Background="#FFAAAAAA" Margin="5,0,0,8" KeyUp="TxtBlue_KeyUp" PreviewKeyDown="TxtColorField_PreviewKeyDown" />
252252
</StackPanel>
253253
<StackPanel Orientation="Horizontal">
254254
<Label Foreground="#FFC1C1C1" Width="44">Alpha</Label>
255255
<Slider x:Name="sliderAlpha" AutoToolTipPlacement="TopLeft" AutoToolTipPrecision="0" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="200" Height="28" Value="255" Maximum="255" LargeChange="0" SmallChange="1" ValueChanged="SliderAlpha_ValueChanged" PreviewMouseLeftButtonDown="SliderAlpha_PreviewMouseLeftButtonDown" IsSnapToTickEnabled="True"/>
256-
<TextBox x:Name="txtAlpha" Text="{Binding ElementName=sliderAlpha,Path=Value}" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Background="#FFAAAAAA" Margin="5,0,0,8" IsReadOnly="True" />
256+
<TextBox x:Name="txtAlpha" Text="{Binding ElementName=sliderAlpha,Path=Value}" VerticalAlignment="Center" IsUndoEnabled="True" Width="32" Background="#FFAAAAAA" Margin="5,0,0,8" KeyUp="TxtAlpha_KeyUp" PreviewKeyDown="TxtColorField_PreviewKeyDown" />
257257
</StackPanel>
258258
</StackPanel>
259259
<StackPanel Orientation="Vertical" Margin="25,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center">

UnityLauncherPro/ThemeEditor.xaml.cs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,5 +241,51 @@ void SetUndoValues(Object sender, TextBox textBox)
241241
previousSlider = (Slider)sender;
242242
previousValue = (int)previousSlider.Value;
243243
}
244+
245+
private void TxtRed_KeyUp(object sender, KeyEventArgs e)
246+
{
247+
GetColorFromTextBox((TextBox)sender, sliderRed);
248+
}
249+
250+
private void TxtGreen_KeyUp(object sender, KeyEventArgs e)
251+
{
252+
GetColorFromTextBox((TextBox)sender, sliderGreen);
253+
}
254+
255+
private void TxtBlue_KeyUp(object sender, KeyEventArgs e)
256+
{
257+
GetColorFromTextBox((TextBox)sender, sliderBlue);
258+
}
259+
260+
private void TxtAlpha_KeyUp(object sender, KeyEventArgs e)
261+
{
262+
GetColorFromTextBox((TextBox)sender, sliderAlpha);
263+
}
264+
265+
void GetColorFromTextBox(TextBox source, Slider target)
266+
{
267+
int col = 0;
268+
if (int.TryParse(source.Text, out col))
269+
{
270+
bool overWrite = false;
271+
if (col < 0) { col = 0; overWrite = true; }
272+
if (col > 255) { col = 255; overWrite = true; }
273+
274+
source.Text = col + "";
275+
target.Value = col;
276+
277+
if (overWrite == true) source.SelectAll();
278+
}
279+
}
280+
281+
private void TxtColorField_PreviewKeyDown(object sender, KeyEventArgs e)
282+
{
283+
switch (e.Key)
284+
{
285+
case Key.Escape: // undo current textbox edit
286+
((TextBox)sender).Undo();
287+
break;
288+
}
289+
}
244290
} // class
245291
} // namespace

0 commit comments

Comments
 (0)