Componentes.Terceros.DevExp.../official/x.30/ExpressSkins Library/Sources/dxSkinsDefaultPainters.pas
2007-12-16 17:06:54 +00:00

227 lines
7.3 KiB
ObjectPascal

{********************************************************************}
{ }
{ 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.