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