From e8f67ac040a55b7a13e35b27623d8d8760f79f34 Mon Sep 17 00:00:00 2001 From: Graeme Geldenhuys Date: Fri, 19 Oct 2012 16:49:59 +0100 Subject: Implements support to setup a custom color for the editor's active tab. --- examples/apps/ide/src/frm_configureide.pas | 52 ++++++++++++++++++++++++++++-- examples/apps/ide/src/frm_main.pas | 7 ++-- 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/examples/apps/ide/src/frm_configureide.pas b/examples/apps/ide/src/frm_configureide.pas index 458c16b0..d8804831 100644 --- a/examples/apps/ide/src/frm_configureide.pas +++ b/examples/apps/ide/src/frm_configureide.pas @@ -7,7 +7,7 @@ interface uses SysUtils, Classes, fpg_base, fpg_main, fpg_form, fpg_button, fpg_editbtn, fpg_label, fpg_tab, fpg_edit, fpg_grid, fpg_listbox, idemacros, fpg_combobox, - fpg_checkbox; + fpg_checkbox, fpg_panel; type TConfigureIDEForm = class(TfpgForm) @@ -57,6 +57,9 @@ type cbTabPosition: TfpgComboBox; Label14: TfpgLabel; cbSyntaxHighlighting: TfpgCheckBox; + lblActiveTabColor: TfpgLabel; + pnlActiveTabColor: TfpgPanel; + btnColor: TfpgButton; {@VFD_HEAD_END: ConfigureIDEForm} // so we can get correct hints, but still undo with the Cancel button FInternalMacroList: TIDEMacroList; @@ -65,6 +68,7 @@ type procedure SaveSettings; procedure SaveToMacroList(AList: TIDEMacroList); procedure FormKeyPressed(Sender: TObject; var KeyCode: word; var ShiftState: TShiftState; var Consumed: boolean); + procedure btnActiveTabColorClicked(Sender: TObject); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; @@ -158,6 +162,7 @@ begin edtTarget.Text := gINI.ReadString(cEnvironment, 'Target', GMacroList.FindByName(cMacro_Target).Value); edtEditorFont.FontDesc := gINI.ReadString(cEditor, 'Font', '#Edit2'); cbTabPosition.FocusItem := gINI.ReadInteger(cEditor, 'TabPosition', 0); + pnlActiveTabColor.BackgroundColor := gINI.ReadInteger(cEditor, 'ActiveTabColor', clWindowBackground); cbSyntaxHighlighting.Checked := gINI.ReadBool(cEditor, 'SyntaxHighlighting', True); end; @@ -174,6 +179,7 @@ begin gINI.WriteString(cEnvironment, 'Target', edtTarget.Text); gINI.WriteString(cEditor, 'Font', edtEditorFont.FontDesc); gINI.WriteInteger(cEditor, 'TabPosition', cbTabPosition.FocusItem); + gINI.WriteInteger(cEditor, 'ActiveTabColor', pnlActiveTabColor.BackgroundColor); gINI.WriteBool(cEditor, 'SyntaxHighlighting', cbSyntaxHighlighting.Checked); SaveToMacroList(GMacroList); @@ -198,6 +204,11 @@ begin Close; end; +procedure TConfigureIDEForm.btnActiveTabColorClicked(Sender: TObject); +begin + pnlActiveTabColor.BackgroundColor := fpgSelectColorDialog(pnlActiveTabColor.BackgroundColor); +end; + constructor TConfigureIDEForm.Create(AOwner: TComponent); begin inherited Create(AOwner); @@ -733,12 +744,47 @@ begin with cbSyntaxHighlighting do begin Name := 'cbSyntaxHighlighting'; - SetPosition(4, 100, 404, 20); + SetPosition(8, 144, 404, 20); Anchors := [anLeft,anRight,anTop]; FontDesc := '#Label1'; Hint := ''; TabOrder := 5; - Text := 'Syntax Highlighting'; + Text := 'Syntax highlighting'; + end; + + lblActiveTabColor := TfpgLabel.Create(tsEditor); + with lblActiveTabColor do + begin + Name := 'lblActiveTabColor'; + SetPosition(8, 96, 404, 15); + Anchors := [anLeft,anRight,anTop]; + FontDesc := '#Label1'; + Hint := ''; + Text := 'Active tab color'; + end; + + pnlActiveTabColor := TfpgPanel.Create(tsEditor); + with pnlActiveTabColor do + begin + Name := 'pnlActiveTabColor'; + SetPosition(8, 112, 144, 23); + FontDesc := '#Label1'; + Hint := ''; + Style := bsLowered; + Text := ''; + end; + + btnColor := TfpgButton.Create(tsEditor); + with btnColor do + begin + Name := 'btnColor'; + SetPosition(156, 112, 80, 23); + Text := 'Color'; + FontDesc := '#Label1'; + Hint := ''; + ImageName := ''; + TabOrder := 8; + OnClick := @btnActiveTabColorClicked; end; {@VFD_BODY_END: ConfigureIDEForm} diff --git a/examples/apps/ide/src/frm_main.pas b/examples/apps/ide/src/frm_main.pas index f7bcbe00..96b78a52 100644 --- a/examples/apps/ide/src/frm_main.pas +++ b/examples/apps/ide/src/frm_main.pas @@ -810,6 +810,7 @@ var i: integer; begin pcEditor.TabPosition := TfpgTabPosition(gINI.ReadInteger(cEditor, 'TabPosition', 0)); + pcEditor.ActiveTabColor := TfpgColor(gINI.ReadInteger(cEditor, 'ActiveTabColor', pcEditor.BackgroundColor)); FKeywordFont.Free; FKeywordFont := nil; for i := 0 to pcEditor.PageCount-1 do @@ -1375,9 +1376,9 @@ begin FRecentFiles := TfpgMRU.Create(self); FRecentFiles.ParentMenuItem := pmOpenRecentMenu; - FRecentFiles.OnClick :=@miRecentProjectsClick; - FRecentFiles.MaxItems := gINI.ReadInteger('Options', 'MRUProjectCount', 10); - FRecentFiles.ShowFullPath := gINI.ReadBool('Options', 'ShowFullPath', True); + FRecentFiles.OnClick := @miRecentProjectsClick; + FRecentFiles.MaxItems := gINI.ReadInteger('Options', 'MRUProjectCount', 10); + FRecentFiles.ShowFullPath := gINI.ReadBool('Options', 'ShowFullPath', True); FRecentFiles.LoadMRU; {$IFDEF DEBUGSVR} -- cgit v1.2.3-70-g09d2