mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-23 04:21:55 +02:00
IDE: Replace config button with a popup menu in EditorToolbar. Issue #28865, patch from Ondrej Pokorny.
git-svn-id: trunk@50090 -
This commit is contained in:
parent
5564280ff8
commit
f40462ba60
@ -24,7 +24,7 @@ unit EditorToolbarStatic;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, Classes, fgl, ComCtrls, Controls, LCLProc,
|
SysUtils, Classes, fgl, ComCtrls, Controls, LCLProc, Menus,
|
||||||
IDEImagesIntf, SrcEditorIntf, BaseIDEIntf,
|
IDEImagesIntf, SrcEditorIntf, BaseIDEIntf,
|
||||||
LazarusIDEStrConsts, LazConfigStorage, Laz2_XMLCfg, ToolbarConfig;
|
LazarusIDEStrConsts, LazConfigStorage, Laz2_XMLCfg, ToolbarConfig;
|
||||||
|
|
||||||
@ -58,9 +58,7 @@ type
|
|||||||
private
|
private
|
||||||
FCollection: TAllEditorToolbars;
|
FCollection: TAllEditorToolbars;
|
||||||
FWindow: TSourceEditorWindowInterface;
|
FWindow: TSourceEditorWindowInterface;
|
||||||
CfgButton: TToolButton;
|
CfgItem: TMenuItem;
|
||||||
procedure AddStaticItems;
|
|
||||||
procedure InitEditorToolBar;
|
|
||||||
procedure ClearToolbar;
|
procedure ClearToolbar;
|
||||||
protected
|
protected
|
||||||
procedure PostCopyOptions; override;
|
procedure PostCopyOptions; override;
|
||||||
@ -195,6 +193,8 @@ end;
|
|||||||
{ TEditorToolbar }
|
{ TEditorToolbar }
|
||||||
|
|
||||||
constructor TEditorToolbar.Create(AOwner: TComponent; ACollection: TAllEditorToolbars);
|
constructor TEditorToolbar.Create(AOwner: TComponent; ACollection: TAllEditorToolbars);
|
||||||
|
var
|
||||||
|
xPM: TPopupMenu;
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
Assert(not Assigned(FToolBar), 'TEditorToolbar.Create: FToolBar is assigned');
|
Assert(not Assigned(FToolBar), 'TEditorToolbar.Create: FToolBar is assigned');
|
||||||
@ -209,9 +209,16 @@ begin
|
|||||||
FToolBar.Flat := True;
|
FToolBar.Flat := True;
|
||||||
FToolBar.Images := IDEImages.Images_16;
|
FToolBar.Images := IDEImages.Images_16;
|
||||||
FToolBar.ShowHint := True;
|
FToolBar.ShowHint := True;
|
||||||
FToolBar.Hint := lisEditorToolbarHint;
|
|
||||||
|
|
||||||
AddStaticItems;
|
xPM := TPopupMenu.Create(FToolBar);
|
||||||
|
xPM.Images := IDEImages.Images_16;
|
||||||
|
CfgItem := TMenuItem.Create(xPM);
|
||||||
|
xPM.Items.Add(CfgItem);
|
||||||
|
CfgItem.Caption := lisConfigureEditorToolbar;
|
||||||
|
CfgItem.ImageIndex := IDEImages.LoadImage(16, 'preferences');
|
||||||
|
CfgItem.OnClick := @FCollection.DoConfigureEditorToolbar;
|
||||||
|
|
||||||
|
FToolBar.PopupMenu := xPM;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TEditorToolbar.Destroy;
|
destructor TEditorToolbar.Destroy;
|
||||||
@ -220,12 +227,6 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEditorToolbar.InitEditorToolBar;
|
|
||||||
begin
|
|
||||||
FToolBar := nil;
|
|
||||||
CfgButton := nil;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TEditorToolbar.PostCopyOptions;
|
procedure TEditorToolbar.PostCopyOptions;
|
||||||
begin
|
begin
|
||||||
case EnvironmentOptions.Desktop.EditorToolBarOptions.Position of
|
case EnvironmentOptions.Desktop.EditorToolBarOptions.Position of
|
||||||
@ -248,25 +249,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEditorToolbar.AddStaticItems;
|
|
||||||
begin
|
|
||||||
FToolBar.BeginUpdate;
|
|
||||||
try
|
|
||||||
// Config Button
|
|
||||||
if CfgButton = nil then
|
|
||||||
CfgButton := TToolbutton.Create(FToolBar);
|
|
||||||
CfgButton.Caption := lisConfigureEditorToolbar;
|
|
||||||
CfgButton.Hint := CfgButton.Caption;
|
|
||||||
CfgButton.ImageIndex := IDEImages.LoadImage(16, 'preferences');
|
|
||||||
CfgButton.Style := tbsButton;
|
|
||||||
CfgButton.OnClick := @FCollection.DoConfigureEditorToolbar;
|
|
||||||
PositionAtEnd(FToolBar, CfgButton);
|
|
||||||
AddDivider;
|
|
||||||
finally
|
|
||||||
FToolBar.EndUpdate;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TEditorToolbar.ClearToolbar;
|
procedure TEditorToolbar.ClearToolbar;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
@ -274,10 +256,7 @@ begin
|
|||||||
FToolBar.BeginUpdate;
|
FToolBar.BeginUpdate;
|
||||||
try
|
try
|
||||||
for i := FToolBar.ButtonCount - 1 downto 0 do
|
for i := FToolBar.ButtonCount - 1 downto 0 do
|
||||||
if FToolBar.Buttons[i] <> CfgButton then
|
|
||||||
FToolBar.Buttons[i].Free
|
FToolBar.Buttons[i].Free
|
||||||
else
|
|
||||||
FToolBar.Buttons[i].Parent := nil;
|
|
||||||
finally
|
finally
|
||||||
FToolBar.EndUpdate;
|
FToolBar.EndUpdate;
|
||||||
end;
|
end;
|
||||||
@ -314,12 +293,9 @@ procedure TAllEditorToolbars.SourceWindowCreated(Sender: TObject);
|
|||||||
var
|
var
|
||||||
ETB: TEditorToolbar;
|
ETB: TEditorToolbar;
|
||||||
Opts: TEditorToolBarOptions;
|
Opts: TEditorToolBarOptions;
|
||||||
i: Integer;
|
|
||||||
begin
|
begin
|
||||||
ETB := TEditorToolbar.Create(Sender as TSourceEditorWindowInterface, Self);
|
ETB := TEditorToolbar.Create(Sender as TSourceEditorWindowInterface, Self);
|
||||||
i := FToolBars.Add(ETB);
|
FToolBars.Add(ETB);
|
||||||
Assert(FToolBars[i] = ETB, 'TAllEditorToolbars.SourceWindowCreated: FToolBars[i] <> ETB');
|
|
||||||
ETB.AddStaticItems;
|
|
||||||
Opts := EnvironmentOptions.Desktop.EditorToolBarOptions;
|
Opts := EnvironmentOptions.Desktop.EditorToolBarOptions;
|
||||||
ETB.CopyFromOptions(Opts);
|
ETB.CopyFromOptions(Opts);
|
||||||
ETB.FToolBar.Visible := Opts.Visible;
|
ETB.FToolBar.Visible := Opts.Visible;
|
||||||
@ -359,7 +335,6 @@ begin
|
|||||||
begin
|
begin
|
||||||
aBar := FToolBars[i];
|
aBar := FToolBars[i];
|
||||||
aBar.ClearToolbar;
|
aBar.ClearToolbar;
|
||||||
aBar.AddStaticItems;
|
|
||||||
Opts := EnvironmentOptions.Desktop.EditorToolBarOptions;
|
Opts := EnvironmentOptions.Desktop.EditorToolBarOptions;
|
||||||
aBar.CopyFromOptions(Opts);
|
aBar.CopyFromOptions(Opts);
|
||||||
aBar.FToolBar.Visible := Opts.Visible;
|
aBar.FToolBar.Visible := Opts.Visible;
|
||||||
|
@ -4630,7 +4630,6 @@ resourcestring
|
|||||||
|
|
||||||
// Editor Toolbar
|
// Editor Toolbar
|
||||||
lisEditorToolbar = 'Editor ToolBar';
|
lisEditorToolbar = 'Editor ToolBar';
|
||||||
lisEditorToolbarHint = 'You may add here your favorite commands';
|
|
||||||
lisConfigureEditorToolbar = 'Configure Toolbar';
|
lisConfigureEditorToolbar = 'Configure Toolbar';
|
||||||
lisEditorToolbarVisible = 'Editor Toolbar is &visible';
|
lisEditorToolbarVisible = 'Editor Toolbar is &visible';
|
||||||
lisEditorToolbarSettings = 'Editor Toolbar Settings';
|
lisEditorToolbarSettings = 'Editor Toolbar Settings';
|
||||||
|
Loading…
Reference in New Issue
Block a user