📄 aqdockingbase.pas.~1~
字号:
function GetSplitterConstraints: TPoint; virtual;
procedure StartSplitterMove(const Coord: TPoint; const Info: TaqSplitterItemInfo); virtual;
procedure EndSplitterMove(Coord: Integer); virtual;
procedure DrawCaption; virtual;
function GetShowCaption: TaqBooleanValue; virtual;
function GetCaption: string; virtual;
function GetExtendedHintText: string;
function InternalRemoveFromDocking(Explicitly: Boolean = False): Boolean; virtual;
procedure DoMakeVisible(AChild: TaqCustomDockingControl); virtual;
function IsChildVisible(AChild: TaqCustomDockingControl): Boolean; virtual;
procedure ChangeFocusedControl(IsForward: Boolean; Sender: TaqCustomDockingControl); virtual;
procedure DoShow; virtual;
procedure DoHide; virtual;
procedure DoHideEx; virtual;
procedure DoCloseQuery(var CanClose: Boolean; Explicit: Boolean = False); virtual;
procedure DoChanged(Change: TaqDockingControlChange); virtual;
procedure DoUpdateDockActions; virtual;
procedure DoAutoHideChanged(Container: TaqCustomDockingControl); virtual;
procedure DoAutoHideChanging(Value: Boolean; Orientation: TaqHideZoneOrientation); virtual;
procedure StartDragging; virtual;
function UpdateDockingConstraints: Boolean; virtual;
procedure CreateActions; virtual;
procedure RefreshAutoHide;
procedure RecreateAlignList;
procedure CreatePopupMenu; virtual;
function CalcAutoHideOrientation(AControl: TaqCustomDockingControl): TaqHideZoneOrientation; virtual;
function CanInterceptAutoHide(AControl: TaqCustomDockingControl): Boolean; virtual;
class function GetPlacementInfoClass: TaqCustomPlacementInfoClass; virtual;
{$IFDEF VCL}
procedure SetParent(AParent: TWinControl); override;
{$ELSE}
procedure SetParent(const AParent: TWidgetControl); override;
{$ENDIF}
procedure Paint; override;
procedure SetName(const Value: TComponentName); override;
procedure ReadState(Reader: TReader); override;
procedure DefineProperties(Filer: TFiler); override;
procedure Loaded; override;
procedure DblClick; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure DoEnter; override;
procedure DoExit; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
{$IFDEF VCL}
procedure WMContextMenu(var Message: TWMContextMenu); message WM_CONTEXTMENU;
procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
procedure CMMouseEnter(var message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var message: TMessage); message CM_MOUSELEAVE;
procedure CMVisibleChanged(var Message: TMessage); message CM_VISIBLECHANGED;
procedure CMFocusChanged(var Message: TCMFocusChanged); message CM_FOCUSCHANGED;
procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
procedure CreateParams(var Params: TCreateParams); override;
function DesignWndProc(var Message: TMessage): Boolean; override;
{$ELSE}
procedure MouseEnter(AControl: TControl); override;
procedure MouseLeave(AControl: TControl); override;
procedure VisibleChanged; override;
function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; override;
{$ENDIF}
procedure HandleOleDropActivity(Pos: TPoint; Action: TOleDropAction; var Key: TGUID); virtual;
property SplitterSize: Integer read GetSplitterSize;
property ChildList: TList read FChildren;
property InternalVisible: Boolean read GetInternalVisible write SetInternalVisible;
property CaptionMenu: TaqDockMenu read FCaptionMenu;
property NormalSize: TPoint read FNormalSize write FNormalSize;
property LastClickPosition: TPoint read FLastClickPosition write FLastClickPosition;
property ChildrenSizing: Boolean read FChildrenSizing write FChildrenSizing;
property DragDockKind: TaqDragDockKind read FDragDockKind write FDragDockKind;
property Designing: Boolean read FDesigning;
property AutoHideMenuItem: TMenuItem read FAutoHideMenuItem;
property AlignMenuItem: TMenuItem read FAlignMenuItem;
property LastPos: TaqCustomPlacementInfo read FLastPos;
property FirstSplitterItem: TaqCustomDockingControl read FFirstSplitterItem;
property SecondSplitterItem: TaqCustomDockingControl read FSecondSplitterItem;
procedure FinalizeAutoHide; virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure MakeFloating(ARect: TRect; AState: TWindowState = wsNormal);
function IsParentItemOf(AParentItem: TaqCustomDockingControl): Boolean;
function CommonParentWith(AControl: TaqCustomDockingControl): TaqCustomDockingControl;
procedure GetParentItems(AList: TList);
function RemoveFromDocking(AExplicitly: Boolean = False): Boolean;
procedure ForceVisible;
procedure RegisterAction(ActionID: TaqActionID; Action: TaqCustomDockAction);
function UnregisterAction(ActionID: TaqActionID): TaqCustomDockAction;
function ActionIterator: TaqCustomBucketListIterator;
function CanShowCaption: Boolean; virtual;
procedure ReplaceWithNewItem(ANewItem: TaqCustomDockingControl);
function GetItemByPos(const Pos: TPoint): TaqCustomDockingControl;
function DockClass: TaqCustomDockingControlClass;
function IndexOf(AChild: TaqCustomDockingControl): Integer;
procedure UpdateDocking;
procedure FillAlignMenu(AMenu: TMenu);
procedure PerformAutoHide(AOrientation: TaqHideZoneOrientation; AImmediately: Boolean);
procedure RevertAutoHide;
class function GetTypeId: Integer; virtual;
procedure Release; virtual;
procedure MaximizeChild(AChild: TaqCustomDockingControl); virtual;
procedure ArrangeChildren; overload; virtual;
procedure ArrangeChildren(StartIndex, EndIndex: Integer); overload; virtual;
procedure RestoreChildren; virtual;
procedure UpdateControl; virtual;
function InsertChild(AItem: TaqCustomDockingControl;
Order: TaqChildInsertOrder; AChild: TaqCustomDockingControl): Integer; virtual;
function GetParentComponent: TComponent; override;
function HasParent: Boolean; override;
procedure SetFocus; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
property Actions[ActionId: TaqActionId]: TaqCustomDockAction read GetActions;
property ActiveControl: TaqControl read FActiveControl write SetActiveControl;
property Alignment: TaqDockingAlignment read FAlignment write SetAlignment;
property AutoHide: Boolean read GetAutoHide write SetAutoHide;
property AutoHideOrientation: TaqHideZoneOrientation read GetAutoHideOrientation write SetAutoHideOrientation;
property Buttons: TaqDockCaptionButtonsEx read FButtons;
property Caption: string read GetCaption write SetCaption;
property CaptionDblClickAction: TaqActionId read FCaptionDblClickAction write SetCaptionDblClickAction;
property CaptionHeight: Integer read GetCaptionHeight;
property CaptionRect: TRect read GetCaptionRect;
property ChildCount: Integer read GetChildCount;
property Children[Index: Integer]: TaqCustomDockingControl read GetChild; default;
property Color;
property ControlStatus: TaqDockingControlStatus read FControlStatus;
property Data: Pointer read FData write FData;
property DockingKey: TGUID read FDockingKey write SetDockingKey;
property DockingManager: TaqCustomDockingManager read GetDockingManager write SetDockingManager;
property DockState: TaqDockingControlState read GetDockState;
property Font;
property Height: Integer read GetHeight write SetHeight;
property ImageIndex: TImageIndex read FImageIndex write SetImageIndex;
property Index: Integer read GetIndex;
property MinConstraints: TPoint read GetMinConstraints;
property MinHeight: Integer read FMinHeight write SetMinHeight;
property MinWidth: Integer read FMinWidth write SetMinWidth;
property PanelState: TaqDockingPanelState read FPanelState write SetPanelState;
property ParentColor;
property ParentFont;
property ParentItem: TaqCustomDockingControl read FParentItem write SetParentItem;
property PreferredHeight: Integer read GetPreferredHeight write SetPreferredHeight default 200;
property PreferredWidth: Integer read GetPreferredWidth write SetPreferredWidth default 450;
property ScreenBottom: Integer index 3 read GetScreenRectCoord write SetScreenRectCoord;
property ScreenLeft: Integer index 0 read GetScreenRectCoord write SetScreenRectCoord;
property ScreenRect: TRect read FScreenRect write SetScreenRect;
property ScreenRight: Integer index 2 read GetScreenRectCoord write SetScreenRectCoord;
property ScreenTop: Integer index 1 read GetScreenRectCoord write SetScreenRectCoord;
property ShowCaption: TaqBooleanValue read GetShowCaption write SetShowCaption;
property ShowImage: TaqBooleanValue read FShowImage write SetShowImage;
property TreeIndex: Integer read FTreeIndex;
property Visible: Boolean read FVisible write SetVisible;
property Width: Integer read GetWidth write SetWidth;
property OnAutoHideCalc: TaqAutoHideCalcEvent read FOnAutoHideCalc write FOnAutoHideCalc;
property OnAutoHideChanged: TNotifyEvent read FOnAutoHideChanged write FOnAutoHideChanged;
property OnAutoHideChanging: TaqAutoHideChangingEvent read FOnAutoHideChanging write FOnAutoHideChanging;
property OnCaptionPopup: TaqCaptionPopupEvent read FOnCaptionPopup write FOnCaptionPopup;
property OnCloseQuery: TaqCloseQueryEvent read FOnCloseQuery write FOnCloseQuery;
property OnChange: TaqChangeEvent read FOnChange write FOnChange;
property OnChildDock: TaqChildNotifyEvent read FOnChildDock write FOnChildDock;
property OnChildUndock: TaqChildNotifyEvent read FOnChildUndock write FOnChildUndock;
property OnCustomButtonClick: TaqCustomButtonClickEvent read FOnCustomButtonClick write FOnCustomButtonClick;
property OnDockDrop: TaqDockDropEvent read FOnDockDrop write FOnDockDrop;
property OnDockOver: TaqDockOverEvent read FOnDockOver write FOnDockOver;
property OnDragDock: TaqDragDockEvent read FOnDragDock write FOnDragDock;
property OnEndDock: TaqEndDockEvent read FOnEndDock write FOnEndDock;
property OnHide: TNotifyEvent read FOnHide write FOnHide;
property OnHideEx: TaqHideControlEvent read FOnHideEx write FOnHideEx;
property OnNeedHintText: TaqNeedHintTextEvent read FOnNeedHintText write FOnNeedHintText;
property OnPopupMenuCreate: TaqPopupMenuCreateEvent read FOnPopupMenuCreate write FOnPopupMenuCreate;
property OnShow: TNotifyEvent read FOnShow write FOnShow;
property OnStartDock: TaqStartDockEvent read FOnStartDock write FOnStartDock;
property OnUpdateActions: TNotifyEvent read FOnUpdateActions write FOnUpdateActions;
end;
TaqCustomDockingContainer = class(TaqCustomDockingControl)
private
FDefaultCaption: string;
FLastFocusedChild: TaqCustomDockingControl;
FZombie: Boolean;
FCtrlTabControlSwitch: TaqBooleanValue;
procedure SetLastFocusedChild(AChild: TaqCustomDockingControl);
protected
function GetDefaultCaption: string;
{ TaqCustomDockingControl }
function AddChild(AChild: TaqCustomDockingControl): Integer; override;
procedure DeleteChild(AChild: TaqCustomDockingControl); override;
procedure ValidateAlignment(Child: TaqCustomDockingControl;
var AAlignment: TaqDockingAlignment); override;
procedure CheckAlignment(AAlign: TaqDockingAlignment); override;
function CalcBoundsRect: TRect; override;
procedure UpdateScreenBounds; override;
procedure UpdateChildInfo; override;
function GetCaption: string; override;
procedure DoUpdateDockActions; override;
procedure DoChildChanged(Child: TaqCustomDockingControl;
Change: TaqDockingControlChange); override;
function InternalRemoveFromDocking(Explicitly: Boolean = False): Boolean; override;
procedure ChangeFocusedControl(IsForward: Boolean; Sender: TaqCustomDockingControl); override;
function CalcAutoHideOrientation(AControl: TaqCustomDockingControl): TaqHideZoneOrientation; override;
procedure DoCloseQuery(var CanClose: Boolean; Explicit: Boolean = False); override;
procedure DoHideEx; override;
property LastFocusedChild: TaqCustomDockingControl read FLastFocusedChild write SetLastFocusedChild;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Release; override;
{ TaqCustomDockingControl }
procedure UpdateControl; override;
function InsertChild(TargetChild: TaqCustomDockingControl;
Direction: TaqChildInsertOrder; NewChild: TaqCustomDockingControl): Integer; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
procedure SetFocus; override;
property CtrlTabControlSwitch: TaqBooleanValue read FCtrlTabControlSwitch write FCtrlTabControlSwitch;
end;
TaqOwnedObject = class(TObject)
private
FDockingManager: TaqCustomDockingManager;
public
constructor Create(ADockingManager: TaqCustomDockingManager); virtual;
destructor Destroy; override;
property DockingManager: TaqCustomDockingManager read FDockingManager;
end;
TaqCustomSizer = class(TaqOwnedObject)
protected
procedure ResizeChildren(AContainer: TaqCustomDockingContainer); virtual; abstract;
end;
TaqDockingFrameInfo = record
Box: TRect;
Region: TaqHandle;
Info: string;
end;
TaqCustomMover = class(TaqOwnedObject)
private
FDragItem: TaqCustomDockingControl;
FDragging: Boolean;
procedure SetDragItem(const Value: TaqCustomDockingControl);
public
procedure CalcDragInfo(const Coord: TPoint; DockingDisabled: Boolean;
var Info: TaqDockingFrameInfo; var CanDock, CanFloat: Boolean); virtual; abstract;
procedure StartDragging; virtual;
procedure EndDragging(const Coord: TPoint; const Bounds: TRect); virtual;
procedure CancelDragging(const Coord: TPoint); virtual;
property Dragging: Boolean read FDragging;
property DragItem: TaqCustomDockingControl read FDragItem write SetDragItem;
end;
TaqCustomDocker = class(TaqOwnedObject)
private
FManagedTreeItem: TaqCustomDockingControl;
public
procedure DockItem(const P: TPoint; Item: TaqCustomDockingControl); virtual; abstract;
property ManagedItem: TaqCustomDockingControl read FManagedTreeItem write FManagedTreeItem;
end;
TaqDockingSiteState = set of (dssDeleting, dssLoading, dssInitializing);
TaqDockingSiteEvent = procedure (Sender: TaqCustomDockingSite;
Control: TaqCustomDockingControl) of object;
TaqDockingQueryEvent = procedure (Sender: TaqCustomDockingSite;
Control: TaqCustomDockingControl; var Allow: Boolean) of object;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -