mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 16:00:26 +02:00
Component palette: Add a selection changed event and handler.
git-svn-id: trunk@48312 -
This commit is contained in:
parent
ac1b44a800
commit
b0023622ae
@ -171,15 +171,16 @@ type
|
|||||||
{ TBaseComponentPalette }
|
{ TBaseComponentPalette }
|
||||||
|
|
||||||
TComponentPaletteHandlerType = (
|
TComponentPaletteHandlerType = (
|
||||||
cphtUpdateVisible, // visibility of component palette icons is recomputed
|
cphtUpdateVisible, // Visibility of component palette icons is recomputed
|
||||||
cphtComponentAdded // Typically selection is changed after component was added.
|
cphtComponentAdded, // Typically selection is changed after component was added.
|
||||||
|
cphtSelectionChanged
|
||||||
);
|
);
|
||||||
|
|
||||||
TEndUpdatePaletteEvent = procedure(Sender: TObject; PaletteChanged: boolean) of object;
|
TEndUpdatePaletteEvent = procedure(Sender: TObject; PaletteChanged: boolean) of object;
|
||||||
TGetComponentClassEvent = procedure(const AClass: TComponentClass) of object;
|
TGetComponentClassEvent = procedure(const AClass: TComponentClass) of object;
|
||||||
TUpdateCompVisibleEvent = procedure(AComponent: TRegisteredComponent;
|
TUpdateCompVisibleEvent = procedure(AComponent: TRegisteredComponent;
|
||||||
var VoteVisible: integer { Visible>0 } ) of object;
|
var VoteVisible: integer { Visible>0 } ) of object;
|
||||||
TComponentAddedEvent = procedure of object;
|
TPaletteHandlerEvent = procedure of object;
|
||||||
RegisterUnitComponentProc = procedure(const Page, UnitName: ShortString;
|
RegisterUnitComponentProc = procedure(const Page, UnitName: ShortString;
|
||||||
ComponentClass: TComponentClass);
|
ComponentClass: TComponentClass);
|
||||||
TBaseComponentPageList = specialize TFPGList<TBaseComponentPage>;
|
TBaseComponentPageList = specialize TFPGList<TBaseComponentPage>;
|
||||||
@ -205,6 +206,7 @@ type
|
|||||||
fOrigPageHelper: TStringList;
|
fOrigPageHelper: TStringList;
|
||||||
fHandlers: array[TComponentPaletteHandlerType] of TMethodList;
|
fHandlers: array[TComponentPaletteHandlerType] of TMethodList;
|
||||||
fComponentPageClass: TBaseComponentPageClass;
|
fComponentPageClass: TBaseComponentPageClass;
|
||||||
|
fSelected: TRegisteredComponent;
|
||||||
fHideControls: boolean;
|
fHideControls: boolean;
|
||||||
fUpdateLock: integer;
|
fUpdateLock: integer;
|
||||||
fChanged: boolean;
|
fChanged: boolean;
|
||||||
@ -219,9 +221,8 @@ type
|
|||||||
procedure DoPageAddedComponent(Component: TRegisteredComponent);
|
procedure DoPageAddedComponent(Component: TRegisteredComponent);
|
||||||
procedure DoPageRemovedComponent(Component: TRegisteredComponent);
|
procedure DoPageRemovedComponent(Component: TRegisteredComponent);
|
||||||
function VoteCompVisibility(AComponent: TRegisteredComponent): Boolean;
|
function VoteCompVisibility(AComponent: TRegisteredComponent): Boolean;
|
||||||
protected
|
function GetSelected: TRegisteredComponent;
|
||||||
function GetSelected: TRegisteredComponent; virtual;
|
procedure SetSelected(const AValue: TRegisteredComponent);
|
||||||
procedure SetSelected(const AValue: TRegisteredComponent); virtual; abstract;
|
|
||||||
public
|
public
|
||||||
constructor Create(EnvPaletteOptions: TCompPaletteOptions);
|
constructor Create(EnvPaletteOptions: TCompPaletteOptions);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -233,7 +234,6 @@ type
|
|||||||
procedure EndUpdate;
|
procedure EndUpdate;
|
||||||
function IsUpdateLocked: boolean;
|
function IsUpdateLocked: boolean;
|
||||||
procedure IncChangeStamp;
|
procedure IncChangeStamp;
|
||||||
procedure DoAfterComponentAdded;
|
|
||||||
function IndexOfPageName(const APageName: string): integer;
|
function IndexOfPageName(const APageName: string): integer;
|
||||||
function IndexOfPageWithName(const APageName: string): integer;
|
function IndexOfPageWithName(const APageName: string): integer;
|
||||||
function GetPage(const APageName: string; aCaseSens: Boolean = False): TBaseComponentPage;
|
function GetPage(const APageName: string; aCaseSens: Boolean = False): TBaseComponentPage;
|
||||||
@ -244,18 +244,18 @@ type
|
|||||||
procedure Update(ForceUpdateAll: Boolean); virtual;
|
procedure Update(ForceUpdateAll: Boolean); virtual;
|
||||||
procedure IterateRegisteredClasses(Proc: TGetComponentClassEvent);
|
procedure IterateRegisteredClasses(Proc: TGetComponentClassEvent);
|
||||||
// Registered handlers
|
// Registered handlers
|
||||||
|
procedure DoAfterComponentAdded;
|
||||||
|
procedure DoAfterSelectionChanged;
|
||||||
procedure RemoveAllHandlersOfObject(AnObject: TObject);
|
procedure RemoveAllHandlersOfObject(AnObject: TObject);
|
||||||
procedure AddHandlerUpdateVisible(
|
procedure AddHandlerUpdateVisible(const OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent;
|
||||||
const OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent;
|
AsLast: boolean = false);
|
||||||
AsLast: boolean = false);
|
procedure RemoveHandlerUpdateVisible(OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent);
|
||||||
procedure RemoveHandlerUpdateVisible(
|
procedure AddHandlerComponentAdded(OnComponentAddedEvent: TPaletteHandlerEvent);
|
||||||
const OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent);
|
procedure RemoveHandlerComponentAdded(OnComponentAddedEvent: TPaletteHandlerEvent);
|
||||||
procedure AddHandlerComponentAdded(
|
procedure AddHandlerSelectionChanged(OnSelectionChangedEvent: TPaletteHandlerEvent);
|
||||||
const OnComponentAddedEvent: TComponentAddedEvent);
|
procedure RemoveHandlerSelectionChanged(OnSelectionChangedEvent: TPaletteHandlerEvent);
|
||||||
procedure RemoveHandlerComponentAdded(
|
|
||||||
const OnComponentAddedEvent: TComponentAddedEvent);
|
|
||||||
{$IFDEF CustomIDEComps}
|
{$IFDEF CustomIDEComps}
|
||||||
procedure RegisterCustomIDEComponents(const RegisterProc: RegisterUnitComponentProc);
|
procedure RegisterCustomIDEComponents(RegisterProc: RegisterUnitComponentProc);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
public
|
public
|
||||||
property Pages: TBaseComponentPageList read fPages;
|
property Pages: TBaseComponentPageList read fPages;
|
||||||
@ -844,7 +844,20 @@ end;
|
|||||||
|
|
||||||
function TBaseComponentPalette.GetSelected: TRegisteredComponent;
|
function TBaseComponentPalette.GetSelected: TRegisteredComponent;
|
||||||
begin
|
begin
|
||||||
result := nil;
|
Result := fSelected;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseComponentPalette.SetSelected(const AValue: TRegisteredComponent);
|
||||||
|
begin
|
||||||
|
if fSelected=AValue then exit;
|
||||||
|
fSelected:=AValue;
|
||||||
|
if fSelected<>nil then begin
|
||||||
|
if (fSelected.RealPage=nil) or (fSelected.RealPage.Palette<>Self)
|
||||||
|
or (not fSelected.Visible)
|
||||||
|
or (not fSelected.CanBeCreatedInDesigner) then
|
||||||
|
fSelected:=nil;
|
||||||
|
end;
|
||||||
|
DoAfterSelectionChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBaseComponentPalette.AddHandler(HandlerType: TComponentPaletteHandlerType;
|
procedure TBaseComponentPalette.AddHandler(HandlerType: TComponentPaletteHandlerType;
|
||||||
@ -881,20 +894,6 @@ begin
|
|||||||
DoChange;
|
DoChange;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseComponentPalette.VoteCompVisibility(AComponent: TRegisteredComponent): Boolean;
|
|
||||||
var
|
|
||||||
i, Vote: Integer;
|
|
||||||
begin
|
|
||||||
Vote:=1;
|
|
||||||
if HideControls and AComponent.IsTControl then
|
|
||||||
Dec(Vote);
|
|
||||||
i:=FHandlers[cphtUpdateVisible].Count;
|
|
||||||
while FHandlers[cphtUpdateVisible].NextDownIndex(i) do
|
|
||||||
TUpdateCompVisibleEvent(FHandlers[cphtUpdateVisible][i])(AComponent,Vote);
|
|
||||||
Result:=Vote>0;
|
|
||||||
AComponent.Visible:=Result;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TBaseComponentPalette.BeginUpdate(Change: boolean);
|
procedure TBaseComponentPalette.BeginUpdate(Change: boolean);
|
||||||
begin
|
begin
|
||||||
inc(FUpdateLock);
|
inc(FUpdateLock);
|
||||||
@ -923,15 +922,6 @@ begin
|
|||||||
Inc(fChangeStamp);
|
Inc(fChangeStamp);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBaseComponentPalette.DoAfterComponentAdded;
|
|
||||||
var
|
|
||||||
i: Integer;
|
|
||||||
begin
|
|
||||||
i:=FHandlers[cphtComponentAdded].Count;
|
|
||||||
while FHandlers[cphtComponentAdded].NextDownIndex(i) do
|
|
||||||
TComponentAddedEvent(FHandlers[cphtComponentAdded][i])();
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TBaseComponentPalette.IndexOfPageName(const APageName: string): integer;
|
function TBaseComponentPalette.IndexOfPageName(const APageName: string): integer;
|
||||||
begin
|
begin
|
||||||
Result:=Pages.Count-1; // Case sensitive search
|
Result:=Pages.Count-1; // Case sensitive search
|
||||||
@ -1046,6 +1036,40 @@ begin
|
|||||||
Proc(Comps[i].ComponentClass);
|
Proc(Comps[i].ComponentClass);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// Execute handlers
|
||||||
|
|
||||||
|
function TBaseComponentPalette.VoteCompVisibility(AComponent: TRegisteredComponent): Boolean;
|
||||||
|
var
|
||||||
|
i, Vote: Integer;
|
||||||
|
begin
|
||||||
|
Vote:=1;
|
||||||
|
if HideControls and AComponent.IsTControl then
|
||||||
|
Dec(Vote);
|
||||||
|
i:=FHandlers[cphtUpdateVisible].Count;
|
||||||
|
while FHandlers[cphtUpdateVisible].NextDownIndex(i) do
|
||||||
|
TUpdateCompVisibleEvent(FHandlers[cphtUpdateVisible][i])(AComponent,Vote);
|
||||||
|
Result:=Vote>0;
|
||||||
|
AComponent.Visible:=Result;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseComponentPalette.DoAfterComponentAdded;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
i:=FHandlers[cphtComponentAdded].Count;
|
||||||
|
while FHandlers[cphtComponentAdded].NextDownIndex(i) do
|
||||||
|
TPaletteHandlerEvent(FHandlers[cphtComponentAdded][i])();
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseComponentPalette.DoAfterSelectionChanged;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
i:=FHandlers[cphtSelectionChanged].Count;
|
||||||
|
while FHandlers[cphtSelectionChanged].NextDownIndex(i) do
|
||||||
|
TPaletteHandlerEvent(FHandlers[cphtSelectionChanged][i])();
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TBaseComponentPalette.RemoveAllHandlersOfObject(AnObject: TObject);
|
procedure TBaseComponentPalette.RemoveAllHandlersOfObject(AnObject: TObject);
|
||||||
var
|
var
|
||||||
HandlerType: TComponentPaletteHandlerType;
|
HandlerType: TComponentPaletteHandlerType;
|
||||||
@ -1056,6 +1080,7 @@ end;
|
|||||||
|
|
||||||
// Add / Remove handlers
|
// Add / Remove handlers
|
||||||
|
|
||||||
|
// UpdateVisible
|
||||||
procedure TBaseComponentPalette.AddHandlerUpdateVisible(
|
procedure TBaseComponentPalette.AddHandlerUpdateVisible(
|
||||||
const OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent; AsLast: boolean);
|
const OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent; AsLast: boolean);
|
||||||
begin
|
begin
|
||||||
@ -1063,26 +1088,41 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBaseComponentPalette.RemoveHandlerUpdateVisible(
|
procedure TBaseComponentPalette.RemoveHandlerUpdateVisible(
|
||||||
const OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent);
|
OnUpdateCompVisibleEvent: TUpdateCompVisibleEvent);
|
||||||
begin
|
begin
|
||||||
RemoveHandler(cphtUpdateVisible,TMethod(OnUpdateCompVisibleEvent));
|
RemoveHandler(cphtUpdateVisible,TMethod(OnUpdateCompVisibleEvent));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// ComponentAdded
|
||||||
procedure TBaseComponentPalette.AddHandlerComponentAdded(
|
procedure TBaseComponentPalette.AddHandlerComponentAdded(
|
||||||
const OnComponentAddedEvent: TComponentAddedEvent);
|
OnComponentAddedEvent: TPaletteHandlerEvent);
|
||||||
begin
|
begin
|
||||||
AddHandler(cphtComponentAdded,TMethod(OnComponentAddedEvent));
|
AddHandler(cphtComponentAdded,TMethod(OnComponentAddedEvent));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBaseComponentPalette.RemoveHandlerComponentAdded(
|
procedure TBaseComponentPalette.RemoveHandlerComponentAdded(
|
||||||
const OnComponentAddedEvent: TComponentAddedEvent);
|
OnComponentAddedEvent: TPaletteHandlerEvent);
|
||||||
begin
|
begin
|
||||||
RemoveHandler(cphtComponentAdded,TMethod(OnComponentAddedEvent));
|
RemoveHandler(cphtComponentAdded,TMethod(OnComponentAddedEvent));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// SelectionChanged
|
||||||
|
procedure TBaseComponentPalette.AddHandlerSelectionChanged(
|
||||||
|
OnSelectionChangedEvent: TPaletteHandlerEvent);
|
||||||
|
begin
|
||||||
|
AddHandler(cphtSelectionChanged,TMethod(OnSelectionChangedEvent));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseComponentPalette.RemoveHandlerSelectionChanged(
|
||||||
|
OnSelectionChangedEvent: TPaletteHandlerEvent);
|
||||||
|
begin
|
||||||
|
RemoveHandler(cphtSelectionChanged,TMethod(OnSelectionChangedEvent));
|
||||||
|
end;
|
||||||
|
|
||||||
|
//
|
||||||
{$IFDEF CustomIDEComps}
|
{$IFDEF CustomIDEComps}
|
||||||
procedure TBaseComponentPalette.RegisterCustomIDEComponents(
|
procedure TBaseComponentPalette.RegisterCustomIDEComponents(
|
||||||
const RegisterProc: RegisterUnitComponentProc);
|
RegisterProc: RegisterUnitComponentProc);
|
||||||
begin
|
begin
|
||||||
CustomIDEComps.RegisterCustomComponents(RegisterProc);
|
CustomIDEComps.RegisterCustomComponents(RegisterProc);
|
||||||
end;
|
end;
|
||||||
|
@ -101,7 +101,6 @@ type
|
|||||||
FOnOpenPackage: TNotifyEvent;
|
FOnOpenPackage: TNotifyEvent;
|
||||||
FOnOpenUnit: TNotifyEvent;
|
FOnOpenUnit: TNotifyEvent;
|
||||||
FOnClassSelected: TNotifyEvent;
|
FOnClassSelected: TNotifyEvent;
|
||||||
FSelected: TRegisteredComponent;
|
|
||||||
FSelectionMode: TComponentSelectionMode;
|
FSelectionMode: TComponentSelectionMode;
|
||||||
fUnregisteredIcon: TCustomBitmap;
|
fUnregisteredIcon: TCustomBitmap;
|
||||||
fSelectButtonIcon: TCustomBitmap;
|
fSelectButtonIcon: TCustomBitmap;
|
||||||
@ -127,13 +126,12 @@ type
|
|||||||
WheelDelta: Integer; {%H-}MousePos: TPoint; var Handled: Boolean);
|
WheelDelta: Integer; {%H-}MousePos: TPoint; var Handled: Boolean);
|
||||||
procedure CreatePopupMenu;
|
procedure CreatePopupMenu;
|
||||||
procedure UnselectAllButtons;
|
procedure UnselectAllButtons;
|
||||||
|
procedure SelectionWasChanged;
|
||||||
function GetUnregisteredIcon: TCustomBitmap;
|
function GetUnregisteredIcon: TCustomBitmap;
|
||||||
function GetSelectButtonIcon: TCustomBitmap;
|
function GetSelectButtonIcon: TCustomBitmap;
|
||||||
function SelectAButton(Button: TSpeedButton): boolean;
|
function SelectAButton(Button: TSpeedButton): boolean;
|
||||||
procedure ComponentWasAdded;
|
procedure ComponentWasAdded;
|
||||||
procedure CheckComponentDesignerVisible(AComponent: TComponent; var Invisible: boolean);
|
procedure CheckComponentDesignerVisible(AComponent: TComponent; var Invisible: boolean);
|
||||||
procedure SetSelected(const AValue: TRegisteredComponent); override;
|
|
||||||
function GetSelected: TRegisteredComponent; override;
|
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -515,8 +513,8 @@ end;
|
|||||||
procedure TComponentPalette.ActivePageChanged(Sender: TObject);
|
procedure TComponentPalette.ActivePageChanged(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if FPageControl=nil then exit;
|
if FPageControl=nil then exit;
|
||||||
if (FSelected<>nil)
|
if (Selected<>nil)
|
||||||
and ((FSelected.RealPage as TComponentPage).PageComponent=FPageControl.ActivePage) then exit;
|
and ((Selected.RealPage as TComponentPage).PageComponent=FPageControl.ActivePage) then exit;
|
||||||
if fUpdatingPageControl then exit;
|
if fUpdatingPageControl then exit;
|
||||||
{$IFDEF VerboseComponentPalette}
|
{$IFDEF VerboseComponentPalette}
|
||||||
DebugLn('TComponentPalette.ActivePageChanged: Calling ReAlignButtons, setting Selected:=nil.');
|
DebugLn('TComponentPalette.ActivePageChanged: Calling ReAlignButtons, setting Selected:=nil.');
|
||||||
@ -667,11 +665,11 @@ var
|
|||||||
DisableAutoSize: Boolean;
|
DisableAutoSize: Boolean;
|
||||||
begin
|
begin
|
||||||
//debugln('TComponentPalette.ComponentBtnDblClick ',TComponent(Sender).Name);
|
//debugln('TComponentPalette.ComponentBtnDblClick ',TComponent(Sender).Name);
|
||||||
if SelectAButton(TSpeedButton(Sender)) and (FSelected<>nil) then begin
|
if SelectAButton(TSpeedButton(Sender)) and (Selected<>nil) then begin
|
||||||
if FormEditingHook<>nil then begin
|
if FormEditingHook<>nil then begin
|
||||||
TypeClass:=FSelected.ComponentClass;
|
TypeClass:=Selected.ComponentClass;
|
||||||
if assigned(FSelected.OnGetCreationClass) then
|
if assigned(Selected.OnGetCreationClass) then
|
||||||
FSelected.OnGetCreationClass(Self,TypeClass);
|
Selected.OnGetCreationClass(Self,TypeClass);
|
||||||
if TypeClass=nil then exit;
|
if TypeClass=nil then exit;
|
||||||
ParentComp:=FormEditingHook.GetDefaultComponentParent(TypeClass);
|
ParentComp:=FormEditingHook.GetDefaultComponentParent(TypeClass);
|
||||||
if ParentComp=nil then exit;
|
if ParentComp=nil then exit;
|
||||||
@ -702,7 +700,7 @@ var
|
|||||||
begin
|
begin
|
||||||
for i:=0 to Pages.Count-1 do begin
|
for i:=0 to Pages.Count-1 do begin
|
||||||
CurPage:=Pages[i];
|
CurPage:=Pages[i];
|
||||||
if (FSelected=nil) or (FSelected.RealPage<>CurPage) then begin
|
if (Selected=nil) or (Selected.RealPage<>CurPage) then begin
|
||||||
SelectButtonOnPage:=TSpeedButton(TComponentPage(CurPage).SelectButton);
|
SelectButtonOnPage:=TSpeedButton(TComponentPage(CurPage).SelectButton);
|
||||||
if SelectButtonOnPage<>nil then
|
if SelectButtonOnPage<>nil then
|
||||||
SelectButtonOnPage.Down:=true;
|
SelectButtonOnPage.Down:=true;
|
||||||
@ -710,39 +708,26 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TComponentPalette.SetSelected(const AValue: TRegisteredComponent);
|
procedure TComponentPalette.SelectionWasChanged;
|
||||||
var
|
var
|
||||||
Sheet: TTabSheet;
|
Sheet: TTabSheet;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
if FSelected=AValue then exit;
|
|
||||||
FSelected:=AValue;
|
|
||||||
if FSelected<>nil then begin
|
|
||||||
if (FSelected.RealPage=nil) or (FSelected.RealPage.Palette<>Self)
|
|
||||||
or (not FSelected.Visible)
|
|
||||||
or (not FSelected.CanBeCreatedInDesigner) then
|
|
||||||
FSelected:=nil;
|
|
||||||
end;
|
|
||||||
if FPageControl=nil then exit;
|
if FPageControl=nil then exit;
|
||||||
UnselectAllButtons;
|
UnselectAllButtons;
|
||||||
if FSelected=nil then exit;
|
if Selected=nil then exit;
|
||||||
Assert(Assigned(FSelected.RealPage), 'TComponentPalette.SetSelected: FSelected.RealPage = Nil.');
|
Assert(Assigned(Selected.RealPage), 'TComponentPalette.SelectionWasChanged: Selected.RealPage = Nil.');
|
||||||
Sheet:=(FSelected.RealPage as TComponentPage).PageComponent as TTabSheet;
|
Sheet:=(Selected.RealPage as TComponentPage).PageComponent as TTabSheet;
|
||||||
{$IFDEF VerboseComponentPalette}
|
{$IFDEF VerboseComponentPalette}
|
||||||
DebugLn(['TComponentPalette.SetSelected: Setting FPageControl.ActivePage index ',Sheet.PageIndex]);
|
DebugLn(['TComponentPalette.SelectionWasChanged: Setting FPageControl.ActivePage index ',Sheet.PageIndex]);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
// Switch to the new page
|
// Switch to the new page
|
||||||
FPageControl.ActivePage:=Sheet;
|
FPageControl.ActivePage:=Sheet;
|
||||||
// Build the GUI layout for this page if not done yet.
|
// Build the GUI layout for this page if not done yet.
|
||||||
if not fComponentButtons.Find(FSelected.ComponentClass.ClassName, i) then
|
if not fComponentButtons.Find(Selected.ComponentClass.ClassName, i) then
|
||||||
ReAlignButtons(FPageControl.ActivePage);
|
ReAlignButtons(FPageControl.ActivePage);
|
||||||
// Select button
|
// Select button
|
||||||
fComponentButtons[FSelected.ComponentClass.ClassName].Down := true;
|
fComponentButtons[Selected.ComponentClass.ClassName].Down := true;
|
||||||
end;
|
|
||||||
|
|
||||||
function TComponentPalette.GetSelected: TRegisteredComponent;
|
|
||||||
begin
|
|
||||||
Result:=FSelected;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TComponentPalette.CreatePopupMenu;
|
procedure TComponentPalette.CreatePopupMenu;
|
||||||
@ -827,6 +812,7 @@ begin
|
|||||||
fComponentButtons.Sorted:=True;
|
fComponentButtons.Sorted:=True;
|
||||||
OnComponentIsInvisible:=@CheckComponentDesignerVisible;
|
OnComponentIsInvisible:=@CheckComponentDesignerVisible;
|
||||||
{IDEComponentPalette.} AddHandlerComponentAdded(@ComponentWasAdded);
|
{IDEComponentPalette.} AddHandlerComponentAdded(@ComponentWasAdded);
|
||||||
|
{IDEComponentPalette.} AddHandlerSelectionChanged(@SelectionWasChanged);
|
||||||
ComponentPageClass := TComponentPage; // Used by CreatePagesFromUserOrder
|
ComponentPageClass := TComponentPage; // Used by CreatePagesFromUserOrder
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user