⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aqdockingbase.hpp

📁 AutomatedDocking Library 控件源代码修改 适合Delphi 2009 和C++ Builder 20009 使用。 修正汉字不能正确显示问题
💻 HPP
📖 第 1 页 / 共 5 页
字号:
	bool FShowDisabled;
	bool FNeedUpdate;
	Aqdockingutils::TaqApplicationEvents* FEvents;
	int __fastcall RelocateButton(Aqdockingui::TaqDockButtonKind AKind, int APos);
	TaqCustomDockingManager* __fastcall GetDockingManager(void);
	bool __fastcall IsKindAllowed(Aqdockingui::TaqDockButtonKind Kind);
	TaqDockButton* __fastcall GetItem(Aqdockingui::TaqDockButtonKind Kind);
	bool __fastcall IsButtonVisible(Aqdockingui::TaqDockButtonKind Kind);
	void __fastcall DoAppActiveChanged(System::TObject* Sender);
	
protected:
	virtual void __fastcall SetBounds(const Types::TRect &Value);
	virtual Types::TRect __fastcall GetBounds();
	virtual void __fastcall SetVisible(const bool Value);
	virtual void __fastcall UpdateButtons(void);
	virtual void __fastcall InvalidateButtons(void);
	__property TaqCustomDockingManager* DockingManager = {read=GetDockingManager};
	__property TaqCustomDockingControl* Owner = {read=FOwner};
	
public:
	__fastcall virtual TaqDockCaptionButtons(TaqCustomDockingControl* AOwner);
	__fastcall virtual ~TaqDockCaptionButtons(void);
	__property bool Visible = {read=FVisible, write=SetVisible, nodefault};
	__property Types::TRect Bounds = {read=GetBounds, write=SetBounds};
	__property TaqDockButton* Items[Aqdockingui::TaqDockButtonKind Kind] = {read=GetItem/*, default*/};
};


class DELPHICLASS TaqCaptionDockButton;
class DELPHICLASS TaqDockCaptionButtonsEx;
class PASCALIMPLEMENTATION TaqCaptionDockButton : public TaqDockButton
{
	typedef TaqDockButton inherited;
	
private:
	bool FVisibleInt;
	TaqCustomCaptionButtonPlacement FPlacement;
	Aqdockingui::TaqCustomCaptionButtonPosition FPosition;
	Aqdockingui::TaqCustomCaptionButtonStyle FStyle;
	Graphics::TGraphic* FPicture;
	void __fastcall SetPosition(Aqdockingui::TaqCustomCaptionButtonPosition Value);
	void __fastcall SetPlacement(TaqCustomCaptionButtonPlacement Value);
	void __fastcall SetStyle(Aqdockingui::TaqCustomCaptionButtonStyle Value);
	void __fastcall SetButtons(TaqDockCaptionButtonsEx* Value);
	HIDESBASE TaqDockCaptionButtonsEx* __fastcall GetButtons(void);
	bool __fastcall GetVisible(void);
	void __fastcall SetVisibleInt(const bool Value);
	HIDESBASE void __fastcall SetVisible(const bool Value);
	int __fastcall GetIndex(void);
	void __fastcall SetPicture(Graphics::TGraphic* Picture);
	
protected:
	virtual void __fastcall Paint(void);
	__property TaqDockCaptionButtonsEx* Buttons = {read=GetButtons, write=SetButtons};
	
public:
	__fastcall virtual TaqCaptionDockButton(Classes::TComponent* AOwner);
	__fastcall virtual ~TaqCaptionDockButton(void);
	__property Graphics::TGraphic* Picture = {read=FPicture, write=SetPicture};
	__property TaqCustomCaptionButtonPlacement Placement = {read=FPlacement, write=SetPlacement, nodefault};
	__property Aqdockingui::TaqCustomCaptionButtonPosition Position = {read=FPosition, write=SetPosition, nodefault};
	__property Aqdockingui::TaqCustomCaptionButtonStyle Style = {read=FStyle, write=SetStyle, nodefault};
	__property bool Visible = {read=GetVisible, write=SetVisibleInt, nodefault};
	__property int Index = {read=GetIndex, nodefault};
};


class PASCALIMPLEMENTATION TaqDockCaptionButtonsEx : public TaqDockCaptionButtons
{
	typedef TaqDockCaptionButtons inherited;
	
private:
	Types::TRect FBoundsEx;
	Contnrs::TComponentList* FCustomButtons;
	Controls::TWinControl* FCustomButtonsParent;
	Types::TRect FContainerBounds;
	int FDefaultButtons;
	int __fastcall RelocateCustomButton(int Index, int APos, const Types::TRect &DestRegion);
	TaqCaptionDockButton* __fastcall GetButton(int Index);
	int __fastcall GetCustomButtonsCount(void);
	Aqdockingui::TaqCustomCaptionButtonPosition __fastcall GetCustomButtonPosition(Aqdockingui::TaqCustomCaptionButtonPosition DefPosition);
	
protected:
	virtual Types::TRect __fastcall GetBounds();
	virtual void __fastcall SetVisible(const bool Value);
	virtual void __fastcall UpdateButtons(void);
	virtual void __fastcall InvalidateButtons(void);
	void __fastcall Update(void);
	bool __fastcall CustomButtonsParentAssigned(void);
	void __fastcall SetCustomButtonsParent(Controls::TWinControl* Value);
	bool __fastcall IsCustomButtonVisible(int Index);
	void __fastcall SetContainerBounds(const Types::TRect &Value);
	void __fastcall PrepareDefaultButtons(void);
	TaqCaptionDockButton* __fastcall AddDefaultButton(void);
	int __fastcall GetButtonIndex(TaqCaptionDockButton* Button);
	void __fastcall Hide(void);
	Types::TPoint __fastcall GetButtonsBounds(const Types::TPoint &ButtonSize, Aqdockingui::TaqCustomCaptionButtonPosition Position);
	__property Controls::TWinControl* CustomButtonsParent = {read=FCustomButtonsParent, write=SetCustomButtonsParent};
	__property Types::TRect ContainerBounds = {read=FContainerBounds, write=SetContainerBounds};
	
public:
	__fastcall virtual TaqDockCaptionButtonsEx(TaqCustomDockingControl* AOwner);
	__fastcall virtual ~TaqDockCaptionButtonsEx(void);
	int __fastcall AddCustomButton(int Index = 0xffffffff);
	void __fastcall RemoveCustomButton(int Index);
	__property TaqCaptionDockButton* CustomButtons[int Index] = {read=GetButton};
	__property int CustomButtonsCount = {read=GetCustomButtonsCount, nodefault};
};


class DELPHICLASS TaqDockMenuItem;
class PASCALIMPLEMENTATION TaqDockMenuItem : public Menus::TMenuItem
{
	typedef Menus::TMenuItem inherited;
	
private:
	TaqDockActionLink* FActionLink;
	TaqCustomDockAction* __fastcall GetDockAction(void);
	void __fastcall SetDockAction(const TaqCustomDockAction* Value);
	
protected:
	void __fastcall DockActionChange(System::TObject* Sender);
	
public:
	__fastcall virtual TaqDockMenuItem(Classes::TComponent* AOnwer);
	__fastcall virtual ~TaqDockMenuItem(void);
	virtual void __fastcall Click(void);
	__property TaqCustomDockAction* Action = {read=GetDockAction, write=SetDockAction};
};


class DELPHICLASS TaqDockMenu;
class PASCALIMPLEMENTATION TaqDockMenu : public Menus::TPopupMenu
{
	typedef Menus::TPopupMenu inherited;
	
private:
	TaqCustomDockingControl* FOwner;
	
public:
	__fastcall virtual TaqDockMenu(Classes::TComponent* AOwner);
	Menus::TMenuItem* __fastcall AddAction(int ActionId, int Index = 0xffffffff);
	Menus::TMenuItem* __fastcall AddSeparator(int GroupId = 0x0, int Index = 0xffffffff);
	Menus::TMenuItem* __fastcall FindAction(int ActionId);
public:
	/* TPopupMenu.Destroy */ inline __fastcall virtual ~TaqDockMenu(void) { }
	
};


struct TaqSplitterItemInfo
{
	
public:
	Types::TRect BoundsRect;
	Aqdockingui::TaqSplitterOrientation Orientation;
	Controls::TCursor Cursor;
	TaqCustomDockingControl* FirstControl;
	TaqCustomDockingControl* SecondControl;
};


typedef DynamicArray<TaqSplitterItemInfo> TaqSplitterInfo;

class DELPHICLASS TaqCustomPlacementInfo;
class PASCALIMPLEMENTATION TaqCustomPlacementInfo : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	TaqCustomDockingControl* FOwner;
	Types::TPoint FPosition;
	Types::TPoint FSize;
	TaqDockingPanelState FState;
	Types::TPoint FFloatSize;
	Types::TPoint FFloatPos;
	Forms::TWindowState FFloatState;
	Aqdockingui::TaqHideZoneOrientation FLastHideZone;
	
protected:
	virtual void __fastcall LoadFromStream(TaqCustomDockingReader* Reader);
	virtual void __fastcall SaveToStream(TaqCustomDockingWriter* Writer);
	virtual void __fastcall AfterDockingRead(void);
	__property TaqCustomDockingControl* Owner = {read=FOwner};
	__property Types::TPoint Position = {read=FPosition, write=FPosition};
	__property Types::TPoint Size = {read=FSize, write=FSize};
	__property TaqDockingPanelState State = {read=FState, write=FState, nodefault};
	__property Types::TPoint FloatPos = {read=FFloatPos, write=FFloatPos};
	__property Types::TPoint FloatSize = {read=FFloatSize, write=FFloatSize};
	__property Forms::TWindowState FloatState = {read=FFloatState, write=FFloatState, nodefault};
	__property Aqdockingui::TaqHideZoneOrientation LastHideZone = {read=FLastHideZone, write=FLastHideZone, nodefault};
	
public:
	__fastcall virtual TaqCustomPlacementInfo(TaqCustomDockingControl* AOwner);
	virtual void __fastcall SavePosition(void);
	virtual void __fastcall RestorePosition(void);
	virtual bool __fastcall DockToPosition(void);
	virtual void __fastcall UndockToPosition(void);
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TaqCustomPlacementInfo(void) { }
	
};


typedef TMetaClass* TaqCustomPlacementInfoClass;

typedef void __fastcall (__closure *TaqCloseQueryEvent)(TaqCustomDockingControl* Sender, bool &CanClose);

typedef void __fastcall (__closure *TaqChildNotifyEvent)(TaqCustomDockingControl* Sender, int Index, TaqCustomDockingControl* Child);

typedef void __fastcall (__closure *TaqCustomButtonClickEvent)(TaqCustomDockingControl* Sender, int ButtonIndex, Controls::TMouseButton MouseButton);

typedef void __fastcall (__closure *TaqHideControlEvent)(TaqCustomDockingControl* Sender, TaqControlHideAction &HideAction);

typedef void __fastcall (__closure *TaqDockOverEvent)(TaqCustomDockingControl* Sender, TaqCustomDockingControl* Source, const Types::TPoint &Coord, TaqDockOverState State, bool &Allow);

typedef void __fastcall (__closure *TaqDockDropEvent)(TaqCustomDockingControl* Sender, TaqCustomDockingControl* Source, const Types::TPoint &Coord);

typedef void __fastcall (__closure *TaqStartDockEvent)(TaqCustomDockingControl* Sender, Types::TRect &FrameRect, Aqdockingui::TaqFrameSize &FrameSize);

typedef void __fastcall (__closure *TaqEndDockEvent)(TaqCustomDockingControl* Sender, TaqCustomDockingControl* Target, const Types::TPoint &Coord, bool Cancelled);

typedef void __fastcall (__closure *TaqDragDockEvent)(TaqCustomDockingControl* Sender, TaqCustomDockingControl* Target, const Types::TPoint &Coord, unsigned FrameRgn, System::UnicodeString &Info, bool &CanDock, bool &CanFloat);

typedef void __fastcall (__closure *TaqPopupMenuCreateEvent)(TaqCustomDockingControl* Sender, TaqDockMenu* AMenu, unsigned Flags);

typedef void __fastcall (__closure *TaqCaptionPopupEvent)(TaqCustomDockingControl* Sender, TaqDockMenu* AMenu, unsigned Flags, Types::TPoint &ACoord, bool &Allow);

typedef void __fastcall (__closure *TaqChangeEvent)(TaqCustomDockingControl* Sender, TaqDockingControlChange Change);

typedef void __fastcall (__closure *TaqAutoHideChangingEvent)(TaqCustomDockingControl* Sender, bool AutoHide, Aqdockingui::TaqHideZoneOrientation Orientation);

typedef void __fastcall (__closure *TaqAutoHideCalcEvent)(TaqCustomDockingControl* Sender, TaqCustomDockingControl* Control, Aqdockingui::TaqHideZoneOrientation &Orientation);

typedef void __fastcall (__closure *TaqNeedHintTextEvent)(TaqCustomDockingControl* Sender, System::UnicodeString &HintText);

class DELPHICLASS TaqCustomDockingSite;
class PASCALIMPLEMENTATION TaqCustomDockingControl : public Aqdockingutils::TaqCustomControl
{
	typedef Aqdockingutils::TaqCustomControl inherited;
	
public:
	TaqCustomDockingControl* operator[](int Index) { return Children[Index]; }
	
private:
	TaqCustomDockingManager* FDockingManager;
	Classes::TList* FChildren;
	int FTreeIndex;
	TaqCustomDockingControl* FParentItem;
	int FPositionToAdd;
	Types::TPoint FLastClickPosition;
	bool FDesigning;
	System::UnicodeString FCaption;
	void *FData;
	Types::TRect FScreenRect;
	TaqCustomPlacementInfo* FLastPos;
	Types::TPoint FNormalSize;
	bool FDefShowCaption;
	TaqBooleanValue FShowCaption;
	#pragma pack(push,1)
	GUID FDockingKey;
	#pragma pack(pop)
	Aqdockingutils::TaqIntegerList* FActions;
	TaqDockCaptionButtonsEx* FButtons;
	int FDefMinWidth;
	int FDefMinHeight;
	TaqDockMenu* FCaptionMenu;
	Menus::TMenuItem* FAutoHideMenuItem;
	Menus::TMenuItem* FAlignMenuItem;
	bool FChildrenSizing;
	TaqDockingPanelState FPanelState;
	Imglist::TImageIndex FImageIndex;
	TaqDragDockKind FDragDockKind;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -