├── ossmsettings.reg
├── SimpleClassicTheme
├── SCT Logo.ico
├── Resources
│ ├── ctm.exe
│ ├── deskn.cpl
│ ├── fox.exe
│ ├── upm.reg
│ ├── win7.bmp
│ ├── win9x.png
│ ├── msiexec.png
│ ├── scttask.xml
│ ├── taskbar.png
│ ├── SCT Logo.ico
│ ├── fixstrips.exe
│ ├── ossettings.reg
│ ├── ShellPayload.dll
│ ├── ossmsettings.reg
│ ├── sibsettings.reg
│ ├── winxp_wizard.png
│ ├── Classic3.msstyles
│ ├── RestoreColors.reg
│ ├── RibbonDisabler.exe
│ ├── SCT Logo x164.png
│ ├── SCT Logo x275.png
│ ├── WindowMetrics.reg
│ ├── reg disable upm.reg
│ ├── SCT Banner 400x73.png
│ ├── SCT Banner 400x81.png
│ ├── SCT Logo Dark x164.png
│ ├── SCT Logo Dark x275.png
│ ├── null_classic3small.bmp
│ ├── reg_windowmetrics_81.reg
│ ├── OpenShellSetup_4_4_166.exe
│ ├── SCT Banner Dark 400x73.png
│ ├── ExplorerContextMenuTweaker.dll
│ ├── ostbsettings.reg
│ ├── restoreMetrics.reg
│ ├── EnableThemeScript.bat
│ └── DisableThemeScript.bat
├── FodyWeavers.xml
├── app.config
├── Other Files
│ ├── App.config
│ ├── packages.config
│ ├── README.md
│ └── app.manifest
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ ├── AssemblyInfo.cs
│ └── AHKScripts.Designer.cs
├── packages.config
├── Forms
│ ├── Information
│ │ ├── CommandLineHelpForm.cs
│ │ ├── AboutForm.cs
│ │ ├── CommandLineHelpForm.Designer.cs
│ │ └── AboutForm.Designer.cs
│ ├── Unfinished
│ │ ├── WMITest.cs
│ │ ├── ThemeConfigurationForm.cs
│ │ ├── WMITest.Designer.cs
│ │ └── WMITest.resx
│ ├── OptionsForm.cs
│ ├── UpdateForm.Designer.cs
│ ├── Utility
│ │ ├── UtilityManagerForm.cs
│ │ ├── GithubDownloader.Designer.cs
│ │ ├── TaskbarTypeSelector.Designer.cs
│ │ ├── TaskbarTypeSelector.resx
│ │ ├── AHKScriptManager.Designer.cs
│ │ └── GithubDownloader.cs
│ └── LoaderForm.resx
├── Function Classes
│ ├── SystemMenuForm.cs
│ ├── UsefulRegistryKeys.cs
│ ├── WinApi.cs
│ ├── SystemMenu.cs
│ └── Configuration.cs
├── SetupWizard
│ ├── WelcomePage.cs
│ ├── InstallPathPage.cs
│ ├── FinishedPage.cs
│ ├── LicensePage.cs
│ ├── WelcomePage.Designer.cs
│ ├── InstallationPage.cs
│ ├── InstallOptionsPage.cs
│ ├── UtilitiesPage.cs
│ ├── LicensePage.Designer.cs
│ ├── FinishedPage.Designer.cs
│ ├── WelcomePage.resx
│ ├── FinishedPage.resx
│ ├── UtilitiesPage.resx
│ ├── InstallOptionsPage.resx
│ ├── InstallationPage.Designer.cs
│ ├── InstallationPage.resx
│ ├── InstallPathPage.resx
│ └── InstallPathPage.Designer.cs
├── SimpleClassicTheme f.csproj
└── ApplicationEntryPoint.cs
├── ostbsettings.reg
├── .github
└── ISSUE_TEMPLATE
│ └── sct-bug.md
├── README.md
├── SimpleClassicTheme.sln
├── README.htm
└── .gitattributes
/ossmsettings.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/ossmsettings.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/SCT Logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/SCT Logo.ico
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/ctm.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/ctm.exe
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/deskn.cpl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/deskn.cpl
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/fox.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/fox.exe
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/upm.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/upm.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/win7.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/win7.bmp
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/win9x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/win9x.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/msiexec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/msiexec.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/scttask.xml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/scttask.xml
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/taskbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/taskbar.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Logo.ico
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/fixstrips.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/fixstrips.exe
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/ossettings.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/ossettings.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/ShellPayload.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/ShellPayload.dll
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/ossmsettings.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/ossmsettings.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/sibsettings.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/sibsettings.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/winxp_wizard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/winxp_wizard.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/Classic3.msstyles:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/Classic3.msstyles
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/RestoreColors.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/RestoreColors.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/RibbonDisabler.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/RibbonDisabler.exe
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Logo x164.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Logo x164.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Logo x275.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Logo x275.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/WindowMetrics.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/WindowMetrics.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/reg disable upm.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/reg disable upm.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Banner 400x73.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Banner 400x73.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Banner 400x81.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Banner 400x81.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Logo Dark x164.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Logo Dark x164.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Logo Dark x275.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Logo Dark x275.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/null_classic3small.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/null_classic3small.bmp
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/reg_windowmetrics_81.reg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/reg_windowmetrics_81.reg
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/OpenShellSetup_4_4_166.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/OpenShellSetup_4_4_166.exe
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/SCT Banner Dark 400x73.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/SCT Banner Dark 400x73.png
--------------------------------------------------------------------------------
/SimpleClassicTheme/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/ExplorerContextMenuTweaker.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leetftw/SimpleClassicTheme/HEAD/SimpleClassicTheme/Resources/ExplorerContextMenuTweaker.dll
--------------------------------------------------------------------------------
/SimpleClassicTheme/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Other Files/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Other Files/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/ostbsettings.reg:
--------------------------------------------------------------------------------
1 | Windows Registry Editor Version 5.00
2 |
3 | [HKEY_CURRENT_USER\SOFTWARE\OpenShell\StartMenu\Settings]
4 | "EnableStartButton"=dword:00000001
5 | "StartButtonType"="CustomButton"
6 | "StartButtonPath"="%USERPROFILE%\\AppData\\Local\\StartIsBack\\Orbs\\CS_classic3small.bmp"
7 | "CustomTaskbar"=dword:00000001
8 | "TaskbarLook"="Opaque"
9 | "TaskbarTexture"="%USERPROFILE%\\AppData\\Local\\StartIsBack\\Orbs\\taskbar.png"
10 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Other Files/README.md:
--------------------------------------------------------------------------------
1 | # SimpleClassicTheme
2 | Basically, I saw this thread on the WinClassic boards which is an amazing solution for Classic Theme and decided I wanted to create a GUI for it. For more info check the thread on the WinClassic Boards
3 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/ostbsettings.reg:
--------------------------------------------------------------------------------
1 | Windows Registry Editor Version 5.00
2 |
3 | [HKEY_CURRENT_USER\SOFTWARE\OpenShell\StartMenu\Settings]
4 | "EnableStartButton"=dword:00000001
5 | "StartButtonType"="CustomButton"
6 | "StartButtonPath"="%USERPROFILE%\\AppData\\Local\\StartIsBack\\Orbs\\CS_classic3small.bmp"
7 | "CustomTaskbar"=dword:00000001
8 | "TaskbarLook"="Opaque"
9 | "TaskbarTexture"="%USERPROFILE%\\AppData\\Local\\StartIsBack\\Orbs\\taskbar.png"
10 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Information/CommandLineHelpForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace SimpleClassicTheme.Forms
12 | {
13 | public partial class CommandLineHelpForm : Form
14 | {
15 | public CommandLineHelpForm()
16 | {
17 | InitializeComponent();
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/restoreMetrics.reg:
--------------------------------------------------------------------------------
1 | Windows Registry Editor Version 5.00
2 |
3 | [HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]
4 |
5 | "CaptionHeight"="-330"
6 | "CaptionWidth"="-330"
7 | "CaptionFont"=hex:f4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,\
8 | 00,00,00,01,00,00,05,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,00,\
9 | 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
10 | 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
11 | "ScrollWidth"="-255"
12 | "ScrollHeight"="-255"
13 | "PaddedBorderWidth"="-60"
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/sct-bug.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: SCT Bug
3 | about: A standard bug report
4 | title: "[BUG] Title"
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **Reproduction**
14 | When does this happen?/What did you do to make this happen?
15 |
16 | **Expected behavior**
17 | A clear and concise description of what you expected to happen.
18 |
19 | **Screenshots**
20 | Add them, without them I'm not helping anyone :/
21 |
22 | **Environment:**
23 | - OS: (Win10 ver xxxx / Win8.1)
24 | - SCT Version (x.x.x)
25 |
26 | **Additional info**
27 | Other stuff that might help investigating the issue
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # THIS IS AN ARCHIVE
2 | Starting with SCT version 2.0.0, the project is no longer open-source. This page only exists for archival purposes. The latest versions of Simple Classic Theme will from now on be available from https://simpleclassictheme.nl, the new official website for the project.
3 |
4 | # Simple Classic Theme
5 |
6 | A basic utility to bring back Classic Theme to newer versions of the Windows operating system. Includes a setup wizard that automatically installs everything the user wants.Supports Windows 8.1 and Windows 10 (1803+ only).
7 |
8 | For more info check the thread on the WinClassic Boards.
9 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/EnableThemeScript.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | REM ===================================
3 | REM Generated by SimpleClassicTheme
4 | REM Version {ver}
5 | REM
6 | REM Copyright ©2021 Anis Errais
7 | REM ===================================
8 | goto %1
9 |
10 |
11 | :pre
12 | REM ===================================
13 | REM Programs to run before
14 | REM enabling classic theme
15 | REM ===================================
16 |
17 |
18 | goto both
19 | :post
20 | REM ===================================
21 | REM Programs to run after
22 | REM enabling classic theme
23 | REM ===================================
24 |
25 |
26 | goto both
27 | :both
28 | REM ===================================
29 | REM Programs to run before and after
30 | REM enabling classic theme
31 | REM ===================================
32 |
33 |
34 | exit
--------------------------------------------------------------------------------
/SimpleClassicTheme/Resources/DisableThemeScript.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | REM ===================================
3 | REM Generated by SimpleClassicTheme
4 | REM Version {ver}
5 | REM
6 | REM Copyright ©2021 Anis Errais
7 | REM ===================================
8 | goto %1
9 |
10 |
11 | :pre
12 | REM ===================================
13 | REM Programs to run before
14 | REM disabling classic theme
15 | REM ===================================
16 |
17 |
18 | goto both
19 | :post
20 | REM ===================================
21 | REM Programs to run after
22 | REM disabling classic theme
23 | REM ===================================
24 |
25 |
26 | goto both
27 | :both
28 | REM ===================================
29 | REM Programs to run before and after
30 | REM disabling classic theme
31 | REM ===================================
32 |
33 |
34 | exit
--------------------------------------------------------------------------------
/SimpleClassicTheme/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SimpleClassicTheme.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.0.1.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Function Classes/SystemMenuForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.InteropServices;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace System.Windows.Forms
9 | {
10 | public class SystemMenuForm : Form
11 | {
12 | [DllImport("user32.dll")]
13 | private static extern bool SetMenu(IntPtr hWnd, IntPtr hMenu);
14 |
15 | private SystemMenu systemMenu;
16 | public SystemMenu SystemMenu
17 | {
18 | get
19 | {
20 | return systemMenu;
21 | }
22 | set
23 | {
24 | SetMenu(Handle, value != null ? value.MenuHandle : IntPtr.Zero);
25 | systemMenu = value;
26 | }
27 | }
28 |
29 | protected override void WndProc(ref Message m)
30 | {
31 | // WM_COMMAND with HIWORD(wParam) == 0 && lParam == 0
32 | if (m.Msg == 0x0111 &&
33 | (m.WParam.ToInt32() & 0xFFFF0000) == 0 &&
34 | m.LParam.ToInt32() == 0 &&
35 | SystemMenu != null)
36 | {
37 | SystemMenu.PerformAction(m.WParam.ToInt32());
38 | }
39 |
40 | base.WndProc(ref m);
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/WelcomePage.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Craftplacer.ClassicSuite.Wizards.Pages;
21 | using System;
22 | using System.Collections.Generic;
23 | using System.ComponentModel;
24 | using System.Data;
25 | using System.Drawing;
26 | using System.Linq;
27 | using System.Text;
28 | using System.Threading.Tasks;
29 | using System.Windows.Forms;
30 |
31 | namespace SimpleClassicTheme.SetupWizard
32 | {
33 | public partial class WelcomePage : WizardPage
34 | {
35 | public WelcomePage()
36 | {
37 | InitializeComponent();
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/SimpleClassicTheme.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.29102.190
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleClassicTheme", "SimpleClassicTheme\SimpleClassicTheme.csproj", "{0929C14C-9E7B-4F2D-ADFD-67CE83618471}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|x64 = Debug|x64
12 | Release|Any CPU = Release|Any CPU
13 | Release|x64 = Release|x64
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Debug|x64.ActiveCfg = Debug|x64
19 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Debug|x64.Build.0 = Debug|x64
20 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Release|Any CPU.ActiveCfg = Release|Any CPU
21 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Release|Any CPU.Build.0 = Release|Any CPU
22 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Release|x64.ActiveCfg = Release|x64
23 | {0929C14C-9E7B-4F2D-ADFD-67CE83618471}.Release|x64.Build.0 = Release|x64
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {FD7FDB46-344F-4F2E-AF53-55237913C690}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Unfinished/WMITest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Management;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace SimpleClassicTheme.Forms
13 | {
14 | public partial class WMITest : Form
15 | {
16 | public WMITest()
17 | {
18 | InitializeComponent();
19 | }
20 |
21 | private void WMITest_Load(object sender, EventArgs e)
22 | {
23 | ManagementObjectSearcher os_searcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
24 | foreach (ManagementObject mobj in os_searcher.Get())
25 | {
26 | foreach (PropertyData j in mobj.Properties)
27 | {
28 | try
29 | {
30 | object val = j.Value;
31 | if (val != null)
32 | listView1.Items.Add(j.Name).SubItems.Add(val.ToString());
33 | else
34 | listView1.Items.Add(j.Name).SubItems.Add("System.Management.PropertyData.Value.**get** returned null.");
35 | }
36 | catch (Exception ex)
37 | {
38 | listView1.Items.Add(j.Name).SubItems.Add(ex.Message);
39 | }
40 | }
41 | }
42 |
43 | foreach (ColumnHeader col in listView1.Columns)
44 | {
45 | col.Width = -2;
46 | }
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Function Classes/UsefulRegistryKeys.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Microsoft.Win32;
21 |
22 | namespace SimpleClassicTheme
23 | {
24 | internal static class UsefulRegistryKeys
25 | {
26 | public static bool Borders3D
27 | {
28 | get
29 | {
30 | RegistryKey hKey = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
31 | byte[] upm = (byte[])hKey.GetValue("UserPreferencesMask");
32 | hKey.Close();
33 | return (upm[2] & 0b10) == 0;
34 | }
35 | set
36 | {
37 | RegistryKey hKey = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
38 | byte[] upm = (byte[])hKey.GetValue("UserPreferencesMask");
39 | upm[2] ^= 0b10;
40 | hKey.SetValue("UserPreferencesMask", upm);
41 | hKey.Close();
42 | }
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/README.htm:
--------------------------------------------------------------------------------
1 |
Simple Classic Theme
2 |
Basically, I saw this thread which is an amazing solution for Classic Theme and decided I wanted to create a GUI for it. It's a simple .NET app which does the following things:
3 | - Installs PowerShell 6 and the module required
- Installs and configures Open-Shell and StartIsBack to emulate a Classic taskbar/start menu experience
- Enables/Disables Classic Theme with a press of a button (or command)
- Automatically enables Classic Theme on boot-up after explorer.exe has started (This makes sure all of the explorer bugs don't occur and that explorer behaves kinda like an immersive app)
- Configure Classic Theme (requires disabling Defender, but thats implemented too)
4 | Please give me suggestions on how to improve this app (eg. registry tweaks for buggy things)
5 | Screenshot of GUI running on Windows Insider Preview (post-1903):
6 |
7 |
8 | Command Line Usage
9 |
10 | SimpleClassicTheme.exe {ARGS..}
11 | Operations:
12 | - /enable This enables the classic theme
- /disable This disables the classic theme
- /configure This opens the classic theme control panel
13 |
Arguments:
14 | - -t, --enable-taskbar Enables/Disables classic taskbar as well (Depending on operation)
15 | TODO
16 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallPathPage.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Craftplacer.ClassicSuite.Wizards.Pages;
21 | using System;
22 | using System.Collections.Generic;
23 | using System.ComponentModel;
24 | using System.Data;
25 | using System.Drawing;
26 | using System.Linq;
27 | using System.Text;
28 | using System.Threading.Tasks;
29 | using System.Windows.Forms;
30 |
31 | namespace SimpleClassicTheme.SetupWizard
32 | {
33 | public partial class InstallPathPage : WizardPage
34 | {
35 | public InstallPathPage()
36 | {
37 | InitializeComponent();
38 | }
39 |
40 | private void InstallPathPage_Load(object sender, EventArgs e)
41 | {
42 | textBox1.Text = SetupHandler.InstallPath;
43 | }
44 |
45 | private void button1_Click(object sender, EventArgs e)
46 | {
47 | folderBrowserDialog1.SelectedPath = textBox1.Text;
48 | if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
49 | {
50 | textBox1.Text = folderBrowserDialog1.SelectedPath;
51 | }
52 | }
53 |
54 | private void InstallPathPage_LeavePage(object sender, EventArgs e)
55 | {
56 | SetupHandler.InstallPath = textBox1.Text;
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/FinishedPage.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Craftplacer.ClassicSuite.Wizards.Pages;
21 | using System;
22 | using System.Collections.Generic;
23 | using System.ComponentModel;
24 | using System.Data;
25 | using System.Diagnostics;
26 | using System.Drawing;
27 | using System.Linq;
28 | using System.Text;
29 | using System.Threading.Tasks;
30 | using System.Windows.Forms;
31 |
32 | namespace SimpleClassicTheme.SetupWizard
33 | {
34 | public partial class FinishedPage : WizardPage
35 | {
36 | public FinishedPage(bool failed = false)
37 | {
38 | InitializeComponent();
39 | if (failed)
40 | {
41 | label1.Text = "Setup Wizard Failed";
42 | label2.Text = "The wizard was interrupted before Simple Classic Theme could be completely installed.\n\nYour system has not been modified. To install this program at a later time, please run the wizard again.\n\n\n\nClick Finish to exit the wizard.";
43 | NextPageRequested += delegate
44 | {
45 | Environment.Exit(0);
46 | };
47 | }
48 | }
49 |
50 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
51 | {
52 | Process.Start("https://github.com/Craftplacer/ClassicSuite");
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/LicensePage.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Craftplacer.ClassicSuite.Wizards.Pages;
21 | using System;
22 | using System.Collections.Generic;
23 | using System.ComponentModel;
24 | using System.Data;
25 | using System.Diagnostics;
26 | using System.Drawing;
27 | using System.IO;
28 | using System.Linq;
29 | using System.Text;
30 | using System.Threading.Tasks;
31 | using System.Windows.Forms;
32 |
33 | namespace SimpleClassicTheme.SetupWizard
34 | {
35 | public partial class LicensePage : WizardPage
36 | {
37 | public LicensePage()
38 | {
39 | InitializeComponent();
40 | }
41 |
42 | private void button1_Click(object sender, EventArgs e)
43 | {
44 | string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".txt";
45 | File.WriteAllText(fileName, textBox1.Text);
46 |
47 | ProcessStartInfo psi = new ProcessStartInfo(fileName);
48 | psi.Verb = "PRINT";
49 | Process.Start(psi);
50 | }
51 |
52 | private void checkBox1_CheckedChanged(object sender, EventArgs e)
53 | {
54 | AllowedButtons = checkBox1.Checked ?
55 | Craftplacer.ClassicSuite.Wizards.Enums.AllowedButtons.All :
56 | Craftplacer.ClassicSuite.Wizards.Enums.AllowedButtons.None;
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Unfinished/ThemeConfigurationForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Runtime.InteropServices;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace SimpleClassicTheme.Forms
13 | {
14 | public partial class ThemeConfigurationForm : Form
15 | {
16 | [StructLayout(LayoutKind.Sequential, Size = 16)]
17 | struct RECT
18 | {
19 | public int Left;
20 | public int Top;
21 | public int Right;
22 | public int Bottom;
23 | public int Width
24 | {
25 | get => Right - Left;
26 | set => Right = Left + value;
27 | }
28 | public int Height
29 | {
30 | get => Bottom - Top;
31 | set => Bottom = Top + value;
32 | }
33 |
34 | public RECT(int l, int t, int r, int b)
35 | {
36 | Left = l; Top = t; Right = r; Bottom = b;
37 | }
38 | public Rectangle ToRectangle() => new Rectangle(Left, Top, Width, Height);
39 | public static RECT FromRectangle(Rectangle r) => new RECT(r.Left, r.Top, r.Right, r.Bottom);
40 | }
41 |
42 | [DllImport("user32.dll")]
43 | static extern IntPtr SetSysColorsTemp(int cElements, int[] lpaElements, int[] lpaRgbValues);
44 | [DllImport("user32.dll")]
45 | static extern IntPtr SetSysColorsTemp(int cElements, int[] lpaElements, IntPtr lpaRgbValues);
46 | [DllImport("user32.dll")]
47 | static extern bool DrawFrameControl(IntPtr hDc, IntPtr lpRect, int cFrameType, int cFrameState);
48 | static int COLOR_BTNFACE = 15;
49 | static int DFC_CAPTION = 1;
50 |
51 | public ThemeConfigurationForm()
52 | {
53 | InitializeComponent();
54 | }
55 |
56 | private void panel1_Paint(object sender, PaintEventArgs e)
57 | {
58 | IntPtr restoreHandle = SetSysColorsTemp(1, new int[] { COLOR_BTNFACE }, new int[] { ColorTranslator.ToWin32(Color.Lime) });
59 |
60 | IntPtr hDc = e.Graphics.GetHdc();
61 |
62 | RECT rect = RECT.FromRectangle(e.ClipRectangle);
63 | IntPtr lpRect = Marshal.AllocHGlobal(Marshal.SizeOf(rect));
64 | Marshal.StructureToPtr(rect, lpRect, true);
65 |
66 | DrawFrameControl(hDc, lpRect, DFC_CAPTION, 1);
67 |
68 | SetSysColorsTemp(0, null, restoreHandle);
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SimpleClassicTheme f.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | WinExe
5 | net5.0-windows
6 | true
7 | false
8 |
9 | SimpleClassicTheme
10 | SimpleClassicTheme
11 |
12 |
13 |
14 |
15 | tlbimp
16 | 0
17 | 1
18 | f935dc20-1cf0-11d0-adb9-00c04fd58a0b
19 | 0
20 | false
21 | true
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | ..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll
32 |
33 |
34 | ..\packages\Craftplacer.ClassicSuite.Wizards.1.3.0\lib\Craftplacer.ClassicSuite.Wizards.dll
35 |
36 |
37 | ..\packages\NtApiDotNet.1.1.31\lib\net45\NtApiDotNet.dll
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using System.Reflection;
21 | using System.Runtime.CompilerServices;
22 | using System.Runtime.InteropServices;
23 |
24 | // General Information about an assembly is controlled through the following
25 | // set of attributes. Change these attribute values to modify the information
26 | // associated with an assembly.
27 | [assembly: AssemblyTitle("Simple Classic Theme")]
28 | [assembly: AssemblyDescription("Simple tool for enabling Classic Theme post Windows 7")]
29 | [assembly: AssemblyConfiguration("")]
30 | [assembly: AssemblyCompany("Anis Errais")]
31 | [assembly: AssemblyProduct("Simple Classic Theme")]
32 | [assembly: AssemblyCopyright("© 1337ftw 2022")]
33 | [assembly: AssemblyTrademark("")]
34 | [assembly: AssemblyCulture("")]
35 |
36 | // Setting ComVisible to false makes the types in this assembly not visible
37 | // to COM components. If you need to access a type in this assembly from
38 | // COM, set the ComVisible attribute to true on that type.
39 | [assembly: ComVisible(false)]
40 |
41 | // The following GUID is for the ID of the typelib if this project is exposed to COM
42 | [assembly: Guid("0929c14c-9e7b-4f2d-adfd-67ce83618471")]
43 |
44 | // Version information for an assembly consists of the following four values:
45 | //
46 | // Major Version
47 | // Minor Version
48 | // Build Number
49 | // Revision
50 | //
51 | // You can specify all the values or you can default the Build and Revision Numbers
52 | // by using the '*' as shown below:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("1.6.0.3")]
55 | [assembly: AssemblyFileVersion("1.6.0.3")]
56 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Unfinished/WMITest.Designer.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace SimpleClassicTheme.Forms
3 | {
4 | partial class WMITest
5 | {
6 | ///
7 | /// Required designer variable.
8 | ///
9 | private System.ComponentModel.IContainer components = null;
10 |
11 | ///
12 | /// Clean up any resources being used.
13 | ///
14 | /// true if managed resources should be disposed; otherwise, false.
15 | protected override void Dispose(bool disposing)
16 | {
17 | if (disposing && (components != null))
18 | {
19 | components.Dispose();
20 | }
21 | base.Dispose(disposing);
22 | }
23 |
24 | #region Windows Form Designer generated code
25 |
26 | ///
27 | /// Required method for Designer support - do not modify
28 | /// the contents of this method with the code editor.
29 | ///
30 | private void InitializeComponent()
31 | {
32 | this.listView1 = new System.Windows.Forms.ListView();
33 | this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
34 | this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
35 | this.SuspendLayout();
36 | //
37 | // listView1
38 | //
39 | this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
40 | this.columnHeader1,
41 | this.columnHeader2});
42 | this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
43 | this.listView1.HideSelection = false;
44 | this.listView1.Location = new System.Drawing.Point(0, 0);
45 | this.listView1.Name = "listView1";
46 | this.listView1.Size = new System.Drawing.Size(800, 450);
47 | this.listView1.TabIndex = 0;
48 | this.listView1.UseCompatibleStateImageBehavior = false;
49 | this.listView1.View = System.Windows.Forms.View.Details;
50 | //
51 | // columnHeader1
52 | //
53 | this.columnHeader1.Text = "Name";
54 | //
55 | // columnHeader2
56 | //
57 | this.columnHeader2.Text = "Value";
58 | //
59 | // WMITest
60 | //
61 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
62 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
63 | this.ClientSize = new System.Drawing.Size(800, 450);
64 | this.Controls.Add(this.listView1);
65 | this.Name = "WMITest";
66 | this.Text = "WMITest";
67 | this.Load += new System.EventHandler(this.WMITest_Load);
68 | this.ResumeLayout(false);
69 |
70 | }
71 |
72 | #endregion
73 |
74 | private System.Windows.Forms.ListView listView1;
75 | private System.Windows.Forms.ColumnHeader columnHeader1;
76 | private System.Windows.Forms.ColumnHeader columnHeader2;
77 | }
78 | }
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/WelcomePage.Designer.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace SimpleClassicTheme.SetupWizard
3 | {
4 | partial class WelcomePage
5 | {
6 | ///
7 | /// Required designer variable.
8 | ///
9 | private System.ComponentModel.IContainer components = null;
10 |
11 | ///
12 | /// Clean up any resources being used.
13 | ///
14 | /// true if managed resources should be disposed; otherwise, false.
15 | protected override void Dispose(bool disposing)
16 | {
17 | if (disposing && (components != null))
18 | {
19 | components.Dispose();
20 | }
21 | base.Dispose(disposing);
22 | }
23 |
24 | #region Component Designer generated code
25 |
26 | ///
27 | /// Required method for Designer support - do not modify
28 | /// the contents of this method with the code editor.
29 | ///
30 | private void InitializeComponent()
31 | {
32 | this.label1 = new System.Windows.Forms.Label();
33 | this.label2 = new System.Windows.Forms.Label();
34 | this.SuspendLayout();
35 | //
36 | // label1
37 | //
38 | this.label1.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
39 | this.label1.Location = new System.Drawing.Point(13, 20);
40 | this.label1.Name = "label1";
41 | this.label1.Size = new System.Drawing.Size(302, 53);
42 | this.label1.TabIndex = 0;
43 | this.label1.Text = "Welcome to the Simple Classic Theme setup Wizard";
44 | //
45 | // label2
46 | //
47 | this.label2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
48 | this.label2.Location = new System.Drawing.Point(13, 82);
49 | this.label2.Name = "label2";
50 | this.label2.Size = new System.Drawing.Size(302, 53);
51 | this.label2.TabIndex = 1;
52 | this.label2.Text = "This wizard will install Simple Classic Theme onto your computer, and configure i" +
53 | "t. To continue, press Next.\r\n";
54 | //
55 | // WelcomePage
56 | //
57 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
58 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
59 | this.Controls.Add(this.label2);
60 | this.Controls.Add(this.label1);
61 | this.Name = "WelcomePage";
62 | this.PageParts = Craftplacer.ClassicSuite.Wizards.Enums.PageParts.Sidebar;
63 | this.SidebarImage = global::SimpleClassicTheme.Properties.Resources.winxp_wizard;
64 | this.Size = new System.Drawing.Size(333, 313);
65 | this.ResumeLayout(false);
66 |
67 | }
68 |
69 | #endregion
70 |
71 | private System.Windows.Forms.Label label1;
72 | private System.Windows.Forms.Label label2;
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/OptionsForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Simple Classic Theme, a basic utility to bring back classic theme to
3 | * newer versions of the Windows operating system.
4 | * Copyright (C) 2022 Anis Errais
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | *
19 | */
20 |
21 | using System;
22 | using System.Collections.Generic;
23 | using System.IO;
24 | using System.Linq;
25 | using System.Windows.Forms;
26 | using Microsoft.Win32;
27 |
28 | namespace SimpleClassicTheme.Forms
29 | {
30 | public partial class OptionsForm : Form
31 | {
32 | public Dictionary TaskbarTypeDisplay = new Dictionary();
33 |
34 | public OptionsForm()
35 | {
36 | InitializeComponent();
37 | }
38 |
39 | private void OptionsForm_Load(object sender, EventArgs e)
40 | {
41 | comboBoxUpdates.SelectedItem = Configuration.UpdateMode;
42 | numericUpDownTaskbarDelay.Value = Configuration.TaskbarDelay;
43 | checkBox1.Checked = Configuration.EnableTaskbar;
44 | checkBox2.Checked = Configuration.BetaUpdates;
45 | taskbarTypeSelector1.Enabled = numericUpDownTaskbarDelay.Enabled = label2.Enabled = checkBox1.Checked;
46 | }
47 |
48 | private void buttonOK_Click(object sender, EventArgs e)
49 | {
50 | buttonApply.PerformClick();
51 | buttonCancel.PerformClick();
52 | }
53 |
54 | private void buttonCancel_Click(object sender, EventArgs e)
55 | {
56 | Close();
57 | }
58 |
59 | private void buttonApply_Click(object sender, EventArgs e)
60 | {
61 | Configuration.UpdateMode = (string)comboBoxUpdates.SelectedItem;
62 | Configuration.TaskbarType = taskbarTypeSelector1.SelectedItem;
63 | Configuration.TaskbarDelay = (int)numericUpDownTaskbarDelay.Value;
64 | Configuration.EnableTaskbar = checkBox1.Checked;
65 | Configuration.BetaUpdates = checkBox2.Checked;
66 | buttonApply.Enabled = false;
67 | }
68 |
69 | private void valueChangedEvent(object sender, EventArgs e)
70 | {
71 | buttonApply.Enabled = true;
72 | }
73 |
74 | private void numericUpDownTaskbarDelay_ValueChanged(object sender, EventArgs e)
75 | {
76 | valueChangedEvent(sender, e);
77 | }
78 |
79 | private void checkBox1_CheckedChanged(object sender, EventArgs e)
80 | {
81 | taskbarTypeSelector1.Enabled = numericUpDownTaskbarDelay.Enabled = label2.Enabled = checkBox1.Checked;
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallationPage.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Craftplacer.ClassicSuite.Wizards.Pages;
21 | using System;
22 | using System.Collections.Generic;
23 | using System.ComponentModel;
24 | using System.Data;
25 | using System.Drawing;
26 | using System.Linq;
27 | using System.Runtime.InteropServices;
28 | using System.Text;
29 | using System.Threading.Tasks;
30 | using System.Windows.Forms;
31 |
32 | namespace SimpleClassicTheme.SetupWizard
33 | {
34 | public partial class InstallationPage : WizardPage
35 | {
36 | public string progressText = "";
37 | public BackgroundWorker progressWorker => bgWork;
38 |
39 | public InstallationPage()
40 | {
41 | InitializeComponent();
42 | }
43 |
44 | private void InstallationPage_EnterPage(object sender, EventArgs e)
45 | {
46 | bgWork.RunWorkerAsync();
47 | }
48 |
49 | public void SetProgressBarColor(int state)
50 | {
51 | progressBar1.SetState(state);
52 | }
53 |
54 | private void bgWork_DoWork(object sender, DoWorkEventArgs e)
55 | {
56 | #if DEBUG
57 | progressText = "Installing Simple Classic Theme...";
58 | progressWorker.ReportProgress(0);
59 | System.Threading.Thread.Sleep(5000);
60 | progressWorker.ReportProgress(100);
61 | #else
62 | SetupHandler.InstallSCT(this);
63 | #endif
64 | }
65 |
66 | private void bgWork_ProgressChanged(object sender, ProgressChangedEventArgs e)
67 | {
68 | label3.Text = progressText;
69 | progressBar1.Value = e.ProgressPercentage;
70 | }
71 |
72 | private void bgWork_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
73 | {
74 | if (progressBar1.Value == 100)
75 | OnNextPageRequested();
76 | }
77 | }
78 |
79 | public static class ModifyProgressBarColor
80 | {
81 | [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
82 | static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr w, IntPtr l);
83 | public static void SetState(this ProgressBar pBar, int state)
84 | {
85 | SendMessage(pBar.Handle, 1040, (IntPtr)state, IntPtr.Zero);
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Information/AboutForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Simple Classic Theme, a basic utility to bring back classic theme to
3 | * newer versions of the Windows operating system.
4 | * Copyright (C) 2022 Anis Errais
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | *
19 | */
20 |
21 | using Microsoft.Win32;
22 | using System;
23 | using System.Drawing;
24 | using System.Reflection;
25 | using System.Windows.Forms;
26 |
27 | namespace SimpleClassicTheme
28 | {
29 | public partial class About : Form
30 | {
31 | public About()
32 | {
33 | InitializeComponent();
34 | ClientSize = new Size(400, 440);
35 |
36 | if (ExtraFunctions.ShouldDrawLight(SystemColors.Window))
37 | pictureBox1.Image = Properties.Resources.sct_banner_light_400x73;
38 | else
39 | pictureBox1.Image = Properties.Resources.sct_banner_dark_400x73;
40 | }
41 |
42 | private void About_Load(object sender, EventArgs e)
43 | {
44 | string ver = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ReleaseId", Environment.OSVersion.Version.Build.ToString()).ToString();
45 | label2.Text = label2.Text.Replace("%build%", ver);
46 |
47 | string name = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName", "Windows " + Environment.OSVersion.Version.Major.ToString()).ToString();
48 | label2.Text = label2.Text.Replace("%osver%", name);
49 |
50 | string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
51 | label2.Text = label2.Text.Replace("%username%", userName);
52 |
53 | Version sctVersion = Assembly.GetExecutingAssembly().GetName().Version;
54 | label2.Text = label2.Text.Replace("%v", sctVersion.ToString(3)).Replace("%r", sctVersion.Revision.ToString());
55 |
56 | Color A = SystemColors.ActiveCaption;
57 | Color B = SystemColors.GradientActiveCaption;
58 | Bitmap bitmap = new Bitmap(400, 5);
59 | for (int i = 0; i < 200; i++)
60 | {
61 | int r = A.R + ((B.R - A.R) * i / 200);
62 | int g = A.G + ((B.G - A.G) * i / 200);
63 | int b = A.B + ((B.B - A.B) * i / 200);
64 |
65 | for (int y = 0; y < 5; y++)
66 | bitmap.SetPixel(i, y, Color.FromArgb(r, g, b));
67 |
68 | for (int y = 0; y < 5; y++)
69 | bitmap.SetPixel(399 - i, y, Color.FromArgb(r, g, b));
70 | }
71 | pictureBox2.Image = bitmap;
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Other Files/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
52 |
59 |
60 |
61 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Information/CommandLineHelpForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SimpleClassicTheme.Forms
2 | {
3 | partial class CommandLineHelpForm
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CommandLineHelpForm));
32 | this.panel1 = new System.Windows.Forms.Panel();
33 | this.label1 = new System.Windows.Forms.Label();
34 | this.panel1.SuspendLayout();
35 | this.SuspendLayout();
36 | //
37 | // panel1
38 | //
39 | this.panel1.AutoScroll = true;
40 | this.panel1.Controls.Add(this.label1);
41 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
42 | this.panel1.Location = new System.Drawing.Point(0, 0);
43 | this.panel1.Name = "panel1";
44 | this.panel1.Size = new System.Drawing.Size(882, 450);
45 | this.panel1.TabIndex = 0;
46 | //
47 | // label1
48 | //
49 | this.label1.AutoSize = true;
50 | this.label1.Font = new System.Drawing.Font("Consolas", 9.25F);
51 | this.label1.Location = new System.Drawing.Point(12, 9);
52 | this.label1.Name = "label1";
53 | this.label1.Size = new System.Drawing.Size(847, 915);
54 | this.label1.TabIndex = 0;
55 | this.label1.Text = resources.GetString("label1.Text");
56 | //
57 | // CommandLineHelpForm
58 | //
59 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
60 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
61 | this.AutoScroll = true;
62 | this.ClientSize = new System.Drawing.Size(882, 450);
63 | this.Controls.Add(this.panel1);
64 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
65 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
66 | this.Name = "CommandLineHelpForm";
67 | this.Text = "Simple Classic Theme - Commandline help";
68 | this.panel1.ResumeLayout(false);
69 | this.panel1.PerformLayout();
70 | this.ResumeLayout(false);
71 |
72 | }
73 |
74 | #endregion
75 |
76 | private System.Windows.Forms.Panel panel1;
77 | private System.Windows.Forms.Label label1;
78 | }
79 | }
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallOptionsPage.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Craftplacer.ClassicSuite.Wizards.Pages;
21 | using System;
22 | using System.Collections.Generic;
23 | using System.ComponentModel;
24 | using System.Data;
25 | using System.Drawing;
26 | using System.Linq;
27 | using System.Text;
28 | using System.Threading.Tasks;
29 | using System.Windows.Forms;
30 |
31 | namespace SimpleClassicTheme.SetupWizard
32 | {
33 | public partial class InstallOptionsPage : WizardPage
34 | {
35 | UtilitiesPage page;
36 | WizardPage nextPage;
37 |
38 | public InstallOptionsPage()
39 | {
40 | InitializeComponent();
41 | page = new UtilitiesPage();
42 | }
43 |
44 | private void checkBox3_CheckedChanged(object sender, EventArgs e)
45 | {
46 | if (checkBox3.Checked)
47 | {
48 | nextPage = NextPage;
49 | NextPage = page;
50 | page.NextPage = nextPage;
51 | }
52 | else
53 | {
54 | NextPage = nextPage;
55 | }
56 | }
57 |
58 | private void InstallOptionsPage_EnterPage(object sender, EventArgs e)
59 | {
60 | SetupHandler.SelectedTaskbarType = TaskbarType.SimpleClassicThemeTaskbar;
61 | SetupHandler.ConfigureOSSM = false;
62 | SetupHandler.ConfigureOSTB = false;
63 | SetupHandler.ConfigureSiB = false;
64 | SetupHandler.EnableOnBoot = true;
65 | SetupHandler.UtilitiesToBeInstalled.Clear();
66 | }
67 |
68 | private void InstallOptionsPage_LeavePage(object sender, EventArgs e)
69 | {
70 | if (checkBox4.Checked)
71 | {
72 | SetupHandler.SelectedTaskbarType = taskbarTypeSelector1.SelectedItem;
73 | if (SetupHandler.SelectedTaskbarType == TaskbarType.StartIsBackOpenShell)
74 | {
75 | SetupHandler.ConfigureOSSM = true;
76 | SetupHandler.ConfigureOSTB = true;
77 | SetupHandler.ConfigureSiB = true;
78 | SetupHandler.UtilitiesToBeInstalled.AddRange(new InstallableUtility[] { InstallableUtility.OpenShell, InstallableUtility.StartIsBackPlusPlus });
79 | }
80 | }
81 | else SetupHandler.SelectedTaskbarType = TaskbarType.None;
82 |
83 | SetupHandler.EnableOnBoot = checkBox2.Checked;
84 | }
85 |
86 | private void checkBox4_CheckedChanged(object sender, EventArgs e)
87 | {
88 | taskbarTypeSelector1.Enabled = checkBox4.Checked;
89 | }
90 |
91 | private void taskbarTypeSelector1_SelectedItemChanged(object sender, EventArgs e)
92 | {
93 |
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/ApplicationEntryPoint.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Simple Classic Theme, a basic utility to bring back classic theme to
3 | * newer versions of the Windows operating system.
4 | * Copyright (C) 2022 Anis Errais
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | *
19 | */
20 |
21 | using System;
22 | using System.Collections.Generic;
23 | using System.Windows.Forms;
24 | using System.Security.Principal;
25 | using Microsoft.Win32;
26 | using System.Diagnostics;
27 | using System.IO;
28 | using System.Reflection;
29 | using System.Windows.Forms.VisualStyles;
30 | using System.Linq;
31 |
32 | namespace SimpleClassicTheme
33 | {
34 | static class ApplicationEntryPoint
35 | {
36 | public static bool LoadGUI { get; set; }
37 |
38 | ///
39 | /// The main entry point for the application.
40 | ///
41 | [STAThread]
42 | static void Main(string[] args)
43 | {
44 | Application.EnableVisualStyles();
45 | Application.VisualStyleState = VisualStyleState.NoneEnabled;
46 | Application.SetCompatibleTextRenderingDefault(false);
47 |
48 | //Application.Run(new Forms.ThemeConfigurationForm()); return;
49 |
50 | bool windows = Environment.OSVersion.Platform == PlatformID.Win32NT;
51 | bool windows10or11 = Environment.OSVersion.Version.Major == 10 /*&& Int32.Parse(Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ReleaseId", "").ToString()) >= 1803*/;
52 | bool windows8 = Environment.OSVersion.Version.Major == 6 && (Environment.OSVersion.Version.Minor == 2 || Environment.OSVersion.Version.Minor == 3);
53 |
54 | // Check if SCT is running on a compatible operating system.
55 | if (!(windows && (windows10or11 || windows8)))
56 | {
57 | MessageBox.Show("SCT is incompatible with this version of Windows.", "Simple Classic Theme");
58 | #if DEBUG
59 | #else
60 | return;
61 | #endif
62 | }
63 |
64 | // Check if SCT is running on a compatible version of .NET (4.8 or higher).
65 | int netReleaseVersion = (int)Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\").GetValue("Release");
66 | if (netReleaseVersion < 528040)
67 | {
68 | MessageBox.Show("SCT requires .NET Framework version 4.8 or higher.", "Simple Classic Theme");
69 | return;
70 | }
71 |
72 | Forms.LoaderForm loader = new Forms.LoaderForm();
73 | loader.Show();
74 | LoadGUI = loader.LoadSCT(args);
75 | loader.Close();
76 |
77 | while (LoadGUI)
78 | {
79 | LoadGUI = false;
80 | Application.VisualStyleState = Configuration.Enabled ? VisualStyleState.NoneEnabled : VisualStyleState.ClientAndNonClientAreasEnabled;
81 | Application.Run(new MainForm());
82 | }
83 | }
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/UpdateForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | namespace SimpleClassicTheme
21 | {
22 | partial class Updater
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Windows Form Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Updater));
51 | this.label1 = new System.Windows.Forms.Label();
52 | this.progressBar1 = new System.Windows.Forms.ProgressBar();
53 | this.SuspendLayout();
54 | //
55 | // label1
56 | //
57 | this.label1.AutoSize = true;
58 | this.label1.Location = new System.Drawing.Point(12, 9);
59 | this.label1.Name = "label1";
60 | this.label1.Size = new System.Drawing.Size(117, 13);
61 | this.label1.TabIndex = 1;
62 | this.label1.Text = "Checking for updates...";
63 | //
64 | // progressBar1
65 | //
66 | this.progressBar1.Location = new System.Drawing.Point(15, 24);
67 | this.progressBar1.Margin = new System.Windows.Forms.Padding(2);
68 | this.progressBar1.Name = "progressBar1";
69 | this.progressBar1.Size = new System.Drawing.Size(375, 22);
70 | this.progressBar1.TabIndex = 2;
71 | //
72 | // Updater
73 | //
74 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
75 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
76 | this.ClientSize = new System.Drawing.Size(401, 57);
77 | this.Controls.Add(this.progressBar1);
78 | this.Controls.Add(this.label1);
79 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
80 | this.Name = "Updater";
81 | this.Text = "Simple Classic Theme - Update checker";
82 | this.Shown += new System.EventHandler(this.Updater_Load);
83 | this.ResumeLayout(false);
84 | this.PerformLayout();
85 |
86 | }
87 |
88 | #endregion
89 | private System.Windows.Forms.Label label1;
90 | private System.Windows.Forms.ProgressBar progressBar1;
91 | }
92 | }
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/UtilitiesPage.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using Craftplacer.ClassicSuite.Wizards.Pages;
21 | using System;
22 | using System.Collections.Generic;
23 | using System.ComponentModel;
24 | using System.Data;
25 | using System.Drawing;
26 | using System.Linq;
27 | using System.Text;
28 | using System.Threading.Tasks;
29 | using System.Windows.Forms;
30 |
31 | namespace SimpleClassicTheme.SetupWizard
32 | {
33 | public partial class UtilitiesPage : WizardPage
34 | {
35 | List<(string, InstallableUtility)> utilities = new List<(string, InstallableUtility)>();
36 |
37 | public UtilitiesPage()
38 | {
39 | InitializeComponent();
40 | }
41 |
42 | private void UtilitiesPage_EnterPage(object sender, EventArgs e)
43 | {
44 | listBox1.Items.Clear();
45 | utilities.Clear();
46 |
47 | List tempUtilities = InstallableUtility.GetInstallableUtilities();
48 | tempUtilities.Remove(tempUtilities.Where((a) => a.Name == "Open-Shell").FirstOrDefault());
49 | foreach (InstallableUtility utility in tempUtilities)
50 | utilities.Add(((utility.IsInstalled ? "(Installed) " : "") + utility.Name, utility));
51 |
52 | if (SetupHandler.SelectedTaskbarType == TaskbarType.StartIsBackOpenShell)
53 | {
54 | label2.Visible = true;
55 | label3.Visible = true;
56 | checkBox1.Checked = true;
57 | checkBox2.Checked = true;
58 | checkBox3.Checked = true;
59 | checkBox1.Enabled = false;
60 | checkBox2.Enabled = false;
61 | checkBox3.Enabled = false;
62 | utilities.Remove(utilities.Where((a) => a.Item2.Name == "StartIsBack++").FirstOrDefault());
63 | }
64 | else
65 | {
66 | label2.Visible = false;
67 | label3.Visible = false;
68 | checkBox1.Checked = false;
69 | checkBox2.Checked = false;
70 | checkBox3.Checked = false;
71 | checkBox1.Enabled = true;
72 | checkBox2.Enabled = true;
73 | checkBox3.Enabled = true;
74 | }
75 |
76 | utilities.Sort((x, y) => { return x.Item1.CompareTo(y.Item1); });
77 | foreach ((string, InstallableUtility) utility in utilities)
78 | listBox1.Items.Add(utility.Item1);
79 | }
80 |
81 | private void UtilitiesPage_LeavePage(object sender, EventArgs e)
82 | {
83 | foreach (string s in listBox1.SelectedItems)
84 | SetupHandler.UtilitiesToBeInstalled.Add(utilities.Where((a) => a.Item1 == s).FirstOrDefault().Item2);
85 |
86 | if (SetupHandler.SelectedTaskbarType != TaskbarType.StartIsBackOpenShell)
87 | {
88 | if (checkBox1.Checked)
89 | SetupHandler.UtilitiesToBeInstalled.Add(InstallableUtility.OpenShell);
90 | SetupHandler.ConfigureOSSM = checkBox2.Checked;
91 | SetupHandler.ConfigureOSTB = checkBox3.Checked;
92 | }
93 | }
94 |
95 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
96 | {
97 | listBox1.ClearSelected();
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Utility/UtilityManagerForm.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using System;
21 | using System.Collections.Generic;
22 | using System.Diagnostics;
23 | using System.IO;
24 | using System.IO.Compression;
25 | using System.Net;
26 | using System.Windows.Forms;
27 |
28 | namespace SimpleClassicTheme.Forms
29 | {
30 | public partial class UtilityManagerForm : Form
31 | {
32 | List<(string, InstallableUtility)> utilities = new List<(string, InstallableUtility)>();
33 |
34 | public UtilityManagerForm()
35 | {
36 | InitializeComponent();
37 | ListUtilities();
38 | }
39 |
40 | public void ListUtilities()
41 | {
42 | utilities.Clear();
43 | listBox1.Items.Clear();
44 |
45 | List tempUtilities = InstallableUtility.GetInstallableUtilities();
46 |
47 | foreach (InstallableUtility utility in tempUtilities)
48 | utilities.Add(((utility.IsInstalled ? "(Installed) " : "") + utility.Name, utility));
49 |
50 | utilities.Sort((x, y) => { return x.Item1.CompareTo(y.Item1); });
51 |
52 | foreach ((string, InstallableUtility) utility in utilities)
53 | listBox1.Items.Add(utility.Item1);
54 |
55 | buttonOpenTClock.Enabled = Directory.Exists($"{Configuration.InstallPath}T-Clock\\");
56 | buttonInstallTClock.Text = buttonOpenTClock.Enabled ? "Uninstall" : "Install";
57 |
58 | // T-Clock: Any version of Windows but only with Taskbar enhancements
59 | groupBox1.Enabled = Configuration.EnableTaskbar &&
60 | (Configuration.TaskbarType == TaskbarType.StartIsBackOpenShell ||
61 | Configuration.TaskbarType == TaskbarType.Windows81Vanilla);
62 | }
63 |
64 | private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
65 | {
66 | if (listBox1.SelectedIndex != -1)
67 | {
68 | bool isInstalled = ((string)listBox1.SelectedItem).StartsWith("(Installed) ");
69 | button2.Enabled = !isInstalled;
70 | button3.Enabled = isInstalled;
71 | }
72 | }
73 |
74 | private void button2_Click(object sender, EventArgs e)
75 | {
76 | int index = listBox1.SelectedIndex;
77 | InstallableUtility utility = utilities[index].Item2;
78 | int returncode = utility.Install();
79 | if (returncode != 0)
80 | {
81 | MessageBox.Show($"The installation has failed. (0x{returncode:X8})", "SCT Classic Utility Manager");
82 | }
83 | else
84 | {
85 | MessageBox.Show($"The installation was succesful. (0x{returncode:X8})", "SCT Classic Utility Manager");
86 | }
87 | ListUtilities();
88 | BringToFront();
89 | }
90 |
91 | private void button3_Click(object sender, EventArgs e)
92 | {
93 | int index = listBox1.SelectedIndex;
94 | InstallableUtility utility = utilities[index].Item2;
95 | int returncode = utility.Uninstall();
96 | if (returncode != 0)
97 | {
98 | MessageBox.Show($"The removal has failed. (0x{returncode:X8})", "SCT Classic Utility Manager");
99 | }
100 | else
101 | {
102 | MessageBox.Show($"The removal was succesful. (0x{returncode:X8})", "SCT Classic Utility Manager");
103 | }
104 | ListUtilities();
105 | BringToFront();
106 | }
107 |
108 | private void button1_Click(object sender, EventArgs e)
109 | {
110 | Close();
111 | }
112 |
113 | private void buttonInstallTClock_Click(object sender, EventArgs e)
114 | {
115 | if (!buttonOpenTClock.Enabled)
116 | {
117 | using (WebClient c = new WebClient())
118 | {
119 | c.DownloadFile("https://github.com/White-Tiger/T-Clock/releases/download/v2.4.4%23492-rc/T-Clock.zip", $"{Configuration.InstallPath}t-clock.zip");
120 | }
121 | Directory.CreateDirectory($"{Configuration.InstallPath}T-Clock\\");
122 | ZipFile.ExtractToDirectory($"{Configuration.InstallPath}t-clock.zip", $"{Configuration.InstallPath}T-Clock\\");
123 | File.Delete($"{Configuration.InstallPath}t-clock.zip");
124 | }
125 | else
126 | {
127 | Directory.Delete($"{Configuration.InstallPath}T-Clock\\", true);
128 | }
129 | ListUtilities();
130 | BringToFront();
131 | }
132 |
133 | private void buttonOpenTClock_Click(object sender, EventArgs e)
134 | {
135 | Process.Start($"{Configuration.InstallPath}T-Clock\\Clock64.exe");
136 | }
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Function Classes/WinApi.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using System;
21 | using System.Collections.Generic;
22 | using System.Diagnostics;
23 | using System.Runtime.InteropServices;
24 | using System.Text;
25 |
26 | namespace SimpleClassicTheme
27 | {
28 | static class Kernel32
29 | {
30 | public const int ATTACH_PARENT_PROCESS = -1;
31 |
32 | [DllImport("kernel32.dll")]
33 | public static extern bool AllocConsole();
34 |
35 | [DllImport("kernel32.dll")]
36 | public static extern bool AttachConsole(int dwProcessId);
37 |
38 | [DllImport("kernel32.dll", SetLastError = true)]
39 | [return: MarshalAs(UnmanagedType.Bool)]
40 | public static extern bool FreeConsole();
41 | }
42 |
43 | static class User32
44 | {
45 | [StructLayout(LayoutKind.Sequential)]
46 | public struct ACCENTPOLICY
47 | {
48 | public int nAccentState;
49 | public int nFlags;
50 | public uint nColor;
51 | public int nAnimationId;
52 | }
53 |
54 | [StructLayout(LayoutKind.Sequential)]
55 | public struct WINCOMPATTRDATA
56 | {
57 | public int nAttribute;
58 | public IntPtr pData;
59 | public int ulDataSize;
60 | }
61 |
62 | [DllImport("user32.dll", CharSet = CharSet.Unicode)]
63 | public static extern IntPtr GetWindowLongPtrW(IntPtr hWndParent, int index);
64 |
65 | [DllImport("user32.dll", CharSet = CharSet.Unicode)]
66 | public static extern IntPtr SetWindowLongPtrW(IntPtr hWndParent, int index, IntPtr dwNewLong);
67 |
68 | [DllImport("user32.dll", CharSet = CharSet.Unicode)]
69 | public static extern IntPtr FindWindowExW(IntPtr hWndParent, IntPtr hWndChildAfter, string lpszClass, string lpszWindow);
70 |
71 | [DllImport("user32.dll", CharSet = CharSet.Auto)]
72 | public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
73 |
74 | [DllImport("user32.dll")]
75 | public static extern bool SetWindowCompositionAttribute(IntPtr hWnd, ref WINCOMPATTRDATA pAttrData);
76 |
77 | public const int WM_NULL = 0x0000;
78 | public const int WM_GETTEXT = 0x000D;
79 |
80 | public const int WM_SCT = 0x0420;
81 | public const int SCTWP_EXIT = 0x0001;
82 | public const int SCTWP_ISMANAGED = 0x0002;
83 | public const int SCTWP_ISSCT = 0x0003;
84 | public const int SCTLP_FORCE = 0x0001;
85 |
86 | public delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam);
87 | [DllImport("user32.dll")]
88 | public static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn, IntPtr lParam);
89 | [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
90 | public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
91 | //[DllImport("user32.dll", EntryPoint = "GetWindowLongPtr")]
92 | //public static extern IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex);
93 |
94 | //public const int GWL_EXSTYLE = -20;
95 |
96 | public static List EnumerateProcessWindowHandles(int processId, string name)
97 | {
98 | List handles = new List();
99 |
100 | foreach (ProcessThread thread in Process.GetProcessById(processId).Threads)
101 | {
102 | EnumThreadWindows(thread.Id, (hWnd, lParam) =>
103 | {
104 | handles.Add(hWnd);
105 | return true;
106 | }, IntPtr.Zero);
107 | }
108 | return handles;
109 | }
110 |
111 | [DllImport("user32.dll", SetLastError = true)]
112 | public static extern bool ExitWindowsEx(uint uFlags, uint dwReason);
113 | }
114 |
115 | static class UxTheme
116 | {
117 | //Sets the theme of a window. if pszSubAppName and pszSubIdList are both a space, the window will be themed Classic
118 | [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
119 | public static extern int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList);
120 | }
121 | }
122 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Utility/GithubDownloader.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | namespace SimpleClassicTheme
21 | {
22 | partial class GithubDownloader
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Windows Form Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | this.components = new System.ComponentModel.Container();
51 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GithubDownloader));
52 | this.progressBar1 = new System.Windows.Forms.ProgressBar();
53 | this.progressBar2 = new System.Windows.Forms.ProgressBar();
54 | this.label1 = new System.Windows.Forms.Label();
55 | this.timer1 = new System.Windows.Forms.Timer(this.components);
56 | this.label2 = new System.Windows.Forms.Label();
57 | this.SuspendLayout();
58 | //
59 | // progressBar1
60 | //
61 | this.progressBar1.Location = new System.Drawing.Point(15, 15);
62 | this.progressBar1.Margin = new System.Windows.Forms.Padding(6);
63 | this.progressBar1.Name = "progressBar1";
64 | this.progressBar1.Size = new System.Drawing.Size(493, 23);
65 | this.progressBar1.TabIndex = 0;
66 | //
67 | // progressBar2
68 | //
69 | this.progressBar2.Location = new System.Drawing.Point(15, 50);
70 | this.progressBar2.Margin = new System.Windows.Forms.Padding(6);
71 | this.progressBar2.Name = "progressBar2";
72 | this.progressBar2.Size = new System.Drawing.Size(493, 23);
73 | this.progressBar2.TabIndex = 1;
74 | //
75 | // label1
76 | //
77 | this.label1.AutoSize = true;
78 | this.label1.Location = new System.Drawing.Point(15, 85);
79 | this.label1.Margin = new System.Windows.Forms.Padding(6);
80 | this.label1.Name = "label1";
81 | this.label1.Size = new System.Drawing.Size(115, 13);
82 | this.label1.TabIndex = 2;
83 | this.label1.Text = "Currently doing nothing";
84 | //
85 | // timer1
86 | //
87 | this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
88 | //
89 | // label2
90 | //
91 | this.label2.AutoSize = true;
92 | this.label2.Location = new System.Drawing.Point(15, 110);
93 | this.label2.Margin = new System.Windows.Forms.Padding(6);
94 | this.label2.Name = "label2";
95 | this.label2.Size = new System.Drawing.Size(68, 13);
96 | this.label2.TabIndex = 3;
97 | this.label2.Text = "No operation";
98 | //
99 | // GithubDownloader
100 | //
101 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
102 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
103 | this.ClientSize = new System.Drawing.Size(523, 140);
104 | this.Controls.Add(this.label2);
105 | this.Controls.Add(this.label1);
106 | this.Controls.Add(this.progressBar2);
107 | this.Controls.Add(this.progressBar1);
108 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
109 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
110 | this.MaximizeBox = false;
111 | this.MinimizeBox = false;
112 | this.Name = "GithubDownloader";
113 | this.Text = "Simple Classic Theme - Git helper";
114 | this.Load += new System.EventHandler(this.GithubDownloader_Load);
115 | this.ResumeLayout(false);
116 | this.PerformLayout();
117 |
118 | }
119 |
120 | #endregion
121 |
122 | public System.Windows.Forms.ProgressBar progressBar1;
123 | public System.Windows.Forms.ProgressBar progressBar2;
124 | private System.Windows.Forms.Label label1;
125 | private System.Windows.Forms.Timer timer1;
126 | private System.Windows.Forms.Label label2;
127 | }
128 | }
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/LicensePage.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | namespace SimpleClassicTheme.SetupWizard
21 | {
22 | partial class LicensePage
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Component Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LicensePage));
51 | this.textBox1 = new System.Windows.Forms.TextBox();
52 | this.checkBox1 = new System.Windows.Forms.CheckBox();
53 | this.button1 = new System.Windows.Forms.Button();
54 | this.SuspendLayout();
55 | //
56 | // textBox1
57 | //
58 | this.textBox1.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
59 | this.textBox1.Location = new System.Drawing.Point(24, 40);
60 | this.textBox1.MaxLength = 40000;
61 | this.textBox1.Multiline = true;
62 | this.textBox1.Name = "textBox1";
63 | this.textBox1.ReadOnly = true;
64 | this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
65 | this.textBox1.Size = new System.Drawing.Size(449, 157);
66 | this.textBox1.TabIndex = 0;
67 | this.textBox1.Text = resources.GetString("textBox1.Text");
68 | //
69 | // checkBox1
70 | //
71 | this.checkBox1.AutoSize = true;
72 | this.checkBox1.Location = new System.Drawing.Point(25, 207);
73 | this.checkBox1.Name = "checkBox1";
74 | this.checkBox1.Size = new System.Drawing.Size(238, 17);
75 | this.checkBox1.TabIndex = 1;
76 | this.checkBox1.Text = "I &accept the terms in the license agreement.";
77 | this.checkBox1.UseVisualStyleBackColor = true;
78 | this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
79 | //
80 | // button1
81 | //
82 | this.button1.Location = new System.Drawing.Point(398, 203);
83 | this.button1.Name = "button1";
84 | this.button1.Size = new System.Drawing.Size(75, 23);
85 | this.button1.TabIndex = 2;
86 | this.button1.Text = "&Print";
87 | this.button1.UseVisualStyleBackColor = true;
88 | this.button1.Click += new System.EventHandler(this.button1_Click);
89 | //
90 | // LicensePage
91 | //
92 | this.AllowedButtons = Craftplacer.ClassicSuite.Wizards.Enums.AllowedButtons.None;
93 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
94 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
95 | this.Controls.Add(this.button1);
96 | this.Controls.Add(this.checkBox1);
97 | this.Controls.Add(this.textBox1);
98 | this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
99 | this.Name = "LicensePage";
100 | this.PageParts = Craftplacer.ClassicSuite.Wizards.Enums.PageParts.Header;
101 | this.Size = new System.Drawing.Size(497, 253);
102 | this.Subtitle = "Please read the following license agreement carefully.";
103 | this.Title = "License agreement";
104 | this.ResumeLayout(false);
105 | this.PerformLayout();
106 |
107 | }
108 |
109 | #endregion
110 |
111 | private System.Windows.Forms.TextBox textBox1;
112 | private System.Windows.Forms.CheckBox checkBox1;
113 | private System.Windows.Forms.Button button1;
114 | }
115 | }
116 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Function Classes/SystemMenu.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Drawing;
3 | using System.Linq;
4 | using System.Runtime.InteropServices;
5 |
6 | namespace System.Windows.Forms
7 | {
8 | [Flags]
9 | public enum SystemMenuItemFlags : uint
10 | {
11 | Default = 0x0000,
12 | GrayedAndDisabled = 0x0001,
13 | Disabled = 0x0002,
14 | Bitmap = 0x0004,
15 | Checked = 0x0008,
16 | Popup = 0x0010,
17 | OwnerDraw = 0x0100,
18 | IsSeperator = 0x0800
19 | }
20 |
21 | [Flags]
22 | public enum SystemMenuTrackPopupMenuFlags : uint
23 | {
24 | Default = 0x0000,
25 |
26 | LeftAlign = 0x0000,
27 | HorizontalCenterAlign = 0x0004,
28 | RightAlign = 0x0008,
29 |
30 | TopAlign = 0x0000,
31 | VerticalCenterAlign = 0x0010,
32 | BottomAlign = 0x0020,
33 |
34 | TrackLeftButton = 0x0000,
35 | TrackRightButton = 0x0002,
36 |
37 | LeftToRightAnimation = 0x0400,
38 | RightToLeftAnimation = 0x0800,
39 | TopToBottomAnimation = 0x1000,
40 | BottomToTopAnimation = 0x2000,
41 | NoAnimation = 0x4000,
42 |
43 | ReturnResult = 0x0100
44 | }
45 |
46 | public class SystemMenuItem
47 | {
48 | public SystemMenuItemFlags MenuItemFlags;
49 | public Bitmap Image;
50 | public string Text;
51 | public Action OnClick;
52 | public int ID;
53 | public SystemMenu SubMenu;
54 |
55 | public SystemMenuItem(string text, Action onClick, SystemMenuItemFlags flags)
56 | {
57 | Text = text;
58 | OnClick = onClick;
59 | MenuItemFlags = flags;
60 | }
61 |
62 | public SystemMenuItem(string text, Action onClick, SystemMenuItemFlags flags, Image image)
63 | {
64 | if (!flags.HasFlag(SystemMenuItemFlags.Bitmap))
65 | flags = flags | SystemMenuItemFlags.Bitmap;
66 |
67 | Text = text;
68 | OnClick = onClick;
69 | MenuItemFlags = flags;
70 | Image = new Bitmap(image);
71 | }
72 | }
73 |
74 | public class SystemMenu
75 | {
76 | [DllImport("user32.dll")]
77 | static extern IntPtr CreateMenu();
78 | [DllImport("user32.dll")]
79 | static extern IntPtr CreatePopupMenu();
80 | [DllImport("user32.dll")]
81 | static extern bool AppendMenu(IntPtr hMenu, SystemMenuItemFlags uFlags, int uIDNewItem, string lpNewItem);
82 | [DllImport("user32.dll")]
83 | static extern bool AppendMenu(IntPtr hMenu, SystemMenuItemFlags uFlags, int uIDNewItem, IntPtr lpNewItem);
84 | [DllImport("user32.dll")]
85 | static extern bool DeleteMenu(IntPtr hMenu, int uPosition, uint uFlags);
86 | [DllImport("user32.dll")]
87 | static extern int GetSystemMetrics(int nIndex);
88 | [DllImport("user32.dll")]
89 | static extern int TrackPopupMenuEx(IntPtr hmenu, SystemMenuTrackPopupMenuFlags fuFlags, int x, int y, IntPtr hwnd, IntPtr lptpm);
90 |
91 | public IntPtr MenuHandle;
92 | public List Items = new List();
93 | public int Height => GetSystemMetrics(15);
94 |
95 | public SystemMenu(bool popup = false)
96 | {
97 | MenuHandle = popup ? CreatePopupMenu() : CreateMenu();
98 | }
99 |
100 | public void AddItem(SystemMenuItem item)
101 | {
102 | Items.Add(item);
103 |
104 | if (item.MenuItemFlags.HasFlag(SystemMenuItemFlags.Bitmap))
105 | AppendMenu(MenuHandle, item.MenuItemFlags, item.ID, item.Image.GetHbitmap());
106 | else
107 | AppendMenu(MenuHandle, item.MenuItemFlags, item.ID, item.Text);
108 | }
109 |
110 | public void RemoveItem(SystemMenuItem item)
111 | {
112 | if (Items.Contains(item))
113 | {
114 | Items.Remove(item);
115 | DeleteMenu(MenuHandle, item.ID, 0x0000);
116 | }
117 | }
118 |
119 | public void ShowContextMenu(IntPtr windowHandle, int x, int y)
120 | {
121 | int id = TrackPopupMenuEx(MenuHandle, SystemMenuTrackPopupMenuFlags.ReturnResult, x, y, windowHandle, IntPtr.Zero);
122 | PerformAction(id);
123 | }
124 |
125 | public void PerformAction(int itemId)
126 | {
127 | IEnumerable subMenus = Items.Where(a => a.MenuItemFlags.HasFlag(SystemMenuItemFlags.Popup)).Select(a => a.SubMenu);
128 | foreach (SystemMenu subMenu in subMenus)
129 | subMenu.PerformAction(itemId);
130 |
131 | IEnumerable items = Items.Where(a => a.ID == itemId);
132 | if (items.Count() > 0)
133 | {
134 | SystemMenuItem item = items.First();
135 | item.OnClick();
136 | }
137 | }
138 |
139 | public static int CopyToolStripToMenu(ToolStrip menuStrip, SystemMenu systemMenu, int currentId = 0)
140 | {
141 | foreach (ToolStripItem item in menuStrip.Items)
142 | {
143 | if (item is ToolStripMenuItem menuItem)
144 | {
145 | SystemMenuItemFlags flags = SystemMenuItemFlags.Default;
146 | if (menuItem.Checked)
147 | flags |= SystemMenuItemFlags.Checked;
148 | if (!menuItem.Enabled)
149 | flags |= SystemMenuItemFlags.Disabled;
150 | if (menuItem.HasDropDownItems)
151 | flags |= SystemMenuItemFlags.Popup;
152 |
153 | SystemMenuItem systemMenuItem;
154 | if (menuItem.Image != null)
155 | {
156 | flags |= SystemMenuItemFlags.Bitmap;
157 | systemMenuItem = new SystemMenuItem(menuItem.Text, menuItem.PerformClick, flags, menuItem.Image);
158 | }
159 | else
160 | systemMenuItem = new SystemMenuItem(menuItem.Text, menuItem.PerformClick, flags);
161 | systemMenuItem.ID = currentId;
162 |
163 | if (menuItem.HasDropDownItems)
164 | {
165 | SystemMenu subMenu = new SystemMenu(true);
166 | currentId = CopyToolStripToMenu(menuItem.DropDown, subMenu, currentId);
167 | systemMenuItem.SubMenu = subMenu;
168 | systemMenuItem.ID = subMenu.MenuHandle.ToInt32();
169 | }
170 | else currentId++;
171 |
172 | systemMenu.AddItem(systemMenuItem);
173 | }
174 | else if (item is ToolStripSeparator seperator)
175 | systemMenu.AddItem(new SystemMenuItem("", new Action(() => { }), SystemMenuItemFlags.IsSeperator));
176 | }
177 | return currentId;
178 | }
179 | }
180 | }
181 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/FinishedPage.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | namespace SimpleClassicTheme.SetupWizard
21 | {
22 | partial class FinishedPage
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Component Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | this.label1 = new System.Windows.Forms.Label();
51 | this.label2 = new System.Windows.Forms.Label();
52 | this.label3 = new System.Windows.Forms.Label();
53 | this.linkLabel1 = new System.Windows.Forms.LinkLabel();
54 | this.label4 = new System.Windows.Forms.Label();
55 | this.SuspendLayout();
56 | //
57 | // label1
58 | //
59 | this.label1.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
60 | this.label1.Location = new System.Drawing.Point(13, 20);
61 | this.label1.Name = "label1";
62 | this.label1.Size = new System.Drawing.Size(302, 53);
63 | this.label1.TabIndex = 0;
64 | this.label1.Text = "Setup Wizard Completed";
65 | //
66 | // label2
67 | //
68 | this.label2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
69 | this.label2.Location = new System.Drawing.Point(13, 82);
70 | this.label2.Name = "label2";
71 | this.label2.Size = new System.Drawing.Size(302, 152);
72 | this.label2.TabIndex = 1;
73 | this.label2.Text = "The wizard has succesfully installed and configured Simple Classic Theme and it\'s" +
74 | " associated components. Click Finish to exit the wizard and continue to Simple C" +
75 | "lassic Theme.";
76 | //
77 | // label3
78 | //
79 | this.label3.AutoSize = true;
80 | this.label3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
81 | this.label3.Location = new System.Drawing.Point(13, 282);
82 | this.label3.Name = "label3";
83 | this.label3.Size = new System.Drawing.Size(277, 13);
84 | this.label3.TabIndex = 2;
85 | this.label3.Text = "Wizard framework designed and created by Craftplacer.";
86 | //
87 | // linkLabel1
88 | //
89 | this.linkLabel1.AutoSize = true;
90 | this.linkLabel1.Cursor = System.Windows.Forms.Cursors.Hand;
91 | this.linkLabel1.Location = new System.Drawing.Point(13, 295);
92 | this.linkLabel1.Name = "linkLabel1";
93 | this.linkLabel1.Size = new System.Drawing.Size(61, 13);
94 | this.linkLabel1.TabIndex = 3;
95 | this.linkLabel1.TabStop = true;
96 | this.linkLabel1.Text = "Github Link";
97 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
98 | //
99 | // label4
100 | //
101 | this.label4.AutoSize = true;
102 | this.label4.Location = new System.Drawing.Point(13, 245);
103 | this.label4.Name = "label4";
104 | this.label4.Size = new System.Drawing.Size(153, 26);
105 | this.label4.TabIndex = 4;
106 | this.label4.Text = "© 2021 Anis \"Leet\" Errais \r\nSee GNU GPLv3 for more info.";
107 | //
108 | // FinishedPage
109 | //
110 | this.AllowedButtons = Craftplacer.ClassicSuite.Wizards.Enums.AllowedButtons.Next;
111 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
112 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
113 | this.Controls.Add(this.label4);
114 | this.Controls.Add(this.linkLabel1);
115 | this.Controls.Add(this.label3);
116 | this.Controls.Add(this.label2);
117 | this.Controls.Add(this.label1);
118 | this.Name = "FinishedPage";
119 | this.PageParts = Craftplacer.ClassicSuite.Wizards.Enums.PageParts.Sidebar;
120 | this.SidebarImage = global::SimpleClassicTheme.Properties.Resources.winxp_wizard;
121 | this.Size = new System.Drawing.Size(333, 313);
122 | this.ResumeLayout(false);
123 | this.PerformLayout();
124 |
125 | }
126 |
127 | #endregion
128 |
129 | private System.Windows.Forms.Label label1;
130 | private System.Windows.Forms.Label label2;
131 | private System.Windows.Forms.Label label3;
132 | private System.Windows.Forms.LinkLabel linkLabel1;
133 | private System.Windows.Forms.Label label4;
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Utility/TaskbarTypeSelector.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Simple Classic Theme, a basic utility to bring back classic theme to
3 | * newer versions of the Windows operating system.
4 | * Copyright (C) 2022 Anis Errais
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | *
19 | */
20 |
21 | namespace SimpleClassicTheme.Forms
22 | {
23 | partial class TaskbarTypeSelector
24 | {
25 | ///
26 | /// Required designer variable.
27 | ///
28 | private System.ComponentModel.IContainer components = null;
29 |
30 | ///
31 | /// Clean up any resources being used.
32 | ///
33 | /// true if managed resources should be disposed; otherwise, false.
34 | protected override void Dispose(bool disposing)
35 | {
36 | if (disposing && (components != null))
37 | {
38 | components.Dispose();
39 | }
40 | base.Dispose(disposing);
41 | }
42 |
43 | #region Component Designer generated code
44 |
45 | ///
46 | /// Required method for Designer support - do not modify
47 | /// the contents of this method with the code editor.
48 | ///
49 | private void InitializeComponent()
50 | {
51 | this.label2 = new System.Windows.Forms.Label();
52 | this.comboBoxTaskbar = new System.Windows.Forms.ComboBox();
53 | this.groupBox1 = new System.Windows.Forms.GroupBox();
54 | this.label1 = new System.Windows.Forms.Label();
55 | this.linkLabel1 = new System.Windows.Forms.LinkLabel();
56 | this.groupBox1.SuspendLayout();
57 | this.SuspendLayout();
58 | //
59 | // label2
60 | //
61 | this.label2.AutoSize = true;
62 | this.label2.Location = new System.Drawing.Point(9, 25);
63 | this.label2.Name = "label2";
64 | this.label2.Size = new System.Drawing.Size(79, 13);
65 | this.label2.TabIndex = 5;
66 | this.label2.Text = "Taskbar Type: ";
67 | //
68 | // comboBoxTaskbar
69 | //
70 | this.comboBoxTaskbar.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
71 | this.comboBoxTaskbar.FormattingEnabled = true;
72 | this.comboBoxTaskbar.Location = new System.Drawing.Point(94, 22);
73 | this.comboBoxTaskbar.Name = "comboBoxTaskbar";
74 | this.comboBoxTaskbar.Size = new System.Drawing.Size(245, 21);
75 | this.comboBoxTaskbar.TabIndex = 4;
76 | this.comboBoxTaskbar.SelectedIndexChanged += new System.EventHandler(this.comboBoxTaskbar_SelectedIndexChanged);
77 | //
78 | // groupBox1
79 | //
80 | this.groupBox1.Controls.Add(this.linkLabel1);
81 | this.groupBox1.Controls.Add(this.label1);
82 | this.groupBox1.Controls.Add(this.label2);
83 | this.groupBox1.Controls.Add(this.comboBoxTaskbar);
84 | this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
85 | this.groupBox1.Location = new System.Drawing.Point(0, 0);
86 | this.groupBox1.Name = "groupBox1";
87 | this.groupBox1.Padding = new System.Windows.Forms.Padding(6, 12, 6, 6);
88 | this.groupBox1.Size = new System.Drawing.Size(467, 161);
89 | this.groupBox1.TabIndex = 6;
90 | this.groupBox1.TabStop = false;
91 | this.groupBox1.Text = "Select Classic Taskbar to be used";
92 | //
93 | // label1
94 | //
95 | this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
96 | | System.Windows.Forms.AnchorStyles.Left)
97 | | System.Windows.Forms.AnchorStyles.Right)));
98 | this.label1.Location = new System.Drawing.Point(12, 46);
99 | this.label1.Name = "label1";
100 | this.label1.Size = new System.Drawing.Size(446, 109);
101 | this.label1.TabIndex = 6;
102 | this.label1.Text = "this is a word wrap test. \r\n\r\nif you see this word wrap test, something has gone " +
103 | "wrong inside of sct. go tell leet, he\'ll know how to fix it.";
104 | //
105 | // linkLabel1
106 | //
107 | this.linkLabel1.AutoSize = true;
108 | this.linkLabel1.Location = new System.Drawing.Point(9, 100);
109 | this.linkLabel1.Name = "linkLabel1";
110 | this.linkLabel1.Size = new System.Drawing.Size(121, 13);
111 | this.linkLabel1.TabIndex = 7;
112 | this.linkLabel1.TabStop = true;
113 | this.linkLabel1.Text = "This link points nowhere";
114 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
115 | //
116 | // TaskbarTypeSelector
117 | //
118 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
119 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
120 | this.Controls.Add(this.groupBox1);
121 | this.Name = "TaskbarTypeSelector";
122 | this.Size = new System.Drawing.Size(467, 161);
123 | this.Load += new System.EventHandler(this.TaskbarTypeSelector_Load);
124 | this.EnabledChanged += new System.EventHandler(this.TaskbarTypeSelector_EnabledChanged);
125 | this.groupBox1.ResumeLayout(false);
126 | this.groupBox1.PerformLayout();
127 | this.ResumeLayout(false);
128 |
129 | }
130 |
131 | #endregion
132 |
133 | private System.Windows.Forms.Label label2;
134 | private System.Windows.Forms.ComboBox comboBoxTaskbar;
135 | private System.Windows.Forms.GroupBox groupBox1;
136 | private System.Windows.Forms.Label label1;
137 | private System.Windows.Forms.LinkLabel linkLabel1;
138 | }
139 | }
140 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/LoaderForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/WelcomePage.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Unfinished/WMITest.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/FinishedPage.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/UtilitiesPage.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Utility/TaskbarTypeSelector.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallOptionsPage.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallationPage.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | namespace SimpleClassicTheme.SetupWizard
21 | {
22 | partial class InstallationPage
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Component Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | this.label1 = new System.Windows.Forms.Label();
51 | this.label2 = new System.Windows.Forms.Label();
52 | this.progressBar1 = new System.Windows.Forms.ProgressBar();
53 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
54 | this.label3 = new System.Windows.Forms.Label();
55 | this.bgWork = new System.ComponentModel.BackgroundWorker();
56 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
57 | this.SuspendLayout();
58 | //
59 | // label1
60 | //
61 | this.label1.Location = new System.Drawing.Point(75, 9);
62 | this.label1.Name = "label1";
63 | this.label1.Size = new System.Drawing.Size(366, 38);
64 | this.label1.TabIndex = 0;
65 | this.label1.Text = "Please wait while the setup wizard installs Simple Classic Theme. This may take a" +
66 | " few minutes.";
67 | //
68 | // label2
69 | //
70 | this.label2.AutoSize = true;
71 | this.label2.Location = new System.Drawing.Point(75, 54);
72 | this.label2.Name = "label2";
73 | this.label2.Size = new System.Drawing.Size(42, 13);
74 | this.label2.TabIndex = 1;
75 | this.label2.Text = "Status:";
76 | //
77 | // progressBar1
78 | //
79 | this.progressBar1.Location = new System.Drawing.Point(78, 91);
80 | this.progressBar1.Name = "progressBar1";
81 | this.progressBar1.Size = new System.Drawing.Size(366, 23);
82 | this.progressBar1.TabIndex = 2;
83 | //
84 | // pictureBox1
85 | //
86 | this.pictureBox1.Image = global::SimpleClassicTheme.Properties.Resources.msiexec;
87 | this.pictureBox1.Location = new System.Drawing.Point(28, 8);
88 | this.pictureBox1.Name = "pictureBox1";
89 | this.pictureBox1.Size = new System.Drawing.Size(32, 32);
90 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
91 | this.pictureBox1.TabIndex = 3;
92 | this.pictureBox1.TabStop = false;
93 | //
94 | // label3
95 | //
96 | this.label3.AutoSize = true;
97 | this.label3.Location = new System.Drawing.Point(75, 73);
98 | this.label3.Name = "label3";
99 | this.label3.Size = new System.Drawing.Size(120, 13);
100 | this.label3.TabIndex = 4;
101 | this.label3.Text = "Initializing installation...";
102 | //
103 | // bgWork
104 | //
105 | this.bgWork.WorkerReportsProgress = true;
106 | this.bgWork.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgWork_DoWork);
107 | this.bgWork.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bgWork_ProgressChanged);
108 | this.bgWork.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bgWork_RunWorkerCompleted);
109 | //
110 | // InstallationPage
111 | //
112 | this.AllowedButtons = Craftplacer.ClassicSuite.Wizards.Enums.AllowedButtons.None;
113 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
114 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
115 | this.Controls.Add(this.label3);
116 | this.Controls.Add(this.pictureBox1);
117 | this.Controls.Add(this.progressBar1);
118 | this.Controls.Add(this.label2);
119 | this.Controls.Add(this.label1);
120 | this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
121 | this.Name = "InstallationPage";
122 | this.PageParts = Craftplacer.ClassicSuite.Wizards.Enums.PageParts.Header;
123 | this.Size = new System.Drawing.Size(497, 253);
124 | this.Subtitle = "The components you selected are being installed.";
125 | this.Title = "Installing Simple Classic Theme";
126 | this.EnterPage += new System.EventHandler(this.InstallationPage_EnterPage);
127 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
128 | this.ResumeLayout(false);
129 | this.PerformLayout();
130 |
131 | }
132 |
133 | #endregion
134 |
135 | private System.Windows.Forms.Label label1;
136 | private System.Windows.Forms.Label label2;
137 | private System.Windows.Forms.ProgressBar progressBar1;
138 | private System.Windows.Forms.PictureBox pictureBox1;
139 | private System.Windows.Forms.Label label3;
140 | private System.ComponentModel.BackgroundWorker bgWork;
141 | }
142 | }
143 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Information/AboutForm.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Simple Classic Theme, a basic utility to bring back classic theme to
3 | * newer versions of the Windows operating system.
4 | * Copyright (C) 2022 Anis Errais
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | *
19 | */
20 |
21 | namespace SimpleClassicTheme
22 | {
23 | partial class About
24 | {
25 | ///
26 | /// Required designer variable.
27 | ///
28 | private System.ComponentModel.IContainer components = null;
29 |
30 | ///
31 | /// Clean up any resources being used.
32 | ///
33 | /// true if managed resources should be disposed; otherwise, false.
34 | protected override void Dispose(bool disposing)
35 | {
36 | if (disposing && (components != null))
37 | {
38 | components.Dispose();
39 | }
40 | base.Dispose(disposing);
41 | }
42 |
43 | #region Windows Form Designer generated code
44 |
45 | ///
46 | /// Required method for Designer support - do not modify
47 | /// the contents of this method with the code editor.
48 | ///
49 | private void InitializeComponent()
50 | {
51 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
52 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
53 | this.label1 = new System.Windows.Forms.Label();
54 | this.label2 = new System.Windows.Forms.Label();
55 | this.pictureBox2 = new System.Windows.Forms.PictureBox();
56 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
57 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
58 | this.SuspendLayout();
59 | //
60 | // pictureBox1
61 | //
62 | this.pictureBox1.BackColor = System.Drawing.SystemColors.Window;
63 | this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Top;
64 | this.pictureBox1.Location = new System.Drawing.Point(0, 0);
65 | this.pictureBox1.Name = "pictureBox1";
66 | this.pictureBox1.Size = new System.Drawing.Size(400, 73);
67 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
68 | this.pictureBox1.TabIndex = 0;
69 | this.pictureBox1.TabStop = false;
70 | //
71 | // label1
72 | //
73 | this.label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
74 | this.label1.Location = new System.Drawing.Point(12, 89);
75 | this.label1.Name = "label1";
76 | this.label1.Size = new System.Drawing.Size(376, 2);
77 | this.label1.TabIndex = 1;
78 | //
79 | // label2
80 | //
81 | this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
82 | | System.Windows.Forms.AnchorStyles.Right)));
83 | this.label2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
84 | this.label2.Location = new System.Drawing.Point(12, 101);
85 | this.label2.Name = "label2";
86 | this.label2.Size = new System.Drawing.Size(376, 381);
87 | this.label2.TabIndex = 2;
88 | this.label2.Text = resources.GetString("label2.Text");
89 | //
90 | // pictureBox2
91 | //
92 | this.pictureBox2.BackColor = System.Drawing.SystemColors.ActiveCaption;
93 | this.pictureBox2.Location = new System.Drawing.Point(0, 73);
94 | this.pictureBox2.Name = "pictureBox2";
95 | this.pictureBox2.Size = new System.Drawing.Size(400, 5);
96 | this.pictureBox2.TabIndex = 3;
97 | this.pictureBox2.TabStop = false;
98 | //
99 | // About
100 | //
101 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
102 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
103 | this.ClientSize = new System.Drawing.Size(400, 511);
104 | this.Controls.Add(this.pictureBox2);
105 | this.Controls.Add(this.label2);
106 | this.Controls.Add(this.label1);
107 | this.Controls.Add(this.pictureBox1);
108 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
109 | this.MaximizeBox = false;
110 | this.MinimizeBox = false;
111 | this.Name = "About";
112 | this.ShowIcon = false;
113 | this.ShowInTaskbar = false;
114 | this.Text = "About Simple Classic Theme";
115 | this.TopMost = true;
116 | this.Load += new System.EventHandler(this.About_Load);
117 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
118 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
119 | this.ResumeLayout(false);
120 |
121 | }
122 |
123 | #endregion
124 |
125 | private System.Windows.Forms.PictureBox pictureBox1;
126 | private System.Windows.Forms.Label label1;
127 | private System.Windows.Forms.Label label2;
128 | private System.Windows.Forms.PictureBox pictureBox2;
129 | }
130 | }
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallationPage.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallPathPage.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/SetupWizard/InstallPathPage.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | namespace SimpleClassicTheme.SetupWizard
21 | {
22 | partial class InstallPathPage
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Component Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | this.label1 = new System.Windows.Forms.Label();
51 | this.groupBox2 = new System.Windows.Forms.GroupBox();
52 | this.button1 = new System.Windows.Forms.Button();
53 | this.textBox1 = new System.Windows.Forms.TextBox();
54 | this.label2 = new System.Windows.Forms.Label();
55 | this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
56 | this.groupBox2.SuspendLayout();
57 | this.SuspendLayout();
58 | //
59 | // label1
60 | //
61 | this.label1.Location = new System.Drawing.Point(24, 17);
62 | this.label1.Name = "label1";
63 | this.label1.Size = new System.Drawing.Size(445, 63);
64 | this.label1.TabIndex = 0;
65 | this.label1.Text = "Setup will install Simple Classic Theme in the following folder. To install in a " +
66 | "different folder, click Browse and select another folder. Click Install to start" +
67 | " the installation.";
68 | //
69 | // groupBox2
70 | //
71 | this.groupBox2.Controls.Add(this.button1);
72 | this.groupBox2.Controls.Add(this.textBox1);
73 | this.groupBox2.Location = new System.Drawing.Point(27, 120);
74 | this.groupBox2.Name = "groupBox2";
75 | this.groupBox2.Size = new System.Drawing.Size(442, 57);
76 | this.groupBox2.TabIndex = 2;
77 | this.groupBox2.TabStop = false;
78 | this.groupBox2.Text = "Destination Folder";
79 | //
80 | // button1
81 | //
82 | this.button1.Location = new System.Drawing.Point(352, 19);
83 | this.button1.Name = "button1";
84 | this.button1.Size = new System.Drawing.Size(75, 23);
85 | this.button1.TabIndex = 1;
86 | this.button1.Text = "Browse...";
87 | this.button1.UseVisualStyleBackColor = true;
88 | this.button1.Click += new System.EventHandler(this.button1_Click);
89 | //
90 | // textBox1
91 | //
92 | this.textBox1.Location = new System.Drawing.Point(15, 21);
93 | this.textBox1.Name = "textBox1";
94 | this.textBox1.ReadOnly = true;
95 | this.textBox1.Size = new System.Drawing.Size(331, 20);
96 | this.textBox1.TabIndex = 0;
97 | //
98 | // label2
99 | //
100 | this.label2.AutoSize = true;
101 | this.label2.Location = new System.Drawing.Point(24, 198);
102 | this.label2.Name = "label2";
103 | this.label2.Size = new System.Drawing.Size(119, 13);
104 | this.label2.TabIndex = 3;
105 | this.label2.Text = "Space required: ±20MB";
106 | //
107 | // InstallPathPage
108 | //
109 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
110 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
111 | this.Controls.Add(this.label2);
112 | this.Controls.Add(this.groupBox2);
113 | this.Controls.Add(this.label1);
114 | this.Name = "InstallPathPage";
115 | this.NextButtonText = "Install";
116 | this.PageParts = Craftplacer.ClassicSuite.Wizards.Enums.PageParts.Header;
117 | this.Size = new System.Drawing.Size(497, 253);
118 | this.Subtitle = "Choose the folder in which to install Simple Classic Theme";
119 | this.Title = "Choose Install Location";
120 | this.LeavePage += new System.EventHandler(this.InstallPathPage_LeavePage);
121 | this.Load += new System.EventHandler(this.InstallPathPage_Load);
122 | this.groupBox2.ResumeLayout(false);
123 | this.groupBox2.PerformLayout();
124 | this.ResumeLayout(false);
125 | this.PerformLayout();
126 |
127 | }
128 |
129 | #endregion
130 |
131 | private System.Windows.Forms.Label label1;
132 | private System.Windows.Forms.GroupBox groupBox2;
133 | private System.Windows.Forms.Button button1;
134 | private System.Windows.Forms.TextBox textBox1;
135 | private System.Windows.Forms.Label label2;
136 | private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Utility/AHKScriptManager.Designer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | namespace SimpleClassicTheme
21 | {
22 | partial class AHKScriptManager
23 | {
24 | ///
25 | /// Required designer variable.
26 | ///
27 | private System.ComponentModel.IContainer components = null;
28 |
29 | ///
30 | /// Clean up any resources being used.
31 | ///
32 | /// true if managed resources should be disposed; otherwise, false.
33 | protected override void Dispose(bool disposing)
34 | {
35 | if (disposing && (components != null))
36 | {
37 | components.Dispose();
38 | }
39 | base.Dispose(disposing);
40 | }
41 |
42 | #region Windows Form Designer generated code
43 |
44 | ///
45 | /// Required method for Designer support - do not modify
46 | /// the contents of this method with the code editor.
47 | ///
48 | private void InitializeComponent()
49 | {
50 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AHKScriptManager));
51 | this.button3 = new System.Windows.Forms.Button();
52 | this.button2 = new System.Windows.Forms.Button();
53 | this.button1 = new System.Windows.Forms.Button();
54 | this.listBox1 = new System.Windows.Forms.ListBox();
55 | this.label1 = new System.Windows.Forms.Label();
56 | this.button4 = new System.Windows.Forms.Button();
57 | this.SuspendLayout();
58 | //
59 | // button3
60 | //
61 | this.button3.Location = new System.Drawing.Point(314, 41);
62 | this.button3.Name = "button3";
63 | this.button3.Size = new System.Drawing.Size(75, 23);
64 | this.button3.TabIndex = 7;
65 | this.button3.Text = "Delete";
66 | this.button3.UseVisualStyleBackColor = true;
67 | this.button3.Click += new System.EventHandler(this.button3_Click);
68 | //
69 | // button2
70 | //
71 | this.button2.Location = new System.Drawing.Point(314, 12);
72 | this.button2.Name = "button2";
73 | this.button2.Size = new System.Drawing.Size(75, 23);
74 | this.button2.TabIndex = 6;
75 | this.button2.Text = "Add";
76 | this.button2.UseVisualStyleBackColor = true;
77 | this.button2.Click += new System.EventHandler(this.button2_Click);
78 | //
79 | // button1
80 | //
81 | this.button1.Location = new System.Drawing.Point(314, 214);
82 | this.button1.Name = "button1";
83 | this.button1.Size = new System.Drawing.Size(75, 23);
84 | this.button1.TabIndex = 5;
85 | this.button1.Text = "Close";
86 | this.button1.UseVisualStyleBackColor = true;
87 | this.button1.Click += new System.EventHandler(this.button1_Click);
88 | //
89 | // listBox1
90 | //
91 | this.listBox1.FormattingEnabled = true;
92 | this.listBox1.Location = new System.Drawing.Point(12, 12);
93 | this.listBox1.Name = "listBox1";
94 | this.listBox1.Size = new System.Drawing.Size(296, 225);
95 | this.listBox1.TabIndex = 4;
96 | //
97 | // label1
98 | //
99 | this.label1.AutoSize = true;
100 | this.label1.Location = new System.Drawing.Point(12, 240);
101 | this.label1.Name = "label1";
102 | this.label1.Size = new System.Drawing.Size(303, 13);
103 | this.label1.TabIndex = 8;
104 | this.label1.Text = "Scripts listed here will automatically run on boot alongside SCT.";
105 | //
106 | // button4
107 | //
108 | this.button4.Location = new System.Drawing.Point(314, 185);
109 | this.button4.Name = "button4";
110 | this.button4.Size = new System.Drawing.Size(75, 23);
111 | this.button4.TabIndex = 9;
112 | this.button4.Text = "Add FEH";
113 | this.button4.UseVisualStyleBackColor = true;
114 | this.button4.Click += new System.EventHandler(this.button4_Click);
115 | //
116 | // AHKScriptManager
117 | //
118 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
119 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
120 | this.ClientSize = new System.Drawing.Size(401, 262);
121 | this.Controls.Add(this.button4);
122 | this.Controls.Add(this.label1);
123 | this.Controls.Add(this.button3);
124 | this.Controls.Add(this.button2);
125 | this.Controls.Add(this.button1);
126 | this.Controls.Add(this.listBox1);
127 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
128 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
129 | this.Name = "AHKScriptManager";
130 | this.Text = "Simple Classic Theme - AutoHotKey Script Manager";
131 | this.ResumeLayout(false);
132 | this.PerformLayout();
133 |
134 | }
135 |
136 | #endregion
137 |
138 | private System.Windows.Forms.Button button3;
139 | private System.Windows.Forms.Button button2;
140 | private System.Windows.Forms.Button button1;
141 | private System.Windows.Forms.ListBox listBox1;
142 | private System.Windows.Forms.Label label1;
143 | private System.Windows.Forms.Button button4;
144 | }
145 | }
--------------------------------------------------------------------------------
/SimpleClassicTheme/Forms/Utility/GithubDownloader.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * SimpleClassicTheme, a basic utility to bring back classic theme to newer versions of the Windows operating system.
3 | * Copyright (C) 2021 Anis Errais
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | *
18 | */
19 |
20 | using System;
21 | using System.Threading;
22 | using System.Windows.Forms;
23 | using System.Net;
24 | using System.IO;
25 | using System.IO.Compression;
26 | using System.Diagnostics;
27 | using System.Collections.Generic;
28 |
29 | namespace SimpleClassicTheme
30 | {
31 | public partial class GithubDownloader : Form
32 | {
33 | public class DownloadableGithubProject
34 | {
35 | public static DownloadableGithubProject SimpleClassicThemeTaskbar = new DownloadableGithubProject()
36 | {
37 | Name = "WinClassic/SimpleClassicTheme.Taskbar",
38 | Filename = (IntPtr.Size == 8) ? "SimpleClassicThemeTaskbar_x64.zip" : "SimpleClassicThemeTaskbar_x86.zip",
39 | ProcessName = "SimpleClassicThemeTaskbar",
40 | TargetDirectory = $"{Configuration.InstallPath}Taskbar\\",
41 | NeedsExtraction = true
42 | };
43 |
44 | public static DownloadableGithubProject RetroBar = new DownloadableGithubProject()
45 | {
46 | Name = "dremin/RetroBar",
47 | Filename = "RetroBar.zip",
48 | ProcessName = "RetroBar",
49 | TargetDirectory = $"{Configuration.InstallPath}RetroBar\\",
50 | NeedsExtraction = true
51 | };
52 |
53 | public static DownloadableGithubProject ExplorerPatcher = new DownloadableGithubProject()
54 | {
55 | Name = "valinet/ExplorerPatcher",
56 | Filename = "dxgi.dll",
57 | ProcessName = "",
58 | TargetDirectory = $"{Configuration.InstallPath}ExplorerPatcher\\",
59 | NeedsExtraction = false
60 | };
61 |
62 | public static DownloadableGithubProject SimpleClassicThemeFEH = new DownloadableGithubProject()
63 | {
64 | Name = "valinet/ExplorerPatcher",
65 | Filename = (IntPtr.Size == 8) ? "SCT.FEH.x64.zip" : "SCT.FEH.x64.zip",
66 | ProcessName = "",
67 | TargetDirectory = $"{Configuration.InstallPath}AHK\\",
68 | NeedsExtraction = true
69 | };
70 |
71 | public string Name;
72 | public string Filename;
73 | public string ProcessName;
74 | public string TargetDirectory;
75 | public bool NeedsExtraction;
76 | }
77 |
78 | public DownloadableGithubProject project;
79 | public int progressDownload = 0;
80 | public int progressExtract = 0;
81 |
82 | public GithubDownloader()
83 | {
84 | InitializeComponent();
85 | }
86 |
87 | public GithubDownloader(DownloadableGithubProject project)
88 | {
89 | this.project = project;
90 | InitializeComponent();
91 | }
92 |
93 | protected override CreateParams CreateParams
94 | {
95 | get
96 | {
97 | CreateParams param = base.CreateParams;
98 | param.ClassStyle ^= 0x200;
99 | return param;
100 | }
101 | }
102 |
103 | private void GithubDownloader_Load(object sender, EventArgs e)
104 | {
105 | if (project != null)
106 | {
107 | label1.Text = "Downloading...";
108 | label2.Text = $"Retrieving latest release for '{project.Name}'";
109 |
110 | new Thread(ThreadFunction).Start();
111 | timer1.Enabled = true;
112 | }
113 | else
114 | {
115 | label1.Text = "Unhandled exception: No GitHub project specified";
116 | }
117 | }
118 |
119 | private void timer1_Tick(object sender, EventArgs e)
120 | {
121 | progressBar1.Value = progressDownload == 100 ? progressExtract : progressDownload;
122 | if (progressDownload == 100)
123 | label1.Text = "Extracting...";
124 | if (progressExtract == 100 || (progressDownload == 100 && !project.NeedsExtraction))
125 | {
126 | timer1.Enabled = false;
127 | Close();
128 | }
129 | progressBar2.Value = project.NeedsExtraction ? (progressDownload / 2) + (progressExtract / 2) : progressDownload;
130 | }
131 |
132 | private void ThreadFunction()
133 | {
134 | if (project.ProcessName != "")
135 | while (Process.GetProcessesByName(project.ProcessName).Length > 0)
136 | foreach (Process p in Process.GetProcessesByName(project.ProcessName))
137 | if (!p.HasExited)
138 | p.Kill();
139 |
140 | string dlUrl = $"https://github.com/{project.Name}/releases/latest/download/{project.Filename}";
141 | string dlDest = $"{Configuration.InstallPath}ghtemp.tmp";
142 | string dlDestExtract = project.TargetDirectory;
143 |
144 | if (Directory.Exists(dlDestExtract))
145 | Directory.Delete(dlDestExtract, true);
146 | if (File.Exists(dlDest))
147 | File.Delete(dlDest);
148 |
149 | //Download
150 | WebRequest request = WebRequest.Create(dlUrl);
151 | request.Proxy = null;
152 | WebResponse response = request.GetResponse();
153 | Stream ws = response.GetResponseStream();
154 | Directory.CreateDirectory(dlDestExtract);
155 | FileStream fs = File.Create(dlDest);
156 | byte[] buffer = new byte[1024];
157 | while (true)
158 | {
159 | int bytesRead = ws.Read(buffer, 0, 1024);
160 | fs.Write(buffer, 0, bytesRead);
161 | progressDownload = (int)((float)bytesRead / buffer.Length * 100);
162 | if (bytesRead == 0)
163 | break;
164 | }
165 | fs.Close(); ws.Close(); response.Close();
166 |
167 | // Extraction / Installation
168 | if (project.NeedsExtraction)
169 | {
170 | ZipArchive archive = ZipFile.Open(dlDest, ZipArchiveMode.Read);
171 | for (int i = 0; i < archive.Entries.Count; i++)
172 | {
173 | ZipArchiveEntry entry = archive.Entries[i];
174 | if (entry.Length == 0)
175 | continue;
176 | string destPath = Path.GetFullPath(Path.Combine(dlDestExtract, entry.FullName));
177 | Directory.CreateDirectory(Path.GetDirectoryName(destPath));
178 | entry.ExtractToFile(destPath);
179 | progressExtract = (int)((float)i / archive.Entries.Count * 100);
180 | if (i == archive.Entries.Count - 1)
181 | progressExtract = 100;
182 | }
183 | archive.Dispose();
184 | }
185 | else
186 | {
187 | File.Copy(dlDest, Path.GetFullPath(Path.Combine(dlDestExtract, project.Filename)));
188 | }
189 | }
190 | }
191 | }
192 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Function Classes/Configuration.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Simple Classic Theme, a basic utility to bring back classic theme to
3 | * newer versions of the Windows operating system.
4 | * Copyright (C) 2022 Anis Errais
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | *
19 | */
20 |
21 | using Microsoft.Win32;
22 | using System;
23 | using System.Collections.Generic;
24 | using System.Linq;
25 | using System.Reflection;
26 | using System.Runtime.Serialization;
27 | using System.Text;
28 | using System.Threading.Tasks;
29 |
30 | namespace SimpleClassicTheme
31 | {
32 | internal static class Configuration
33 | {
34 | public static bool Enabled
35 | {
36 | get => bool.Parse(GetItem("Enabled", false).ToString());
37 | set => SetItem("Enabled", value.ToString());
38 | }
39 |
40 | public static bool EnableTaskbar
41 | {
42 | get => bool.Parse(GetItem("EnableTaskbar", false).ToString());
43 | set => SetItem("EnableTaskbar", value.ToString());
44 | }
45 |
46 | public static int TaskbarDelay
47 | {
48 | get => (int)GetItem("TaskbarDelay", 5000);
49 | set => SetItem("TaskbarDelay", value, RegistryValueKind.DWord);
50 | }
51 |
52 | public static bool ShowWizard
53 | {
54 | get => bool.Parse(GetItem("ShowWizard", true).ToString());
55 | set => SetItem("ShowWizard", value.ToString());
56 | }
57 |
58 | public static bool BetaUpdates
59 | {
60 | get => bool.Parse(GetItem("BetaUpdates", false).ToString());
61 | set => SetItem("BetaUpdates", value.ToString());
62 | }
63 |
64 | /*public static string TaskbarType
65 | {
66 | get => (string)GetItem("TaskbarType", "OS+SiB");
67 | set => SetItem("TaskbarType", value);
68 | }*/
69 |
70 | public static TaskbarType TaskbarType
71 | {
72 | get => (TaskbarType)Enum.Parse(typeof(TaskbarType), GetItem("TaskbarType", "SimpleClassicThemeTaskbar").ToString());
73 | set => SetItem("TaskbarType", value.ToString());
74 | }
75 |
76 | public static string UpdateMode
77 | {
78 | get => (string)GetItem("UpdateMode", "Automatic");
79 | set => SetItem("UpdateMode", value);
80 | }
81 |
82 | public static Version ConfigVersion
83 | {
84 | get => Version.Parse(GetItem("ConfigVersion", Assembly.GetExecutingAssembly().GetName().Version).ToString());
85 | set => SetItem("ConfigVersion", value.ToString());
86 | }
87 |
88 | public static string InstallPath
89 | {
90 | get
91 | {
92 | string path = (string)GetItem("InstallPath", "C:\\SCT\\");
93 | if (!path.EndsWith("\\"))
94 | {
95 | path += "\\";
96 | InstallPath = path;
97 | }
98 | return path;
99 | }
100 | set => SetItem("InstallPath", value);
101 | }
102 |
103 | public static RegistryKey GetRegistryKey() => Registry.CurrentUser.CreateSubKey("SOFTWARE").CreateSubKey("1337ftw").CreateSubKey("Simple Classic Theme").CreateSubKey("Base");
104 |
105 | private static object GetItem(string itemName, object defaultValue)
106 | {
107 | RegistryKey key = GetRegistryKey();
108 | object returnValue = key.GetValue(itemName, defaultValue);
109 | key.Close();
110 | return returnValue;
111 | }
112 |
113 | public static void SetItemManually(string itemName, object newValue, RegistryValueKind valueKind = RegistryValueKind.String)
114 | => SetItem(itemName, newValue, valueKind);
115 | private static void SetItem(string itemName, object newValue, RegistryValueKind valueKind = RegistryValueKind.String)
116 | {
117 | RegistryKey key = GetRegistryKey();
118 | key.SetValue(itemName, newValue, valueKind);
119 | key.Close();
120 | }
121 |
122 | public static void MigrateOldSCTRegistry()
123 | {
124 | if (Registry.CurrentUser.CreateSubKey("SOFTWARE").GetSubKeyNames().Contains("SimpleClassicTheme"))
125 | {
126 | RegistryKey source = Registry.CurrentUser.CreateSubKey("SOFTWARE").CreateSubKey("SimpleClassicTheme");
127 | RegistryKey dest = GetRegistryKey();
128 | ExtraFunctions.RecurseCopyKey(source, dest);
129 | RegistryKey software = Registry.CurrentUser.CreateSubKey("SOFTWARE");
130 | software.DeleteSubKey("SimpleClassicTheme", false);
131 | }
132 | else if (Registry.CurrentUser.CreateSubKey("SOFTWARE").CreateSubKey("1337ftw").CreateSubKey("SimpleClassicTheme").GetValueNames().Length > 0)
133 | {
134 | RegistryKey source = Registry.CurrentUser.CreateSubKey("SOFTWARE").CreateSubKey("SimpleClassicTheme");
135 | RegistryKey dest = GetRegistryKey();
136 | ExtraFunctions.RecurseCopyKey(source, dest);
137 | foreach (string value in source.GetValueNames())
138 | source.DeleteValue(value);
139 | Registry.CurrentUser.CreateSubKey("SOFTWARE").CreateSubKey("1337ftw").DeleteSubKey("SimpleClassicTheme");
140 | }
141 |
142 | // Starting from 1.5.0, SCT will track a config version. If any critical changes have been made to the config
143 | // SCT will automatically apply those changes starting from changes past the original config version.
144 | // Eg. When updating from 1.4 to 1.6 the config will be changed like this: 1.4.0 -> 1.5.0 -> 1.6.0
145 |
146 | // 1.4.0 or lower -> 1.5.0
147 | if (ConfigVersion.CompareString("1.4.9") < 0)
148 | {
149 | // TaskbarType was changed in to an enum
150 | string oldValue = (string)GetItem("TaskbarType", "NoValue");
151 | if (oldValue != "NoValue")
152 | {
153 | switch (oldValue)
154 | {
155 | case "SiB+OS":
156 | TaskbarType = Environment.OSVersion.Version.CompareTo("6.3") > 0 ? TaskbarType.StartIsBackOpenShell : TaskbarType.Windows81Vanilla;
157 | break;
158 | case "SCTT":
159 | TaskbarType = TaskbarType.SimpleClassicThemeTaskbar;
160 | break;
161 | }
162 | }
163 |
164 | ConfigVersion = new Version(1, 5, 0);
165 | }
166 |
167 | // 1.5.4 or lower -> 1.6.0
168 | if (ConfigVersion.CompareString("1.6.0") < 0)
169 | {
170 | ShowWizard = (string)Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\1337ftw\Simple Classic Theme\Base", "EnableTaskbar", "NO") == "NO";
171 | }
172 |
173 | ConfigVersion = Assembly.GetExecutingAssembly().GetName().Version;
174 | }
175 | }
176 | }
177 |
--------------------------------------------------------------------------------
/SimpleClassicTheme/Properties/AHKScripts.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace SimpleClassicTheme.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class AHKScripts {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal AHKScripts() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SimpleClassicTheme.Properties.AHKScripts", typeof(AHKScripts).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized string similar to #NoTrayIcon
65 | ///#NoEnv
66 | ///
67 | ///Gui +LastFound
68 | ///hWnd := WinExist()
69 | ///SetControlDelay, -1
70 | ///
71 | ///DllCall( "RegisterShellHookWindow", UInt,hWnd )
72 | ///MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
73 | ///OnMessage( MsgNum, "ShellMessage" )
74 | ///Return
75 | ///
76 | ///ShellMessage(wParam,lParam)
77 | ///{
78 | /// If (wParam = 1 or wParam = 6) ; HSHELL_WINDOWCREATED := 1
79 | /// {
80 | /// WinGetClass, WinClass, ahk_id %lParam%
81 | /// if (WinClass = "CabinetWClass")
82 | /// {
83 | /// Control, ExStyle, +0x200, SysTreeView321, ahk_id %lParam%
84 | /// Control, ExStyle, +0x200, FolderView, ahk_id % [rest of string was truncated]";.
85 | ///
86 | internal static string clientedge {
87 | get {
88 | return ResourceManager.GetString("clientedge", resourceCulture);
89 | }
90 | }
91 |
92 | ///
93 | /// Looks up a localized string similar to #NoTrayIcon
94 | ///#NoEnv
95 | ///
96 | ///Gui +LastFound
97 | ///hWnd := WinExist()
98 | ///SetControlDelay, -1
99 | ///SetBatchLines -1
100 | ///
101 | ///DllCall( "RegisterShellHookWindow", UInt,hWnd )
102 | ///MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
103 | ///OnMessage( MsgNum, "ShellMessage" )
104 | ///Return
105 | ///
106 | ///ShellMessage(wParam,lParam)
107 | ///{
108 | /// If (wParam = 1 ) ; HSHELL_WINDOWCREATED := 1
109 | /// {
110 | /// WinGetClass, WinClass, ahk_id %lParam%
111 | /// if (WinClass = "CabinetWClass")
112 | /// {
113 | /// ControlGetPos, ,y1,,ha,ReBarWindow321, ahk_id %lParam%
114 | ///
115 | /// SendMessage, 0x0082,,,ReBarWindow321, ahk_id [rest of string was truncated]";.
116 | ///
117 | internal static string noaddressbar {
118 | get {
119 | return ResourceManager.GetString("noaddressbar", resourceCulture);
120 | }
121 | }
122 |
123 | ///
124 | /// Looks up a localized string similar to #NoTrayIcon
125 | ///#NoEnv
126 | ///
127 | ///#If WinActive("ahk_class CabinetWClass")
128 | ///^c::Send {F10}{e}{c}
129 | ///
130 | ///#If WinActive("ahk_class CabinetWClass")
131 | ///^x::Send {F10}{e}{t}
132 | ///
133 | ///#If WinActive("ahk_class CabinetWClass")
134 | ///^v::Send {F10}{e}{p}
135 | ///
136 | ///#If WinActive("ahk_class CabinetWClass")
137 | ///F2::Send {Shift down}{F10 down}{F10 up}{Shift up}{m}
138 | ///
139 | ///#If WinActive("ahk_class CabinetWClass")
140 | ///!F4::Send {F10}{f}{c}
141 | ///
142 | ///#If WinActive("ahk_class CabinetWClass")
143 | ///!Left::Send {XButton1}
144 | ///
145 | ///#If WinActive("ahk_class CabinetWClass")
146 | ///!Right::Send {XButton2}
147 | ///
148 | ///#If WinActive [rest of string was truncated]";.
149 | ///
150 | internal static string querohotkeys {
151 | get {
152 | return ResourceManager.GetString("querohotkeys", resourceCulture);
153 | }
154 | }
155 | }
156 | }
157 |
--------------------------------------------------------------------------------