Skip to content

Commit 7755ece

Browse files
Merge pull request #10 from Stone-Red-Code/develop
Develop
2 parents 13ed2f6 + b380e35 commit 7755ece

16 files changed

Lines changed: 472 additions & 191 deletions

src/DesktopMagic/DesktopMagic.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<ApplicationIcon>icon.ico</ApplicationIcon>
88
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
99
<Authors>Stone_Red</Authors>
10-
<Version>1.1.0.0</Version>
10+
<Version>1.2.0.0</Version>
1111
<PackageProjectUrl>https://github.com/Stone-Red-Code/DesktopMagic</PackageProjectUrl>
1212
<RepositoryUrl>https://github.com/Stone-Red-Code/DesktopMagic</RepositoryUrl>
13-
<AssemblyVersion>1.1.0.0</AssemblyVersion>
14-
<FileVersion>1.1.0.0</FileVersion>
13+
<AssemblyVersion>1.2.0.0</AssemblyVersion>
14+
<FileVersion>1.2.0.0</FileVersion>
1515
<TargetFramework>net8.0-windows7.0</TargetFramework>
1616
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
1717
<Nullable>enable</Nullable>
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<Window x:Class="DesktopMagic.Dialogs.ThemeDialog"
2+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6+
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
7+
xmlns:local="clr-namespace:DesktopMagic.Dialogs"
8+
mc:Ignorable="d"
9+
ResizeMode="NoResize"
10+
Title="ThemeDialog"
11+
WindowStartupLocation="CenterOwner"
12+
SizeToContent="WidthAndHeight">
13+
<Grid>
14+
<StackPanel Margin="15">
15+
<Label x:Name="label" Content="Label" HorizontalAlignment="Left" VerticalAlignment="Top" />
16+
<Grid>
17+
<Grid.ColumnDefinitions>
18+
<ColumnDefinition Width="*"/>
19+
<ColumnDefinition Width="*"/>
20+
</Grid.ColumnDefinitions>
21+
<Grid Grid.Column="0" Margin="{StaticResource DefaultMargin}" HorizontalAlignment="Stretch">
22+
<Grid.ColumnDefinitions>
23+
<ColumnDefinition Width="Auto" />
24+
<ColumnDefinition Width="*" />
25+
</Grid.ColumnDefinitions>
26+
<Grid.RowDefinitions>
27+
<RowDefinition Height="Auto" />
28+
<RowDefinition Height="Auto" />
29+
<RowDefinition Height="Auto" />
30+
</Grid.RowDefinitions>
31+
32+
<TextBlock Text="Display Font: " Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" Loaded="TextBlock_Loaded"/>
33+
<ComboBox x:Name="fontComboBox" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Top" SelectionChanged="FontComboBox_SelectionChanged" Margin="0,0,0,5" />
34+
35+
<TextBlock Text="Corner Radius: " Grid.Column="0" Grid.Row="1" VerticalAlignment="Center"></TextBlock>
36+
<TextBox x:Name="cornerRadiusTextBox" Grid.Column="1" Grid.Row="1" TextChanged="CornerRadiusTextBox_TextChanged" materialDesign:HintAssist.Hint="Enter a number">
37+
<materialDesign:TextFieldAssist.CharacterCounterStyle>
38+
<Style TargetType="TextBlock" />
39+
</materialDesign:TextFieldAssist.CharacterCounterStyle>
40+
</TextBox>
41+
42+
<TextBlock Text="Margin: " Grid.Column="0" Grid.Row="3" VerticalAlignment="Center"></TextBlock>
43+
<TextBox x:Name="marginTextBox" Grid.Column="1" Grid.Row="3" TextChanged="MarginTextBox_TextChanged" materialDesign:HintAssist.Hint="Enter a number">
44+
<materialDesign:TextFieldAssist.CharacterCounterStyle>
45+
<Style TargetType="TextBlock" />
46+
</materialDesign:TextFieldAssist.CharacterCounterStyle>
47+
</TextBox>
48+
</Grid>
49+
<StackPanel Grid.Column="1" Margin="{StaticResource DefaultMargin}" HorizontalAlignment="Stretch">
50+
<DockPanel Margin="0,0,0,5">
51+
<Border CornerRadius="1" BorderThickness="1.5" BorderBrush="Gray" Height="23" Width="23" Margin="0,0,5,0">
52+
<Rectangle x:Name="primaryColorRechtangle" Fill="White" />
53+
</Border>
54+
<Button Content="Change Primary Color" Height="23" FontSize="12" FontWeight="Regular" Click="ChangePrimaryColorButton_Click" />
55+
</DockPanel>
56+
<DockPanel Margin="0,0,0,5">
57+
<Border CornerRadius="1" BorderThickness="1.5" BorderBrush="Gray" Height="23" Width="23" Margin="0,0,5,0">
58+
<Rectangle x:Name="secondaryColorRechtangle" Fill="White" />
59+
</Border>
60+
<Button Content="Change Secondary Color" Height="23" FontSize="12" FontWeight="Regular" Click="ChangeSecondaryColorButton_Click" />
61+
</DockPanel>
62+
<DockPanel>
63+
<Border CornerRadius="1" BorderThickness="1.5" BorderBrush="Gray" Height="23" Width="23" Margin="0,0,5,0">
64+
<Rectangle x:Name="backgroundColorRechtangle" Fill="White" />
65+
</Border>
66+
<Button Content="Change Background Color" Height="23" FontSize="12" FontWeight="Regular" Click="ChangeBackgroundColorButton_Click" />
67+
</DockPanel>
68+
</StackPanel>
69+
</Grid>
70+
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,0,0">
71+
<Button x:Name="okButton" Content="{DynamicResource ok }" HorizontalAlignment="Left" Margin="0,0,10,0" VerticalAlignment="Top" Width="100" Click="OkButton_Click" Cursor="Hand" />
72+
<Button x:Name="cancelButton" Content="{DynamicResource cancel }" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="100" Click="CancelButton_Click" />
73+
</StackPanel>
74+
</StackPanel>
75+
</Grid>
76+
</Window>
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
using DesktopMagic.Helpers;
2+
using DesktopMagic.Plugins;
3+
4+
using System.Windows;
5+
using System.Windows.Controls;
6+
using System.Windows.Media;
7+
8+
namespace DesktopMagic.Dialogs;
9+
10+
/// <summary>
11+
/// Interaction logic for ColorDialog.xaml
12+
/// </summary>
13+
public partial class ThemeDialog : Window
14+
{
15+
private readonly Theme theme;
16+
17+
public ThemeDialog(string content, Theme theme, string title = App.AppName)
18+
{
19+
this.theme = theme;
20+
21+
InitializeComponent();
22+
23+
Resources.MergedDictionaries.Add(App.LanguageDictionary);
24+
25+
cornerRadiusTextBox.Text = theme.CornerRadius.ToString();
26+
marginTextBox.Text = theme.Margin.ToString();
27+
primaryColorRechtangle.Fill = new SolidColorBrush(MultiColorConverter.ConvertToMediaColor(theme.PrimaryColor));
28+
secondaryColorRechtangle.Fill = new SolidColorBrush(MultiColorConverter.ConvertToMediaColor(theme.SecondaryColor));
29+
backgroundColorRechtangle.Fill = new SolidColorBrush(MultiColorConverter.ConvertToMediaColor(theme.BackgroundColor));
30+
31+
label.Content = content;
32+
Title = title;
33+
}
34+
35+
private void OkButton_Click(object sender, RoutedEventArgs e)
36+
{
37+
DialogResult = true;
38+
}
39+
40+
private void CancelButton_Click(object sender, RoutedEventArgs e)
41+
{
42+
DialogResult = false;
43+
}
44+
45+
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
46+
{
47+
int index = 0;
48+
foreach (FontFamily ff in Fonts.SystemFontFamilies)
49+
{
50+
ComboBoxItem comboBoxItem = new()
51+
{
52+
FontFamily = ff,
53+
Content = ff.ToString()
54+
};
55+
_ = fontComboBox.Items.Add(comboBoxItem);
56+
57+
if (ff.ToString() == theme.Font)
58+
{
59+
fontComboBox.SelectedIndex = index;
60+
}
61+
index++;
62+
}
63+
if (fontComboBox.SelectedIndex == -1)
64+
{
65+
fontComboBox.SelectedIndex = 0;
66+
}
67+
}
68+
69+
private void FontComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
70+
{
71+
theme.Font = fontComboBox.SelectedValue.ToString()!.Replace("System.Windows.Controls.ComboBoxItem: ", "");
72+
}
73+
74+
private void ChangePrimaryColorButton_Click(object sender, RoutedEventArgs e)
75+
{
76+
ColorDialog colorDialog = new ColorDialog("Set Primary Color", theme.PrimaryColor)
77+
{
78+
Owner = this
79+
};
80+
81+
if (colorDialog.ShowDialog() == true)
82+
{
83+
theme.PrimaryColor = colorDialog.ResultColor;
84+
primaryColorRechtangle.Fill = colorDialog.ResultBrush;
85+
}
86+
}
87+
88+
private void ChangeSecondaryColorButton_Click(object sender, RoutedEventArgs e)
89+
{
90+
ColorDialog colorDialog = new ColorDialog("Set Secondary Color", theme.SecondaryColor)
91+
{
92+
Owner = this
93+
};
94+
95+
if (colorDialog.ShowDialog() == true)
96+
{
97+
theme.SecondaryColor = colorDialog.ResultColor;
98+
secondaryColorRechtangle.Fill = colorDialog.ResultBrush;
99+
}
100+
}
101+
102+
private void ChangeBackgroundColorButton_Click(object sender, RoutedEventArgs e)
103+
{
104+
ColorDialog colorDialog = new ColorDialog("Set Background Color", theme.BackgroundColor)
105+
{
106+
Owner = this
107+
};
108+
109+
if (colorDialog.ShowDialog() == true)
110+
{
111+
theme.BackgroundColor = colorDialog.ResultColor;
112+
backgroundColorRechtangle.Fill = colorDialog.ResultBrush;
113+
}
114+
}
115+
116+
private void CornerRadiusTextBox_TextChanged(object? sender, TextChangedEventArgs? e)
117+
{
118+
bool success = int.TryParse(cornerRadiusTextBox.Text, out int cornerRadius);
119+
if (success)
120+
{
121+
cornerRadiusTextBox.Foreground = Brushes.Black;
122+
theme.CornerRadius = cornerRadius;
123+
}
124+
else
125+
{
126+
cornerRadiusTextBox.Foreground = Brushes.Red;
127+
}
128+
}
129+
130+
private void MarginTextBox_TextChanged(object? sender, TextChangedEventArgs? e)
131+
{
132+
bool success = int.TryParse(marginTextBox.Text, out int margin);
133+
if (success)
134+
{
135+
marginTextBox.Foreground = Brushes.Black;
136+
theme.Margin = margin;
137+
}
138+
else
139+
{
140+
marginTextBox.Foreground = Brushes.Red;
141+
}
142+
}
143+
}

src/DesktopMagic/Helpers/SettingElementGenerator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,8 @@ public void Generate(SettingElement settingElement, DockPanel dockPanel, TextBlo
206206
{
207207
try
208208
{
209-
eComboBox.Value = comboBox.SelectedItem.ToString() ?? string.Empty;
209+
comboBox.SelectedItem ??= eComboBox.Value;
210+
eComboBox.Value = comboBox.SelectedItem?.ToString() ?? eComboBox.Value;
210211
}
211212
catch (Exception ex)
212213
{

src/DesktopMagic/MainWindow.xaml

Lines changed: 22 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
<busyIndicator:BusyMask x:Name="BusyIndicator" IsBusy="{Binding IsLoading}" IndicatorType="Cogs" BusyContent="Please wait..." BusyContentMargin="0,20,0,0" IsBusyAtStartup="False">
2626
<Grid>
27-
<TextBlock TextWrapping="Wrap" Text="0" VerticalAlignment="Top" FontFamily="Comic Sans MS" Loaded="TextBlock_Loaded" Foreground="Transparent" />
27+
<TextBlock TextWrapping="Wrap" Text="0" VerticalAlignment="Top" FontFamily="Comic Sans MS" Foreground="Transparent" />
2828
<Grid>
2929
<Grid.RowDefinitions>
3030
<RowDefinition Height="*" />
@@ -38,7 +38,7 @@
3838
<DockPanel Margin="0,0,2.5,0">
3939
<Grid DockPanel.Dock="Top">
4040
<Rectangle Grid.Row="1" Fill="#FFECECEC" Height="24" />
41-
<CheckBox x:Name="editCheckBox" VerticalAlignment="Center" Grid.Row="1" Content="{DynamicResource edit}" Click="EditCheckBox_Click" Foreground="Black" BorderBrush="#FF323232" Style="{StaticResource MaterialDesignDarkCheckBox}" IsChecked="True" />
41+
<CheckBox x:Name="editCheckBox" VerticalAlignment="Center" Grid.Row="1" Content="{DynamicResource editLayout}" Click="EditCheckBox_Click" Foreground="Black" BorderBrush="#FF323232" Style="{StaticResource MaterialDesignDarkCheckBox}" IsChecked="True" />
4242
</Grid>
4343
<ScrollViewer Background="#FFBBBBBB" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
4444
<ItemsControl ItemsSource="{Binding Settings.CurrentLayout.Plugins}">
@@ -75,53 +75,26 @@
7575
<ColumnDefinition />
7676
<ColumnDefinition />
7777
</Grid.ColumnDefinitions>
78-
<Grid Grid.Column="0" Margin="{StaticResource DefaultMargin}" HorizontalAlignment="Stretch">
79-
<Grid.ColumnDefinitions>
80-
<ColumnDefinition Width="Auto" />
81-
<ColumnDefinition Width="*" />
82-
</Grid.ColumnDefinitions>
83-
<Grid.RowDefinitions>
84-
<RowDefinition Height="Auto" />
85-
<RowDefinition Height="Auto" />
86-
<RowDefinition Height="Auto" />
87-
</Grid.RowDefinitions>
88-
89-
<TextBlock Text="Display Font: " Grid.Column="0" Grid.Row="0" VerticalAlignment="Center"></TextBlock>
90-
<ComboBox x:Name="fontComboBox" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Top" SelectionChanged="FontComboBox_SelectionChanged" Margin="0,0,0,5" />
91-
92-
<TextBlock Text="Corner Radius: " Grid.Column="0" Grid.Row="1" VerticalAlignment="Center"></TextBlock>
93-
<TextBox x:Name="cornerRadiusTextBox" Grid.Column="1" Grid.Row="1" TextChanged="CornerRadiusTextBox_TextChanged" materialDesign:HintAssist.Hint="Enter a number">
94-
<materialDesign:TextFieldAssist.CharacterCounterStyle>
95-
<Style TargetType="TextBlock" />
96-
</materialDesign:TextFieldAssist.CharacterCounterStyle>
97-
</TextBox>
98-
99-
<TextBlock Text="Margin: " Grid.Column="0" Grid.Row="3" VerticalAlignment="Center"></TextBlock>
100-
<TextBox x:Name="marginTextBox" Grid.Column="1" Grid.Row="3" TextChanged="MarginTextBox_TextChanged" materialDesign:HintAssist.Hint="Enter a number">
101-
<materialDesign:TextFieldAssist.CharacterCounterStyle>
102-
<Style TargetType="TextBlock" />
103-
</materialDesign:TextFieldAssist.CharacterCounterStyle>
104-
</TextBox>
105-
</Grid>
106-
<StackPanel Grid.Column="1" Margin="{StaticResource DefaultMargin}" HorizontalAlignment="Stretch">
107-
<DockPanel Margin="0,0,0,5">
108-
<Border CornerRadius="1" BorderThickness="1.5" BorderBrush="Gray" Height="23" Width="23" Margin="0,0,5,0">
109-
<Rectangle x:Name="primaryColorRechtangle" Fill="White" />
110-
</Border>
111-
<Button Content="Change Primary Color" Height="23" FontSize="12" FontWeight="Regular" Click="ChangePrimaryColorButton_Click" />
112-
</DockPanel>
113-
<DockPanel Margin="0,0,0,5">
114-
<Border CornerRadius="1" BorderThickness="1.5" BorderBrush="Gray" Height="23" Width="23" Margin="0,0,5,0">
115-
<Rectangle x:Name="secondaryColorRechtangle" Fill="White" />
116-
</Border>
117-
<Button Content="Change Secondary Color" Height="23" FontSize="12" FontWeight="Regular" Click="ChangeSecondaryColorButton_Click" />
118-
</DockPanel>
119-
<DockPanel>
120-
<Border CornerRadius="1" BorderThickness="1.5" BorderBrush="Gray" Height="23" Width="23" Margin="0,0,5,0">
121-
<Rectangle x:Name="backgroundColorRechtangle" Fill="White" />
122-
</Border>
123-
<Button Content="Change Background Color" Height="23" FontSize="12" FontWeight="Regular" Click="ChangeBackgroundColorButton_Click" />
124-
</DockPanel>
78+
<ListBox x:Name="themesListBox" Grid.Row="0" Grid.ColumnSpan="1" Margin="{StaticResource DefaultMargin}" ItemsSource="{Binding Settings.Themes}" DisplayMemberPath="Name" SelectedValue="{Binding Settings.CurrentLayout.CurrentThemeName}" SelectedValuePath="Name" />
79+
<StackPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" Margin="{StaticResource DefaultMargin}">
80+
<Button x:Name="addThemeButton" Margin="0,0,0,5" HorizontalAlignment="Stretch" Click="AddThemeButton_Click" FontWeight="Regular">
81+
<StackPanel Orientation="Horizontal">
82+
<materialDesign:PackIcon Kind="Add" Margin="0 0 10 0" />
83+
<TextBlock Text="{DynamicResource newTheme}" />
84+
</StackPanel>
85+
</Button>
86+
<Button x:Name="deleteThemeButton" Margin="0,0,0,5" HorizontalAlignment="Stretch" Click="DeleteThemeButton_Click" FontWeight="Regular">
87+
<StackPanel Orientation="Horizontal">
88+
<materialDesign:PackIcon Kind="DeleteOutline" Margin="0 0 10 0" />
89+
<TextBlock Text="{DynamicResource deleteTheme}" />
90+
</StackPanel>
91+
</Button>
92+
<Button x:Name="changeThemeButton" Margin="0,0,0,5" HorizontalAlignment="Stretch" Click="ChangeThemeButton_Click" FontWeight="Regular">
93+
<StackPanel Orientation="Horizontal">
94+
<materialDesign:PackIcon Kind="PaletteOutline" Margin="0 0 10 0" />
95+
<TextBlock Text="{DynamicResource changeTheme}" />
96+
</StackPanel>
97+
</Button>
12598
</StackPanel>
12699
<Grid Grid.Row="1" Grid.ColumnSpan="2" VerticalAlignment="Bottom">
127100
<Grid.ColumnDefinitions>

0 commit comments

Comments
 (0)