Repository navigation
Expand file tree
/
Copy pathOptionsWindow.xaml
More file actions
240 lines (219 loc) · 15.7 KB
/
Copy pathOptionsWindow.xaml
File metadata and controls
240 lines (219 loc) · 15.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<Window x:Class="RAM_Cleaner.OptionsWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="Options" Height="427" Width="700"
WindowStartupLocation="CenterOwner"
WindowStyle="None" AllowsTransparency="True" Background="Transparent" ResizeMode="NoResize"
FontFamily="Segoe UI"
Icon="icon.ico"
ShowInTaskbar="False">
<Border CornerRadius="10" Background="{StaticResource CardBgBrush}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="42"/>
<RowDefinition Height="*"/>
<RowDefinition Height="56"/>
</Grid.RowDefinitions>
<!-- Title bar -->
<Border Grid.Row="0" Background="{StaticResource AccentBrush}" CornerRadius="9,9,0,0"
MouseLeftButtonDown="TitleBar_MouseLeftButtonDown">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="icon.ico" Width="25" Height="25"
Margin="12,0,8,0" VerticalAlignment="Center"/>
<TextBlock Grid.Column="1" Text="Options" Foreground="White" FontSize="13"
FontWeight="SemiBold" VerticalAlignment="Center"/>
<Button Grid.Column="2" Style="{StaticResource TitleBarButtonNoHoverStyle}" Margin="0,0,5,0" Click="Cancel_Click">
<Path Data="{StaticResource CloseIconGeometry}" Stroke="White" StrokeThickness="1.4" Width="10" Height="10"/>
</Button>
</Grid>
</Border>
<!-- Settings: two columns - general toggles on the left, exclude-list on the right -->
<Grid Grid.Row="1" Margin="15,15,15,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="340"/>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- Left column: general settings -->
<StackPanel Grid.Column="0">
<Grid Margin="0,0,0,16">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="StartWithWindowsToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Start with Windows" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}"/>
</Grid>
<Grid Margin="0,0,0,16">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="LaunchMinimizedToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Launch minimized at startup" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}"/>
</Grid>
<Grid Margin="0,0,0,16">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="MinimizeToTrayToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Minimize to system tray instead of closing" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}" TextWrapping="Wrap"/>
</Grid>
<Grid Margin="0,0,0,16">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="SkipFullscreenToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Don't optimize during fullscreen apps" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}" TextWrapping="Wrap"/>
</Grid>
<Grid Margin="0,0,0,16">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="ShowNotificationToastToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Show notification toast" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}" TextWrapping="Wrap"/>
</Grid>
<Grid Margin="0,0,0,13">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="ShowChartToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Show display in chart" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}"/>
</Grid>
<Grid Margin="0,0,0,13">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="AutoOptimizeThresholdToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Auto-optimize when usage exceeds (%)" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}" TextWrapping="Wrap"/>
<TextBox x:Name="ThresholdTextBox" Grid.Column="2" Style="{StaticResource ModernTextBoxStyle}" Padding="0" TextAlignment="Center"
MaxLength="3" PreviewTextInput="NumericOnly_PreviewTextInput" LostFocus="ThresholdTextBox_LostFocus"/>
</Grid>
<Grid Margin="0,0,0,13">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="55"/>
<ColumnDefinition Width="90"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="AutoOptimizeIntervalToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Auto-optimize every" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}"/>
<TextBox x:Name="IntervalTextBox" Grid.Column="2" Style="{StaticResource ModernTextBoxStyle}" Padding="0" TextAlignment="Center" Margin="0,0,6,0"
MaxLength="2" PreviewTextInput="NumericOnly_PreviewTextInput" LostFocus="IntervalTextBox_LostFocus"/>
<ComboBox x:Name="IntervalUnitCombo" Grid.Column="3" Style="{StaticResource ModernComboBoxStyle}"
ItemContainerStyle="{StaticResource ModernComboBoxItemStyle}">
<ComboBoxItem Content="Seconds"/>
<ComboBoxItem Content="Minutes"/>
</ComboBox>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="55"/>
<ColumnDefinition Width="90"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="RefreshIntervalToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Refresh interval" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}"/>
<TextBox x:Name="RefreshIntervalTextBox" Grid.Column="2" Style="{StaticResource ModernTextBoxStyle}" Padding="0" TextAlignment="Center" Margin="0,0,6,0"
MaxLength="2" PreviewTextInput="NumericOnly_PreviewTextInput" LostFocus="RefreshIntervalTextBox_LostFocus"/>
<ComboBox x:Name="RefreshIntervalUnitCombo" Grid.Column="3" Style="{StaticResource ModernComboBoxStyle}"
ItemContainerStyle="{StaticResource ModernComboBoxItemStyle}">
<ComboBoxItem Content="Seconds"/>
<ComboBoxItem Content="Minutes"/>
</ComboBox>
</Grid>
</StackPanel>
<!-- Right column: exclude-list -->
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="ExcludeProcessesToggle" Grid.Column="0" Style="{StaticResource ToggleSwitchStyle}" VerticalAlignment="Center" Margin="0,0,10,0"/>
<TextBlock Grid.Column="1" Text="Exclude processes in this list" FontSize="13" VerticalAlignment="Center" Foreground="{StaticResource TextPrimaryBrush}" TextWrapping="Wrap"/>
</Grid>
<Grid Grid.Row="1" Margin="0,0,0,8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="60"/>
</Grid.ColumnDefinitions>
<TextBox x:Name="ExcludedProcessInput" Grid.Column="0" Style="{StaticResource ModernTextBoxStyle}"
Margin="0,0,6,0" Tag="e.g. chrome.exe" KeyDown="ExcludedProcessInput_KeyDown"/>
<Button Grid.Column="1" Content="Add" Background="{StaticResource AccentBrush}"
Style="{StaticResource RoundedActionButtonStyle}" Click="AddExcludedProcess_Click"/>
</Grid>
<Button x:Name="PickProcessButton" Grid.Row="2" Margin="0,0,0,10" Height="30"
Style="{StaticResource SecondaryButtonStyle}" Click="PickProcessButton_Click">
<TextBlock Text="Pick from running processes..." FontSize="12"/>
</Button>
<Popup x:Name="ProcessPickerPopup" PlacementTarget="{Binding ElementName=PickProcessButton}"
Placement="Bottom" StaysOpen="False" AllowsTransparency="True" Width="260">
<Border Background="{StaticResource CardBgBrush}" BorderBrush="{StaticResource BorderDefaultBrush}"
BorderThickness="1.4" CornerRadius="6" Margin="0,4,0,0">
<Border.Effect>
<DropShadowEffect ShadowDepth="2" BlurRadius="10" Opacity="0.18" Direction="270"/>
</Border.Effect>
<Grid MinHeight="40">
<TextBlock x:Name="ProcessPickerLoadingText" Text="Loading processes..." FontSize="12"
Foreground="{StaticResource TextSecondaryBrush}"
HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10"/>
<ListBox x:Name="RunningProcessesList" MaxHeight="260" BorderThickness="0" FontSize="12"
ItemContainerStyle="{StaticResource PlainListBoxItemStyle}"
SelectionChanged="RunningProcessesList_SelectionChanged"/>
</Grid>
</Border>
</Popup>
<Border Grid.Row="3" BorderBrush="{StaticResource BorderDefaultBrush}" BorderThickness="1.4" CornerRadius="6" Margin="0,0,0,10">
<ListBox x:Name="ExcludedProcessesList" BorderThickness="0" Background="Transparent" FontSize="12"
ItemContainerStyle="{StaticResource PlainListBoxItemStyle}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="6,3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding}" VerticalAlignment="Center"
Foreground="{StaticResource TextPrimaryBrush}"/>
<Button Grid.Column="1" Content="✕" Style="{StaticResource ListRemoveButtonStyle}"
Tag="{Binding}" Click="RemoveExcludedProcess_Click" ToolTip="Remove"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Border>
</Grid>
</Grid>
<!-- Buttons -->
<Grid Grid.Row="2" Margin="200,0,200,15">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="Cancel" Style="{StaticResource SecondaryButtonStyle}" Margin="0,0,6,0" Click="Cancel_Click"/>
<Button Grid.Column="1" Content="Save" Background="{StaticResource AccentBrush}"
Style="{StaticResource RoundedActionButtonStyle}" Margin="10,0,0,0" Click="Save_Click"/>
</Grid>
</Grid>
</Border>
</Window>