implemented generic function to hide TComponents without page in designer

git-svn-id: trunk@5164 -
This commit is contained in:
mattias 2004-02-04 13:55:08 +00:00
parent bf8c04c86a
commit 9bcc3289ba
3 changed files with 33 additions and 7 deletions

View File

@ -33,8 +33,7 @@ unit DesignerProcs;
interface
uses
Classes, SysUtils, LCLIntf, Forms, Controls, LCLType, Graphics, VCLGlobals,
Menus;
Classes, SysUtils, LCLIntf, Forms, Controls, LCLType, Graphics, VCLGlobals;
type
TDesignerDCFlag = (ddcDCOriginValid, ddcFormOriginValid,
@ -81,6 +80,12 @@ const
NonVisualCompWidth = NonVisualCompIconWidth+2*NonVisualCompBorder;
type
TOnComponentIsInvisible = procedure(AComponent: TComponent;
var Invisible: boolean) of object;
var
OnComponentIsInvisible: TOnComponentIsInvisible;
function GetParentLevel(AControl: TControl): integer;
function ControlIsInDesignerVisible(AControl: TControl): boolean;
function ComponentIsInvisible(AComponent: TComponent): boolean;
@ -281,7 +286,10 @@ end;
function ComponentIsInvisible(AComponent: TComponent): boolean;
begin
Result:=(AComponent is TMenuItem);
if Assigned(OnComponentIsInvisible) then
OnComponentIsInvisible(AComponent,Result)
else
Result:=false;
end;
{ TDesignerDeviceContext }

View File

@ -39,7 +39,8 @@ interface
uses
Classes, SysUtils, Dialogs, Graphics, ExtCtrls, Buttons, Menus, LResources,
AVL_Tree, ComponentReg, IDEProcs, PackageDefs, LazarusIDEStrConsts;
AVL_Tree, LazarusIDEStrConsts, ComponentReg, DesignerProcs, IDEProcs,
PackageDefs;
const
ComponentPaletteBtnWidth = 25;
@ -75,6 +76,8 @@ type
procedure OnPageRemovedComponent(Page: TBaseComponentPage;
Component: TRegisteredComponent); override;
procedure Update; override;
procedure CheckComponentHasIcon(AComponent: TComponent;
var Invisible: boolean);
public
constructor Create;
destructor Destroy; override;
@ -270,14 +273,26 @@ begin
UpdateNoteBookButtons;
end;
procedure TComponentPalette.CheckComponentHasIcon(AComponent: TComponent;
var Invisible: boolean);
var
RegComp: TRegisteredComponent;
begin
RegComp:=FindComponent(AComponent.ClassName);
Invisible:=(RegComp<>nil) and (RegComp.PageName='');
end;
constructor TComponentPalette.Create;
begin
inherited Create;
fComponents:=TAVLTree.Create(@CompareRegisteredComponents);
OnComponentIsInvisible:=@CheckComponentHasIcon;
end;
destructor TComponentPalette.Destroy;
begin
if OnComponentIsInvisible=@CheckComponentHasIcon then
OnComponentIsInvisible:=nil;
NoteBook:=nil;
fComponents.Free;
fComponents:=nil;

View File

@ -946,9 +946,6 @@ end;
Set the shortcut
------------------------------------------------------------------------------}
Procedure TMenuItem.SetShortCut(const AValue : TShortCut);
var
NewKey: Word;
NewShift: TShiftState;
Begin
if FShortCut <> AValue then begin
ShortCutChanged(FShortCut, AValue);
@ -1081,6 +1078,9 @@ end;
{ =============================================================================
$Log$
Revision 1.48 2004/02/04 13:55:08 mattias
implemented generic function to hide TComponents without page in designer
Revision 1.47 2004/02/04 13:40:19 mattias
ShortCutToText now deletes any modifier
@ -1253,6 +1253,9 @@ end;
$Log$
Revision 1.48 2004/02/04 13:55:08 mattias
implemented generic function to hide TComponents without page in designer
Revision 1.47 2004/02/04 13:40:19 mattias
ShortCutToText now deletes any modifier