advpreviewmenu.hpp

来自「TMSPack基本上涵盖了Delphi所有的基础控件」· HPP 代码 · 共 1,079 行 · 第 1/4 页

HPP
1,079
字号
	void __fastcall ShowSubMenuItemShortCutHint(int Index);
	void __fastcall HideSubMenuItemShortCutHint(int Index);
	void __fastcall InvalidateTopFrame(void);
	void __fastcall InvalidateLeftFrame(void);
	void __fastcall InvalidateRightFrame(void);
	Types::TRect __fastcall GetTopFrameRect();
	Types::TRect __fastcall GetItemFramesRect();
	Types::TRect __fastcall GetLeftFrameRect();
	Types::TRect __fastcall GetRightFrameRect();
	Types::TRect __fastcall GetItemRect(int Index);
	Types::TRect __fastcall GetItemDropDownRect(int Index);
	int __fastcall GetItemHeight(void);
	void __fastcall GetMaxItemSize(int &AHeight, int &AWidth);
	int __fastcall RealIndexToVisItemIndex(int Index);
	int __fastcall VisIndexToRealItemIndex(int Index);
	int __fastcall VisibleItemsCount(void);
	Types::TRect __fastcall GetUpScrollBtnRect();
	Types::TRect __fastcall GetDownScrollBtnRect();
	Types::TRect __fastcall GetSubMenuCaptionRect();
	Types::TRect __fastcall GetSubMenuItemRect(int Index);
	int __fastcall GetSubMenuItemHeight(void);
	void __fastcall GetSubMenuMaxItemSize(int Index, int &AHeight, int &AWidth, TAdvPreviewSubMenuItems* SubMenuItems = (TAdvPreviewSubMenuItems*)(0x0))/* overload */;
	void __fastcall GetSubMenuMaxItemSize(int &AHeight, int &AWidth)/* overload */;
	void __fastcall CalculateSubMenuItemSize(void);
	int __fastcall RealIndexToVisSubItemIndex(int Index);
	int __fastcall VisIndexToRealSubItemIndex(int Index);
	int __fastcall VisibleSubItemCount(int ItemIndex);
	void __fastcall InitializeScroller(void);
	void __fastcall UpdateScroller(void);
	void __fastcall ChangeTopSubMenuItemTo(int Value);
	int __fastcall ScrollSubMenu(int Value);
	void __fastcall InvalidateSubMenuScroller(void);
	void __fastcall SubMenuScrollUpClick(void);
	void __fastcall SubMenuScrollDownClick(void);
	void __fastcall SubMenuScrollInView(int Index);
	void __fastcall SetSelectedItem(int Index);
	__property int SelectedItem = {read=FSelectedItem, nodefault};
	void __fastcall SetSelectedSubItem(int Index);
	__property int SelectedSubItem = {read=FSelectedSubItem, nodefault};
	__property int ItemHot = {read=FItemHot, write=SetItemHot, nodefault};
	__property int SubMenuItem = {read=FSubMenuItem, write=SetSubMenuItem, nodefault};
	__property int SubMenuItemHot = {read=FSubMenuItemHot, write=SetSubMenuItemHot, nodefault};
	__property int ButtonHot = {read=FButtonHot, write=SetButtonHot, nodefault};
	
public:
	__fastcall virtual TAdvPreviewMenuPanel(Classes::TComponent* AOwner);
	__fastcall virtual ~TAdvPreviewMenuPanel(void);
	virtual void __fastcall InitializeAndUpdate(void);
	
__published:
	__property TAdvPreviewMenu* AdvPreviewMenu = {read=FAdvPreviewMenu, write=FAdvPreviewMenu};
	__property Advhintinfo::TAdvHintInfo* OfficeHint = {read=FOfficeHint, write=SetOfficeHint};
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TAdvPreviewMenuPanel(HWND ParentWindow) : TAdvCustomPreviewMenuPanel(ParentWindow) { }
	#pragma option pop
	
};


typedef void __fastcall (__closure *TButtonClickEvent)(System::TObject* Sender, int ButtonIndex);

typedef void __fastcall (__closure *TMenuItemClickEvent)(System::TObject* Sender, int ItemIndex);

typedef void __fastcall (__closure *TSubMenuItemClickEvent)(System::TObject* Sender, int ItemIndex, int SubMenuItemIndex);

typedef void __fastcall (__closure *TMenuDrawItemEvent)(System::TObject* Sender, Graphics::TCanvas* Canvas, int ItemIndex, const Types::TRect &R);

typedef void __fastcall (__closure *TSubMenuDrawItemEvent)(System::TObject* Sender, Graphics::TCanvas* Canvas, int ItemIndex, int SubMenuItemIndex, const Types::TRect &R);

typedef void __fastcall (__closure *TDrawButtonFrameTopEvent)(System::TObject* Sender, Graphics::TCanvas* Canvas, const Types::TRect &R);

class PASCALIMPLEMENTATION TAdvPreviewMenu : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	Classes::TComponent* FOwner;
	Controls::TImageList* FButtonImages;
	TAdvPreviewMenuItems* FMenuItems;
	TAdvCustomPreviewMenuStyler* FStyler;
	TAdvCustomPreviewMenuStyler* FInternalStyler;
	TAdvCustomPreviewMenuStyler* FCurrentStyler;
	int FMenuSpacing;
	TPreviewMenuWindow* FPreviewMenuWindow;
	TAdvPreviewMenuPanel* FAdvPreviewMenuPanel;
	TButtonCollection* FButtons;
	int FButtonSpacing;
	int FButtonHeight;
	int FTopFrameHeight;
	int FOffSetX;
	Imglist::TCustomImageList* FMenuImages;
	Imglist::TCustomImageList* FSubMenuImages;
	bool FShowHint;
	TButtonClickEvent FOnButtonClick;
	TMenuItemClickEvent FOnMenuItemClick;
	TSubMenuItemClickEvent FOnSubMenuItemClick;
	TMenuDrawItemEvent FOnMenuDrawItem;
	TSubMenuDrawItemEvent FOnSubMenuDrawItem;
	int FSubMenuItemSpacing;
	AnsiString FSubMenuCaption;
	TAdvPreviewSubMenuItems* FSubMenuItems;
	TDrawButtonFrameTopEvent FOnDrawButtonFrameTop;
	Classes::TNotifyEvent FOnPreviewHide;
	int FSubMenuWidth;
	int FMenuWidth;
	WideString FWideSubMenuCaption;
	bool FMenuShowing;
	int FSubMenuItemHeight;
	Advgdip::TAntiAlias FAntiAlias;
	void __fastcall OnPreviewMenuWindowHide(System::TObject* Sender);
	void __fastcall OnPreviewMenuWindowClose(System::TObject* Sender, Forms::TCloseAction &Action);
	void __fastcall SetButtonImages(const Controls::TImageList* Value);
	void __fastcall SetMenuItems(const TAdvPreviewMenuItems* Value);
	void __fastcall SetStyler(const TAdvCustomPreviewMenuStyler* Value);
	AnsiString __fastcall GetVersion();
	void __fastcall SetVersion(const AnsiString Value);
	void __fastcall SetButtons(const TButtonCollection* Value);
	int __fastcall GetBottomFrameHeight(void);
	void __fastcall SetMenuImages(const Imglist::TCustomImageList* Value);
	void __fastcall SetSubMenuImages(const Imglist::TCustomImageList* Value);
	void __fastcall SetSubMenuItems(const TAdvPreviewSubMenuItems* Value);
	bool __fastcall GetVisible(void);
	void __fastcall SetSubMenuItemHeight(const int Value);
	
protected:
	bool FEditorCreated;
	virtual void __fastcall Loaded(void);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	void __fastcall InvalidateTopFrame(void);
	void __fastcall InvalidateMenu(void);
	void __fastcall DrawMenuItem(int Index);
	void __fastcall InitializeMenu(void);
	void __fastcall GetMenuSize(int &W, int &H);
	__property int TopFrameHeight = {read=FTopFrameHeight, nodefault};
	__property int BottomFrameHeight = {read=GetBottomFrameHeight, nodefault};
	__property int OffSetX = {read=FOffSetX, nodefault};
	__property bool Visible = {read=GetVisible, nodefault};
	__property Classes::TNotifyEvent OnPreviewHide = {read=FOnPreviewHide, write=FOnPreviewHide};
	
public:
	__fastcall virtual TAdvPreviewMenu(Classes::TComponent* AOwner);
	__fastcall virtual ~TAdvPreviewMenu(void);
	int __fastcall GetVersionNr(void);
	void __fastcall ShowMenu(int X, int Y);
	void __fastcall HideMenu(void);
	void __fastcall ShowShortCutHints(void);
	void __fastcall HideShortCutHints(void);
	__property TDrawButtonFrameTopEvent OnDrawButtonFrameTop = {read=FOnDrawButtonFrameTop, write=FOnDrawButtonFrameTop};
	
__published:
	__property Advgdip::TAntiAlias AntiAlias = {read=FAntiAlias, write=FAntiAlias, default=1};
	__property TButtonCollection* Buttons = {read=FButtons, write=SetButtons};
	__property int ButtonSpacing = {read=FButtonSpacing, write=FButtonSpacing, nodefault};
	__property int ButtonHeight = {read=FButtonHeight, write=FButtonHeight, nodefault};
	__property TAdvPreviewMenuItems* MenuItems = {read=FMenuItems, write=SetMenuItems};
	__property int MenuSpacing = {read=FMenuSpacing, write=FMenuSpacing, nodefault};
	__property Imglist::TCustomImageList* MenuImages = {read=FMenuImages, write=SetMenuImages};
	__property int MenuWidth = {read=FMenuWidth, write=FMenuWidth, nodefault};
	__property int SubMenuWidth = {read=FSubMenuWidth, write=FSubMenuWidth, nodefault};
	__property TAdvPreviewSubMenuItems* SubMenuItems = {read=FSubMenuItems, write=SetSubMenuItems};
	__property AnsiString SubMenuCaption = {read=FSubMenuCaption, write=FSubMenuCaption};
	__property int SubMenuItemHeight = {read=FSubMenuItemHeight, write=SetSubMenuItemHeight, default=0};
	__property WideString WideSubMenuCaption = {read=FWideSubMenuCaption, write=FWideSubMenuCaption};
	__property int SubMenuItemSpacing = {read=FSubMenuItemSpacing, write=FSubMenuItemSpacing, nodefault};
	__property Imglist::TCustomImageList* SubMenuImages = {read=FSubMenuImages, write=SetSubMenuImages};
	__property Controls::TImageList* ButtonImages = {read=FButtonImages, write=SetButtonImages};
	__property TAdvCustomPreviewMenuStyler* Styler = {read=FStyler, write=SetStyler};
	__property bool ShowHint = {read=FShowHint, write=FShowHint, nodefault};
	__property AnsiString Version = {read=GetVersion, write=SetVersion};
	__property TButtonClickEvent OnButtonClick = {read=FOnButtonClick, write=FOnButtonClick};
	__property TMenuItemClickEvent OnMenuItemClick = {read=FOnMenuItemClick, write=FOnMenuItemClick};
	__property TSubMenuItemClickEvent OnSubMenuItemClick = {read=FOnSubMenuItemClick, write=FOnSubMenuItemClick};
	__property TMenuDrawItemEvent OnMenuDrawItem = {read=FOnMenuDrawItem, write=FOnMenuDrawItem};
	__property TSubMenuDrawItemEvent OnSubMenuDrawItem = {read=FOnSubMenuDrawItem, write=FOnSubMenuDrawItem};
};


class PASCALIMPLEMENTATION TButtonCollection : public Classes::TCollection 
{
	typedef Classes::TCollection inherited;
	
public:
	TButtonCollectionItem* operator[](int Index) { return Items[Index]; }
	
private:
	Classes::TPersistent* FOwner;
	TAdvPreviewMenu* FPreviewMenu;
	HIDESBASE TButtonCollectionItem* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, const TButtonCollectionItem* Value);
	
protected:
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TButtonCollection(Classes::TPersistent* AOwner);
	__property TButtonCollectionItem* Items[int Index] = {read=GetItem, write=SetItem/*, default*/};
	HIDESBASE TButtonCollectionItem* __fastcall Add(void);
	HIDESBASE void __fastcall Delete(int Index);
	HIDESBASE TButtonCollectionItem* __fastcall Insert(int Index);
public:
	#pragma option push -w-inl
	/* TCollection.Destroy */ inline __fastcall virtual ~TButtonCollection(void) { }
	#pragma option pop
	
};


class DELPHICLASS TSubItemActionLink;
class PASCALIMPLEMENTATION TSubItemActionLink : public Actnlist::TActionLink 
{
	typedef Actnlist::TActionLink inherited;
	
protected:
	TAdvPreviewSubMenuItem* FClient;
	virtual void __fastcall AssignClient(System::TObject* AClient);
	virtual bool __fastcall IsCaptionLinked(void);
	virtual bool __fastcall IsCheckedLinked(void);
	virtual bool __fastcall IsEnabledLinked(void);
	virtual bool __fastcall IsHelpContextLinked(void);
	virtual bool __fastcall IsHintLinked(void);
	virtual bool __fastcall IsGroupIndexLinked(void);
	virtual bool __fastcall IsImageIndexLinked(void);
	virtual bool __fastcall IsShortCutLinked(void);
	virtual bool __fastcall IsVisibleLinked(void);
	virtual bool __fastcall IsOnExecuteLinked(void);
	virtual void __fastcall SetCaption(const AnsiString Value);
	virtual void __fastcall SetEnabled(bool Value);
	virtual void __fastcall SetImageIndex(int Value);
	virtual void __fastcall SetVisible(bool Value);
	virtual void __fastcall SetOnExecute(Classes::TNotifyEvent Value);
public:
	#pragma option push -w-inl
	/* TBasicActionLink.Create */ inline __fastcall virtual TSubItemActionLink(System::TObject* AClient) : Actnlist::TActionLink(AClient) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TBasicActionLink.Destroy */ inline __fastcall virtual ~TSubItemActionLink(void) { }
	#pragma option pop
	
};


typedef TMetaClass* TSubItemActionLinkClass;

class PASCALIMPLEMENTATION TAdvPreviewSubMenuItem : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
private:
	AnsiString FTitle;
	int FImageIndex;
	bool FEnabled;
	Gdipicture::TGDIPPicture* FIPicture;
	Gdipicture::TGDIPPicture* FIDisabledPicture;
	Advhintinfo::TAdvHintInfo* FOfficeHint;
	Classes::TStringList* FNotes;
	Menus::TPopupMenu* FSubMenu;
	AnsiString FShortCutHint;
	bool FShortCutHintShowing;
	Classes::TNotifyEvent FOnClick;
	bool FVisible;
	TSubItemActionLink* FActionLink;
	int FTag;
	WideString FWideTitle;
	WideString FWideNotes;
	bool FSeparator;
	void __fastcall PictureChanged(System::TObject* Sender);
	void __fastcall SetTitle(const AnsiString Value);
	void __fastcall SetImageIndex(const int Value);
	void __fastcall SetEnabled(const bool Value);

⌨️ 快捷键说明

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