{********************************************************************} { } { Developer Express Visual Component Library } { ExpressSkins Library } { } { Copyright (c) 2006-2007 Developer Express Inc. } { ALL RIGHTS RESERVED } { } { The entire contents of this file is protected by U.S. and } { International Copyright Laws. Unauthorized reproduction, } { reverse-engineering, and distribution of all or any portion of } { the code contained in this file is strictly prohibited and may } { result in severe civil and criminal penalties and will be } { prosecuted to the maximum extent possible under the law. } { } { RESTRICTIONS } { } { THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES } { (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE } { SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS } { LICENSED TO DISTRIBUTE THE EXPRESSSKINS AND ALL ACCOMPANYING } { VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. } { } { THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED } { FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE } { COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE } { AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT } { AND PERMISSION FROM DEVELOPER EXPRESS INC. } { } { CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON } { ADDITIONAL RESTRICTIONS. } { } {********************************************************************} unit dxSkinsDefaultPainters; {$I cxVer.inc} interface uses Classes, dxGDIPlusApi, cxLookAndFeelPainters, dxSkinsCore, dxSkinsLookAndFeelPainter; type { TdxCaramelPainter } TdxCaramelPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxiMaginaryPainter } TdxiMaginaryPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxLilianPainter } TdxLilianPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxMoneyTwinsPainter } TdxMoneyTwinsPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxBlackPainter } TdxBlackPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxBluePainter } TdxBluePainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxSilverPainter } TdxSilverPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxOffice2007BlackPainter } TdxOffice2007BlackPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxOffice2007BluePainter } TdxOffice2007BluePainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; { TdxOffice2007SilverPainter } TdxOffice2007SilverPainter = class(TdxSkinLookAndFeelPainter) protected class function CacheData: TdxSkinLookAndFeelPainterInfo; override; end; const SkinsCount = 10; SkinNames: array[0..SkinsCount - 1] of ShortString = ('Caramel', 'iMaginary', 'Lilian', 'MoneyTwins', 'Black', 'Blue', 'Silver', 'Office2007Black', 'Office2007Blue', 'Office2007Silver'); SkinPainters: array[0..SkinsCount - 1] of TcxCustomLookAndFeelPainterClass = (TdxCaramelPainter, TdxiMaginaryPainter, TdxLilianPainter, TdxMoneyTwinsPainter, TdxBlackPainter, TdxBluePainter, TdxSilverPainter, TdxOffice2007BlackPainter, TdxOffice2007BluePainter, TdxOffice2007SilverPainter); implementation {$R dxSkinsDefaultPainters.res} var CachedPainterData: array[0..SkinsCount - 1] of TdxSkinLookAndFeelPainterInfo; { TdxCaramelPainter } class function TdxCaramelPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[0]; end; { TdxiMaginaryPainter } class function TdxiMaginaryPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[1]; end; { TdxLilianPainter } class function TdxLilianPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[2]; end; { TdxMoneyTwinsPainter } class function TdxMoneyTwinsPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[3]; end; { TdxBlackPainter } class function TdxBlackPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[4]; end; { TdxBluePainter } class function TdxBluePainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[5]; end; { TdxSilverPainter } class function TdxSilverPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[6]; end; { TdxOffice2007BlackPainter } class function TdxOffice2007BlackPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[7]; end; { TdxOffice2007BluePainter } class function TdxOffice2007BluePainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[8]; end; { TdxOffice2007SilverPainter } class function TdxOffice2007SilverPainter.CacheData: TdxSkinLookAndFeelPainterInfo; begin Result := CachedPainterData[9]; end; procedure RegisterPainters; var SkinIndex: Integer; begin if not CheckGdiPlus then Exit; for SkinIndex := 0 to SkinsCount - 1 do begin CachedPainterData[SkinIndex] := TdxSkinLookAndFeelPainterInfo.Create(TdxSkin.Create(SkinNames[SkinIndex], True, HInstance)); GetExtendedStylePainters.Register( SkinNames[SkinIndex], SkinPainters[SkinIndex], CachedPainterData[SkinIndex]); end; end; procedure UnregisterPainters; var SkinIndex: Integer; begin if GetExtendedStylePainters = nil then Exit; for SkinIndex := 0 to SkinsCount - 1 do GetExtendedStylePainters.UnRegister(SkinNames[SkinIndex]); end; initialization dxUnitsLoader.AddUnit(@RegisterPainters, @UnregisterPainters); finalization dxUnitsLoader.RemoveUnit(@UnregisterPainters); end.