{ ***************************************************************************** See the file COPYING.modifiedLGPL.txt, included in this distribution, for details about the license. ***************************************************************************** Authors: Michael W. Vogel } unit DockedBasicAnchorDesigner; {$mode objfpc}{$H+} interface uses // RTL, FCL Classes, SysUtils, // LCL Forms, Controls, LMessages, LCLType, // BuildIntf ComponentReg, // IDEIntf ComponentEditors, PropEdits; type TBoolFunc = function: Boolean of object; { TBasicAnchorDesigner } TBasicAnchorDesigner = class(TComponentEditorDesigner) private FOnDesignerSetFocus: TProcedureOfObject; FOnMouseWheel: TMouseWheelEvent; FParent: TWinControl; public procedure Abort; virtual; abstract; procedure BeginUpdate; virtual; abstract; procedure EndUpdate; virtual; abstract; procedure Invalidate; virtual; abstract; procedure Refresh; virtual; abstract; procedure SetParent(AValue: TWinControl); virtual; // Needed for valid compiling procedure AddComponent(const {%H-}NewRegisteredComponent: TRegisteredComponent; const {%H-}NewComponentClass: TComponentClass; const {%H-}NewParent: TComponent; const {%H-}NewLeft, {%H-}NewTop, {%H-}NewWidth, {%H-}NewHeight: Integer); override; procedure AddComponentCheckParent(var {%H-}NewParent: TComponent; const {%H-}OriginComponent: TComponent; const {%H-}OriginWinControl: TWinControl; const {%H-}NewComponentClass: TComponentClass); override; function AddUndoAction(const {%H-}aPersistent: TPersistent; {%H-}aOpType: TUndoOpType; {%H-}IsSetNewId: boolean; {%H-}aFieldName: string; const {%H-}aOldVal, {%H-}aNewVal: variant): boolean; override; function CanCopy: Boolean; override; function CanPaste: Boolean; override; function ChangeClass: boolean; override; function ClearSelection: boolean; override; function CopySelection: boolean; override; function CopySelectionToStream({%H-}s: TStream): boolean; override; function CreateUniqueComponentName(const {%H-}AClassName: string): string; override; function CutSelection: boolean; override; function DeleteSelection: boolean; override; procedure DrawDesignerItems({%H-}OnlyIfNeeded: boolean); override; function GetPropertyEditorHook: TPropertyEditorHook; override; function GetShiftState: TShiftState; override; function GetShowNonVisualComponents: boolean; override; function InsertFromStream({%H-}s: TStream; {%H-}Parent: TWinControl; {%H-}Flags: TComponentPasteSelectionFlags): Boolean; override; function InvokeComponentEditor({%H-}AComponent: TComponent): boolean; override; function IsDesignMsg(Sender: TControl; var {%H-}Message: TLMessage): Boolean; override; function IsUndoLocked: boolean; override; procedure Notification({%H-}AComponent: TComponent; {%H-}Operation: TOperation); override; procedure PaintGrid; override; function PasteSelection({%H-}Flags: TComponentPasteSelectionFlags): boolean; override; procedure PrepareFreeDesigner({%H-}AFreeComponent: boolean); override; procedure SelectOnlyThisComponent({%H-}AComponent: TComponent); override; procedure SetShowNonVisualComponents({%H-}AValue: boolean); override; function UniqueName(const {%H-}BaseName: string): string; override; procedure UTF8KeyPress(var {%H-}UTF8Key: TUTF8Char); override; procedure ValidateRename({%H-}AComponent: TComponent; const {%H-}CurName, {%H-}NewName: string); override; public property OnDesignerSetFocus: TProcedureOfObject read FOnDesignerSetFocus write FOnDesignerSetFocus; property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel; property Parent: TWinControl read FParent write SetParent; end; implementation { TBasicAnchorDesigner } procedure TBasicAnchorDesigner.SetParent(AValue: TWinControl); begin if FParent = AValue then Exit; FParent := AValue; end; procedure TBasicAnchorDesigner.AddComponent( const NewRegisteredComponent: TRegisteredComponent; const NewComponentClass: TComponentClass; const NewParent: TComponent; const NewLeft, NewTop, NewWidth, NewHeight: Integer); begin end; procedure TBasicAnchorDesigner.AddComponentCheckParent( var NewParent: TComponent; const OriginComponent: TComponent; const OriginWinControl: TWinControl; const NewComponentClass: TComponentClass); begin end; function TBasicAnchorDesigner.AddUndoAction(const aPersistent: TPersistent; aOpType: TUndoOpType; IsSetNewId: boolean; aFieldName: string; const aOldVal, aNewVal: variant): boolean; begin Result := False; end; function TBasicAnchorDesigner.CanCopy: Boolean; begin Result := False; end; function TBasicAnchorDesigner.CanPaste: Boolean; begin Result := False; end; function TBasicAnchorDesigner.ChangeClass: boolean; begin Result := False; end; function TBasicAnchorDesigner.ClearSelection: boolean; begin Result := False; end; function TBasicAnchorDesigner.CopySelection: boolean; begin Result := False; end; function TBasicAnchorDesigner.CopySelectionToStream(s: TStream): boolean; begin Result := False; end; function TBasicAnchorDesigner.CreateUniqueComponentName(const AClassName: string): string; begin Result := EmptyStr; end; function TBasicAnchorDesigner.CutSelection: boolean; begin Result := False; end; function TBasicAnchorDesigner.DeleteSelection: boolean; begin Result := False; end; procedure TBasicAnchorDesigner.DrawDesignerItems(OnlyIfNeeded: boolean); begin end; function TBasicAnchorDesigner.GetPropertyEditorHook: TPropertyEditorHook; begin Result := nil; end; function TBasicAnchorDesigner.GetShiftState: TShiftState; begin Result := []; end; function TBasicAnchorDesigner.GetShowNonVisualComponents: boolean; begin Result := False; end; function TBasicAnchorDesigner.InsertFromStream(s: TStream; Parent: TWinControl; Flags: TComponentPasteSelectionFlags): Boolean; begin Result := False; end; function TBasicAnchorDesigner.InvokeComponentEditor(AComponent: TComponent): boolean; begin Result := False; end; function TBasicAnchorDesigner.IsDesignMsg(Sender: TControl; var Message: TLMessage): Boolean; begin Result := False; end; function TBasicAnchorDesigner.IsUndoLocked: boolean; begin Result := False; end; procedure TBasicAnchorDesigner.Notification(AComponent: TComponent; Operation: TOperation); begin end; procedure TBasicAnchorDesigner.PaintGrid; begin end; function TBasicAnchorDesigner.PasteSelection(Flags: TComponentPasteSelectionFlags): boolean; begin Result := False; end; procedure TBasicAnchorDesigner.PrepareFreeDesigner(AFreeComponent: boolean); begin end; procedure TBasicAnchorDesigner.SelectOnlyThisComponent(AComponent: TComponent); begin end; procedure TBasicAnchorDesigner.SetShowNonVisualComponents(AValue: boolean); begin end; function TBasicAnchorDesigner.UniqueName(const BaseName: string): string; begin Result := EmptyStr; end; procedure TBasicAnchorDesigner.UTF8KeyPress(var UTF8Key: TUTF8Char); begin end; procedure TBasicAnchorDesigner.ValidateRename(AComponent: TComponent; const CurName, NewName: string); begin end; end.