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"