diff --git a/config/ConfigFormUnit.cpp b/config/ConfigFormUnit.cpp
index e786054..6bfd98b 100644
--- a/config/ConfigFormUnit.cpp
+++ b/config/ConfigFormUnit.cpp
@@ -45,6 +45,27 @@ void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
Application->Terminate();
}
+void __fastcall TConfigForm::ThemePnlClick(TObject *Sender)
+{
+ auto *ini = new TIniFile(".\\ddraw.ini");
+ auto theme =
+ ThemePnl->Color == (TColor)RGB(31, 31, 31) ? "Cobalt XEMedia" : "Windows10";
+
+ ini->WriteString("ddraw", "configtheme", theme);
+
+ delete ini;
+
+ ShellExecute(
+ NULL,
+ L"open",
+ Application->ExeName.w_str(),
+ NULL,
+ NULL,
+ SW_SHOWNORMAL);
+
+ Application->Terminate();
+}
+
void __fastcall TConfigForm::RestoreDefaultsBtnClick(TObject *Sender)
{
if (Application->MessageBox(
@@ -660,6 +681,18 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
auto *ini = new TIniFile(".\\ddraw.ini");
+ if (ini->ReadString("ddraw", "configtheme", "Windows10") == "Cobalt XEMedia") {
+
+ ThemePnl->Color = (TColor)RGB(243, 243, 243);
+ DisplayPnl->StyleElements = TStyleElements(seFont + seClient + seBorder);
+ AdvancedPnl->StyleElements = TStyleElements(seFont + seClient + seBorder);
+ HotkeyPnl->StyleElements = TStyleElements(seFont + seClient + seBorder);
+ CompatibilityPnl->StyleElements = TStyleElements(seFont + seClient + seBorder);
+
+ MenuPnl->StyleElements = TStyleElements(seFont);
+ MenuPnl->Color = (TColor)RGB(31, 31, 31);
+ }
+
ApplyTranslation(ini);
/* Display Settings */
diff --git a/config/ConfigFormUnit.dfm b/config/ConfigFormUnit.dfm
index 01a9216..575b027 100644
--- a/config/ConfigFormUnit.dfm
+++ b/config/ConfigFormUnit.dfm
@@ -2778,7 +2778,7 @@ object ConfigForm: TConfigForm
OnPaint = PboxPaint
end
object LanguageImg: TImage
- Left = 477
+ Left = 453
Top = 8
Width = 16
Height = 11
@@ -2805,7 +2805,6 @@ object ConfigForm: TConfigForm
Stretch = True
Visible = False
OnClick = LanguageImgClick
- ExplicitLeft = 569
end
object PresentationCbx: TComboBox
Left = 41
@@ -2866,6 +2865,20 @@ object ConfigForm: TConfigForm
TabOrder = 4
OnClick = DevmodeChkClick
end
+ object ThemePnl: TPanel
+ Left = 475
+ Top = 8
+ Width = 16
+ Height = 11
+ Anchors = [akTop, akRight]
+ BevelOuter = bvNone
+ Color = 2039583
+ ParentBackground = False
+ TabOrder = 5
+ StyleElements = [seFont, seBorder]
+ OnClick = ThemePnlClick
+ ExplicitLeft = 471
+ end
end
object CompatibilityPnl: TPanel
Left = 233
@@ -3579,7 +3592,7 @@ object ConfigForm: TConfigForm
Top = 440
Width = 227
Height = 22
- Anchors = [akLeft, akTop, akRight]
+ Anchors = [akLeft, akRight, akBottom]
Caption = 'Restore default settings'
Flat = True
Font.Charset = DEFAULT_CHARSET
diff --git a/config/ConfigFormUnit.h b/config/ConfigFormUnit.h
index f534e43..1abcb9e 100644
--- a/config/ConfigFormUnit.h
+++ b/config/ConfigFormUnit.h
@@ -80,6 +80,7 @@ __published: // Von der IDE verwaltete Komponenten
TEdit *ScreenshotEdt;
TComboBox *ShaderD3DCbx;
TSpeedButton *RestoreDefaultsBtn;
+ TPanel *ThemePnl;
void __fastcall DisplayBtnClick(TObject *Sender);
void __fastcall AdvancedBtnClick(TObject *Sender);
void __fastcall CompatibilityBtnClick(TObject *Sender);
@@ -109,6 +110,7 @@ __published: // Von der IDE verwaltete Komponenten
void __fastcall HotkeyEdtKeyUp(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall ShaderD3DCbxChange(TObject *Sender);
void __fastcall RestoreDefaultsBtnClick(TObject *Sender);
+ void __fastcall ThemePnlClick(TObject *Sender);
diff --git a/config/cnc-ddraw config.cbproj b/config/cnc-ddraw config.cbproj
index ec25516..dbd448c 100644
--- a/config/cnc-ddraw config.cbproj
+++ b/config/cnc-ddraw config.cbproj
@@ -79,7 +79,7 @@
cnc-ddraw\config\;$(IncludePath)
cnc-ddraw\config\;$(ILINK_LibraryPath)
cnc-ddraw_config
- Windows10|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10.vsf
+ Windows10|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10.vsf;"Cobalt XEMedia|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CobaltXEMedia.vsf"
adortl;appanalytics;bcbie;bcbsmp;bindcomp;bindcompdbx;bindcompfmx;bindcompvcl;bindengine;CloudService;CustomIPTransport;dbexpress;dbrtl;dbxcds;DbxClientDriver;DbxCommonDriver;DBXInterBaseDriver;DBXMySQLDriver;DBXSqliteDriver;dsnap;dsnapcon;dsnapxml;FireDAC;FireDACADSDriver;FireDACCommon;FireDACCommonDriver;FireDACCommonODBC;FireDACIBDriver;FireDACMSAccDriver;FireDACMySQLDriver;FireDACPgDriver;FireDACSqliteDriver;fmx;fmxase;fmxdae;fmxFireDAC;fmxobj;IndyCore;IndyIPClient;IndyIPCommon;IndyIPServer;IndyProtocols;IndySystem;inet;inetdb;inetdbxpress;RESTBackendComponents;RESTComponents;rtl;soapmidas;soaprtl;soapserver;svn;tethering;vcl;vclactnband;vcldb;vcldsnap;vclFireDAC;vclie;vclimg;VCLRESTComponents;VclSmp;vcltouch;vclwinx;vclx;xmlrtl;$(PackageImports)
diff --git a/config/cnc-ddraw config.cpp b/config/cnc-ddraw config.cpp
index d0dbb6f..958693d 100644
--- a/config/cnc-ddraw config.cpp
+++ b/config/cnc-ddraw config.cpp
@@ -1,6 +1,7 @@
//---------------------------------------------------------------------------
#include
+#include
#pragma hdrstop
#include
//---------------------------------------------------------------------------
@@ -14,7 +15,15 @@ int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
Application->Initialize();
Application->MainFormOnTaskBar = true;
- TStyleManager::TrySetStyle("Windows10");
+
+ auto *ini = new TIniFile(".\\ddraw.ini");
+ auto theme = ini->ReadString("ddraw", "configtheme", "Windows10");
+
+ TStyleManager::TrySetStyle(
+ theme == "Cobalt XEMedia" ? "Cobalt XEMedia" : "Windows10");
+
+ delete ini;
+
Application->CreateForm(__classid(TConfigForm), &ConfigForm);
Application->Run();
}
diff --git a/src/config.c b/src/config.c
index c56f05e..f110d54 100644
--- a/src/config.c
+++ b/src/config.c
@@ -300,6 +300,9 @@ static void cfg_create_ini()
"; cnc-ddraw config program language, possible values: auto, english, chinese, german, spanish, russian, hungarian, french, italian\n"
"configlang=auto\n"
"\n"
+ "; cnc-ddraw config program theme, possible values: Windows10, Cobalt XEMedia\n"
+ "configtheme=Windows10\n"
+ "\n"
"; Where should screenshots be saved\n"
"screenshotdir=.\\Screenshots\\\n"
"\n"