winskindata.hpp
上传用户:xjwsee
上传日期:2008-08-02
资源大小:796k
文件大小:17k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 2005 by Borland Software Corporation
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'Winskindata.pas' rev: 10.00
  5. #ifndef WinskindataHPP
  6. #define WinskindataHPP
  7. #pragma delphiheader begin
  8. #pragma option push
  9. #pragma option -w-      // All warnings off
  10. #pragma option -Vx      // Zero-length empty class member functions
  11. #pragma pack(push,8)
  12. #include <System.hpp> // Pascal unit
  13. #include <Sysinit.hpp> // Pascal unit
  14. #include <Windows.hpp> // Pascal unit
  15. #include <Messages.hpp> // Pascal unit
  16. #include <Sysutils.hpp> // Pascal unit
  17. #include <Classes.hpp> // Pascal unit
  18. #include <Graphics.hpp> // Pascal unit
  19. #include <Controls.hpp> // Pascal unit
  20. #include <Forms.hpp> // Pascal unit
  21. #include <Inifiles.hpp> // Pascal unit
  22. #include <Dialogs.hpp> // Pascal unit
  23. #include <Filectrl.hpp> // Pascal unit
  24. #include <Skinread.hpp> // Pascal unit
  25. #include <Winskinstore.hpp> // Pascal unit
  26. #include <Imgutil.hpp> // Pascal unit
  27. #include <Winskinini.hpp> // Pascal unit
  28. #include <Imglist.hpp> // Pascal unit
  29. #include <Typinfo.hpp> // Pascal unit
  30. //-- user supplied -----------------------------------------------------------
  31. namespace Winskindata
  32. {
  33. //-- type declarations -------------------------------------------------------
  34. #pragma option push -b-
  35. enum TWinContainer { xccForm, xccFrame, xccToolbar, xccCoolbar, xccControlbar, xccPanel, xccScrollBox, xccGroupBox, xccTabSheet, xccPageScroller };
  36. #pragma option pop
  37. typedef Set<TWinContainer, xccForm, xccPageScroller>  TWinContainers;
  38. #pragma option push -b-
  39. enum TSkinOption { xoMDIScrollbar, xoMenuMerge, xoTransparent, xoPreview, xoParentBackGround, xoNoFocusRect, xoToolbarBK, xoToolbarButton, xoMDIChildBorder, xoMenuBG, xoFormScrollbar };
  40. #pragma option pop
  41. typedef Set<TSkinOption, xoMDIScrollbar, xoFormScrollbar>  TSkinOptions;
  42. #pragma option push -b-
  43. enum TSkinControlType { xcMainMenu, xcPopupMenu, xcMenuItem, xcToolbar, xcControlbar, xcCombo, xcCheckBox, xcRadioButton, xcProgress, xcScrollbar, xcEdit, xcButton, xcBitBtn, xcSpeedButton, xcSpin, xcPanel, xcGroupBox, xcStatusBar, xcTab, xcTrackBar, xcSystemMenu, xcFastReport };
  44. #pragma option pop
  45. typedef Set<TSkinControlType, xcMainMenu, xcFastReport>  TSkinControlTypes;
  46. #pragma option push -b-
  47. enum TShemeColor { csText, csTitleTextActive, csTitleTextNoActive, csButtonFace, csButtonText, csButtonHilight, csButtonlight, csButtonShadow, csButtonDkshadow, csSelectText, csSelectBg, csHilightText, csHilight, csMenuBar, csMenuBarText, csMenuText, csMenubg, csCaption, csScrollbar, csTextDisable };
  48. #pragma option pop
  49. typedef Graphics::TColor TShemeColors[20];
  50. #pragma option push -b-
  51. enum TSkinFormType { sfMainform, sfOnlyThisForm, sfDialog, sfDLL };
  52. #pragma option pop
  53. typedef void __fastcall (__closure *TOnFormSkin)(System::TObject* Sender, AnsiString aName, bool &DoSkin);
  54. typedef void __fastcall (__closure *TOnSkinForm)(System::TObject* Sender, HWND ahwnd, AnsiString aName);
  55. class DELPHICLASS TSkinData;
  56. typedef void __fastcall (__closure *TOnSkinControl)(Classes::TComponent* Sender, TSkinData* SkinData, Controls::TControl* Form, Controls::TControl* Control, AnsiString ControlClass, Classes::TComponent* &SkinnedControl);
  57. typedef BOOL __stdcall (*TGetScrollBarInfo)(HWND hwnd, int idObject, tagSCROLLBARINFO &psbi);
  58. typedef BOOL __stdcall (*FTrackMouseEvent)(tagTRACKMOUSEEVENT &EventTrack);
  59. typedef BOOL __stdcall (*TGetComboBoxInfo)(HWND hwndCombo, tagCOMBOBOXINFO &pcbi);
  60. typedef void __stdcall (*TDisableProcessWindowsGhosting)(void);
  61. class DELPHICLASS TDataSkinObject;
  62. class PASCALIMPLEMENTATION TDataSkinObject : public System::TObject 
  63. {
  64. typedef System::TObject inherited;
  65. public:
  66. #pragma pack(push,1)
  67. Types::TRect r;
  68. #pragma pack(pop)
  69. Graphics::TBitmap* Map;
  70. int trans;
  71. int Tile;
  72. AnsiString IDName;
  73. int frame;
  74. int style;
  75. int Normalcolor;
  76. int Overcolor;
  77. int Downcolor;
  78. Graphics::TColor Normalcolor2;
  79. Graphics::TColor Overcolor2;
  80. Graphics::TColor Downcolor2;
  81. __fastcall TDataSkinObject(AnsiString AIDName);
  82. __fastcall virtual ~TDataSkinObject(void);
  83. };
  84. class DELPHICLASS TDataSkinBorder;
  85. class PASCALIMPLEMENTATION TDataSkinBorder : public TDataSkinObject 
  86. {
  87. typedef TDataSkinObject inherited;
  88. public:
  89. Graphics::TBitmap* MaskMap;
  90. __fastcall TDataSkinBorder(AnsiString AIDName);
  91. __fastcall virtual ~TDataSkinBorder(void);
  92. };
  93. class DELPHICLASS TDataSkinTitle;
  94. class PASCALIMPLEMENTATION TDataSkinTitle : public TDataSkinObject 
  95. {
  96. typedef TDataSkinObject inherited;
  97. public:
  98. int Aligment;
  99. int BackGround;
  100. int FontHeight;
  101. int backleft;
  102. int backright;
  103. Graphics::TColor activetext;
  104. Graphics::TColor inactivetext;
  105. public:
  106. #pragma option push -w-inl
  107. /* TDataSkinObject.Create */ inline __fastcall TDataSkinTitle(AnsiString AIDName) : TDataSkinObject(AIDName) { }
  108. #pragma option pop
  109. #pragma option push -w-inl
  110. /* TDataSkinObject.Destroy */ inline __fastcall virtual ~TDataSkinTitle(void) { }
  111. #pragma option pop
  112. };
  113. class DELPHICLASS TDataSkinButton;
  114. class PASCALIMPLEMENTATION TDataSkinButton : public TDataSkinObject 
  115. {
  116. typedef TDataSkinObject inherited;
  117. public:
  118. Graphics::TBitmap* CheckMap;
  119. Graphics::TBitmap* RadioMap;
  120. int radioframe;
  121. int checkframe;
  122. bool newnormal;
  123. bool newover;
  124. bool newdown;
  125. __fastcall TDataSkinButton(AnsiString AIDName);
  126. __fastcall virtual ~TDataSkinButton(void);
  127. };
  128. class DELPHICLASS TDataSkinSysButton;
  129. class PASCALIMPLEMENTATION TDataSkinSysButton : public TDataSkinObject 
  130. {
  131. typedef TDataSkinObject inherited;
  132. public:
  133. int Action;
  134. int Align;
  135. int XCoord;
  136. int YCoord;
  137. int CombineOp;
  138. int Visibility;
  139. int Visibility1;
  140. public:
  141. #pragma option push -w-inl
  142. /* TDataSkinObject.Create */ inline __fastcall TDataSkinSysButton(AnsiString AIDName) : TDataSkinObject(AIDName) { }
  143. #pragma option pop
  144. #pragma option push -w-inl
  145. /* TDataSkinObject.Destroy */ inline __fastcall virtual ~TDataSkinSysButton(void) { }
  146. #pragma option pop
  147. };
  148. class DELPHICLASS TDataSkinBoxLabel;
  149. class PASCALIMPLEMENTATION TDataSkinBoxLabel : public TDataSkinObject 
  150. {
  151. typedef TDataSkinObject inherited;
  152. public:
  153. int LeftShift;
  154. int RightShift;
  155. int Alignment;
  156. public:
  157. #pragma option push -w-inl
  158. /* TDataSkinObject.Create */ inline __fastcall TDataSkinBoxLabel(AnsiString AIDName) : TDataSkinObject(AIDName) { }
  159. #pragma option pop
  160. #pragma option push -w-inl
  161. /* TDataSkinObject.Destroy */ inline __fastcall virtual ~TDataSkinBoxLabel(void) { }
  162. #pragma option pop
  163. };
  164. class DELPHICLASS TSkinControlList;
  165. class PASCALIMPLEMENTATION TSkinControlList : public Classes::TPersistent 
  166. {
  167. typedef Classes::TPersistent inherited;
  168. private:
  169. Classes::TStrings* Fedit;
  170. Classes::TStrings* fCheckbox;
  171. Classes::TStrings* fRadiobutton;
  172. Classes::TStrings* fcombobox;
  173. void __fastcall SetEdit(Classes::TStrings* Value);
  174. void __fastcall SetCheckbox(Classes::TStrings* Value);
  175. void __fastcall SetRadiobutton(Classes::TStrings* Value);
  176. void __fastcall Setcombobox(Classes::TStrings* Value);
  177. public:
  178. __fastcall TSkinControlList(void);
  179. __fastcall virtual ~TSkinControlList(void);
  180. __published:
  181. __property Classes::TStrings* Edit = {read=Fedit, write=SetEdit};
  182. __property Classes::TStrings* Checkbox = {read=fCheckbox, write=SetCheckbox};
  183. __property Classes::TStrings* Combobox = {read=fcombobox, write=Setcombobox};
  184. __property Classes::TStrings* Radiobutton = {read=fRadiobutton, write=SetRadiobutton};
  185. };
  186. typedef DynamicArray<Graphics::TColor >  WinSkinData__9;
  187. typedef DynamicArray<TDataSkinSysButton* >  WinSkinData__01;
  188. class PASCALIMPLEMENTATION TSkinData : public Classes::TComponent 
  189. {
  190. typedef Classes::TComponent inherited;
  191. private:
  192. AnsiString fskinfile;
  193. Winskinini::TQuickIni* ini;
  194. Graphics::TColor fMenuSideBar;
  195. Classes::TMemoryStream* ms;
  196. bool factive;
  197. int fdisableTag;
  198. TWinContainers FContainers;
  199. TSkinControlTypes FSkinControls;
  200. TSkinOptions fSkinOptions;
  201. TSkinFormType ftype;
  202. TOnFormSkin fOnFormSkin;
  203. TOnSkinForm fOnBeforeSkinForm;
  204. TOnSkinForm fOnAfterSkinForm;
  205. Classes::TNotifyEvent fOnSkinChanged;
  206. TOnSkinControl FOnSkinControl;
  207. bool FInDLL;
  208. Classes::TStrings* f3rdControls;
  209. bool fmenuauto;
  210. AnsiString fversion;
  211. bool fmenumerge;
  212. Controls::THintWindow* fhintwindow;
  213. bool hashint;
  214. void __fastcall ReadMenuBar(TDataSkinObject* &aobject, AnsiString aname);
  215. void __fastcall ReadProgress(TDataSkinObject* &aobject, AnsiString aname);
  216. void __fastcall ReadRGB(AnsiString Section, AnsiString aname, Graphics::TColor &value);
  217. Graphics::TColor __fastcall GetColor(const AnsiString s1, Graphics::TColor acolor);
  218. void __fastcall SetFrame(void);
  219. int __fastcall GetSectionNum(AnsiString asection, AnsiString aname);
  220. void __fastcall WriteData(Classes::TStream* Stream);
  221. void __fastcall ReadData(Classes::TStream* Stream);
  222. AnsiString __fastcall GetSkinStore();
  223. void __fastcall SetSkinStore(const AnsiString Value);
  224. void __fastcall CreateMdibtn(int n);
  225. void __fastcall SetActive(bool Value);
  226. void __fastcall SetVersion(AnsiString Value);
  227. void __fastcall InitControlList(void);
  228. void __fastcall SetControlList(Classes::TStrings* Value);
  229. void __fastcall ReadTrack(TDataSkinObject* &aobject, AnsiString aname);
  230. void __fastcall CreateLogo(void);
  231. void __fastcall CreateCaptionFont(void);
  232. void __fastcall CreateMinCaption(void);
  233. protected:
  234. void __fastcall ReadObject(TDataSkinObject* &aobject, AnsiString aname);
  235. void __fastcall ReadObject2(TDataSkinBorder* &aobject, AnsiString aname, AnsiString image2);
  236. void __fastcall ReadButton(void);
  237. void __fastcall ReadSysButton(void);
  238. void __fastcall LoadFromIni(AnsiString filename);
  239. void __fastcall ReadBord(void);
  240. void __fastcall ReadColor(void);
  241. void __fastcall ReadColor2(TShemeColor item, AnsiString key, Graphics::TColor cdefault);
  242. void __fastcall ReadTitle(TDataSkinObject* aobject, AnsiString aname);
  243. void __fastcall ReadBoxLabel(TDataSkinBoxLabel* &aobject, AnsiString aname);
  244. virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
  245. void __fastcall RebuildToolbar(void);
  246. void __fastcall ReBuildCombobox(void);
  247. void __fastcall ReBuildComboxArrow(void);
  248. virtual void __fastcall Loaded(void);
  249. bool __fastcall LoadSkin(void);
  250. void __fastcall UpdateSkin(void);
  251. public:
  252. Skinread::TSkinReader* reader;
  253. Classes::TMemoryStream* data;
  254. bool Empty;
  255. Graphics::TColor Colors[20];
  256. bool hasColors[20];
  257. DynamicArray<Graphics::TColor >  ColorPreset;
  258. Graphics::TBitmap* SysIcon;
  259. TDataSkinTitle* Title;
  260. DynamicArray<TDataSkinSysButton* >  SysBtn;
  261. TDataSkinButton* Button;
  262. TDataSkinBorder* tab;
  263. TDataSkinBorder* HSpin;
  264. TDataSkinBorder* VSpin;
  265. TDataSkinObject* Comboxborder;
  266. TDataSkinObject* ExtraImages;
  267. TDataSkinBorder* combox;
  268. TDataSkinObject* comboxarrow;
  269. TDataSkinObject* Box;
  270. TDataSkinObject* Toolbar;
  271. TDataSkinObject* Toolbarbtn;
  272. TDataSkinObject* progress;
  273. TDataSkinObject* progresschunk;
  274. TDataSkinBoxLabel* boxlabel;
  275. TDataSkinObject* StatusBar;
  276. TDataSkinObject* TabSheet;
  277. TDataSkinObject* Header;
  278. TDataSkinObject* Menubar;
  279. TDataSkinObject* MenuItem;
  280. TDataSkinObject* MenuitemBG;
  281. TDataSkinObject* SArrow;
  282. TDataSkinObject* HBar;
  283. TDataSkinObject* VBar;
  284. TDataSkinObject* HSlider;
  285. TDataSkinObject* VSlider;
  286. TDataSkinObject* TrackHorz;
  287. TDataSkinObject* TrackVert;
  288. TDataSkinObject* TrackBar;
  289. TDataSkinObject* TrackBarVert;
  290. TDataSkinObject* TrackLeft;
  291. TDataSkinObject* Trackright;
  292. TDataSkinObject* Tracktop;
  293. TDataSkinObject* Trackbottom;
  294. TDataSkinObject* MinCaption;
  295. TDataSkinBorder* border[4];
  296. Classes::TStringList* sectionlist;
  297. int PresetColors[10];
  298. HBRUSH BGBrush;
  299. bool MenuMsg;
  300. Controls::TImageList* bmpmenu;
  301. AnsiString SkinName;
  302. Classes::TStrings* DebugList;
  303. int cxMax;
  304. int cyMax;
  305. Graphics::TBitmap* logo;
  306. Graphics::TFont* CaptionFont;
  307. unsigned formhwnd;
  308. int hintcount;
  309. __fastcall virtual TSkinData(Classes::TComponent* AOwner);
  310. __fastcall virtual ~TSkinData(void);
  311. void __fastcall LoadFromFile(AnsiString value);
  312. void __fastcall LoadFromStream(Classes::TStream* Stream);
  313. void __fastcall LoadFromCollection(Winskinstore::TSkinStore* astore, int aindex);
  314. void __fastcall Readbmp(Graphics::TBitmap* bmp, AnsiString fname);
  315. bool __fastcall GetPrecolor(Graphics::TColor &acolor, int n);
  316. AnsiString __fastcall GetFileName(AnsiString s);
  317. void __fastcall Uninstall(void);
  318. void __fastcall Install(void);
  319. void __fastcall DoFormSkin(unsigned ahwnd, AnsiString aname, bool &Doskin);
  320. void __fastcall DoSkinChanged(void);
  321. void __fastcall AddNestForm(Controls::TWinControl* fParent, Controls::TWinControl* fNested);
  322. void __fastcall UpdateSkinControl(Forms::TForm* fParent, Controls::TWinControl* acontrol = (Controls::TWinControl*)(0x0));
  323. void __fastcall DeleteGraphicControl(Forms::TForm* fParent, Controls::TGraphicControl* acontrol);
  324. void __fastcall UpdateMenu(Forms::TForm* fParent);
  325. void __fastcall UpdateMainMenu(bool done);
  326. void __fastcall SkinForm(unsigned ahwnd);
  327. void __fastcall InstallThread(int aThreadID);
  328. void __fastcall UnInstallThread(int aThreadID);
  329. void __fastcall ChangeProperty(System::TObject* control, AnsiString aprop, AnsiString value);
  330. void __fastcall EnableSkin(bool b);
  331. Graphics::TColor __fastcall GetCaptionColor(void);
  332. bool __fastcall GetScrollBarInfo(HWND hwnd, int idObject, tagSCROLLBARINFO &psbi);
  333. void __fastcall DoDebug(AnsiString s);
  334. void __fastcall ChangeForm(Forms::TForm* aform);
  335. void __fastcall GetAppIcon(void);
  336. void __fastcall ActivateHint(const Types::TRect &aRect, const AnsiString AHint);
  337. void __fastcall HideHint(void);
  338. bool __fastcall IsHint(void);
  339. __published:
  340. __property bool Active = {read=factive, write=SetActive, nodefault};
  341. __property int DisableTag = {read=fdisableTag, write=fdisableTag, nodefault};
  342. __property TSkinControlTypes SkinControls = {read=FSkinControls, write=FSkinControls, nodefault};
  343. __property TSkinOptions Options = {read=fSkinOptions, write=fSkinOptions, nodefault};
  344. __property Classes::TStrings* Skin3rd = {read=f3rdControls, write=SetControlList};
  345. __property AnsiString SkinFile = {read=fskinfile, write=LoadFromFile};
  346. __property AnsiString SkinStore = {read=GetSkinStore, write=SetSkinStore};
  347. __property TSkinFormType SkinFormtype = {read=ftype, write=ftype, nodefault};
  348. __property AnsiString Version = {read=fversion, write=SetVersion};
  349. __property bool MenuUpdate = {read=fmenuauto, write=fmenuauto, nodefault};
  350. __property bool MenuMerge = {read=fmenumerge, write=fmenumerge, nodefault};
  351. __property TOnFormSkin OnFormSkin = {read=fOnFormSkin, write=fOnFormSkin};
  352. __property Classes::TNotifyEvent OnSkinChanged = {read=fOnSkinChanged, write=fOnSkinChanged};
  353. __property TOnSkinControl OnSkinControl = {read=FOnSkinControl, write=FOnSkinControl};
  354. __property TOnSkinForm OnBeforeSkinForm = {read=fOnBeforeSkinForm, write=fOnBeforeSkinForm};
  355. __property TOnSkinForm OnAfterSkinForm = {read=fOnAfterSkinForm, write=fOnAfterSkinForm};
  356. };
  357. //-- var, const, procedure ---------------------------------------------------
  358. static const Word CN_SkinChanged = 0x3401;
  359. static const Word CN_CaptionBtnClick = 0x3514;
  360. static const Word CN_CaptionBtnVisible = 0x3515;
  361. static const Word CN_UPdateMainMenu = 0x3505;
  362. static const Word CN_SkinEnabled = 0x3506;
  363. static const Word CN_TabSheetClose = 0x3507;
  364. static const Word CN_SkinNotify = 0x3508;
  365. static const short NM_COOLSB_CUSTOMDRAW = -2815;
  366. #define c_version "5.14.12.20"
  367. static const Word c_skintag = 0x8235;
  368. static const Word BE_ID = 0x41a2;
  369. static const Word BE_BECLOSE = 0x3046;
  370. static const Word BE_BASE = 0xbc4a;
  371. static const Word CM_BEPAINT = 0xbc4a;
  372. static const Word CM_BENCPAINT = 0xbc4b;
  373. static const Word CM_BEFULLRENDER = 0xbc4c;
  374. static const Word CM_BEWAIT = 0xbc4d;
  375. static const Word CM_BERUN = 0xbc4e;
  376. extern PACKAGE TSkinData* GSkinData;
  377. extern PACKAGE bool Win32PlatformIsUnicode;
  378. extern PACKAGE bool IsVista;
  379. extern PACKAGE unsigned DefaultUserCodePage;
  380. extern PACKAGE TGetScrollBarInfo pGetScrollBarInfo;
  381. extern PACKAGE FTrackMouseEvent pTrackMouseEvent;
  382. extern PACKAGE TGetComboBoxInfo pGetComboBoxInfo;
  383. extern PACKAGE TDisableProcessWindowsGhosting pDisableProcessWindowsGhosting;
  384. extern PACKAGE WideString __fastcall StrToWideStr(const AnsiString S);
  385. extern PACKAGE AnsiString __fastcall WideStringToStringEx(const WideString WS);
  386. extern PACKAGE WideString __fastcall _WStr(WideChar * lpString, int cchCount);
  387. extern PACKAGE int __fastcall Tnt_DrawTextW(HDC hDC, WideString wString, Types::TRect &lpRect, unsigned uFormat);
  388. extern PACKAGE Graphics::TColor __fastcall RGBToColor(Byte R, Byte G, Byte B);
  389. extern PACKAGE Graphics::TColor __fastcall strcolor(AnsiString s);
  390. extern PACKAGE Controls::TWinControl* __fastcall FindControlx(HWND Handle);
  391. extern PACKAGE void __fastcall SkinDll(void * adata);
  392. extern PACKAGE void __fastcall DoTrackMouse(unsigned ahwnd);
  393. } /* namespace Winskindata */
  394. using namespace Winskindata;
  395. #pragma pack(pop)
  396. #pragma option pop
  397. #pragma delphiheader end.
  398. //-- end unit ----------------------------------------------------------------
  399. #endif // Winskindata