Menu

Commit [r3640]  Maximize  Restore  History

Made necessary changes relating to change of type of syntax highlight theme IDs from string to opaque record type.

delphidabbler 2013-10-24

changed /branches/parsnip/Src/UPreferences.pas
/branches/parsnip/Src/UPreferences.pas Diff Switch to side-by-side view
--- a/branches/parsnip/Src/UPreferences.pas
+++ b/branches/parsnip/Src/UPreferences.pas
@@ -48,7 +48,7 @@
 type
   ///  <summary>Type of array that maps each kind of current syntax highlighter
   ///  theme to its current theme ID.</summary>
-  TCurrentHiliteThemes = array[TCurrentHiliteThemeKind] of string;
+  TCurrentHiliteThemes = array[TCurrentHiliteThemeKind] of TSyntaxHiliteThemeID;
 
 type
   ///  <summary>Interface supported by objects that maintain user preferences.
@@ -209,14 +209,16 @@
       read GetHiliteAttrs write SetHiliteAttrs;
 
     ///  <summary>Gets current highlighter theme of given kind.</summary>
-    function GetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind): string;
+    function GetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind):
+      TSyntaxHiliteThemeID;
     ///  <summary>Gets current highlighter theme of given kind to given theme
     ///  ID.</summary>
     procedure SetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind;
-      const ThemeId: string);
+      const ThemeId: TSyntaxHiliteThemeID);
     ///  <summary>IDs of currently selected syntax highlighters of all supported
     ///  kinds.</summary>
-    property CurrentHiliteThemeIds[Kind: TCurrentHiliteThemeKind]: string
+    property CurrentHiliteThemeIds[Kind: TCurrentHiliteThemeKind]:
+      TSyntaxHiliteThemeID
       read GetCurrentHiliteThemeId write SetCurrentHiliteThemeId;
 
     ///  <summary>Gets object containing the attributes of all the named user
@@ -542,12 +544,13 @@
     procedure SetHiliteAttrs(const Attrs: IHiliteAttrs);
 
     ///  <summary>Gets ID of current highlighter theme of given kind.</summary>
-    function GetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind): string;
+    function GetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind):
+      TSyntaxHiliteThemeID;
 
     ///  <summary>Sets current highlighter theme ID of given kind to given
     ///  value.</summary>
     procedure SetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind;
-      const ThemeId: string);
+      const ThemeId: TSyntaxHiliteThemeID);
 
     ///  <summary>Gets object containing the attributes of all the named user
     ///  defined syntax highlighters.</summary>
@@ -746,11 +749,11 @@
 end;
 
 function TPreferences.GetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind):
-  string;
+  TSyntaxHiliteThemeID;
 begin
   Result := fCurrentHiliteThemeIds[Kind];
-  if Result = EmptyStr then
-    Result := TSyntaxHiliteThemes.DefaultThemeId;
+  if Result.IsNull then
+    Result := TSyntaxHiliteThemeID.CreateDefault;
 end;
 
 function TPreferences.GetCustomHiliteColours: IStringList;
@@ -855,7 +858,7 @@
 end;
 
 procedure TPreferences.SetCurrentHiliteThemeId(Kind: TCurrentHiliteThemeKind;
-  const ThemeId: string);
+  const ThemeId: TSyntaxHiliteThemeID);
 begin
   fCurrentHiliteThemeIds[Kind] := ThemeId;
 end;
@@ -956,7 +959,7 @@
 { TPreferencesPersist }
 
 const
-  CurrentHiliterThemeKeyNames: TCurrentHiliteThemes = (
+  CurrentHiliterThemeKeyNames: array[TCurrentHiliteThemeKind] of string = (
     'CurrentUITheme', 'CurrentExportTheme', 'CurrentPrintTheme'
   );
 
@@ -1065,9 +1068,11 @@
     High(TCurrentHiliteThemeKind) do
   begin
     fCurrentHiliteThemeIds[HiliteThemeKind] :=
-      Storage.GetString(
-        CurrentHiliterThemeKeyNames[HiliteThemeKind],
-        TSyntaxHiliteThemes.DefaultThemeId
+      TSyntaxHiliteThemeID.Create(
+        Storage.GetString(
+          CurrentHiliterThemeKeyNames[HiliteThemeKind],
+          TSyntaxHiliteThemes.DefaultThemeId
+        )
       );
   end;
   // custom colours
@@ -1151,7 +1156,7 @@
   begin
     Storage.SetString(
       CurrentHiliterThemeKeyNames[HiliteThemeKind],
-      GetCurrentHiliteThemeId(HiliteThemeKind)
+      GetCurrentHiliteThemeId(HiliteThemeKind).ToString
     );
   end;
   // custom colours
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.