From d6117264d278cecabf7efaa281716484192c641c Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Wed, 28 Sep 2011 13:12:12 +0200 Subject: [PATCH 1/4] Bitmaps.rst: fix typo. --- Doc/sphinx/scriptref/bitmaps.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/sphinx/scriptref/bitmaps.rst b/Doc/sphinx/scriptref/bitmaps.rst index cedf21c..b2c5c7e 100644 --- a/Doc/sphinx/scriptref/bitmaps.rst +++ b/Doc/sphinx/scriptref/bitmaps.rst @@ -33,7 +33,7 @@ function. Word of caution on bitmap creation ---------------------------------- -Bitmaps in Simba are internally all instances of *TMufasBitmap*. Scripts should +Bitmaps in Simba are internally all instances of *TMufasaBitmap*. Scripts should generally access bitmaps using their *handle*: an integer. All functions referenced here either require a bitmap *handle* or return one. From c7a6f55b662547f31ce7dff0f76c32fb47fcacff Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Wed, 28 Sep 2011 13:17:01 +0200 Subject: [PATCH 2/4] Bitmaps.rst: Change code examples a bit. --- Doc/sphinx/scriptref/bitmaps.rst | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/Doc/sphinx/scriptref/bitmaps.rst b/Doc/sphinx/scriptref/bitmaps.rst index b2c5c7e..5475b03 100644 --- a/Doc/sphinx/scriptref/bitmaps.rst +++ b/Doc/sphinx/scriptref/bitmaps.rst @@ -18,10 +18,12 @@ an integer: .. code-block:: pascal var bmp, x, y: integer; - bmp := CreateBitmap(10, 10); // Create a bitmap of size (10, 10) - if FindBitmapIn(bmp, x, y, 0, 0, 300, 300) then - writeln('Found it!'); - FreeBitmap(bmp); // Don't forget to free it when we are done. + begin + bmp := CreateBitmap(10, 10); // Create a bitmap of size (10, 10) + if FindBitmapIn(bmp, x, y, 0, 0, 300, 300) then + writeln('Found it!'); + FreeBitmap(bmp); // Don't forget to free it when we are done. + end; Note that the previous example doesn't make a lot of sense as the bitmap has only been created and not filled with any colours, they are as of yet, @@ -46,7 +48,9 @@ free it again) .. code-block:: pascal var bmp: TMufasaBitmap; - bmp := TMufasBitmap.Create; + begin + bmp := TMufasBitmap.Create; + end; Because there is no way to get a *handle* to this bitmap; as it will not be managed by Simba internally. (All Bitmaps created by *CreateBitmap* are managed @@ -75,10 +79,12 @@ then call this function to get the class reference. var bmp: TMufasaBitmap; bmph: integer; - bmph := CreateBitmap(100, 100); - bmp := GetMufasaBitmap(bmph); + begin; + bmph := CreateBitmap(100, 100); + bmp := GetMufasaBitmap(bmph); - bmp.SetSize(150,150); // also changes bmph, as they are the same bitmap. + bmp.SetSize(150,150); // also changes bmph, as they are the same bitmap. + end; .. _scriptref-createbitmapstring: From b11cf8bd531febb65a2b20735269a4e60980faca Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Wed, 28 Sep 2011 23:00:21 +0200 Subject: [PATCH 3/4] Resolve bug #222. --- Projects/Simba/settings_const.inc | 55 ++++++++ Projects/Simba/simbaunit.pas | 203 ++++++++++++++++-------------- 2 files changed, 163 insertions(+), 95 deletions(-) create mode 100644 Projects/Simba/settings_const.inc diff --git a/Projects/Simba/settings_const.inc b/Projects/Simba/settings_const.inc new file mode 100644 index 0000000..ca26c13 --- /dev/null +++ b/Projects/Simba/settings_const.inc @@ -0,0 +1,55 @@ +ssCheckUpdate = 'Settings/Updater/CheckForUpdates'; +ssCheckUpdateMinutes = 'Settings/Updater/CheckEveryXMinutes'; +ssUpdaterLink = 'Settings/Updater/RemoteLink'; +ssUpdaterVersionLink = 'Settings/Updater/RemoteVersionLink'; + +ssLoadFontsOnStart = 'Settings/Fonts/LoadOnStartUp'; +ssFontsVersion = 'Settings/Fonts/Version'; +ssFontsLink = 'Settings/Fonts/UpdateLink'; +ssFontsVersionLink = 'Settings/Fonts/VersionLink'; +ssFontsPath = 'Settings/Fonts/Path'; + +ssIncludesPath = 'Settings/Includes/Path'; +ssInterpreterType = 'Settings/Interpreter/Type'; + +ssTabsOpenNextOnClose = 'Settings/Tabs/OpenNextOnClose'; +ssTabsOpenScriptInNewTab = 'Settings/Tabs/OpenScriptInNewTab'; +ssTabsCheckBeforeOpen = 'Settings/Tabs/CheckTabsBeforeOpen'; + +ssColourPickerShowHistoryOnPick = 'Settings/ColourPicker/ShowHistoryOnPick'; +ssColourPickerAddToHistoryOnPick = 'Settings/ColourPicker/AddToHistoryOnPick'; + + +ssScriptsPath = 'Settings/Scripts/Path'; + +ssCodeHintsShowAutomatically = 'Settings/CodeHints/ShowAutomatically'; +ssCodeCompletionShowAutomatically = 'Settings/CodeCompletion/ShowAutomatically'; +ssExtensionsFileExtension = 'Settings/Extensions/FileExtension'; + + +ssSourceEditorLazColors = 'Settings/SourceEditor/LazColors'; +ssSourceEditorDefScriptPath = 'Settings/SourceEditor/DefScriptPath'; + +ssNewsLink = 'Settings/News/URL'; +ssPluginsPath = 'Settings/Plugins/Path'; + +ssExtensionsExtensionN = 'Extensions/Extension'; +ssExtensionsPath = 'Settings/Extensions/Path'; +ssExtensionsCount = 'Extensions/ExtensionCount'; + +ssTrayAlwaysVisible = 'Settings/Tray/AlwaysVisible'; + +ssConsoleVisible = 'LastConfig/Console/Visible'; + +ssMainFormPosition = 'LastConfig/MainForm/Position'; +ssMainFormState = 'LastConfig/MainForm/State'; +ssMainFormNormalSize = 'Settings/MainForm/NormalSize'; + +ssFunctionListShown = 'LastConfig/MainForm/FunctionListShown'; +ssFunctionListShowOnStart = 'Settings/FunctionList/ShowOnStart'; + +ssMaxRecentFiles = 'Settings/General/MaxRecentFiles'; +ssRecentFiles = 'LastConfig/MainForm/RecentFiles'; +ssRecentFilesCount = 'LastConfig/MainForm/RecentFiles/Count'; +ssRecentFileN = 'LastConfig/MainForm/RecentFiles/File'; + diff --git a/Projects/Simba/simbaunit.pas b/Projects/Simba/simbaunit.pas index 4b3e0f5..b263436 100644 --- a/Projects/Simba/simbaunit.pas +++ b/Projects/Simba/simbaunit.pas @@ -82,6 +82,8 @@ const shortcut_PickColourKey = VK_P; {$ENDIF} + {$I settings_const.inc} + type { TMufasaTab } @@ -768,7 +770,7 @@ end; function TSimbaForm.GetInterpreter: Integer; begin - result := StrToIntDef(LoadSettingDef('Settings/Interpreter/Type','0'),0); + result := StrToIntDef(LoadSettingDef(ssInterpreterType, '0'),0); if (result < 0) or (result > 2) then begin SetInterpreter(0); @@ -778,12 +780,12 @@ end; function TSimbaForm.GetDefScriptPath: string; begin - result :=LoadSettingDef('Settings/SourceEditor/DefScriptPath', ExpandFileName(MainDir+DS+'default.simba')); + result :=LoadSettingDef(ssSourceEditorDefScriptPath, ExpandFileName(MainDir+DS+'default.simba')); end; function TSimbaForm.GetScriptPath: string; begin - result :=IncludeTrailingPathDelimiter(LoadSettingDef('Settings/Scripts/Path', ExpandFileName(MainDir+DS+'Scripts' + DS))); + result :=IncludeTrailingPathDelimiter(LoadSettingDef(ssScriptsPath, ExpandFileName(MainDir+DS+'Scripts' + DS))); end; procedure TSimbaForm.HandleOpenFileData; @@ -992,7 +994,7 @@ var begin UpdateTimer.Interval:= MaxInt; FontUpdate; - chk := LowerCase(LoadSettingDef('Settings/Updater/CheckForUpdates','True')); + chk := LowerCase(LoadSettingDef(ssCheckUpdate, 'True')); if chk <> 'true' then Exit; @@ -1008,7 +1010,7 @@ begin mDebugLn(format('Current Simba version: %d',[SimbaVersion])); mDebugLn('Latest Simba Version: ' + IntToStr(LatestVersion)); end; - time := StrToIntDef(LoadSettingDef('Settings/Updater/CheckEveryXMinutes','30'),30); + time := StrToIntDef(LoadSettingDef(ssCheckUpdateMinutes, '30'),30); UpdateTimer.Interval:= time {mins} * 60 {secs} * 1000 {ms};//Every half hour end; @@ -1154,7 +1156,7 @@ begin OldIndex := PageControl1.TabIndex; if TabIndex = OldIndex then begin; - if lowercase(LoadSettingDef('Settings/Tabs/OpenNextOnClose','False')) = 'false' then + if lowercase(LoadSettingDef(ssTabsOpenNextOnClose, 'False')) = 'false' then OldIndex := LastTab //We are closing the 'current' tab, lets go back in history else OldIndex := Min(Tabs.Count - 1,OldIndex + 1); @@ -1364,43 +1366,52 @@ procedure TSimbaForm.CreateDefaultEnvironment; var PluginsPath,extensionsPath : string; begin - CreateSetting('Settings/Updater/CheckForUpdates','True'); - CreateSetting('Settings/Updater/CheckEveryXMinutes','30'); - CreateSetting('Settings/Interpreter/Type', '0'); - CreateSetting('Settings/Fonts/LoadOnStartUp', 'True'); - CreateSetting('Settings/Fonts/Version','-1'); - CreateSetting('Settings/Tabs/OpenNextOnClose','False'); - CreateSetting('Settings/Tabs/OpenScriptInNewTab','True'); - CreateSetting('Settings/Tabs/CheckTabsBeforeOpen','True'); - CreateSetting('Settings/ColourPicker/ShowHistoryOnPick', 'True'); - CreateSetting('Settings/General/MaxRecentFiles','10'); - CreateSetting('Settings/MainForm/NormalSize','739:555'); - CreateSetting('Settings/FunctionList/ShowOnStart','True'); - CreateSetting('Settings/CodeHints/ShowAutomatically','True'); - CreateSetting('Settings/CodeCompletion/ShowAutomatically','True'); - CreateSetting('Settings/SourceEditor/LazColors','True'); - {$IFDEF USE_EXTENSIONS}CreateSetting('Settings/Extensions/FileExtension','sex');{$ENDIF} + CreateSetting(ssCheckUpdate, 'True'); + CreateSetting(ssCheckUpdateMinutes, '30'); + CreateSetting(ssInterpreterType, '0'); + CreateSetting(ssLoadFontsOnStart, 'True'); + CreateSetting(ssFontsVersion, '-1'); + CreateSetting(ssTabsOpenNextOnClose, 'False'); + CreateSetting(ssTabsOpenScriptInNewTab, 'True'); + CreateSetting(ssTabsCheckBeforeOpen, 'True'); + CreateSetting(ssColourPickerShowHistoryOnPick, 'True'); + CreateSetting(ssMaxRecentFiles, '10'); + CreateSetting(ssMainFormNormalSize, '739:555'); + CreateSetting(ssFunctionListShowOnStart, 'True'); + CreateSetting(ssCodeHintsShowAutomatically, 'True'); + CreateSetting(ssCodeCompletionShowAutomatically, 'True'); + CreateSetting(ssSourceEditorLazColors, 'True'); - CreateSetting('Settings/Updater/RemoteLink',SimbaURL + 'Simba'{$IFDEF WINDOWS} +'.exe'{$ENDIF}); - CreateSetting('Settings/Updater/RemoteVersionLink',SimbaURL + 'Version'); - CreateSetting('Settings/Fonts/VersionLink', FontURL + 'Version'); - CreateSetting('Settings/Fonts/UpdateLink', FontURL + 'Fonts.tar.bz2'); + {$IFDEF USE_EXTENSIONS} + CreateSetting(ssExtensionsFileExtension, 'sex'); + {$ENDIF} - CreateSetting('Settings/News/URL', 'http://simba.villavu.com/bin/news'); + CreateSetting(ssUpdaterLink, SimbaURL + 'Simba'{$IFDEF WINDOWS} +'.exe'{$ENDIF}); + CreateSetting(ssUpdaterVersionLink, SimbaURL + 'Version'); + CreateSetting(ssFontsVersionLink, FontURL + 'Version'); + CreateSetting(ssFontsLink, FontURL + 'Fonts.tar.bz2'); + + CreateSetting(ssNewsLink, 'http://simba.villavu.com/bin/news'); {Creates the paths and returns the path} - PluginsPath := CreateSetting('Settings/Plugins/Path', ExpandFileName(MainDir+ DS+ 'Plugins' + DS)); + PluginsPath := CreateSetting(ssPluginsPath, ExpandFileName(MainDir + DS + 'Plugins' + DS)); + {$IFDEF USE_EXTENSIONS} - extensionsPath := CreateSetting('Settings/Extensions/Path',ExpandFileName(MainDir +DS + 'Extensions' + DS)); - CreateSetting('Extensions/ExtensionCount','0'); + extensionsPath := CreateSetting(ssExtensionsPath, + ExpandFileName(MainDir +DS + 'Extensions' + DS)); + CreateSetting(ssExtensionsCount, '0'); {$ENDIF} - CreateSetting('LastConfig/MainForm/Position',''); - CreateSetting('LastConfig/MainForm/State','Normal'); + + CreateSetting(ssMainFormPosition, ''); + CreateSetting(ssMainFormState, 'Normal'); + {$ifdef MSWindows} - CreateSetting('LastConfig/Console/Visible','False'); + CreateSetting(ssConsoleVisible, 'False'); ShowConsole(False); {$endif} - CreateSetting('Settings/Tray/AlwaysVisible', 'True'); + + CreateSetting(ssTrayAlwaysVisible, 'True'); + if not DirectoryExists(IncludePath) then CreateDir(IncludePath); if not DirectoryExists(FontPath) then @@ -1429,7 +1440,7 @@ var i,ii : integer; begin self.BeginFormUpdate; - str := LoadSettingDef('LastConfig/MainForm/Position',''); + str := LoadSettingDef(ssMainFormPosition, ''); if str <> '' then begin; Data := Explode(':',str); @@ -1440,36 +1451,38 @@ begin Self.Width:= StrToIntDef(Data[2],self.width); Self.Height:= StrToIntDef(Data[3],self.height); end; - str := lowercase(LoadSettingDef('LastConfig/MainForm/State','Normal')); + str := lowercase(LoadSettingDef(ssMainFormState, 'Normal')); if str = 'maximized' then self.windowstate := wsMaximized else // if str = 'normal' then Self.WindowState := wsNormal; - if SettingExists('LastConfig/MainForm/RecentFiles/Count') then + if SettingExists(ssRecentFilesCount) then begin; - ii := StrToIntDef(LoadSettingDef('LastConfig/MainForm/RecentFiles/Count','-1'),-1); + ii := StrToIntDef(LoadSettingDef(ssRecentFilesCount, '-1'), -1); for i := 0 to ii do begin - str := LoadSettingDef('LastConfig/MainForm/RecentFiles/File' + inttostr(I),''); + str := LoadSettingDef(ssRecentFileN + inttostr(I),''); if str <> '' then AddRecentFile(str); end; end; - str := LowerCase(LoadSettingDef('Settings/FunctionList/ShowOnStart','True')); - str2 := lowercase(LoadSettingDef('LastConfig/MainForm/FunctionListShown','')); + str := LowerCase(LoadSettingDef(ssFunctionListShowOnStart, 'True')); + str2 := lowercase(LoadSettingDef(ssFunctionListShown, '')); if (str = 'true') or (str2 = 'true') then FunctionListShown(True) else FunctionListShown(false); + {$ifdef MSWindows} - str := LowerCase(LoadSettingDef('LastConfig/Console/Visible','True')); + str := LowerCase(LoadSettingDef(ssConsoleVisible, 'True')); if str = 'true' then ShowConsole(True) else ShowConsole(false); {$endif} - if Lowercase(LoadSettingDef('Settings/Tray/AlwaysVisible', 'True')) <> 'true' then + + if Lowercase(LoadSettingDef(ssTrayAlwaysVisible, 'True')) <> 'true' then begin MTrayIcon.Hide; writeln('Hiding tray.'); @@ -1488,36 +1501,36 @@ begin with SettingsForm.Settings do begin if Self.WindowState = wsMaximized then - SetSetting('LastConfig/MainForm/State','maximized') + SetSetting(ssMainFormState, 'maximized') else begin; //Only save the form position if its not maximized. - SetSetting('LastConfig/MainForm/State','normal'); + SetSetting(ssMainFormState, 'normal'); Data := ConvArr([inttostr(Self.left),inttostr(self.top),inttostr(self.width),inttostr(self.height)]); - SetSetting('LastConfig/MainForm/Position', Implode(':',Data )); + SetSetting(ssMainFormPosition, Implode(':',Data )); end; - DeleteKey('LastConfig/MainForm/RecentFiles'); + DeleteKey(ssRecentFiles); if RecentFiles.Count > 0 then begin - SetSetting('LastConfig/MainForm/RecentFiles/Count',inttostr(RecentFiles.Count)); + SetSetting(ssRecentFiles + '/Count', inttostr(RecentFiles.Count)); SetLength(data,RecentFiles.Count); for i := 0 to RecentFiles.Count - 1 do - SetSetting('LastConfig/MainForm/RecentFiles/File'+inttostr(i),RecentFiles[i]); + SetSetting(ssRecentFileN + inttostr(i),RecentFiles[i]); end; if MenuItemFunctionList.Checked then - SetSetting('LastConfig/MainForm/FunctionListShown','True') + SetSetting(ssFunctionListShown, 'True') else - SetSetting('LastConfig/MainForm/FunctionListShown','False'); + SetSetting(ssFunctionListShown, 'False'); {$ifdef MSWindows} if ConsoleVisible then - SetSetting('LastConfig/Console/Visible','True') + SetSetting(ssConsoleVisible, 'True') else - SetSetting('LastConfig/Console/Visible','False'); + SetSetting(ssConsoleVisible, 'False'); {$endif} {$IFDEF USE_EXTENSIONS} - SetSetting('Extensions/ExtensionCount',inttostr(ExtManager.Extensions.Count)); + SetSetting(ssExtensionsCount, inttostr(ExtManager.Extensions.Count)); for i := 0 to ExtManager.Extensions.Count-1 do begin; - path :='Extensions/Extension' + inttostr(I); + path := ssExtensionsExtensionN + inttostr(I); SetSetting(Path + '/Path',TVirtualSimbaExtension(ExtManager.Extensions[i]).Filename); SetSetting(Path + '/Enabled',BoolToStr(TVirtualSimbaExtension(ExtManager.Extensions[i]).Enabled,True)); end; @@ -1539,7 +1552,7 @@ var result := false; if (number < 0) or (number >= extCount) then exit; - path := 'Extensions/Extension' + inttostr(number); + path := ssExtensionsExtensionN + inttostr(number); if SettingExists(Path) = false then exit; ExtPath := LoadSettingDef(Path + '/Path',''); @@ -1555,11 +1568,11 @@ var i : integer; path : string; begin; - path := 'Extensions/Extension'; + path := ssExtensionsExtensionN; SettingsForm.Settings.DeleteKey(path + inttostr(number)); for i := number + 1 to extCount - 1 do SettingsForm.Settings.RenameKey(path + inttostr(i),'Extension' + inttostr(i-1)); - SetSetting('Extensions/ExtensionCount',inttostr(extCount - 1),true); + SetSetting(ssExtensionsCount, inttostr(extCount - 1),true); dec(extCount); end; @@ -1567,13 +1580,13 @@ var str,str2 : string; i : integer; begin - extCount := StrToIntDef(LoadSettingDef('Extensions/ExtensionCount/','0'),0); + extCount := StrToIntDef(LoadSettingDef(ssExtensionsCount, '0'),0); for i := 0 to extCount - 1 do while (i < extCount) and not LoadExtension(i) do DeleteExtension(i); - SetSetting('Extensions/ExtensionCount',inttostr(extCount)); - str := LoadSettingDef('Settings/Extensions/Path',ExpandFileName(MainDir +DS + 'Extensions' + DS)); - str2 := LoadSettingDef('Settings/Extensions/FileExtension','sex'); + SetSetting(ssExtensionsCount, inttostr(extCount)); + str := LoadSettingDef(ssExtensionsPath, ExpandFileName(MainDir +DS + 'Extensions' + DS)); + str2 := LoadSettingDef(ssExtensionsFileExtension, 'sex'); ExtManager.LoadPSExtensionsDir(str,str2); {$ELSE} begin @@ -1585,7 +1598,7 @@ var MaxRecentFiles : integer; Len,i : integer; begin - MaxRecentFiles:= StrToIntDef(LoadSettingDef('Settings/General/MaxRecentFiles','10'),10); + MaxRecentFiles:= StrToIntDef(LoadSettingDef(ssMaxRecentFiles, '10'), 10); i := RecentFiles.IndexOf(filename); if i <> -1 then RecentFiles.Delete(i); @@ -1674,7 +1687,7 @@ begin if selector.haspicked then Thread.Client.IOManager.SetTarget(Selector.LastPick); - loadFontsOnScriptStart := (lowercase(LoadSettingDef('Settings/Fonts/LoadOnStartUp', 'True')) = 'true'); + loadFontsOnScriptStart := (lowercase(LoadSettingDef(ssLoadFontsOnStart, 'True')) = 'true'); if (loadFontsOnScriptStart) then begin @@ -1930,12 +1943,12 @@ var SizeStr : string; Data : TStringArray; begin - SizeStr := LoadSettingDef('Settings/MainForm/NormalSize','739:555'); + SizeStr := LoadSettingDef(ssMainFormNormalSize, '739:555'); Data := Explode(':',SizeStr); if length(Data) = 2 then begin - Self.Width:= StrToIntDef(Data[0],739); - Self.Height:= StrToIntDef(Data[1],555); + Self.Width:= StrToIntDef(Data[0], 739); + Self.Height:= StrToIntDef(Data[1], 555); end else begin; self.width := 739; @@ -2812,7 +2825,7 @@ end; procedure TSimbaForm.MTrayIconClick(Sender: TObject); begin self.Show; - if Lowercase(LoadSettingDef('Settings/Tray/AlwaysVisible', 'True')) <> 'true' then + if Lowercase(LoadSettingDef(ssTrayAlwaysVisible, 'True')) <> 'true' then MTrayIcon.Hide; if Self.CanFocus then self.SetFocus; @@ -2822,7 +2835,7 @@ function TSimbaForm.GetSimbaNews: String; var t: TDownloadThread; begin - t := TDownloadThread.Create(LoadSettingDef('Settings/News/URL', 'http://Simba.villavu.com/bin/news'), + t := TDownloadThread.Create(LoadSettingDef(ssNewsLink, 'http://Simba.villavu.com/bin/news'), @Result); t.Resume; while not t.done do @@ -2834,13 +2847,13 @@ end; procedure TSimbaForm.SetDefScriptPath(const AValue: string); begin - SetSetting('Settings/SourceEditor/DefScriptPath',AValue,True); + SetSetting(ssSourceEditorDefScriptPath, AValue,True); end; {$IFDEF USE_EXTENSIONS} procedure TSimbaForm.SetExtPath(const AValue: string); begin - SetSetting('Settings/Extensions/Path',AValue,true); + SetSetting(ssExtensionsPath, AValue,true); end; {$ENDIF} @@ -2881,10 +2894,10 @@ begin cobj := TColourPickerObject.Create(c, Classes.Point(x,y), ''); { TODO: This should be no problem if the form is hidden? } - if lowercase(LoadSettingDef('Settings/ColourPicker/AddToHistoryOnPick', 'True')) = 'true' then + if lowercase(LoadSettingDef(ssColourPickerAddToHistoryOnPick, 'True')) = 'true' then ColourHistoryForm.AddColObj(cobj, true); - if lowercase(LoadSettingDef('Settings/ColourPicker/ShowHistoryOnPick', 'True')) = 'true' then + if lowercase(LoadSettingDef(ssColourPickerShowHistoryOnPick, 'True')) = 'true' then ColourHistoryForm.Show; FormWritelnEx('Picked colour: ' + inttostr(c) + ' at (' + inttostr(x) + ', ' + inttostr(y) + ')'); @@ -3004,34 +3017,34 @@ end; function TSimbaForm.GetShowParamHintAuto: boolean; begin - Result := LowerCase(LoadSettingDef('Settings/CodeHints/ShowAutomatically','True')) = 'true'; + Result := LowerCase(LoadSettingDef(ssCodeHintsShowAutomatically, 'True')) = 'true'; end; function TSimbaForm.GetShowCodeCompletionAuto: boolean; begin - Result := LowerCase(LoadSettingDef('Settings/CodeCompletion/ShowAutomatically','True')) = 'true'; + Result := LowerCase(LoadSettingDef(ssCodeCompletionShowAutomatically, 'True')) = 'true'; end; procedure TSimbaForm.SetFontPath(const AValue: String); begin - SetSetting('Settings/Fonts/Path',AValue,true); + SetSetting(ssFontsPath, AValue,true); end; function TSimbaForm.GetFontPath: String; begin - Result := IncludeTrailingPathDelimiter(LoadSettingDef('Settings/Fonts/Path', ExpandFileName(MainDir+DS+'Fonts' + DS))); + Result := IncludeTrailingPathDelimiter(LoadSettingDef(ssFontsPath, ExpandFileName(MainDir+DS+'Fonts' + DS))); end; {$IFDEF USE_EXTENSIONS} function TSimbaForm.GetExtPath: string; begin - Result := IncludeTrailingPathDelimiter(LoadSettingDef('Settings/Extensions/Path', ExpandFileName(MainDir+DS+'Extensions' + DS))); + Result := IncludeTrailingPathDelimiter(LoadSettingDef(ssExtensionsPath, ExpandFileName(MainDir+DS+'Extensions' + DS))); end; {$ENDIF} function TSimbaForm.GetHighlighter: TSynCustomHighlighter; begin - if lowercase(LoadSettingDef('Settings/SourceEditor/LazColors','True')) = 'true' then + if lowercase(LoadSettingDef(ssSourceEditorLazColors, 'True')) = 'true' then result := LazHighlighter else result := SCARHighlighter; @@ -3039,17 +3052,17 @@ end; function TSimbaForm.GetIncludePath: String; begin - Result := IncludeTrailingPathDelimiter(LoadSettingDef('Settings/Includes/Path', ExpandFileName(MainDir+DS+'Includes' + DS))); + Result := IncludeTrailingPathDelimiter(LoadSettingDef(ssIncludesPath, ExpandFileName(MainDir+DS+'Includes' + DS))); end; function TSimbaForm.GetPluginPath: string; begin - Result := IncludeTrailingPathDelimiter(LoadSettingDef('Settings/Plugins/Path', ExpandFileName(MainDir+DS+'Plugins' + DS))); + Result := IncludeTrailingPathDelimiter(LoadSettingDef(ssPluginsPath, ExpandFileName(MainDir+DS+'Plugins' + DS))); end; procedure TSimbaForm.SetIncludePath(const AValue: String); begin - SetSetting('Settings/Includes/Path',AValue,true); + SetSetting(ssIncludesPath, AValue,true); end; procedure TSimbaForm.SetInterpreter(const AValue: Integer); @@ -3061,7 +3074,7 @@ begin with CurrScript.Synedit do if (Lines.text = DefaultScript) and not(CanUndo or CanRedo) then UpdateCurrScript := true; - SetSetting('Settings/Interpreter/Type',Inttostr(AValue),true); + SetSetting(ssInterpreterType, Inttostr(AValue),true); UpdateInterpreter; if UpdateCurrScript then CurrScript.SynEdit.Lines.text := DefaultScript; @@ -3069,12 +3082,12 @@ end; procedure TSimbaForm.SetPluginPath(const AValue: string); begin - SetSetting('Settings/Plugins/Path',AValue,true); + SetSetting(ssPluginsPath, AValue,true); end; procedure TSimbaForm.SetScriptPath(const AValue: string); begin - SetSetting('Settings/Scripts/Path',AValue,True); + SetSetting(ssScriptsPath, AValue,True); end; procedure TSimbaForm.SetScriptState(const State: TScriptState); @@ -3147,12 +3160,12 @@ begin if UpdatingFonts then exit; UpdatingFonts := True; - CurrVersion := StrToIntDef(LoadSettingDef('Settings/Fonts/Version','-1'),-1); + CurrVersion := StrToIntDef(LoadSettingDef(ssFontsVersion, '-1'), -1); LatestVersion := SimbaUpdateForm.GetLatestFontVersion; if LatestVersion > CurrVersion then begin; formWriteln(format('New fonts available. Current version: %d. Latest version: %d',[CurrVersion,LatestVersion])); - FontDownload := TDownloadThread.Create(LoadSettingDef('Settings/Fonts/UpdateLink',FontURL + 'Fonts.tar.bz2'), + FontDownload := TDownloadThread.Create(LoadSettingDef(ssFontsLink, FontURL + 'Fonts.tar.bz2'), @Fonts); FontDownload.resume; while FontDownload.Done = false do @@ -3173,7 +3186,7 @@ begin if UnTarrer.Result then begin; FormWriteln('Successfully installed the new fonts!'); - SetSetting('Settings/Fonts/Version',IntToStr(LatestVersion),true); + SetSetting(ssFontsVersion, IntToStr(LatestVersion),true); if Assigned(self.OCR_Fonts) then self.OCR_Fonts.Free; FormWriteln('Freeing the current fonts. Creating new ones now'); @@ -3202,12 +3215,12 @@ end; procedure TSimbaForm.SetShowParamHintAuto(const AValue: boolean); begin - SetSetting('Settings/CodeHints/ShowAutomatically', Booltostr(AValue,true)); + SetSetting(ssCodeHintsShowAutomatically, Booltostr(AValue,true)); end; procedure TSimbaForm.SetShowCodeCompletionAuto(const AValue: boolean); begin - SetSetting('Settings/CodeCompletion/ShowAutomatically', Booltostr(AValue,true)); + SetSetting(ssCodeCompletionShowAutomatically, Booltostr(AValue,true)); end; {$ifdef mswindows} @@ -3335,7 +3348,7 @@ var OpenInNewTab : boolean; begin Result := False; - OpenInNewTab:= (LowerCase(LoadSettingDef('Settings/Tabs/OpenScriptInNewTab','True')) = 'true'); + OpenInNewTab:= (LowerCase(LoadSettingDef(ssTabsOpenScriptInNewTab, 'True')) = 'true'); if not OpenInNewTab then if CanExitOrOpen = false then Exit; @@ -3347,7 +3360,7 @@ begin InitialDir := ScriptDir; Options := [ofAllowMultiSelect, ofExtensionDifferent, ofPathMustExist, ofFileMustExist, ofEnableSizing, ofViewDetail]; Filter:= 'Simba Files|*.simba;*.simb;*.cogat;*.mufa;*.txt' + - {$IFDEF USE_EXTENSIONS}';*.' + LoadSettingDef('Settings/Extensions/FileExtension', 'sex') + {$ENDIF} + {$IFDEF USE_EXTENSIONS}';*.' + LoadSettingDef(ssExtensionsFileExtension, 'sex') + {$ENDIF} '|Any files|*.*'; if Execute then begin @@ -3376,11 +3389,11 @@ begin if AlwaysOpenInNewTab then OpenInNewTab := true else - OpenInNewTab:= (LowerCase(LoadSettingDef('Settings/Tabs/OpenScriptInNewTab','True')) = 'true'); + OpenInNewTab:= (LowerCase(LoadSettingDef(ssTabsOpenScriptInNewTab,'True')) = 'true'); if CheckOtherTabs then CheckTabsFirst := True else - CheckTabsFirst := (Lowercase(LoadSettingDef('Settings/Tabs/CheckTabsBeforeOpen','True')) = 'true'); + CheckTabsFirst := (Lowercase(LoadSettingDef(ssTabsCheckBeforeOpen, 'True')) = 'true'); if FileExistsUTF8(FileName) then begin; if CheckTabsFirst then @@ -3455,7 +3468,7 @@ begin else InitialDir := ScriptDir; filter := 'Simba Files|*.simba;*.simb;*.cogat;*.mufa;*.txt' + - {$IFDEF USE_EXTENSIONS}';*.' + LoadSettingDef('Settings/Extensions/FileExtension','sex') + {$ENDIF} + {$IFDEF USE_EXTENSIONS}';*.' + LoadSettingDef(ssExtensionsFileExtension, 'sex') + {$ENDIF} '|Any files|*.*'; if Execute then begin; From 2833b60142da3e6cf5bf5f2a539f8fff6f5635c7 Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Wed, 28 Sep 2011 23:23:33 +0200 Subject: [PATCH 4/4] Clean up settings_const.inc a bit more. --- Projects/Simba/settings_const.inc | 99 ++++++++++++++++++------------- 1 file changed, 59 insertions(+), 40 deletions(-) diff --git a/Projects/Simba/settings_const.inc b/Projects/Simba/settings_const.inc index ca26c13..04ba393 100644 --- a/Projects/Simba/settings_const.inc +++ b/Projects/Simba/settings_const.inc @@ -1,55 +1,74 @@ -ssCheckUpdate = 'Settings/Updater/CheckForUpdates'; -ssCheckUpdateMinutes = 'Settings/Updater/CheckEveryXMinutes'; -ssUpdaterLink = 'Settings/Updater/RemoteLink'; -ssUpdaterVersionLink = 'Settings/Updater/RemoteVersionLink'; +ssSettings = 'Settings/'; +ssLastConfig = 'LastConfig/'; -ssLoadFontsOnStart = 'Settings/Fonts/LoadOnStartUp'; -ssFontsVersion = 'Settings/Fonts/Version'; -ssFontsLink = 'Settings/Fonts/UpdateLink'; -ssFontsVersionLink = 'Settings/Fonts/VersionLink'; -ssFontsPath = 'Settings/Fonts/Path'; +ssUpdater = 'Updater/'; +ssFonts = 'Fonts/'; +ssIncludes = 'Includes/'; +ssInterpreter = 'Interpreter/'; +ssTabs = 'Tabs/'; +ssColourPicker = 'ColourPicker/'; +ssScripts = 'Scripts/'; +ssExtensions = 'Extensions/'; +ssMainForm = 'MainForm/'; +ssSourceEditor = 'SourceEditor/'; +ssTray = 'Tray/'; +ssConsole = 'Console/'; +ssNews = 'News/'; +ssPlugins = 'Plugins/'; -ssIncludesPath = 'Settings/Includes/Path'; -ssInterpreterType = 'Settings/Interpreter/Type'; - -ssTabsOpenNextOnClose = 'Settings/Tabs/OpenNextOnClose'; -ssTabsOpenScriptInNewTab = 'Settings/Tabs/OpenScriptInNewTab'; -ssTabsCheckBeforeOpen = 'Settings/Tabs/CheckTabsBeforeOpen'; - -ssColourPickerShowHistoryOnPick = 'Settings/ColourPicker/ShowHistoryOnPick'; -ssColourPickerAddToHistoryOnPick = 'Settings/ColourPicker/AddToHistoryOnPick'; +ssCheckUpdate = ssSettings + ssUpdater + 'CheckForUpdates'; +ssCheckUpdateMinutes = ssSettings + ssUpdater + 'CheckEveryXMinutes'; +ssUpdaterLink = ssSettings + ssUpdater + 'RemoteLink'; +ssUpdaterVersionLink = ssSettings + ssUpdater + 'RemoteVersionLink'; -ssScriptsPath = 'Settings/Scripts/Path'; +ssLoadFontsOnStart = ssSettings + ssFonts + 'LoadOnStartUp'; +ssFontsVersion = ssSettings + ssFonts + 'Version'; +ssFontsLink = ssSettings + ssFonts + 'UpdateLink'; +ssFontsVersionLink = ssSettings + ssFonts + 'VersionLink'; +ssFontsPath = ssSettings + ssFonts + 'Path'; -ssCodeHintsShowAutomatically = 'Settings/CodeHints/ShowAutomatically'; -ssCodeCompletionShowAutomatically = 'Settings/CodeCompletion/ShowAutomatically'; -ssExtensionsFileExtension = 'Settings/Extensions/FileExtension'; +ssIncludesPath = ssSettings + ssIncludes + 'Path'; +ssInterpreterType = ssSettings + ssInterpreter + 'Type'; + +ssTabsOpenNextOnClose = ssSettings + ssTabs + 'OpenNextOnClose'; +ssTabsOpenScriptInNewTab = ssSettings + ssTabs + 'OpenScriptInNewTab'; +ssTabsCheckBeforeOpen = ssSettings + ssTabs + 'CheckTabsBeforeOpen'; + +ssColourPickerShowHistoryOnPick = ssSettings + ssColourPicker + 'ShowHistoryOnPick'; +ssColourPickerAddToHistoryOnPick = ssSettings + ssColourPicker + 'AddToHistoryOnPick'; -ssSourceEditorLazColors = 'Settings/SourceEditor/LazColors'; -ssSourceEditorDefScriptPath = 'Settings/SourceEditor/DefScriptPath'; +ssScriptsPath = ssSettings + ssScripts + 'Path'; -ssNewsLink = 'Settings/News/URL'; -ssPluginsPath = 'Settings/Plugins/Path'; +ssCodeHintsShowAutomatically = ssSettings + 'CodeHints/ShowAutomatically'; +ssCodeCompletionShowAutomatically = ssSettings + 'CodeCompletion/ShowAutomatically'; -ssExtensionsExtensionN = 'Extensions/Extension'; -ssExtensionsPath = 'Settings/Extensions/Path'; -ssExtensionsCount = 'Extensions/ExtensionCount'; -ssTrayAlwaysVisible = 'Settings/Tray/AlwaysVisible'; +ssSourceEditorLazColors = ssSettings + ssSourceEditor + 'LazColors'; +ssSourceEditorDefScriptPath = ssSettings + ssSourceEditor + 'DefScriptPath'; -ssConsoleVisible = 'LastConfig/Console/Visible'; +ssNewsLink = ssSettings + ssNews + 'URL'; +ssPluginsPath = ssSettings + ssPlugins + 'Path'; -ssMainFormPosition = 'LastConfig/MainForm/Position'; -ssMainFormState = 'LastConfig/MainForm/State'; -ssMainFormNormalSize = 'Settings/MainForm/NormalSize'; +ssExtensionsExtensionN = ssExtensions + 'Extension'; +ssExtensionsPath = ssSettings + ssExtensions + 'Path'; +ssExtensionsCount = ssExtensions + 'ExtensionCount'; +ssExtensionsFileExtension = ssSettings + ssExtensions + 'FileExtension'; -ssFunctionListShown = 'LastConfig/MainForm/FunctionListShown'; -ssFunctionListShowOnStart = 'Settings/FunctionList/ShowOnStart'; +ssTrayAlwaysVisible = ssSettings + ssTray + 'AlwaysVisible'; -ssMaxRecentFiles = 'Settings/General/MaxRecentFiles'; -ssRecentFiles = 'LastConfig/MainForm/RecentFiles'; -ssRecentFilesCount = 'LastConfig/MainForm/RecentFiles/Count'; -ssRecentFileN = 'LastConfig/MainForm/RecentFiles/File'; +ssConsoleVisible = ssLastConfig + ssConsole + 'Visible'; + +ssMainFormPosition = ssLastConfig + ssMainForm + 'Position'; +ssMainFormState = ssLastConfig + ssMainForm + 'State'; +ssMainFormNormalSize = ssSettings + ssMainForm + 'NormalSize'; +ssFunctionListShown = ssLastConfig + ssMainForm + 'FunctionListShown'; + +ssFunctionListShowOnStart = ssSettings + 'FunctionList/ShowOnStart'; + +ssMaxRecentFiles = ssSettings + 'General/MaxRecentFiles'; +ssRecentFiles = ssLastConfig + ssMainForm + 'RecentFiles'; +ssRecentFilesCount = ssLastConfig + ssMainForm + 'RecentFiles/Count'; +ssRecentFileN = ssLastConfig + ssMainForm + 'RecentFiles/File';