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

📄 suiskinengine.hpp

📁 SUISkin 是为Delphi和C++Builder开发的最易用的界面增强VCL组件包。它能完全自动的为您的应用程序添加支持换肤功能
💻 HPP
📖 第 1 页 / 共 2 页
字号:
// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'SUISkinEngine.pas' rev: 6.00

#ifndef SUISkinEngineHPP
#define SUISkinEngineHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ToolWin.hpp>	// Pascal unit
#include <SUISkinUtils.hpp>	// Pascal unit
#include <StdCtrls.hpp>	// Pascal unit
#include <CommCtrl.hpp>	// Pascal unit
#include <Mask.hpp>	// Pascal unit
#include <AppEvnts.hpp>	// Pascal unit
#include <ExtCtrls.hpp>	// Pascal unit
#include <TypInfo.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <ComCtrls.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <Math.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Suiskinengine
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TsuiSkinEngine;
class DELPHICLASS TsuiSkinWindow;
class PASCALIMPLEMENTATION TsuiSkinWindow : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
protected:
	TsuiSkinEngine* m_Engine;
	bool m_TitleVisible;
	bool m_BorderVisible;
	bool m_Destroying;
	bool m_Creating;
	int m_ClientHeight;
	int m_ClientWidth;
	bool m_ForDialog;
	Classes::TList* m_SkinCtrlList;
	bool m_CanMax;
	bool m_DrawMax;
	bool m_DrawMin;
	bool m_DrawClose;
	int m_InButtons;
	bool m_NCMouseDown;
	bool m_FormActive;
	bool m_Active;
	bool m_SavedWndStyle;
	bool m_MaxFlag;
	void __fastcall SetActive(const bool Value);
	int __fastcall GetWidth(void);
	int __fastcall GetHeight(void);
	AnsiString __fastcall GetCaption();
	void __fastcall SetTitleVisible(const bool Value);
	int __fastcall GetTitleHeight(void);
	void __fastcall SetBorderVisible(const bool Value);
	void __fastcall NewWndProc(Messages::TMessage &Msg);
	void __fastcall DoMax(void);
	void __fastcall DoMin(void);
	void __fastcall DoClose(void);
	void __fastcall DoSysMenu(void)/* overload */;
	void __fastcall DoSysMenu(const Types::TPoint &P)/* overload */;
	void __fastcall DoHelp(void);
	void __fastcall SaveWndStyle(void);
	int m_OldNCHeight;
	void __fastcall RegionWindow(void);
	void __fastcall PaintTitle(void);
	virtual void __fastcall ActiveChanged(void) = 0 ;
	virtual void __fastcall CallDefaultWndProc(Messages::TMessage &Msg) = 0 ;
	virtual void __fastcall DoSaveWndStyle(void);
	virtual void __fastcall InitControls(void) = 0 ;
	virtual void __fastcall UnInitControls(void) = 0 ;
	virtual bool __fastcall CanRegionWindow(void);
	virtual int __fastcall GetMenuHeight(void);
	virtual unsigned __fastcall GetHasFormIcon(void);
	virtual bool __fastcall GetDrawHelpButton(void);
	virtual bool __fastcall GetIsMDIForm(void);
	virtual bool __fastcall GetIsMDIChild(void);
	virtual bool __fastcall GetIsDialog(void);
	virtual bool __fastcall DrawControlBox(void);
	virtual bool __fastcall DrawCloseButton(void);
	virtual bool __fastcall DrawMaxButton(void);
	virtual bool __fastcall DrawMinButton(void);
	virtual bool __fastcall CanSaveWndStyle(void);
	virtual unsigned __fastcall GetHandle(void) = 0 ;
	virtual bool __fastcall BeforeDefaultWndProc(Messages::TMessage &Msg);
	virtual void __fastcall AfterDefaultWndProc(Messages::TMessage &Msg);
	virtual void __fastcall Init(unsigned hWnd) = 0 ;
	virtual void __fastcall Uninit(void) = 0 ;
	
public:
	__fastcall TsuiSkinWindow(unsigned hWnd, TsuiSkinEngine* Engine, bool ForDialog);
	__fastcall virtual ~TsuiSkinWindow(void);
	__property bool TitleVisible = {read=m_TitleVisible, write=SetTitleVisible, nodefault};
	__property bool BorderVisible = {read=m_BorderVisible, write=SetBorderVisible, nodefault};
	__property int TitleHeight = {read=GetTitleHeight, nodefault};
	__property int MenuHeight = {read=GetMenuHeight, nodefault};
};


class DELPHICLASS TsuiSkinCollection;
class DELPHICLASS TsuiSkinCollectionItem;
class PASCALIMPLEMENTATION TsuiSkinCollection : public Classes::TCollection 
{
	typedef Classes::TCollection inherited;
	
private:
	TsuiSkinEngine* m_SkinEngine;
	
protected:
	HIDESBASE TsuiSkinCollectionItem* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TsuiSkinCollectionItem* Value);
	virtual void __fastcall Update(Classes::TCollectionItem* Item);
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TsuiSkinCollection(TsuiSkinEngine* SkinEngine);
	__fastcall virtual ~TsuiSkinCollection(void);
	HIDESBASE TsuiSkinCollectionItem* __fastcall Add(void);
	__property TsuiSkinCollectionItem* Items[int Index] = {read=GetItem, write=SetItem};
};


class PASCALIMPLEMENTATION TsuiSkinEngine : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	bool m_Active;
	Classes::TList* m_WndList;
	Suiskinutils::TsuiSkinReader* m_SkinReader;
	Suiskinutils::TsuiSkinReader* m_MainReader;
	AnsiString m_SkinFile;
	Menus::TPopupMenu* m_InternalSysMenu;
	Menus::TPopupMenu* m_CustomSysMenu;
	TsuiSkinWindow* m_PopSysMenuWnd;
	Suiskinutils::TsuiSkinScrollBtnRes* m_ScrollBtnRes;
	Suiskinutils::TsuiSkinTabRes* m_TabRes;
	bool m_BuiltIn;
	bool m_SkinDialogs;
	bool m_SkinAllForms;
	TsuiSkinCollection* m_AdditionalBuiltInSkins;
	Classes::TNotifyEvent m_OnSkinChanged;
	unsigned m_Brush;
	bool m_RemovingWnd;
	Graphics::TBitmap* m_BorderBuf;
	int m_FormCaptionPosX;
	int m_FormCaptionPosY;
	int m_TitleHeight;
	int m_BorderWidth;
	int m_BottomBorderWidth;
	Graphics::TColor m_FormCaptionFontColor;
	AnsiString m_ResSysMenuMin;
	AnsiString m_ResSysMenuMax;
	AnsiString m_ResSysMenuClose;
	int m_DisabledTag;
	bool m_DrawScrollBar;
	void __fastcall SetActive(const bool Value);
	bool __fastcall GetRealActive(void);
	bool __fastcall GetReady(void);
	Graphics::TColor __fastcall GetMenuBarColor(void);
	Graphics::TColor __fastcall GetTitleFontColor(void);
	AnsiString __fastcall GetVersion();
	void __fastcall SetBuiltIn(const bool Value);
	void __fastcall SetVersion(const AnsiString Value);
	void __fastcall SetReady(const bool Value);
	void __fastcall SetSkinFile(const AnsiString Value);
	Menus::TPopupMenu* __fastcall GetSysMenu(void);
	void __fastcall SetSysMenu(const Menus::TPopupMenu* Value);
	void __fastcall SetResSysMenuClose(const AnsiString Value);
	void __fastcall SetResSysMenuMax(const AnsiString Value);
	void __fastcall SetResSysMenuMin(const AnsiString Value);
	void __fastcall SetFormCaptionFontColor(const Graphics::TColor Value);
	void __fastcall SetDrawScrollBar(const bool Value);
	void __fastcall SetAdditionalBuiltInSkins(const TsuiSkinCollection* Value);
	void __fastcall SetSkinAllForms(const bool Value);
	int __fastcall GetSkinnedFormsCount(void);
	void __fastcall DoAddWnd(unsigned hWnd, bool ForDialog);
	void __fastcall DoRemoveWnd(unsigned hWnd);
	void __fastcall ReadSkinData(Classes::TStream* Stream);
	void __fastcall WriteSkinData(Classes::TStream* Stream);
	void __fastcall OnInternalSkinChanged(System::TObject* Sender);
	void __fastcall OnMin(System::TObject* Sender);
	void __fastcall OnMax(System::TObject* Sender);
	void __fastcall OnClose(System::TObject* Sender);
	void __fastcall OnSysMenuPopup(System::TObject* Sender);
	void __fastcall InitMenu(Menus::TMenu* Menu);
	void __fastcall UnInitMenu(Menus::TMenu* Menu);
	void __fastcall InitMenuItem(Menus::TMenuItem* MenuItem);
	void __fastcall UnInitMenuItem(Menus::TMenuItem* MenuItem);
	void __fastcall DrawPopMenuItem(System::TObject* Sender, Graphics::TCanvas* ACanvas, const Types::TRect &ARect, bool Selected);
	void __fastcall MeasurePopMenuItem(System::TObject* Sender, Graphics::TCanvas* ACanvas, int &Width, int &Height);
	void __fastcall SetFormCaptionPosX(const int Value);
	void __fastcall SetFormCaptionPosY(const int Value);
	
protected:
	virtual void __fastcall Loaded(void);
	virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	
public:
	__fastcall virtual TsuiSkinEngine(Classes::TComponent* AOwner);
	__fastcall virtual ~TsuiSkinEngine(void);
	bool __fastcall GetBitmap(AnsiString Key, const Graphics::TBitmap* Buf, int SpitCount = 0x0, int SpitIndex = 0x0);
	Graphics::TColor __fastcall GetColor(AnsiString Key);
	bool __fastcall GetBool(AnsiString Key);
	int __fastcall GetInteger(AnsiString Key);
	void __fastcall SetColor(AnsiString Key, Graphics::TColor Value);
	void __fastcall SetBool(AnsiString Key, bool Value);
	void __fastcall SetInteger(AnsiString Key, int Value);
	Graphics::TColor __fastcall GetFormColor(void);
	void __fastcall BeginUpdateControl(Controls::TControl* Ctrl);
	void __fastcall EndUpdateControl(Controls::TControl* Ctrl);
	void __fastcall AddControl(Controls::TControl* Ctrl);
	void __fastcall RemoveControl(Controls::TControl* Ctrl);
	void __fastcall UpdateTopMenu(void)/* overload */;
	void __fastcall UpdateTopMenu(Forms::TCustomForm* Form)/* overload */;
	void __fastcall AssignMainMenu(Menus::TMainMenu* Menu)/* overload */;
	void __fastcall AssignMainMenu(Forms::TCustomForm* Form, Menus::TMainMenu* Menu)/* overload */;
	void __fastcall AddForm(Forms::TCustomForm* Form);
	void __fastcall AddForm_BCB(Forms::TCustomForm* Form);
	void __fastcall RemoveForm(Forms::TCustomForm* Form);
	void __fastcall ApplyAdditionalBuiltInSkins(int Index);
	void __fastcall ApplyMainBuiltInSkin(void);
	void __fastcall AddWindow(unsigned hWnd);
	void __fastcall RemoveWindow(unsigned hWnd);
	void __fastcall DoSkinAllForms(void);
	void __fastcall UnskinOtherForms(void);
	__property bool RealActive = {read=GetRealActive, nodefault};
	__property int TitleHeight = {read=m_TitleHeight, nodefault};
	__property int BorderWidth = {read=m_BorderWidth, nodefault};
	__property Graphics::TColor FormCaptionFontColor = {read=m_FormCaptionFontColor, write=SetFormCaptionFontColor, nodefault};
	__property Graphics::TColor MenuBarColor = {read=GetMenuBarColor, nodefault};
	__property Menus::TPopupMenu* SysMenu = {read=GetSysMenu, write=SetSysMenu};
	__property Suiskinutils::TsuiSkinScrollBtnRes* ScrollBtnRes = {read=m_ScrollBtnRes};
	__property Suiskinutils::TsuiSkinTabRes* TabRes = {read=m_TabRes};
	__property int SkinnedFormsCount = {read=GetSkinnedFormsCount, nodefault};
	__property int FormCaptionPosX = {read=m_FormCaptionPosX, write=SetFormCaptionPosX, nodefault};
	__property int FormCaptionPosY = {read=m_FormCaptionPosY, write=SetFormCaptionPosY, nodefault};
	
__published:
	__property bool Active = {read=m_Active, write=SetActive, nodefault};
	__property bool Ready = {read=GetReady, write=SetReady, nodefault};
	__property AnsiString SkinFile = {read=m_SkinFile, write=SetSkinFile};
	__property AnsiString ResSysMenuMin = {read=m_ResSysMenuMin, write=SetResSysMenuMin};
	__property AnsiString ResSysMenuMax = {read=m_ResSysMenuMax, write=SetResSysMenuMax};
	__property AnsiString ResSysMenuClose = {read=m_ResSysMenuClose, write=SetResSysMenuClose};
	__property int DisabledTag = {read=m_DisabledTag, write=m_DisabledTag, nodefault};
	__property bool DrawScrollBar = {read=m_DrawScrollBar, write=SetDrawScrollBar, nodefault};
	__property AnsiString Version = {read=GetVersion, write=SetVersion};
	__property bool BuiltIn = {read=m_BuiltIn, write=SetBuiltIn, nodefault};
	__property bool SkinDialogs = {read=m_SkinDialogs, write=m_SkinDialogs, nodefault};
	__property bool SkinAllForms = {read=m_SkinAllForms, write=SetSkinAllForms, nodefault};
	__property TsuiSkinCollection* AdditionalBuiltInSkins = {read=m_AdditionalBuiltInSkins, write=SetAdditionalBuiltInSkins};
	__property Classes::TNotifyEvent OnSkinChanged = {read=m_OnSkinChanged, write=m_OnSkinChanged};
};


class DELPHICLASS TsuiSkinMenuBar;
class DELPHICLASS TsuiSkinWindowVCL;
class DELPHICLASS TsuiSkinMenuBarControlButton;
class DELPHICLASS TsuiSkinControlVCL;
class PASCALIMPLEMENTATION TsuiSkinWindowVCL : public TsuiSkinWindow 
{
	typedef TsuiSkinWindow inherited;
	
private:
	Forms::TForm* m_Form;
	Classes::TWndMethod m_OldWndProc;
	void *m_OldClientWndProc;
	Menus::TMainMenu* m_Menu;
	Menus::TMainMenu* m_MDIMenu;
	Menus::TMainMenu* m_RealMenu;
	TsuiSkinMenuBar* m_MenuBar;
	Graphics::TColor m_OldColor;
	TsuiSkinMenuBarControlButton* m_ControlBtns[3];
	Appevnts::TApplicationEvents* m_AppEvent;
	bool m_SkinAlled;
	bool m_SelfChanging;
	bool m_Moved;
	bool m_MinWidth;
	bool m_MinHeight;
	void __fastcall NewClientWndProc(Messages::TMessage &Msg);
	void __fastcall ReAssignClientWndProc(void);
	void __fastcall OnControlButtonClick(System::TObject* Sender);
	void __fastcall OnApplicationMessage(tagMSG &Msg, bool &Handled);
	void __fastcall DrawMenuButton(Comctrls::TToolBar* Sender, Comctrls::TToolButton* Button, Comctrls::TCustomDrawState State, bool &DefaultDraw);
	void __fastcall ProcessKeyPress(Messages::TMessage &Msg);
	void __fastcall Cascade(void);
	void __fastcall Tile(bool Horizontal);
	void __fastcall RebuildMainMenu(bool Force);
	void __fastcall ShowMDIControlBtn(void);
	void __fastcall HideMDIControlBtn(void);
	void __fastcall ReplaceMDIControlBtn(void);
	void __fastcall UpdateMDITopMenu(Forms::TForm* Form, Menus::TMainMenu* Menu);
	void __fastcall SetConstraints(void);
	void __fastcall CancelConstraints(void);
	void __fastcall InitMenus(void);
	void __fastcall UnInitMenus(void);
	void __fastcall InitControl(Controls::TControl* WinCtrl);
	void __fastcall UnInitControl(Controls::TControl* WinCtrl)/* overload */;
	void __fastcall UnInitControl(TsuiSkinControlVCL* WinCtrl)/* overload */;
	
protected:
	virtual void __fastcall DoSaveWndStyle(void);
	virtual void __fastcall ActiveChanged(void);
	virtual bool __fastcall CanRegionWindow(void);
	virtual int __fastcall GetMenuHeight(void);
	virtual unsigned __fastcall GetHasFormIcon(void);
	virtual bool __fastcall GetDrawHelpButton(void);
	virtual bool __fastcall GetIsMDIForm(void);
	virtual bool __fastcall GetIsMDIChild(void);
	virtual bool __fastcall GetIsDialog(void);
	virtual bool __fastcall CanSaveWndStyle(void);
	virtual bool __fastcall DrawControlBox(void);
	virtual bool __fastcall DrawCloseButton(void);
	virtual bool __fastcall DrawMinButton(void);
	virtual bool __fastcall DrawMaxButton(void);
	virtual unsigned __fastcall GetHandle(void);
	virtual void __fastcall Init(unsigned hWnd);
	virtual void __fastcall Uninit(void);
	virtual void __fastcall InitControls(void);
	virtual void __fastcall UnInitControls(void);
	virtual void __fastcall CallDefaultWndProc(Messages::TMessage &Msg);
	virtual void __fastcall AfterDefaultWndProc(Messages::TMessage &Msg);
	virtual bool __fastcall BeforeDefaultWndProc(Messages::TMessage &Msg);
public:
	#pragma option push -w-inl
	/* TsuiSkinWindow.Create */ inline __fastcall TsuiSkinWindowVCL(unsigned hWnd, TsuiSkinEngine* Engine, bool ForDialog) : TsuiSkinWindow(hWnd, Engine, ForDialog) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TsuiSkinWindow.Destroy */ inline __fastcall virtual ~TsuiSkinWindowVCL(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TsuiSkinMenuBar : public Comctrls::TToolBar 
{
	typedef Comctrls::TToolBar inherited;
	
private:
	TsuiSkinWindowVCL* m_SkinWnd;
	void __fastcall OnMenuPopup(System::TObject* Sender);
	
protected:
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
public:
	#pragma option push -w-inl
	/* TToolBar.Create */ inline __fastcall virtual TsuiSkinMenuBar(Classes::TComponent* AOwner) : Comctrls::TToolBar(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TToolBar.Destroy */ inline __fastcall virtual ~TsuiSkinMenuBar(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl

⌨️ 快捷键说明

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