mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-18 01:09:35 +02:00
IDE: show Component List from Component Palette's popup menu.
git-svn-id: trunk@35053 -
This commit is contained in:
parent
f762ac3dbd
commit
5084b5f3d5
@ -37,14 +37,12 @@ unit ComponentPalette;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LCLProc, Controls, Forms, Dialogs, Graphics, ExtCtrls,
|
||||
ComCtrls, Buttons, FileUtil, Menus, LResources, AVL_Tree,
|
||||
PropEdits, FormEditingIntf, LazIDEIntf, MacroIntf,
|
||||
Classes, SysUtils, Controls, Forms, Graphics, ComCtrls, Buttons, FileUtil, Menus,
|
||||
LResources, AVL_Tree, PropEdits, FormEditingIntf, LazIDEIntf, IDEProcs,
|
||||
{$IFDEF CustomIDEComps}
|
||||
CustomIDEComps,
|
||||
{$ENDIF}
|
||||
LazarusIDEStrConsts, ComponentReg, DesignerProcs, IDEProcs, PackageDefs,
|
||||
FindPaletteComp;
|
||||
LazarusIDEStrConsts, ComponentReg, DesignerProcs, PackageDefs, FindPaletteComp;
|
||||
|
||||
type
|
||||
TComponentSelectionMode = (
|
||||
@ -55,15 +53,17 @@ type
|
||||
{ TComponentPalette }
|
||||
|
||||
TComponentPalette = class(TBaseComponentPalette)
|
||||
PalettePopupMenu: TPopupMenu;
|
||||
PopupMenu: TPopupMenu;
|
||||
OpenPackageMenuItem: TMenuItem;
|
||||
OpenUnitMenuItem: TMenuItem;
|
||||
FindComponentMenuItem: TMenuItem;
|
||||
procedure ActivePageChanged(Sender: TObject);
|
||||
procedure OnPageResize(Sender: TObject);
|
||||
procedure OpenPackageClicked(Sender: TObject);
|
||||
procedure OpenUnitClicked(Sender: TObject);
|
||||
procedure ComponentListClicked(Sender: TObject);
|
||||
procedure FindComponentClicked(Sender: TObject);
|
||||
procedure PalettePopupMenuPopup(Sender: TObject);
|
||||
procedure PopupMenuPopup(Sender: TObject);
|
||||
private
|
||||
fComponents: TAVLTree; // tree of TRegisteredComponent sorted for componentclass
|
||||
@ -126,6 +126,8 @@ function CompareControlsWithTag(Control1, Control2: Pointer): integer;
|
||||
|
||||
implementation
|
||||
|
||||
uses MainBase;
|
||||
|
||||
function CompareRegisteredComponents(Data1, Data2: Pointer): integer;
|
||||
var
|
||||
RegComp1: TRegisteredComponent;
|
||||
@ -199,6 +201,11 @@ begin
|
||||
OnOpenUnit(PkgComponent);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.ComponentListClicked(Sender: TObject);
|
||||
begin
|
||||
MainIDE.DoShowComponentList(true);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.FindComponentClicked(Sender: TObject);
|
||||
var
|
||||
AComponent: TRegisteredComponent;
|
||||
@ -207,6 +214,11 @@ begin
|
||||
Selected:=AComponent;
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.PalettePopupMenuPopup(Sender: TObject);
|
||||
begin
|
||||
;
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.PopupMenuPopup(Sender: TObject);
|
||||
var
|
||||
PkgComponent: TPkgComponent;
|
||||
@ -239,12 +251,36 @@ begin
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.SetPageControl(const AValue: TPageControl);
|
||||
var
|
||||
MenuItem: TMenuItem;
|
||||
begin
|
||||
if FPageControl=AValue then exit;
|
||||
ClearButtons;
|
||||
FPageControl:=AValue;
|
||||
if FPageControl<>nil then begin
|
||||
FPageControl.OnChange:=@ActivePageChanged;
|
||||
if PalettePopupMenu=nil then begin
|
||||
PalettePopupMenu:=TPopupMenu.Create(nil);
|
||||
PalettePopupMenu.OnPopup:=@PalettePopupMenuPopup;
|
||||
PalettePopupMenu.Name:='PalettePopupMenu';
|
||||
// Component List
|
||||
MenuItem:=TMenuItem.Create(PalettePopupMenu);
|
||||
with MenuItem do begin
|
||||
Name:='ComponentListMenuItem';
|
||||
Caption:=lisCompPalComponentList;
|
||||
OnClick:=@ComponentListClicked;
|
||||
end;
|
||||
PalettePopupMenu.Items.Add(MenuItem);
|
||||
// Find Component
|
||||
MenuItem:=TMenuItem.Create(PalettePopupMenu);
|
||||
with MenuItem do begin
|
||||
Name:='FindComponentMenuItem';
|
||||
Caption:=lisCompPalFindComponent;
|
||||
OnClick:=@FindComponentClicked;
|
||||
end;
|
||||
PalettePopupMenu.Items.Add(MenuItem);
|
||||
end;
|
||||
FPageControl.PopupMenu:=PalettePopupMenu;
|
||||
end;
|
||||
UpdateNoteBookButtons;
|
||||
end;
|
||||
@ -354,11 +390,13 @@ begin
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.CreatePopupMenu;
|
||||
var
|
||||
MenuItem: TMenuItem;
|
||||
begin
|
||||
if PopupMenu<>nil then exit;
|
||||
PopupMenu:=TPopupMenu.Create(nil);
|
||||
PopupMenu.OnPopup:=@PopupMenuPopup;
|
||||
PopupMenu.Name:='ComponentPalettePopupMenu';
|
||||
PopupMenu.Name:='ComponentPopupMenu';
|
||||
|
||||
OpenPackageMenuItem:=TMenuItem.Create(PopupMenu);
|
||||
with OpenPackageMenuItem do begin
|
||||
@ -378,13 +416,13 @@ begin
|
||||
|
||||
PopupMenu.Items.AddSeparator;
|
||||
|
||||
FindComponentMenuItem:=TMenuItem.Create(PopupMenu);
|
||||
with FindComponentMenuItem do begin
|
||||
Name:='FindComponentMenuItem';
|
||||
Caption:=lisCompPalFindComponent;
|
||||
OnClick:=@FindComponentClicked;
|
||||
MenuItem:=TMenuItem.Create(PopupMenu);
|
||||
with MenuItem do begin
|
||||
Name:='ComponentListMenuItem';
|
||||
Caption:=lisCompPalComponentList;
|
||||
OnClick:=@ComponentListClicked;
|
||||
end;
|
||||
PopupMenu.Items.Add(FindComponentMenuItem);
|
||||
PopupMenu.Items.Add(MenuItem);
|
||||
end;
|
||||
|
||||
procedure TComponentPalette.DoBeginUpdate;
|
||||
@ -449,6 +487,7 @@ begin
|
||||
FreeAndNil(fUnregisteredIcon);
|
||||
FreeAndNil(fSelectButtonIcon);
|
||||
FreeAndNil(PopupMenu);
|
||||
FreeAndNil(PalettePopupMenu);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
|
@ -3472,7 +3472,8 @@ resourcestring
|
||||
lisCPOpenPackage = 'Open Package %s';
|
||||
lisCPOpenUnit = 'Open Unit %s';
|
||||
lisCompPalOpenUnit = 'Open unit';
|
||||
lisCompPalFindComponent = 'Find component';
|
||||
lisCompPalComponentList = 'View Component List';
|
||||
lisCompPalFindComponent = 'Find component (to be removed)';
|
||||
|
||||
// macro promp dialog
|
||||
lisMacroPromptEnterData = 'Enter data';
|
||||
|
@ -872,7 +872,7 @@ type
|
||||
procedure DoShowCodeExplorer(Show: boolean);
|
||||
procedure DoShowCodeBrowser(Show: boolean);
|
||||
procedure DoShowRestrictionBrowser(Show: boolean; const RestrictedName: String = '');
|
||||
procedure DoShowComponentList(Show: boolean);
|
||||
procedure DoShowComponentList(Show: boolean); override;
|
||||
procedure DoShowInspector(Show: boolean);
|
||||
procedure CreateIDEWindow(Sender: TObject; aFormName: string;
|
||||
var AForm: TCustomForm; DoDisableAutoSizing: boolean);
|
||||
|
@ -154,6 +154,7 @@ type
|
||||
var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); virtual; abstract;
|
||||
procedure GetUnitWithPersistent(APersistent: TPersistent;
|
||||
var ActiveSourceEditor: TSourceEditor; var ActiveUnitInfo: TUnitInfo); virtual; abstract;
|
||||
procedure DoShowComponentList(Show: boolean); virtual; abstract;
|
||||
|
||||
function DoOpenMacroFile(Sender: TObject; const AFilename: string
|
||||
): TModalResult; override;
|
||||
|
Loading…
Reference in New Issue
Block a user