فهرست منبع

Add support for 'polar' in WizardStyle, like WizardStyle=polar/dynamic.

Martijn Laan 5 ماه پیش
والد
کامیت
0534e7a2dd
1فایلهای تغییر یافته به همراه33 افزوده شده و 17 حذف شده
  1. 33 17
      Projects/Src/Compiler.SetupCompiler.pas

+ 33 - 17
Projects/Src/Compiler.SetupCompiler.pas

@@ -140,6 +140,7 @@ type
     LicenseFile, InfoBeforeFile, InfoAfterFile: String;
     WizardImageFile, WizardSmallImageFile, WizardImageFileDynamicDark, WizardSmallImageFileDynamicDark: String;
     WizardStyleFile, WizardStyleFileDynamicDark: String; { .vsf files }
+    WizardStyleSpecial: String; { 'polar' }
     DefaultDialogFontName: String;
 
     VersionInfoVersion, VersionInfoProductVersion: TFileVersionNumbers;
@@ -2518,6 +2519,16 @@ var
       Invalid;
   end;
 
+  procedure HandleSubStyle(const SubStyle: String);
+  begin
+    if SubStyle = 'dark' then
+      SetupHeader.WizardDarkStyle := wdsDark
+    else if SubStyle = 'dynamic' then
+      SetupHeader.WizardDarkStyle := wdsDynamic
+    else if SubStyle <> 'light' then
+      Invalid;
+  end;
+
 var
   P: Integer;
   AIncludes: TStringList;
@@ -3282,24 +3293,19 @@ begin
         Value := LowerCase(Trim(Value));
         if Value = 'modern' then
           Include(SetupHeader.Options, shWizardModern)
-        else if Copy(Value, 1, 7) = 'modern/' then begin
+        else if Value = 'polar' then begin
           Include(SetupHeader.Options, shWizardModern);
-          const SubStyle = Copy(Value, 8, Maxint);
-          if SubStyle = 'dark' then
-            SetupHeader.WizardDarkStyle := wdsDark
-          else if SubStyle = 'dynamic' then
-            SetupHeader.WizardDarkStyle := wdsDynamic
-          else if SubStyle <> 'light' then
-            Invalid;
-        end else if Copy(Value, 1, 8) = 'classic/' then begin
-          const SubStyle = Copy(Value, 9, Maxint);
-          if SubStyle = 'dark' then
-            SetupHeader.WizardDarkStyle := wdsDark
-          else if SubStyle = 'dynamic' then
-            SetupHeader.WizardDarkStyle := wdsDynamic
-          else if SubStyle <> 'light' then
-            Invalid;
-        end else if Value <> 'classic' then
+          WizardStyleSpecial := Value;
+        end else if Copy(Value, 1, 7) = 'modern/' then begin
+          Include(SetupHeader.Options, shWizardModern);
+          HandleSubStyle(Copy(Value, 8, Maxint));
+        end else if Copy(Value, 1, 6) = 'polar/' then begin
+          Include(SetupHeader.Options, shWizardModern);
+          HandleSubStyle(Copy(Value, 7, Maxint));
+          WizardStyleSpecial := Copy(Value, 1, 5);
+        end else if Copy(Value, 1, 8) = 'classic/' then
+          HandleSubStyle(Copy(Value, 9, Maxint))
+        else if Value <> 'classic' then
           Invalid;
       end;
     ssWizardStyleFile: begin
@@ -8039,6 +8045,16 @@ begin
     end;
     if (SetupDirectiveLines[ssWizardResizable] = 0) and (shWizardModern in SetupHeader.Options) then
       Include(SetupHeader.Options, shWizardResizable);
+    if WizardStyleSpecial <> '' then begin
+      if WizardStyleFile = '' then begin
+        if SetupHeader.WizardDarkStyle =  wdsDark then
+          WizardStyleFile := WizardStyleSpecial + '/dark'
+        else
+          WizardStyleFile := WizardStyleSpecial + '/light';
+      end;
+      if WizardStyleFileDynamicDark = '' then
+        WizardStyleFileDynamicDark := WizardStyleSpecial + '/dark' { Might be cleared again below }
+    end;
     if (WizardStyleFileDynamicDark <> '') and (SetupHeader.WizardDarkStyle <> wdsDynamic) then
       WizardStyleFileDynamicDark := ''; { Avoid unnecessary size increase - also checked for by PrepareSetupE32 }
     if (SetupHeader.MinVersion.NTVersion shr 16 = $0601) and (SetupHeader.MinVersion.NTServicePack < $100) then