?? flatskins.pas
字號:
unit FlatSkins;
interface
{$I FlatStyle.inc}
uses Classes, Messages, Graphics, Controls, FlatUtils, Forms;
Type
{ TFlatSkin }
TFlatSkin = class(TGraphicsObject)
private
FBarStartColor: TColor;
FBarStopColor: TColor;
FBackStartColor: TColor;
FBackStopColor: TColor;
FItemStartColor: TColor;
FItemStopColor: TColor;
FBarOrien: TStyleOrien;
FBackdropOrien: TStyleOrien;
FItemOrien: TStyleOrien;
FNotify: IChangeNotifier;
FItemRectColor: TColor;
FBorderColor: TColor;
FItemSelectColor: TColor;
FBarColor: TColor;
FTransparent: TTransparentMode;
FBarArrowColor: TColor;
FItemFrameColor: TColor;
FBackdropColor: TColor;
FTitleColor: TColor;
FTitleStartColor: TColor;
FTitleStopColor: TColor;
FTitleOrien: TStyleOrien;
FTitleAlignment: TAlignmentText;
FBarTopBitmap: TBitmap;
FBarDownBitmap: TBitmap;
FBackBitmap: TBitmap;
FTitleBitmap: TBitmap;
FBarUseBitmap: boolean;
FBackUseBitmap: boolean;
FTitleUseBitmap: boolean;
FItemLineHas: boolean;
FItemLineColor: TColor;
FUserFace: TStyleFace;
FBarsHeight: integer;
FItemHeight: integer;
FTitleHeight: integer;
FTitlePosition: TTitlePosition;
FTitleHas: boolean;
FScrollBars: Boolean;
FTitleFont: TFont;
FParentFont: boolean;
FParent: TControl;
FBackFocusColor: TColor;
procedure SetColors(const Index: Integer; const Value: TColor);
procedure SetOriens(const Index: Integer; const Value: TStyleOrien);
procedure SetTransparent(const Value: TTransparentMode);
procedure SetTitleAlignment(const Value: TAlignmentText);
procedure SetBitmaps(const Index: Integer; const Value: TBitmap);
procedure SetUseBitmap(const Index: Integer; const Value: boolean);
procedure SetUserFace(const Value: TStyleFace);
procedure SetHeights(Index, Value: integer);
procedure SetTitlePosition(const Value: TTitlePosition);
procedure SetTitleHas(const Value: boolean);
procedure SetScrollBars(const Value: Boolean);
procedure SetTitleFont(const Value: TFont);
procedure FontChanged(Sender: TObject);
procedure SetParentFont(const Value: boolean);
function GetParent: TControl;
protected
property StyleNotify: IChangeNotifier read FNotify write FNotify;
public
procedure Changed; override;
procedure Assign(Source: TPersistent); override;
constructor Create;
destructor Destroy;override;
property Parent: TControl read GetParent write FParent;
published
property BarStopColor: TColor index 0 read FBarStopColor write SetColors default DefaultColorStop;
property BarStartColor: TColor index 1 read FBarStartColor write SetColors default DefaultColorStart;
property BackStopColor: TColor index 2 read FBackStopColor write SetColors default DefaultColorStop;
property BackStartColor: TColor index 3 read FBackStartColor write SetColors default DefaultColorStart;
property ItemStopColor: TColor index 4 read FItemStopColor write SetColors default DefaultItemColorStop;
property ItemStartColor: TColor index 5 read FItemStartColor write SetColors default DefaultItemColorStart;
property ItemSelectColor: TColor index 7 read FItemSelectColor write SetColors default $009CDEF7;
property BorderColor: TColor index 8 read FBorderColor write SetColors default DefaultBorderColor;
property BarColor: TColor index 9 read FBarColor write SetColors default DefaultBarColor;
property BarArrowColor: TColor index 10 read FBarArrowColor write SetColors default clBlack;
property ItemFrameColor: TColor index 11 read FItemFrameColor write SetColors default DefaultBorderColor;
property BackdropColor: TColor index 12 read FBackdropColor write SetColors default DefaultBackdropColor;
property TitleStartColor: TColor index 13 read FTitleStartColor write SetColors default DefaultColorStart;
property TitleStopColor: TColor index 14 read FTitleStopColor write SetColors default DefaultColorStop;
property TitleColor: TColor index 15 read FTitleColor write SetColors default defaultTitleColor;
property ItemLineColor: TColor index 16 read FItemLineColor write SetColors default DefaultItemLineColor;
property BackFocusColor: TColor index 17 read FBackFocusColor write SetColors default DefaultFlatColor;
property BarOrien: TStyleOrien index 0 read FBarOrien write SetOriens default DefaultStyleVertical;
property BackdropOrien:TStyleOrien index 1 read FBackdropOrien write SetOriens default DefaultStyleHorizontal;
property ItemOrien: TStyleOrien index 2 read FItemOrien write SetOriens default DefaultStyleVertical;
property TitleOrien: TStyleOrien index 3 read FTitleOrien write SetOriens default bsVertical;
property BarTopBitmap: TBitmap index 0 read FBarTopBitmap write SetBitmaps;
property BarDownBitmap: TBitmap index 1 read FBarDownBitmap write SetBitmaps;
property BackBitmap: TBitmap index 2 read FBackBitmap write SetBitmaps;
property TitleBitmap: TBitmap index 3 read FTitleBitmap write SetBitmaps;
property BarUseBitmap: boolean index 0 read FBarUseBitmap write SetUseBitmap default false;
property BackUseBitmap: boolean index 1 read FBackUseBitmap write SetUseBitmap default false;
property TitleUseBitmap: boolean index 2 read FTitleUseBitmap write SetUseBitmap default false;
property ItemLineHas: boolean index 3 read FItemLineHas write SetUseBitmap default false;
property TitleAlignment: TAlignmentText read FTitleAlignment write SetTitleAlignment default stCenter;
property Transparent: TTransparentMode read FTransparent write SetTransparent default tmNone;
property UserFace: TStyleFace read FUserFace write SetUserFace default DefaultStyleFace;
property TitlePosition: TTitlePosition read FTitlePosition write SetTitlePosition default tsTop;
property BarsHeight: integer index 0 read FBarsHeight write SetHeights default DefaultBarsHeight;
property ItemHeight: integer index 1 read FItemHeight write SetHeights default DefaultItemHeight;
property TitleHeight: integer index 2 read FTitleHeight write SetHeights default DefaultTitleHeight;
property TitleHas: boolean read FTitleHas write SetTitleHas default true;
property ScrollBars: Boolean read FScrollBars write SetScrollBars default True;
property TitleFont: TFont read FTitleFont write SetTitleFont;
property ParentFont: boolean read FParentFont write SetParentFont default true;
end;
{ TListStyle }
TListStyle = class(TFlatSkin)
private
FItemAlignment: TAlignmentText;
procedure SetItemAlignment(const Value: TAlignmentText);
public
procedure Assign(Source: TPersistent); override;
constructor Create;
published
property ItemAlignment: TAlignmentText read FItemAlignment write SetItemAlignment default stLeft;
end;
{ TCheckStyle }
TCheckStyle = class(TFlatSkin)
private
FSelectPosition: TCheckPosition;
FSelectColor: TColor;
FSelectBackdropColor: TColor;
FSelectBorderColor: TColor;
FSelectSize: Integer;
FSelectStartColor: TColor;
FSelectStopColor: TColor;
FSelectOrien: TStyleOrien;
FSelectCheckColor: TColor;
procedure SetColors(const Index: Integer; const Value: TColor);
procedure SetSelectPosition(const Value: TCheckPosition);
procedure SetSelectSize(Value: Integer);
procedure SetSelectOrien(const Value: TStyleOrien);
public
procedure Assign(Source: TPersistent); override;
constructor Create;
published
property SelectPosition: TCheckPosition read FSelectPosition write SetSelectPosition default bpLeft;
property SelectColor: TColor index 0 read FSelectColor write SetColors default clPurple;
property SelectBackdropColor: TColor index 1 read FSelectBackdropColor write SetColors default DefaultCheckBackColor;
property SelectBorderColor: TColor index 2 read FSelectBorderColor write SetColors default DefaultCheckBorderColor;
property SelectStartColor: TColor index 3 read FSelectStartColor write SetColors default DefaultSelectStartColor;
property SelectStopColor: TColor index 4 read FSelectStopColor write SetColors default DefaultSelectStopColor;
property SelectCheckColor: TColor index 5 read FSelectCheckColor write SetColors default DefaultFlatColor;
property SelectOrien: TStyleOrien read FSelectOrien write SetSelectOrien default bsVertical;
property SelectSize: Integer read FSelectSize write SetSelectSize default 12;
end;
implementation
{ TFlatSkin }
procedure TFlatSkin.Assign(Source: TPersistent);
begin
if Source is TFlatSkin then
begin
FBarTopBitmap := TFlatSkin(Source).BarTopBitmap;
FBarDownBitmap := TFlatSkin(Source).BarDownBitmap;
FBackBitmap := TFlatSkin(Source).BackBitmap;
FTitleBitmap := TFlatSkin(Source).TitleBitmap;
FTitleFont := TFlatSkin(Source).TitleFont;
fBarStopColor := TFlatSkin(Source).BarStopColor;
fBarStartColor := TFlatSkin(Source).BarStartColor;
fBarOrien := TFlatSkin(Source).BarOrien;
fBarColor := TFlatSkin(Source).BarColor;
FBarArrowColor := TFlatSkin(Source).BarArrowColor;
fBackStopColor := TFlatSkin(Source).BackStopColor;
fBackStartColor := TFlatSkin(Source).BackStartColor;
fBackdropOrien := TFlatSkin(Source).BackdropOrien;
FBackdropColor := TFlatSkin(Source).BackdropColor;
FBackFocusColor := TFlatSkin(Source).BackFocusColor;
FItemStopColor := TFlatSkin(Source).ItemStopColor;
fItemStartColor := TFlatSkin(Source).ItemStartColor;
fItemOrien := TFlatSkin(Source).ItemOrien;
FItemSelectColor := TFlatSkin(Source).ItemSelectColor;
FItemFrameColor := TFlatSkin(Source).ItemFrameColor;
FItemLineColor := TFlatSkin(Source).ItemLineColor;
FItemLineHas := TFlatSkin(Source).ItemLineHas;
FTitleOrien := TFlatSkin(Source).TitleOrien;
FTitleStartColor := TFlatSkin(Source).TitleStartColor;
FTitleStopColor := TFlatSkin(Source).TitleStopColor;
FTitleColor := TFlatSkin(Source).TitleColor;
FTitleAlignment := TFlatSkin(Source).TitleAlignment;
FBarUseBitmap := TFlatSkin(Source).BarUseBitmap;
FBackUseBitmap := TFlatSkin(Source).BackUseBitmap;
FTitleUseBitmap := TFlatSkin(Source).TitleUseBitmap;
FTransparent := TFlatSkin(Source).Transparent;
FUserFace := TFlatSkin(Source).UserFace;
FBarsHeight := TFlatSkin(Source).BarsHeight;
FItemHeight := TFlatSkin(Source).ItemHeight;
FTitleHeight := TFlatSkin(Source).TitleHeight;
FTitlePosition := TFlatSkin(Source).TitlePosition;
FTitleHas := TFlatSkin(Source).TitleHas;
FScrollBars := TFlatSkin(Source).ScrollBars;
FParentFont := TFlatSkin(Source).ParentFont;
Changed;
Exit;
end;
inherited Assign(Source);
end;
procedure TFlatSkin.Changed;
begin
inherited Changed;
if FNotify <> nil then FNotify.Changed;
end;
procedure TFlatSkin.FontChanged(Sender: TObject);
begin
Changed;
end;
constructor TFlatSkin.Create;
begin
inherited Create;
FBarTopBitmap := TBitmap.Create;
FBarDownBitmap := TBitmap.Create;
FBackBitmap := TBitmap.Create;
FTitleBitmap := TBitmap.Create;
FTitleFont := TFont.Create;
FTitleFont.OnChange := FontChanged;
FBarStopColor := DefaultColorStop;
FBarStartColor := DefaultColorStart;
FBarColor := DefaultBarColor;
FBarArrowColor := clBlack;
FBarOrien := DefaultStyleVertical;
FBackStopColor := DefaultColorStop;
FBackStartColor := DefaultColorStart;
FBackdropOrien := DefaultStyleHorizontal;
FBackdropColor := DefaultBackdropColor;
FBackFocusColor := DefaultFlatColor;
FItemStopColor := DefaultItemColorStop;
FItemStartColor := DefaultItemColorStart;
FItemRectColor := DefaultItemRectColor;
FItemSelectColor := $009CDEF7;
FItemOrien := DefaultStyleVertical;
FItemFrameColor := DefaultBorderColor;
FItemLineColor := DefaultItemLineColor;
FItemLineHas := False;
FTitleOrien := bsVertical;
FTitleStartColor := DefaultColorStart;
FTitleStopColor := DefaultColorStop;
FTitleColor := defaultTitleColor;
FTitleAlignment := stCenter;
FTitlePosition := tsTop;
FBorderColor := DefaultBorderColor;
FBarUseBitmap := false;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -