From aeb000ddc28c34731852746f0a11da5f2d80cf64 Mon Sep 17 00:00:00 2001
From: oZ-Zo <50652175+oz-zo@users.noreply.github.com>
Date: Tue, 26 Nov 2019 12:57:16 +0300
Subject: [PATCH] add "Save", "Load", "Apply" buttons functionality :zap:
---
VS/Script_Gui/Script_Gui_3/MainWindow.xaml | 66 +++++-----
Win-10-Setup-Script-GUI-2511.ps1 | 143 ++++++++++++++-------
2 files changed, 132 insertions(+), 77 deletions(-)
diff --git a/VS/Script_Gui/Script_Gui_3/MainWindow.xaml b/VS/Script_Gui/Script_Gui_3/MainWindow.xaml
index 7a603ab8..bd145ad3 100644
--- a/VS/Script_Gui/Script_Gui_3/MainWindow.xaml
+++ b/VS/Script_Gui/Script_Gui_3/MainWindow.xaml
@@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Script_Gui_3"
mc:Ignorable="d"
- Name="Window" Title="Windows 10 Setup Script" MinHeight="863" MinWidth="950" Height="863" Width="950"
+ Name="Window" Title="Windows 10 Setup Script" MinHeight="863" MinWidth="800" Height="863" Width="800"
FontFamily="Calibri" FontSize="18" TextOptions.TextFormattingMode="Display" WindowStartupLocation="CenterScreen"
SnapsToDevicePixels="True" ResizeMode="CanResize" ShowInTaskbar="True" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}">
@@ -54,7 +54,7 @@
-
+
+
-
+
-
+
-
+
@@ -2251,7 +2251,7 @@
-
+
@@ -2276,7 +2276,7 @@
-
+
@@ -3099,7 +3099,7 @@
-
+
@@ -3200,7 +3200,7 @@
-
+
@@ -3282,14 +3282,14 @@
-
+
-
+
@@ -3371,7 +3371,7 @@
-
+
@@ -3434,7 +3434,7 @@
-
+
@@ -3592,7 +3592,7 @@
-
+
@@ -3921,9 +3921,9 @@
-
+
-
+
diff --git a/Win-10-Setup-Script-GUI-2511.ps1 b/Win-10-Setup-Script-GUI-2511.ps1
index 9009c4a6..8dec7121 100644
--- a/Win-10-Setup-Script-GUI-2511.ps1
+++ b/Win-10-Setup-Script-GUI-2511.ps1
@@ -1,6 +1,38 @@
Add-Type -AssemblyName "PresentationCore", "PresentationFramework", "WindowsBase"
#region Variable
+# Default Script Settings File Extension for File Dialogs
+$scriptSettingExt = ".wtss"
+$scriptSettingFilter = 'Win10 Setup Script Settings|*{0}'-f $scriptSettingExt
+$scriptSettingFileName = "My Win10 Setup Script Settings"
+$scriptSettingInitialDir = [environment]::getfolderpath("MyDocuments")
+
+# Create and Tune Open File Dialog
+$openFileDialog = New-Object Microsoft.Win32.OpenFileDialog($null)
+$openFileDialog.Multiselect = $false
+$openFileDialog.ReadOnlyChecked = $false
+$openFileDialog.ShowReadOnly = $false
+$openFileDialog.AddExtension = $true
+$openFileDialog.CheckFileExists = $true
+$openFileDialog.CheckPathExists = $true
+$openFileDialog.DefaultExt = $scriptSettingExt
+$openFileDialog.DereferenceLinks = $true
+$openFileDialog.Filter = $scriptSettingFilter
+$openFileDialog.InitialDirectory = $scriptSettingInitialDir
+$openFileDialog.ValidateNames = $true
+
+# Create and Tune Save File Dialog
+$saveFileDialog = New-Object Microsoft.Win32.SaveFileDialog($null)
+$saveFileDialog.CreatePrompt = $false
+$saveFileDialog.AddExtension = $true
+$saveFileDialog.CheckFileExists = $true
+$saveFileDialog.CheckPathExists = $true
+$saveFileDialog.DefaultExt = $scriptSettingExt
+$saveFileDialog.DereferenceLinks = $true
+$saveFileDialog.Filter = $scriptSettingFilter
+$saveFileDialog.InitialDirectory = $scriptSettingInitialDir
+$saveFileDialog.ValidateNames = $true
+$saveFileDialog.OverwritePrompt = $true
# If variable clickedToggle > 0 show "Save" and "Apply" button, else hide "Save" and "Apply" button
$clickedToggle = 0
@@ -316,7 +348,7 @@ $TextRu = "Добавить пункт ""Extract"" для MSI в контекс
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- Name="Window" Title="Windows 10 Setup Script" MinHeight="863" MinWidth="750" Height="863" Width="750"
+ Name="Window" Title="Windows 10 Setup Script" MinHeight="863" MinWidth="800" Height="863" Width="800"
FontFamily="Calibri" FontSize="18" TextOptions.TextFormattingMode="Display" WindowStartupLocation="CenterScreen"
SnapsToDevicePixels="True" ResizeMode="CanResize" ShowInTaskbar="True" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}">
@@ -595,7 +627,7 @@ $TextRu = "Добавить пункт ""Extract"" для MSI в контекс
-
+
@@ -4279,6 +4311,7 @@ $togglesPanels = $PanelToggle_ContextMenu, $PanelToggle_Defender, $PanelToggle_E
#endregion Gui Elements Array Collections
#region Script Functions
+
function Hide-Console {
<#
.SYNOPSIS
@@ -4315,13 +4348,13 @@ function Click-HamburgerMenu {
if ($HamburgerMenu.ActualWidth -eq $minWidth)
{
$animation = New-Object System.Windows.Media.Animation.DoubleAnimation($minWidth, $maxWidth, $duration)
- $Window.Width += 200
+ $Window.Width += 150
}
else
{
$animation = New-Object System.Windows.Media.Animation.DoubleAnimation($maxWidth, $minWidth, $duration)
- $Window.Width -= 200
+ $Window.Width -= 150
}
$animation.SpeedRatio ="2"
@@ -4537,38 +4570,50 @@ function Show-InfoPanel {
[CmdletBinding()]
param
(
- [Parameter(Mandatory=$false)]
+ [Parameter(Mandatory=$true)]
[ValidateNotNull()]
[string]$TextRu,
- [Parameter(Mandatory=$false)]
+ [Parameter(Mandatory=$true)]
[ValidateNotNull()]
[string]$TextEng,
+ [Parameter(Mandatory=$true)]
+ [ValidateNotNull()]
+ [string]$HeaderRu,
+
+ [Parameter(Mandatory=$true)]
+ [ValidateNotNull()]
+ [string]$HeaderEng,
+
[Parameter(Mandatory=$false)]
[switch]$ShowAnimation,
[Parameter(Mandatory=$false)]
[switch]$Hide
- )
+ )
+
+ if ($Hide)
+ {
+ $ButtonApply.Visibility = "Visible"
+ $ButtonSave.Visibility = "Visible"
+ $ButtonLoad.Visibility = "Visible"
+ $UserInfo_Border.Visibility = "Collapsed"
+ Exit
+ }
- $TextBlock_Category.Text = ""
- $panelName = "PanelToggle_UserInfo"
+ else
+ {
+ $ButtonApply.Visibility = "Collapsed"
+ $ButtonSave.Visibility = "Collapsed"
+ $ButtonLoad.Visibility = "Collapsed"
+ }
for ($i=0;$i -lt $togglesPanels.Count;$i++)
{
- if ($togglesPanels[$i].Name -eq $panelName)
+ if ($togglesPanels[$i].Name -eq "PanelToggle_UserInfo")
{
- if ($Hide)
- {
- $togglesPanels[$i].Visibility = "Collapsed"
- $UserInfo_TextBlock.Text = ""
- }
-
- else
- {
- $togglesPanels[$i].Visibility = "Visible"
- }
+ $togglesPanels[$i].Visibility = "Visible"
}
else
@@ -4577,25 +4622,22 @@ function Show-InfoPanel {
}
}
- if ($ShowAnimation)
- {
- $UserInfo_Border.Visibility = "Visible"
- }
-
- else
- {
- $UserInfo_Border.Visibility = "Collapsed"
- }
-
if ($RU)
{
+ $TextBlock_Category.Text = $HeaderRu
$UserInfo_TextBlock.Text = $TextRu
}
else
{
+ $TextBlock_Category.Text = $HeaderEng
$UserInfo_TextBlock.Text = $TextEng
}
+
+ if ($ShowAnimation)
+ {
+ $UserInfo_Border.Visibility = "Visible"
+ }
}
function Follow-OnGitHub {
@@ -4614,7 +4656,7 @@ function Follow-OnGitHub {
#region Controls Events
-$ButtonHamburger.Add_MouseLeftButtonDown({
+$ButtonHamburger.Add_MouseLeftButtonUp({
Click-HamburgerMenu
})
@@ -4626,60 +4668,73 @@ $ButtonHamburger.Add_MouseLeave({
Set-HamburgerHover
})
-$Button_Hamburger_ChangeLanguage.Add_MouseLeftButtonDown({
+$Button_Hamburger_ChangeLanguage.Add_MouseLeftButtonUp({
$panelName = Get-ActivePanel
Set-GuiLanguage -Switch
Set-ActivePanel -Name $panelName
})
-$Button_Hamburger_ContextMenu.Add_MouseLeftButtonDown({
+$Button_Hamburger_ContextMenu.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "ContextMenu"
})
-$Button_Hamburger_Defender.Add_MouseLeftButtonDown({
+$Button_Hamburger_Defender.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "Defender"
})
-$Button_Hamburger_Edge.Add_MouseLeftButtonDown({
+$Button_Hamburger_Edge.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "Edge"
})
-$Button_Hamburger_Game.Add_MouseLeftButtonDown({
+$Button_Hamburger_Game.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "Game"
})
-$Button_Hamburger_GitHub.Add_MouseLeftButtonDown({
+$Button_Hamburger_GitHub.Add_MouseLeftButtonUp({
Follow-OnGitHub
})
-$Button_Hamburger_OneDrive.Add_MouseLeftButtonDown({
+$Button_Hamburger_OneDrive.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "OneDrive"
})
-$Button_Hamburger_Privacy.Add_MouseLeftButtonDown({
+$Button_Hamburger_Privacy.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "Privacy"
})
-$Button_Hamburger_StartMenu.Add_MouseLeftButtonDown({
+$Button_Hamburger_StartMenu.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "StartMenu"
})
-$Button_Hamburger_System.Add_MouseLeftButtonDown({
+$Button_Hamburger_System.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "System"
})
-$Button_Hamburger_Tasks.Add_MouseLeftButtonDown({
+$Button_Hamburger_Tasks.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "Tasks"
})
-$Button_Hamburger_UI.Add_MouseLeftButtonDown({
+$Button_Hamburger_UI.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "Ui"
})
-$Button_Hamburger_Uwp.Add_MouseLeftButtonDown({
+$Button_Hamburger_Uwp.Add_MouseLeftButtonUp({
Set-ActivePanel -Name "Uwp"
})
+$ButtonLoad.add_MouseLeftButtonUp({
+ $openFileDialog.ShowDialog()
+})
+
+$ButtonSave.add_MouseLeftButtonUp({
+ $saveFileDialog.ShowDialog()
+})
+
+$ButtonApply.add_MouseLeftButtonUp({
+ Show-InfoPanel -TextRu "Мы применяем настройки, пожалуйста подождите..." -TextEng "We apply settings, please wait..." -HeaderRu "Применение настроек" -HeaderEng "Apply settings" -ShowAnimation
+ $GridWindow.IsEnabled = $false
+})
+
#region Add Toggle Buttons Click Event
for ($i=0;$i -lt $toggleSwitch.Count;$i++)