You've already forked lazarus-ccr
spkToolbar: Add TMenuButton, patch by Husker (https://forum.lazarus.freepascal.org/index.php/topic,51552.msg379413.html#msg379413). No complete, yet.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7731 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -27,6 +27,8 @@ type
|
||||
|
||||
TSpkElementStyle = (esRounded, esRectangle);
|
||||
|
||||
TSpkMenuButtonShapeStyle = (mbssRounded, mbssRectangle);
|
||||
|
||||
TSpkStyle = (
|
||||
spkOffice2007Blue,
|
||||
spkOffice2007Silver, spkOffice2007SilverTurquoise,
|
||||
@ -91,6 +93,95 @@ type
|
||||
end;
|
||||
|
||||
|
||||
{ TSpkMenuButtonAppearance }
|
||||
|
||||
// Note :
|
||||
// For consistancy in appearance drawing with Tabs, CornerRadius and
|
||||
// CaptionHeight used to draw Menu Button come from TSpkTabAppearance.
|
||||
|
||||
TSpkMenuButtonAppearance = class(TPersistent)
|
||||
private
|
||||
FDispatch: TSpkBaseAppearanceDispatch;
|
||||
FCaptionFont: TFont;
|
||||
FIdleFrameColor: TColor;
|
||||
FIdleGradientFromColor: TColor;
|
||||
FIdleGradientToColor: TColor;
|
||||
FIdleGradientType: TBackgroundKind;
|
||||
FIdleCaptionColor: TColor;
|
||||
FHotTrackFrameColor: TColor;
|
||||
FHotTrackGradientFromColor: TColor;
|
||||
FHotTrackGradientToColor: TColor;
|
||||
FHotTrackGradientType: TBackgroundKind;
|
||||
FHotTrackCaptionColor: TColor;
|
||||
FHotTrackBrightnessChange: Integer;
|
||||
FActiveFrameColor: TColor;
|
||||
FActiveGradientFromColor: TColor;
|
||||
FActiveGradientToColor: TColor;
|
||||
FActiveGradientType: TBackgroundKind;
|
||||
FActiveCaptionColor: TColor;
|
||||
FShapeStyle: TSpkMenubuttonShapeStyle;
|
||||
procedure SetActiveCaptionColor(const Value: TColor);
|
||||
procedure SetActiveFrameColor(const Value: TColor);
|
||||
procedure SetActiveGradientFromColor(const Value: TColor);
|
||||
procedure SetActiveGradientToColor(const Value: TColor);
|
||||
procedure SetActiveGradientType(const Value: TBackgroundKind);
|
||||
procedure SetCaptionFont(const Value: TFont);
|
||||
procedure SetHotTrackCaptionColor(const Value: TColor);
|
||||
procedure SetHotTrackFrameColor(const Value: TColor);
|
||||
procedure SetHotTrackGradientFromColor(const Value: TColor);
|
||||
procedure SetHotTrackGradientToColor(const Value: TColor);
|
||||
procedure SetHotTrackGradientType(const Value: TBackgroundKind);
|
||||
procedure SetHotTrackBrightnessChange(const Value: Integer);
|
||||
procedure SetIdleCaptionColor(const Value: TColor);
|
||||
procedure SetIdleFrameColor(const Value: TColor);
|
||||
procedure SetIdleGradientFromColor(const Value: TColor);
|
||||
procedure SetIdleGradientToColor(const Value: TColor);
|
||||
procedure SetIdleGradientType(const Value: TBackgroundKind);
|
||||
procedure SetShapeStyle(const Value: TSpkMenuButtonShapeStyle);
|
||||
|
||||
procedure CaptionFontChange(Sender: TObject);
|
||||
public
|
||||
constructor Create(ADispatch: TSpkBaseAppearanceDispatch);
|
||||
destructor Destroy; override;
|
||||
procedure Assign(Source: TPersistent); override;
|
||||
|
||||
procedure LoadFromXML(Node: TSpkXMLNode);
|
||||
procedure SaveToPascal(AList: TStrings);
|
||||
procedure SaveToXML(Node: TSpkXMLNode);
|
||||
procedure Reset(AStyle: TSpkStyle = spkOffice2007Blue);
|
||||
|
||||
procedure GetActiveColors(IsChecked: Boolean; out ACaptionColor, AFrameColor,
|
||||
AGradientFromColor, AGradientToColor: TColor; out AGradientKind: TBackgroundKind;
|
||||
ABrightenBy: Integer = 0);
|
||||
procedure GetHotTrackColors(IsChecked: Boolean; out ACaptionColor, AFrameColor,
|
||||
AGradientFromColor, AGradientToColor: TColor; out AGradientKind: TBackgroundKind;
|
||||
ABrightenBy: Integer = 0);
|
||||
procedure GetIdleColors(IsChecked: Boolean; out ACaptionColor, AFrameColor,
|
||||
AGradientFromColor, AGradientToColor: TColor; out AGradientKind: TBackgroundKind;
|
||||
ABrightenBy: Integer = 0);
|
||||
|
||||
published
|
||||
property CaptionFont: TFont read FCaptionFont write SetCaptionFont;
|
||||
property IdleFrameColor: TColor read FIdleFrameColor write SetIdleFrameColor;
|
||||
property IdleGradientFromColor: TColor read FIdleGradientFromColor write SetIdleGradientFromColor;
|
||||
property IdleGradientToColor: TColor read FIdleGradientToColor write SetIdleGradientToColor;
|
||||
property IdleGradientType: TBackgroundKind read FIdleGradientType write SetIdleGradientType;
|
||||
property IdleCaptionColor: TColor read FIdleCaptionColor write SetIdleCaptionColor;
|
||||
property HotTrackFrameColor: TColor read FHotTrackFrameColor write SetHotTrackFrameColor;
|
||||
property HotTrackGradientFromColor: TColor read FHotTrackGradientFromColor write SetHotTrackGradientFromColor;
|
||||
property HotTrackGradientToColor: TColor read FHotTrackGradientToColor write SetHotTrackGradientToColor;
|
||||
property HotTrackGradientType: TBackgroundKind read FHotTrackGradientType write SetHotTrackGradientType;
|
||||
property HotTrackCaptionColor: TColor read FHotTrackCaptionColor write SetHotTrackCaptionColor;
|
||||
property HotTrackBrightnessChange: Integer read FHotTrackBrightnessChange write SetHotTrackBrightnessChange default 20;
|
||||
property ActiveFrameColor: TColor read FActiveFrameColor write SetActiveFrameColor;
|
||||
property ActiveGradientFromColor: TColor read FActiveGradientFromColor write SetActiveGradientFromColor;
|
||||
property ActiveGradientToColor: TColor read FActiveGradientToColor write SetActiveGradientToColor;
|
||||
property ActiveGradientType: TBackgroundKind read FActiveGradientType write SetActiveGradientType;
|
||||
property ActiveCaptionColor: TColor read FActiveCaptionColor write SetActiveCaptionColor;
|
||||
property ShapeStyle: TSpkMenuButtonShapeStyle read FShapeStyle write SetShapeStyle;
|
||||
end;
|
||||
|
||||
|
||||
{ TSpkPaneAppearance }
|
||||
|
||||
TSpkPaneAppearance = class(TPersistent)
|
||||
@ -261,12 +352,14 @@ type
|
||||
private
|
||||
FAppearanceDispatch: TSpkToolbarAppearanceDispatch;
|
||||
FTab: TSpkTabAppearance;
|
||||
FMenuButton: TSpkMenuButtonAppearance;
|
||||
FPane: TSpkPaneAppearance;
|
||||
FElement: TSpkElementAppearance;
|
||||
FDispatch: TSpkBaseAppearanceDispatch;
|
||||
procedure SetElementAppearance(const Value: TSpkElementAppearance);
|
||||
procedure SetPaneAppearance(const Value: TSpkPaneAppearance);
|
||||
procedure SetTabAppearance(const Value: TSpkTabAppearance);
|
||||
procedure SetMenuButtonAppearance(const Value: TSpkMenuButtonAppearance);
|
||||
public
|
||||
constructor Create(ADispatch: TSpkBaseAppearanceDispatch); reintroduce;
|
||||
destructor Destroy; override;
|
||||
@ -278,6 +371,7 @@ type
|
||||
procedure LoadFromXML(Node: TSpkXMLNode);
|
||||
published
|
||||
property Tab: TSpkTabAppearance read FTab write SetTabAppearance;
|
||||
property MenuButton: TSpkMenuButtonAppearance read FMenuButton write SetMenuButtonAppearance;
|
||||
property Pane: TSpkPaneAppearance read FPane write SetPaneAppearance;
|
||||
property Element: TSpkElementAppearance read FElement write SetElementAppearance;
|
||||
end;
|
||||
@ -1587,6 +1681,7 @@ begin
|
||||
FDispatch := ADispatch;
|
||||
FAppearanceDispatch := TSpkToolbarAppearanceDispatch.Create(self);
|
||||
FTab := TSpkTabAppearance.Create(FAppearanceDispatch);
|
||||
FMenuButton := TSpkMenuButtonAppearance.Create(FAppearanceDispatch);
|
||||
FPane := TSpkPaneAppearance.create(FAppearanceDispatch);
|
||||
FElement := TSpkElementAppearance.create(FAppearanceDispatch);
|
||||
end;
|
||||
@ -1595,6 +1690,7 @@ destructor TSpkToolbarAppearance.Destroy;
|
||||
begin
|
||||
FElement.Free;
|
||||
FPane.Free;
|
||||
FMenuButton.Free;
|
||||
FTab.Free;
|
||||
FAppearanceDispatch.Free;
|
||||
inherited;
|
||||
@ -1609,6 +1705,7 @@ begin
|
||||
Src := TSpkToolbarAppearance(Source);
|
||||
|
||||
self.FTab.Assign(Src.Tab);
|
||||
self.FMenuButton.Assign(Src.MenuButton);
|
||||
self.FPane.Assign(Src.Pane);
|
||||
self.FElement.Assign(Src.Element);
|
||||
|
||||
@ -1623,6 +1720,7 @@ var
|
||||
Subnode: TSpkXMLNode;
|
||||
begin
|
||||
Tab.Reset;
|
||||
MenuButton.Reset;
|
||||
Pane.Reset;
|
||||
Element.Reset;
|
||||
|
||||
@ -1633,6 +1731,10 @@ begin
|
||||
if Assigned(Subnode) then
|
||||
Tab.LoadFromXML(Subnode);
|
||||
|
||||
Subnode := Node['Menu Button', false];
|
||||
if Assigned(Subnode) then
|
||||
MenuButton.LoadFromXML(Subnode);
|
||||
|
||||
Subnode := Node['Pane', false];
|
||||
if Assigned(Subnode) then
|
||||
Pane.LoadFromXML(Subnode);
|
||||
@ -1651,6 +1753,7 @@ end;
|
||||
procedure TSpkToolbarAppearance.Reset(AStyle: TSpkStyle = spkOffice2007Blue);
|
||||
begin
|
||||
FTab.Reset(AStyle);
|
||||
FMenuButton.Reset(AStyle);
|
||||
FPane.Reset(AStyle);
|
||||
FElement.Reset(AStyle);
|
||||
if Assigned(FAppearanceDispatch) then
|
||||
@ -1661,6 +1764,7 @@ procedure TSpkToolbarAppearance.SaveToPascal(AList: TStrings);
|
||||
begin
|
||||
AList.Add('with Appearance do begin');
|
||||
FTab.SaveToPascal(AList);
|
||||
FMenuButton.SaveToPascal(AList);
|
||||
FPane.SaveToPascal(AList);
|
||||
FElement.SaveToPascal(AList);
|
||||
AList.Add('end;');
|
||||
@ -1673,6 +1777,9 @@ begin
|
||||
Subnode := Node['Tab',true];
|
||||
FTab.SaveToXML(Subnode);
|
||||
|
||||
Subnode := Node['Menu Button',true];
|
||||
FMenuButton.SaveToXML(Subnode);
|
||||
|
||||
Subnode := Node['Pane',true];
|
||||
FPane.SaveToXML(Subnode);
|
||||
|
||||
@ -1701,4 +1808,570 @@ begin
|
||||
//AFont.Assign(Screen.MenuFont); // wp: If this really is harmful this proc should be removed.
|
||||
end;
|
||||
|
||||
procedure TSpkToolbarAppearance.SetMenubuttonAppearance(const Value: TSpkMenuButtonAppearance);
|
||||
begin
|
||||
FMenuButton.Assign(Value);
|
||||
end;
|
||||
|
||||
//****
|
||||
|
||||
constructor TSpkMenuButtonAppearance.Create(ADispatch: TSpkBaseAppearanceDispatch);
|
||||
begin
|
||||
inherited Create;
|
||||
FDispatch := ADispatch;
|
||||
FCaptionFont := TFont.Create;
|
||||
FCaptionFont.OnChange := CaptionFontChange;
|
||||
FHotTrackBrightnessChange := 40;
|
||||
Reset;
|
||||
end;
|
||||
|
||||
destructor TSpkMenuButtonAppearance.Destroy;
|
||||
begin
|
||||
FCaptionFont.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.Assign(Source: TPersistent);
|
||||
var
|
||||
SrcAppearance: TSpkMenuButtonAppearance;
|
||||
begin
|
||||
if Source is TSpkMenuButtonAppearance then
|
||||
begin
|
||||
SrcAppearance := TSpkMenuButtonAppearance(Source);
|
||||
|
||||
FCaptionFont.Assign(SrcAppearance.CaptionFont);
|
||||
FIdleFrameColor := SrcAppearance.IdleFrameColor;
|
||||
FIdleGradientFromColor := SrcAppearance.IdleGradientFromColor;
|
||||
FIdleGradientToColor := SrcAppearance.IdleGradientToColor;
|
||||
FIdleGradientType := SrcAppearance.IdleGradientType;
|
||||
FIdleCaptionColor := SrcAppearance.IdleCaptionColor;
|
||||
FHotTrackFrameColor := SrcAppearance.HotTrackFrameColor;
|
||||
FHotTrackGradientFromColor := SrcAppearance.HotTrackGradientFromColor;
|
||||
FHotTrackGradientToColor := SrcAppearance.HotTrackGradientToColor;
|
||||
FHotTrackGradientType := SrcAppearance.HotTrackGradientType;
|
||||
FHotTrackCaptionColor := SrcAppearance.HotTrackCaptionColor;
|
||||
FHotTrackBrightnessChange := SrcAppearance.HotTrackBrightnessChange;
|
||||
FActiveFrameColor := SrcAppearance.ActiveFrameColor;
|
||||
FActiveGradientFromColor := SrcAppearance.ActiveGradientFromColor;
|
||||
FActiveGradientToColor := SrcAppearance.ActiveGradientToColor;
|
||||
FActiveGradientType := SrcAppearance.ActiveGradientType;
|
||||
FActiveCaptionColor := SrcAppearance.ActiveCaptionColor;
|
||||
FShapeStyle := SrcAppearance.ShapeStyle;
|
||||
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end else
|
||||
raise AssignException.Create('TSpkMenuButtonAppearance.Assign: Cannot assign the objecct '+Source.ClassName+' to TSpkMenuButtonAppearance!');
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.CaptionFontChange(Sender: TObject);
|
||||
begin
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.GetActiveColors(IsChecked: Boolean;
|
||||
out ACaptionColor, AFrameColor, AGradientFromColor, AGradientToColor: TColor;
|
||||
out AGradientKind: TBackgroundKind; ABrightenBy: Integer = 0);
|
||||
const
|
||||
DELTA = -20;
|
||||
begin
|
||||
ACaptionColor := FActiveCaptionColor;
|
||||
AFrameColor := FActiveFrameColor;
|
||||
AGradientFromColor := FActiveGradientFromColor;
|
||||
AGradientToColor := FActiveGradientToColor;
|
||||
AGradientKind := FActiveGradientType;
|
||||
|
||||
if IsChecked then
|
||||
ABrightenBy := DELTA + ABrightenBy;
|
||||
|
||||
if ABrightenBy <> 0 then
|
||||
begin
|
||||
ACaptionColor := TColorTools.Brighten(ACaptionColor, ABrightenBy);
|
||||
AFrameColor := TColorTools.Brighten(AFrameColor, ABrightenBy);
|
||||
AGradientFromColor := TColorTools.Brighten(AGradientFromColor, ABrightenBy);
|
||||
AGradientToColor := TColorTools.Brighten(AGradientToColor, ABrightenBy);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.GetIdleColors(IsChecked: Boolean;
|
||||
out ACaptionColor, AFrameColor, AGradientFromColor, AGradientToColor: TColor;
|
||||
out AGradientKind: TBackgroundKind; ABrightenBy: Integer = 0);
|
||||
const
|
||||
DELTA = 10;
|
||||
begin
|
||||
if IsChecked then
|
||||
begin
|
||||
ABrightenBy := DELTA + ABrightenBy;
|
||||
ACaptionColor := FActiveCaptionColor;
|
||||
AFrameColor := FActiveFrameColor;
|
||||
AGradientFromColor := FActiveGradientFromColor;
|
||||
AGradientToColor := FActiveGradientToColor;
|
||||
AGradientKind := FActiveGradientType;
|
||||
end else
|
||||
begin
|
||||
ACaptionColor := FIdleCaptionColor;
|
||||
AFrameColor := FIdleFrameColor;
|
||||
AGradientFromColor := FIdleGradientFromColor;
|
||||
AGradientToColor := FIdleGradientToColor;
|
||||
AGradientKind := FIdleGradientType;
|
||||
end;
|
||||
|
||||
if ABrightenBy <> 0 then
|
||||
begin
|
||||
ACaptionColor := TColorTools.Brighten(ACaptionColor, ABrightenBy);
|
||||
AFrameColor := TColorTools.Brighten(AFrameColor, ABrightenBy);
|
||||
AGradientFromColor := TColorTools.Brighten(AGradientFromColor, ABrightenBy);
|
||||
AGradientToColor := TColorTools.Brighten(AGradientToColor, ABrightenBy);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.GetHotTrackColors(IsChecked: Boolean;
|
||||
out ACaptionColor, AFrameColor, AGradientFromColor, AGradientToColor: TColor;
|
||||
out AGradientKind: TBackgroundKind; ABrightenBy: Integer = 0);
|
||||
const
|
||||
DELTA = 20;
|
||||
begin
|
||||
if IsChecked then begin
|
||||
ABrightenBy := ABrightenBy + DELTA;
|
||||
ACaptionColor := FActiveCaptionColor;
|
||||
AFrameColor := FActiveFrameColor;
|
||||
AGradientFromColor := FActiveGradientFromColor;
|
||||
AGradientToColor := FActiveGradientToColor;
|
||||
AGradientKind := FActiveGradientType;
|
||||
end else begin
|
||||
ACaptionColor := FHotTrackCaptionColor;
|
||||
AFrameColor := FHotTrackFrameColor;
|
||||
AGradientFromColor := FHotTrackGradientFromColor;
|
||||
AGradientToColor := FHotTrackGradientToColor;
|
||||
AGradientKind := FHotTrackGradientType;
|
||||
end;
|
||||
if ABrightenBy <> 0 then begin
|
||||
ACaptionColor := TColorTools.Brighten(ACaptionColor, ABrightenBy);
|
||||
AFrameColor := TColorTools.Brighten(AFrameColor, ABrightenBy);
|
||||
AGradientFromColor := TColorTools.Brighten(AGradientFromColor, ABrightenBy);
|
||||
AGradientToColor := TColorTools.Brighten(AGradientToColor, ABrightenBy);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.LoadFromXML(Node: TSpkXMLNode);
|
||||
var
|
||||
Subnode: TSpkXMLNode;
|
||||
begin
|
||||
if not Assigned(Node) then
|
||||
exit;
|
||||
|
||||
Subnode := Node['CaptionFont', false];
|
||||
if Assigned(Subnode) then
|
||||
TSpkXMLTools.Load(Subnode, FCaptionFont);
|
||||
|
||||
// Idle
|
||||
Subnode := Node['IdleFrameColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FIdleFrameColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['IdleGradientFromColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FIdleGradientFromColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['IdleGradientToColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FIdleGradientToColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['IdleGradientType', false];
|
||||
if Assigned(Subnode) then
|
||||
FIdleGradientType := TBackgroundKind(Subnode.TextAsInteger);
|
||||
|
||||
Subnode := Node['IdleCaptionColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FIdleCaptionColor := Subnode.TextAsColor;
|
||||
|
||||
// HotTrack
|
||||
Subnode := Node['HottrackFrameColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FHottrackFrameColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['HottrackGradientFromColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FHottrackGradientFromColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['HottrackGradientToColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FHottrackGradientToColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['HottrackGradientType', false];
|
||||
if Assigned(Subnode) then
|
||||
FHottrackGradientType := TBackgroundKind(Subnode.TextAsInteger);
|
||||
|
||||
Subnode := Node['HottrackCaptionColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FHottrackCaptionColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['HottrackBrightnessChange', false];
|
||||
if Assigned(Subnode) then
|
||||
FHottrackBrightnessChange := Subnode.TextAsInteger;
|
||||
|
||||
// Active
|
||||
Subnode := Node['ActiveFrameColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FActiveFrameColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['ActiveGradientFromColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FActiveGradientFromColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['ActiveGradientToColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FActiveGradientToColor := Subnode.TextAsColor;
|
||||
|
||||
Subnode := Node['ActiveGradientType', false];
|
||||
if Assigned(Subnode) then
|
||||
FActiveGradientType := TBackgroundKind(Subnode.TextAsInteger);
|
||||
|
||||
Subnode := Node['ActiveCaptionColor', false];
|
||||
if Assigned(Subnode) then
|
||||
FActiveCaptionColor := Subnode.TextAsColor;
|
||||
|
||||
// Other
|
||||
Subnode := Node['ShapeStyle', false];
|
||||
if Assigned(SubNode) then
|
||||
FShapeStyle := TSpkMenuButtonShapeStyle(Subnode.TextAsInteger);
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.Reset(AStyle: TSpkStyle = spkOffice2007Blue);
|
||||
begin
|
||||
SetDefaultFont(FCaptionFont);
|
||||
|
||||
case AStyle of
|
||||
spkOffice2007Blue,
|
||||
spkOffice2007Silver,
|
||||
spkOffice2007SilverTurquoise:
|
||||
begin
|
||||
FCaptionFont.Style := [];
|
||||
FCaptionFont.Color := $00FFFFFF;
|
||||
FIdleFrameColor := $00A1481F;
|
||||
FIdleGradientFromColor := $00DF8A47;
|
||||
FIdleGradientToColor := $00B76129;
|
||||
FIdleGradientType := bkConcave;
|
||||
FIdleCaptionColor := $00FFFFFF;
|
||||
FHotTrackFrameColor := $00A1481F;
|
||||
FHotTrackGradientFromColor := $00E79D5B;
|
||||
FHotTrackGradientToColor := $00BE6731;
|
||||
FHotTrackGradientType := bkConcave;
|
||||
FHotTrackCaptionColor := $00FFFFFF;
|
||||
FHotTrackBrightnessChange := 40;
|
||||
FActiveFrameColor := $00A94D1C;
|
||||
FActiveGradientFromColor := $00DD8A3E;
|
||||
FActiveGradientToColor := $00BD6126;
|
||||
FActiveGradientType := bkConcave;
|
||||
FActiveCaptionColor := $00FFFFFF;
|
||||
FShapeStyle := mbssRounded;
|
||||
end;
|
||||
|
||||
//spkOffice2007Silver,
|
||||
//spkOffice2007SilverTurquoise:
|
||||
// begin
|
||||
// FCaptionFont.Style := [];
|
||||
// FCaptionFont.Color := $008B4215;
|
||||
// FIdleFrameColor := $00B8B1A9;
|
||||
// FIdleGradientFromColor := $00F4F4F2;
|
||||
// FIdleGradientToColor := $00E6E5E3;
|
||||
// FIdleGradientType := bkConcave;
|
||||
// FIdleCaptionColor := $0060655F;
|
||||
// FHotTrackBrightnessChange := 40;
|
||||
// FHotTrackFrameColor := $009BCFDD;
|
||||
// FHotTrackGradientFromColor := $00DAFCFF;
|
||||
// FHotTrackGradientToColor := $004DD7FF;
|
||||
// FHotTrackGradientType := bkConcave;
|
||||
// FHotTrackCaptionColor := $0087426F;
|
||||
// if AStyle = spkOffice2007SilverTurquoise then
|
||||
// begin
|
||||
// FHotTrackFrameColor := $009E7D0E;
|
||||
// FHotTrackGradientFromColor := $00FBF1D0;
|
||||
// FHotTrackGradientToColor := $00F4DD8A;
|
||||
// end;
|
||||
// FActiveFrameColor := $0054768B;
|
||||
// FActiveGradientFromColor := $006CBBFE;
|
||||
// FActiveGradientToColor := $003D92FC;
|
||||
// FActiveGradientType := bkConcave;
|
||||
// FActiveCaptionColor := $0080426E;
|
||||
// if AStyle = spkOffice2007SilverTurquoise then
|
||||
// begin
|
||||
// FActiveFrameColor := $0077620B;
|
||||
// FActiveGradientFromColor := $00F4DB82;
|
||||
// FActiveGradientToColor := $00ECC53E;
|
||||
// end;
|
||||
// FShapeStyle := mbssRounded;
|
||||
// end;
|
||||
|
||||
spkMetroLight:
|
||||
begin
|
||||
FCaptionFont.Style := [];
|
||||
FCaptionFont.Color := $00FFFFFF;
|
||||
FIdleFrameColor := $00B46600;
|
||||
FIdleGradientFromColor := $00B46600;
|
||||
FIdleGradientToColor := $00B46600;
|
||||
FIdleGradientType := bkSolid;
|
||||
FIdleCaptionColor := $00FFFFFF;
|
||||
FHotTrackFrameColor := $00DD7D00;
|
||||
FHotTrackGradientFromColor := $00DD7D00;
|
||||
FHotTrackGradientToColor := $00DD7D00;
|
||||
FHotTrackGradientType := bkSolid;
|
||||
FHotTrackCaptionColor := $00FFFFFF;
|
||||
FHotTrackBrightnessChange := 20;
|
||||
FActiveFrameColor := $00965500;
|
||||
FActiveGradientFromColor := $00965500;
|
||||
FActiveGradientToColor := $00965500;
|
||||
FActiveGradientType := bkSolid;
|
||||
FActiveCaptionColor := $00FFFFFF;
|
||||
FShapeStyle := mbssRectangle;
|
||||
end;
|
||||
|
||||
spkMetroDark:
|
||||
begin
|
||||
FCaptionFont.Style := [];
|
||||
FCaptionFont.Color := $00FFFFFF;
|
||||
FIdleFrameColor := $00B46600;
|
||||
FIdleGradientFromColor := $00B46600;
|
||||
FIdleGradientToColor := $00B46600;
|
||||
FIdleGradientType := bkSolid;
|
||||
FIdleCaptionColor := $00FFFFFF;
|
||||
FHotTrackFrameColor := $00DD7D00;
|
||||
FHotTrackGradientFromColor := $00DD7D00;
|
||||
FHotTrackGradientToColor := $00DD7D00;
|
||||
FHotTrackGradientType := bkSolid;
|
||||
FHotTrackCaptionColor := $00FFFFFF;
|
||||
FHotTrackBrightnessChange := 10;
|
||||
FActiveFrameColor := $00965500;
|
||||
FActiveGradientFromColor := $00965500;
|
||||
FActiveGradientToColor := $00965500;
|
||||
FActiveGradientType := bkSolid;
|
||||
FActiveCaptionColor := $00FFFFFF;
|
||||
FShapeStyle := mbssRectangle;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SaveToPascal(AList: TStrings);
|
||||
begin
|
||||
with AList do begin
|
||||
Add(' with MenuButton do begin');
|
||||
SaveFontToPascal(AList, FCaptionFont, ' CaptionFont');
|
||||
|
||||
Add(' IdleFrameColor := $' + IntToHex(FIdleFrameColor, 8) + ';');
|
||||
Add(' IdleGradientFromColor := $' + IntToHex(FIdleGradientFromColor, 8) + ';');
|
||||
Add(' IdleGradientToColor := $' + IntToHex(FIdleGradientToColor, 8) + ';');
|
||||
Add(' IdleGradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FIdleGradientType)) + ';');
|
||||
Add(' IdleCaptionColor := $' + IntToHex(FIdleCaptionColor, 8) + ';');
|
||||
|
||||
Add(' HotTrackFrameColor := $' + IntToHex(FHotTrackFrameColor, 8) + ';');
|
||||
Add(' HotTrackGradientFromColor := $' + IntToHex(FHotTrackGradientFromColor, 8) + ';');
|
||||
Add(' HotTrackGradientToColor := $' + IntToHex(FHotTrackGradientToColor, 8) + ';');
|
||||
Add(' HotTrackGradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FHotTrackGradientType)) + ';');
|
||||
Add(' HotTrackCaptionColor := $' + IntToHex(FHotTrackCaptionColor, 8) + ';');
|
||||
Add(' HotTrackBrightnessChange := ' + IntToStr(FHotTrackBrightnessChange) + ';');
|
||||
|
||||
Add(' ActiveFrameColor := $' + IntToHex(FActiveFrameColor, 8) + ';');
|
||||
Add(' ActiveGradientFromColor := $' + IntToHex(FActiveGradientFromColor, 8) + ';');
|
||||
Add(' ActiveGradientToColor := $' + IntToHex(FActiveGradientToColor, 8) + ';');
|
||||
Add(' ActiveGradientType := ' + GetEnumName(TypeInfo(TBackgroundKind), ord(FActiveGradientType)) + ';');
|
||||
Add(' ActiveCaptionColor := $' + IntToHex(FActiveCaptionColor, 8) + ';');
|
||||
|
||||
Add(' ShapeStyle := ' + GetEnumName(TypeInfo(TSpkMenuButtonShapeStyle), ord(FShapeStyle)) + ';');
|
||||
Add(' end;');
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SaveToXML(Node: TSpkXMLNode);
|
||||
var
|
||||
Subnode: TSpkXMLNode;
|
||||
begin
|
||||
if not Assigned(Node) then
|
||||
exit;
|
||||
|
||||
Subnode := Node['CaptionFont', true];
|
||||
TSpkXMLTools.Save(Subnode, FCaptionFont);
|
||||
|
||||
// Idle
|
||||
Subnode := Node['IdleFrameColor', true];
|
||||
Subnode.TextAsColor := FIdleFrameColor;
|
||||
|
||||
Subnode := Node['IdleGradientFromColor', true];
|
||||
Subnode.TextAsColor := FIdleGradientFromColor;
|
||||
|
||||
Subnode := Node['IdleGradientToColor', true];
|
||||
Subnode.TextAsColor := FIdleGradientToColor;
|
||||
|
||||
Subnode := Node['IdleGradientType', true];
|
||||
Subnode.TextAsInteger := integer(FIdleGradientType);
|
||||
|
||||
Subnode := Node['IdleCaptionColor', true];
|
||||
Subnode.TextAsColor := FIdleCaptionColor;
|
||||
|
||||
// HotTrack
|
||||
Subnode := Node['HottrackFrameColor', true];
|
||||
Subnode.TextAsColor := FHottrackFrameColor;
|
||||
|
||||
Subnode := Node['HottrackGradientFromColor', true];
|
||||
Subnode.TextAsColor := FHottrackGradientFromColor;
|
||||
|
||||
Subnode := Node['HottrackGradientToColor', true];
|
||||
Subnode.TextAsColor := FHottrackGradientToColor;
|
||||
|
||||
Subnode := Node['HottrackGradientType', true];
|
||||
Subnode.TextAsInteger := integer(FHottrackGradientType);
|
||||
|
||||
Subnode := Node['HottrackCaptionColor', true];
|
||||
Subnode.TextAsColor := FHottrackCaptionColor;
|
||||
|
||||
Subnode := Node['HottrackBrightnessChange', true];
|
||||
Subnode.TextAsInteger := FHotTrackBrightnessChange;
|
||||
|
||||
// Active
|
||||
Subnode := Node['ActiveFrameColor', true];
|
||||
Subnode.TextAsColor := FActiveFrameColor;
|
||||
|
||||
Subnode := Node['ActiveGradientFromColor', true];
|
||||
Subnode.TextAsColor := FActiveGradientFromColor;
|
||||
|
||||
Subnode := Node['ActiveGradientToColor', true];
|
||||
Subnode.TextAsColor := FActiveGradientToColor;
|
||||
|
||||
Subnode := Node['ActiveGradientType', true];
|
||||
Subnode.TextAsInteger := integer(FActiveGradientType);
|
||||
|
||||
Subnode := Node['ActiveCaptionColor', true];
|
||||
Subnode.TextAsColor := FActiveCaptionColor;
|
||||
|
||||
// Other
|
||||
Subnode := Node['ShapeStyle', true];
|
||||
Subnode.TextAsInteger := integer(FShapeStyle);
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetActiveCaptionColor(const Value: TColor);
|
||||
begin
|
||||
FActiveCaptionColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetActiveFrameColor(const Value: TColor);
|
||||
begin
|
||||
FActiveFrameColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetActiveGradientFromColor(const Value: TColor);
|
||||
begin
|
||||
FActiveGradientFromColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetActiveGradientToColor(const Value: TColor);
|
||||
begin
|
||||
FActiveGradientToColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetActiveGradientType(const Value: TBackgroundKind);
|
||||
begin
|
||||
FActiveGradientType := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetCaptionFont(const Value: TFont);
|
||||
begin
|
||||
FCaptionFont.Assign(Value);
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetHotTrackBrightnessChange(const Value: Integer);
|
||||
begin
|
||||
FHotTrackBrightnessChange := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetHotTrackCaptionColor(const Value: TColor);
|
||||
begin
|
||||
FHotTrackCaptionColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetHotTrackFrameColor(const Value: TColor);
|
||||
begin
|
||||
FHotTrackFrameColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetHotTrackGradientFromColor(const Value: TColor);
|
||||
begin
|
||||
FHotTrackGradientFromColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetHotTrackGradientToColor(const Value: TColor);
|
||||
begin
|
||||
FHotTrackGradientToColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetHotTrackGradientType(const Value: TBackgroundKind);
|
||||
begin
|
||||
FHotTrackGradientType := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetIdleCaptionColor(const Value: TColor);
|
||||
begin
|
||||
FIdleCaptionColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetIdleFrameColor(const Value: TColor);
|
||||
begin
|
||||
FIdleFrameColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetIdleGradientFromColor(const Value: TColor);
|
||||
begin
|
||||
FIdleGradientFromColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetIdleGradientToColor(const Value: TColor);
|
||||
begin
|
||||
FIdleGradientToColor := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetIdleGradientType(const Value: TBackgroundKind);
|
||||
begin
|
||||
FIdleGradientType := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
procedure TSpkMenuButtonAppearance.SetShapeStyle(const Value: TSpkMenuButtonShapeStyle);
|
||||
begin
|
||||
FShapeStyle := Value;
|
||||
if FDispatch <> nil then
|
||||
FDispatch.NotifyAppearanceChanged;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Reference in New Issue
Block a user