spktoolbar: Support the SpkPopupMenu in the AppearanceEditor.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8738 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2023-02-23 19:14:35 +00:00
parent 75b9afae7c
commit 318afbd40f
4 changed files with 1490 additions and 105 deletions

View File

@ -347,11 +347,11 @@ type
FCheckedGradientToColor: TColor;
FCheckedGradientType: TBackgroundKind;
FDisabledCaptionColor: TColor;
FDividerLineColor: TColor;
FGutterFrameColor: TColor;
FGutterGradientFromColor: TColor;
FGutterGradientToColor: TColor;
FGutterGradientType: TBackgroundKind;
FGutterLineColor: TColor;
FHotTrackCaptionColor: TColor;
FHotTrackFrameColor: TColor;
FHotTrackGradientFromColor: TColor;
@ -368,11 +368,11 @@ type
procedure SetCheckedGradientToColor(const Value: TColor);
procedure SetCheckedGradientType(const Value: TBackgroundKind);
procedure SetDisabledCaptionColor(const Value: TColor);
procedure SetDividerLineColor(const Value: TColor);
procedure SetGutterFrameColor(const Value: TColor);
procedure SetGutterGradientFromColor(const Value: TColor);
procedure SetGutterGradientToColor(const Value: TColor);
procedure SetGutterGradientType(const Value: TBackgroundKind);
procedure SetGutterLineColor(const Value: TColor);
procedure SetHotTrackCaptionColor(const Value: TColor);
procedure SetHotTrackFrameColor(const Value: TColor);
procedure SetHotTrackGradientFromColor(const Value: TColor);
@ -400,11 +400,11 @@ type
property CheckedGradientToColor: TColor read FCheckedGradientToColor write SetCheckedGradientToColor;
property CheckedGradientType: TBackgroundKind read FCheckedGradientType write SetCheckedGradientType;
property DisabledCaptionColor: TColor read FDisabledCaptionColor write SetDisabledCaptionColor;
property DividerLineColor: TColor read FDividerLineColor write SetDividerLineColor;
property GutterFrameColor: TColor read FGutterFrameColor write SetGutterFrameColor;
property GutterGradientFromColor: TColor read FGutterGradientFromColor write SetGutterGradientFromColor;
property GutterGradientToColor: TColor read FGutterGradientToColor write SetGutterGradientToColor;
property GutterGradientType: TBackgroundKind read FGutterGradientType write SetGutterGradientType;
property GutterLineColor: TColor read FGutterLineColor write SetGutterLineColor;
property HotTrackCaptionColor: TColor read FHotTrackCaptionColor write SetHotTrackCaptionColor;
property HotTrackFrameColor: TColor read FHotTrackFrameColor write SetHotTrackFrameColor;
property HotTrackGradientFromColor: TColor read FHotTrackGradientFromColor write SetHotTrackGradientFromColor;
@ -1780,33 +1780,24 @@ begin
FCheckedGradientType := SrcAppearance.CheckedGradientType;
FDisabledCaptionColor := SrcAppearance.DisabledCaptionColor;
FDividerLineColor := SrcAppearance.DividerLineColor;
FIdleCaptionColor := SrcAppearance.IdleCaptionColor;
FIdleGradientFromColor := SrcAppearance.IdleGradientFromColor;
FIdleGradientToColor := SrcAppearance.IdleGradientToColor;
FIdleGradientType := SrcAppearance.IdleGradientType;
FGutterFrameColor := SrcAppearance.GutterFrameColor;
FGutterGradientFromColor := SrcAppearance.GutterGradientFromColor;
FGutterGradientToColor := SrcAppearance.GutterGradientToColor;
FGutterGradientType := SrcAppearance.GutterGradientType;
{
FIdleFrameColor := SrcAppearance.IdleFrameColor;
}
FIdleCaptionColor := SrcAppearance.IdleCaptionColor;
FIdleGradientFromColor := SrcAppearance.IdleGradientFromColor;
FIdleGradientToColor := SrcAppearance.IdleGradientToColor;
FIdleGradientType := SrcAppearance.IdleGradientType;
{
FIdleInnerLightColor := SrcAppearance.IdleInnerLightColor;
FIdleInnerDarkColor := SrcAppearance.IdleInnerDarkColor;
}
FHotTrackCaptionColor := SrcAppearance.HotTrackCaptionColor;
FHotTrackFrameColor := SrcAppearance.HotTrackFrameColor;
FHotTrackGradientFromColor := SrcAppearance.HotTrackGradientFromColor;
FHotTrackGradientToColor := SrcAppearance.HotTrackGradientToColor;
FHotTrackGradientType := SrcAppearance.HotTrackGradientType;
{
FHotTrackInnerLightColor := SrcAppearance.HotTrackInnerLightColor;
FHotTrackInnerDarkColor := SrcAppearance.HotTrackInnerDarkColor;
FHotTrackBrightnessChange := SrcAppearance.HotTrackBrightnessChange;
}
FStyle := SrcAppearance.Style;
if FDispatch <> nil then
FDispatch.NotifyAppearanceChanged;
@ -1853,6 +1844,11 @@ begin
if Assigned(SubNode) then
FDisabledCaptionColor := Subnode.TextAsColor;
// Divider line
Subnode := Node['DividerLineColor', false];
if Assigned(Subnode) then
FDividerLineColor := Subnode.TextAsColor;
// Idle
Subnode := Node['IdleCaptionColor', false];
if Assigned(Subnode) then
@ -1901,10 +1897,6 @@ begin
if Assigned(Subnode) then
FGutterGradientType := TBackgroundKind(Subnode.TextAsInteger);
Subnode := Node['GutterLineColor', false];
if Assigned(Subnode) then
FGutterLineColor := Subnode.TextAsColor;
// HotTrack
Subnode := Node['HottrackCaptionColor', false];
@ -1958,14 +1950,14 @@ begin
FCheckedGradientFromColor := rgb(255, 227, 149);
FCheckedGradientToColor := FCheckedGradientFromColor;
FCheckedGradientType := bkSolid;
FDividerLineColor := rgb(141, 178, 227);
{
FIdleFrameColor := rgb(155, 183, 224);
}
FGutterFrameColor := rgb(141, 178, 227);
FGutterFrameColor := rgb(197, 197, 197);
FGutterGradientFromColor := rgb(233, 238, 238);
FGutterGradientToColor := rgb(233, 238, 238);
FGutterGradientType := bkSolid;
FGutterLineColor := rgb(197, 197, 197);
{
FIdleInnerLightColor := rgb(213, 227, 241);
FIdleInnerDarkColor := rgb(190, 211, 236);
@ -2004,16 +1996,16 @@ begin
FCheckedGradientFromColor := rgb(255, 227, 149);
end;
FCheckedGradientToColor := FCheckedGradientFromColor;
FDividerLineColor := $00BEBEBE;
FIdleCaptionColor := $0060655F;
FIdleGradientFromColor := rgb(250, 250, 250);
FIdleGradientToColor := rgb(250, 250, 250);
FIdleGradientType := bkSolid;
FGutterFrameColor := $00BEBEBE;
FGutterFrameColor := rgb(197, 197, 197);
FGutterGradientFromColor := rgb(239, 239, 239);
FGutterGradientToColor := rgb(239, 239, 239);
FGutterGradientType := bkSolid;
FGutterLineColor := rgb(197, 197, 197);
{
FIdleInnerDarkColor := $00C7C0BA;
FIdleInnerLightColor := $00F6F2F0;
@ -2049,12 +2041,13 @@ begin
FCheckedGradientFromColor := $00F7EFE8;
FCheckedGradientToColor := FCheckedGradientFromColor;
FCheckedGradientType := bkSolid;
FDisabledCaptionColor := rgb(192, 192, 192);
FGutterFrameColor := $00D2D0CF;
FDividerLineColor := $00D2D0CF;
FGutterFrameColor := rgb(197, 197, 197);
FGutterGradientFromColor := rgb(239, 239, 239);
FGutterGradientToColor := rgb(239, 239, 239);
FGutterGradientType := bkSolid;
FGutterLineColor := rgb(197, 197, 197);
FHotTrackCaptionColor := $003F3F3F;
FHotTrackFrameColor := $00F9CEA4;
FHotTrackGradientFromColor := $00F7EFE8;
@ -2092,11 +2085,11 @@ begin
FCheckedGradientToColor := FCheckedGradientFromColor;
FCheckedGradientType := bkSolid;
FDisabledCaptionColor := $787878;
FGutterFrameColor := $000000;
FDividerLineColor := $000000;
FGutterFrameColor := rgb(32, 32, 32);
FGutterGradientFromColor := clBlack;
FGutterGradientToColor := clBlack;
FGutterGradientType := bkSolid;
FGutterLineColor := rgb(32, 32, 32);
FHotTrackCaptionColor := $00F2F2F2;
FHotTrackFrameColor := $00C4793C;
FHotTrackGradientFromColor := $00805B3D;
@ -2135,12 +2128,12 @@ begin
Add(' CheckedGradientType := %s;', [GradientTypeName(FCheckedGradientType)]);
Add(' DisabledCaptionColor := $%.8x;', [FDisabledCaptionColor]);
Add(' DividerLineColor := $%.8x;', [FDividerLineColor]);
Add(' GutterFrameColor := $%.8x;', [FGutterFrameColor]);
Add(' GutterGradientFromColor := $%.8x;', [FGutterGradientFromColor]);
Add(' GutterGradientToColor := $%.8x;', [FGutterGradientToColor]);
Add(' GutterGradientType := %s;', [GradientTypeName(FGutterGradientType)]);
Add(' GutterLineColor := $%.8x;', [FGutterLineColor]);
Add(' IdleCaptionColor := $%.8x;', [FIdleCaptionColor]);
Add(' IdleGradientFromColor := $%.8x;', [FIdleGradientFromColor]);
@ -2181,6 +2174,9 @@ begin
Subnode := Node['DisabledCaptionColor', true];
Subnode.TextAsColor := FDisabledCaptionColor;
Subnode := Node['DividerLineColor', true];
Subnode.TextAsColor := FDividerlineColor;
Subnode := Node['IdleGradientType', true];
Subnode.TextAsInteger := integer(FIdleGradientType);
@ -2188,6 +2184,9 @@ begin
Subnode := Node['IdleCaptionColor', true];
Subnode.TextAsColor := FIdleCaptionColor;
// Subnode := Node['IdleFrameColor', true];
// Subnode.TextAsColor := FIdleFrameColor;
Subnode := Node['IdleGradientFromColor', true];
Subnode.TextAsColor := FIdleGradientFromColor;
@ -2196,6 +2195,13 @@ begin
Subnode := Node['IdleGradientType', true];
Subnode.TextAsInteger := integer(FIdleGradientType);
{
Subnode := Node['IdleInnerLightColor', true];
Subnode.TextAsColor := FIdleInnerLightColor;
Subnode := Node['IdleInnerDarkColor', true];
Subnode.TextAsColor := FIdleInnerDarkColor;
}
// Gutter
Subnode := Node['GutterFrameColor', true];
@ -2210,9 +2216,6 @@ begin
Subnode := Node['GutterGradientType', true];
Subnode.TextAsInteger := integer(FGutterGradientType);
Subnode := Node['GutterLineColor', true];
Subnode.TextAsColor := FGutterLineColor;
// HotTrack
Subnode := Node['HottrackCaptionColor', true];
@ -2287,9 +2290,9 @@ begin
FDispatch.NotifyAppearanceChanged;
end;
procedure TSpkPopupMenuAppearance.SetGutterFrameColor(const Value: TColor);
procedure TSpkPopupMenuAppearance.SetDividerLineColor(const Value: TColor);
begin
FGutterFrameColor := Value;
FDividerLineColor := Value;
if FDispatch <> nil then
FDispatch.NotifyAppearanceChanged;
end;
@ -2315,9 +2318,9 @@ begin
FDispatch.NotifyAppearanceChanged;
end;
procedure TSpkPopupMenuAppearance.SetGutterLineColor(const Value: TColor);
procedure TSpkPopupMenuAppearance.SetGutterFrameColor(const Value: TColor);
begin
FGutterLineColor := Value;
FGutterFrameColor := Value;
if FDispatch <> nil then
FDispatch.NotifyAppearanceChanged;
end;
@ -2482,6 +2485,10 @@ begin
Subnode := Node['Element', false];
if Assigned(Subnode) then
Element.LoadFromXML(Subnode);
Subnode := Node['Popup', false];
if Assigned(Subnode) then
Popup.LoadFromXML(Subnode);
end;
procedure TSpkToolbarAppearance.NotifyAppearanceChanged;
@ -2508,6 +2515,7 @@ begin
FMenuButton.SaveToPascal(AList);
FPane.SaveToPascal(AList);
FElement.SaveToPascal(AList);
FPopup.SaveToPascal(AList);
AList.Add('end;');
end;
@ -2526,6 +2534,9 @@ begin
Subnode := Node['Element',true];
FElement.SaveToXML(Subnode);
Subnode := Node['Popup', true];
FPopup.SaveToXML(Subnode);
end;
procedure TSpkToolbarAppearance.SetElementAppearance(