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

@ -115,6 +115,8 @@ begin
TGUITools.DrawVLine(ACanvas, R.Right-1, R.Top, R.Bottom-1, FrameColor);
end;
// Gutter
iconSize := GetIconSize;
wGutter := iconSize.CX + 2*DropdownMenuMargin;
{$IFDEF EnhancedRecordSupport}
@ -130,7 +132,7 @@ begin
if not IsHot and (FAppearance.Popup.Style = psGutter) then
begin
FrameColor := FAppearance.Popup.GutterLineColor;
FrameColor := FAppearance.Popup.GutterFrameColor;
ColorFrom := FAppearance.Popup.GutterGradientFromColor;
ColorTo := FAppearance.Popup.GutterGradientToColor;
GradientType := FAppearance.Popup.GutterGradientType;
@ -226,10 +228,11 @@ begin
if menuItem.IsLine then
begin
// Menu dividing lines
if FAppearance.Popup.Style <> psGutter then
x := DropDownMenuMargin;
y := (ARect.Top + ARect.Bottom) div 2;
FrameColor := FAppearance.Popup.GutterFrameColor;
FrameColor := FAppearance.Popup.DividerLineColor;
if FrameColor <> clNone then
TGUITools.DrawHLine(ACanvas, x, ARect.Right-DropdownMenuMargin, y, FrameColor);
end else
@ -237,15 +240,17 @@ begin
y := (ARect.Top + ARect.Bottom - hText) div 2;
if menuItem.ShortCut <> scNone then
begin
// Shortcut text
shortCutText := ShortCutToText(menuItem.ShortCut);
if menuItem.ShortCutKey2 <> scNone then
shortCutText := ShortCutText + ', ' + ShortCutToText(menuItem.ShortCutKey2);
wText := ACanvas.TextWidth(shortCutText);
TGUITools.DrawText(ACanvas, ARect.Right - wText - DropdownMenuMargin, y, shortcutText, TextColor);
wText := ACanvas.TextWidth(shortCutText) + DropdownMenuMargin;
TGUITools.DrawText(ACanvas, ARect.Right - wText, y, shortcutText, TextColor);
end else
wText := 0;
R.Right := ARect.Right - wText; // ClipRect
// Caption
R.Right := ARect.Right - wText; // ClipRect to avoid painting into shortcut text
TGUITools.DrawText(ACanvas, x, y, menuItem.Caption, TextColor, R, true);
end;
end;

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(

File diff suppressed because it is too large Load Diff

View File

@ -6,15 +6,31 @@ interface
uses
LCLIntf, LCLType, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Buttons, Spin, LCLVersion,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Buttons, Spin, LCLVersion, Menus,
SpkGUITools, SpkXMLParser, SpkToolbar,
spkt_Buttons, spkt_Pane, spkt_Tab, spkt_Appearance;
spkt_Buttons, spkt_Pane, spkt_Tab, spkt_Appearance, SpkPopup;
type
{ TfrmAppearanceEditWindow }
TfrmAppearanceEditWindow = class(TForm)
bPopupCheckedGradientFromColor: TSpeedButton;
bPopupCheckedGradientToColor: TSpeedButton;
bPopupGutterFrameColor: TSpeedButton;
bPopupCheckedFrameColor: TSpeedButton;
bPopupGutterGradientFromColor: TSpeedButton;
bPopupGutterGradientToColor: TSpeedButton;
bPopupHotTrackGradientFromColor: TSpeedButton;
bPopupHotTrackGradientToColor: TSpeedButton;
bPopupHotTrackCaptionColor: TSpeedButton;
bPopupIdleGradientFromColor: TSpeedButton;
bPopupHotTrackFrameColor: TSpeedButton;
bPopupIdleGradientToColor: TSpeedButton;
bPopupIdleCaptionColor: TSpeedButton;
bPopupDisabledCaptionColor: TSpeedButton;
bPopupDividerLineColor: TSpeedButton;
bvPopupIdleFrame: TBevel;
bvHorSpacer: TBevel;
bvPaneHorSpacer: TBevel;
bvVertSpacer: TBevel;
@ -31,19 +47,35 @@ type
bMenuButtonIdleGradientFromColor: TSpeedButton;
bMenuButtonIdleGradientToColor: TSpeedButton;
bvPaneVertSpacer: TBevel;
cbPopupGutterGradientKind: TComboBox;
cbPopupCheckedGradientKind: TComboBox;
cbPopupIdleGradientKind: TComboBox;
cbMenuButtonActiveGradientKind: TComboBox;
cbMenuButtonHottrackGradientKind: TComboBox;
cbMenuButtonIdleGradientKind: TComboBox;
cbMenuButtonShapeStyle: TComboBox;
cbPopupHotTrackGradientKind: TComboBox;
edMenuButtonHotTrackBrightnessChange: TSpinEdit;
edTabCaptionHeight: TSpinEdit;
lblPopupFont: TLabel;
lblPopupDisabledCaptionColor: TLabel;
lblPopupCaption: TLabel;
lblPopupDividerLine: TLabel;
lblPopupFrame: TLabel;
lblPopupGradientFrom: TLabel;
lblPopupGradientTo: TLabel;
lblPopupGradientType: TLabel;
lblPopupIdle: TLabel;
lblPopupHotTrack: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
lblPopupGutter: TLabel;
lblPopupChecked: TLabel;
lblMenuButtonFont: TLabel;
Label34: TLabel;
lMenuButtonIdleFrame: TLabel;
@ -52,6 +84,29 @@ type
lblMenuButtonIdle: TLabel;
lblTabCornerRadius: TLabel;
lblTabCaptionHeight: TLabel;
MenuItem1: TMenuItem;
MenuItem10: TMenuItem;
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MenuItem9: TMenuItem;
pPopupCheckedGradientFromColor: TPanel;
pPopupCheckedGradientToColor: TPanel;
pPopupDisabledCaptionColor: TPanel;
pPopupDividerLineColor: TPanel;
pPopupFont: TPanel;
pPopupGutterFrameColor: TPanel;
pPopupCheckedFrameColor: TPanel;
pPopupGutterGradientFromColor: TPanel;
pPopupGutterGradientToColor: TPanel;
pPopupIdleGradientFromColor: TPanel;
pMenuButtonActiveCaptionColor: TPanel;
pMenuButtonActiveFrame: TPanel;
@ -66,6 +121,16 @@ type
pMenuButtonIdleFrame: TPanel;
pMenuButtonIdleGradientFrom: TPanel;
pMenuButtonIdleGradientTo: TPanel;
pPopupHotTrackFrameColor: TPanel;
pPopupHotTrackGradientFromColor: TPanel;
pPopupHotTrackGradientToColor: TPanel;
pPopupHotTrackCaptionColor: TPanel;
pPopupIdleGradientToColor: TPanel;
pPopupIdleCaptionColor: TPanel;
Separator1: TMenuItem;
Separator2: TMenuItem;
Separator3: TMenuItem;
Separator4: TMenuItem;
SmallImages: TImageList;
LargeImages: TImageList;
@ -79,6 +144,7 @@ type
edPaneHotTrackBrightnessChange: TSpinEdit;
edItemHotTrackBrightnessChange: TSpinEdit;
edTabCornerRadius: TSpinEdit;
SpkPopupMenu1: TSpkPopupMenu;
TabSheet6: TTabSheet;
bInactiveTabHeaderFontColor: TSpeedButton;
bItemActiveInnerDarkColor: TSpeedButton;
@ -127,6 +193,7 @@ type
ButtonPanel: TPanel;
bTabFrameColor: TSpeedButton;
SpkTab2: TSpkTab;
pgPopup: TTabSheet;
tbPreview: TSpkToolbar;
SpkTab1: TSpkTab;
SpkPane1: TSpkPane;
@ -254,6 +321,21 @@ type
procedure bPaneCaptionFontColorClick(Sender: TObject);
procedure bPaneGradientFromColorClick(Sender: TObject);
procedure bPaneGradientToColorClick(Sender: TObject);
procedure bPopupCheckedFrameColorClick(Sender: TObject);
procedure bPopupCheckedGradientFromColorClick(Sender: TObject);
procedure bPopupCheckedGradientToColorClick(Sender: TObject);
procedure bPopupDisabledCaptionColorClick(Sender: TObject);
procedure bPopupDividerLineColorClick(Sender: TObject);
procedure bPopupGutterFrameColorClick(Sender: TObject);
procedure bPopupGutterGradientFromColorClick(Sender: TObject);
procedure bPopupGutterGradientToColorClick(Sender: TObject);
procedure bPopupHotTrackCaptionColorClick(Sender: TObject);
procedure bPopupHotTrackFrameColorClick(Sender: TObject);
procedure bPopupHotTrackGradientFromColorClick(Sender: TObject);
procedure bPopupHotTrackGradientToColorClick(Sender: TObject);
procedure bPopupIdleCaptionColorClick(Sender: TObject);
procedure bPopupIdleGradientFromColorClick(Sender: TObject);
procedure bPopupIdleGradientToColorClick(Sender: TObject);
procedure bResetClick(Sender: TObject);
procedure bTabBorderColorClick(Sender: TObject);
@ -266,6 +348,10 @@ type
procedure cbItemStyleChange(Sender: TObject);
procedure cbPaneGradientKindChange(Sender: TObject);
procedure cbPaneStyleChange(Sender: TObject);
procedure cbPopupCheckedGradientKindChange(Sender: TObject);
procedure cbPopupGutterGradientKindChange(Sender: TObject);
procedure cbPopupHotTrackGradientKindChange(Sender: TObject);
procedure cbPopupIdleGradientKindChange(Sender: TObject);
procedure cbTabGradientKindChange(Sender: TObject);
procedure cbLinkItemClick(Sender: TObject);
@ -286,6 +372,22 @@ type
procedure pActiveTabHeaderFontClick(Sender: TObject);
procedure pInactiveTabHeaderFontClick(Sender: TObject);
procedure pPopupCheckedFrameColorClick(Sender: TObject);
procedure pPopupCheckedGradientFromColorClick(Sender: TObject);
procedure pPopupCheckedGradientToColorClick(Sender: TObject);
procedure pPopupFontClick(Sender: TObject);
procedure pPopupGutterFrameColorClick(Sender: TObject);
procedure pPopupGutterGradientFromColorClick(Sender: TObject);
procedure pPopupGutterGradientToColorClick(Sender: TObject);
procedure pPopupHotTrackFrameColorClick(Sender: TObject);
procedure pPopupHotTrackGradientFromColorClick(Sender: TObject);
procedure pPopupHotTrackGradientToColorClick(Sender: TObject);
procedure pPopupIdleCaptionColorClick(Sender: TObject);
procedure pPopupDisabledCaptionColorClick(Sender: TObject);
procedure pPopupDividerLineColorClick(Sender: TObject);
procedure pPopupIdleGradientFromColorClick(Sender: TObject);
procedure pPopupIdleGradientToColorClick(Sender: TObject);
procedure pPopupHotTrackCaptionColorClick(Sender: TObject);
procedure pTabFrameClick(Sender: TObject);
procedure pTabGradientFromClick(Sender: TObject);
procedure pTabGradientToClick(Sender: TObject);
@ -497,7 +599,7 @@ procedure TfrmAppearanceEditWindow.SetPanelColor(Panel: TPanel; AColor: TColor);
begin
Panel.Color := AColor;
if Panel.Color <> AColor then
Showmessage('lipa!');
Showmessage('lipa!'); // wp: what is this?
if (GetRValue(AColor) + GetGValue(AColor) + GetBValue(AColor)) div 3 >= 128 then
Panel.Font.Color := clBlack
else
@ -665,8 +767,8 @@ end;
procedure TfrmAppearanceEditWindow.bItemHotTrackFrameColorClick(Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pItemHotTrackFrame) then
tbPreview.Appearance.Element.HotTrackFrameColor := pItemHotTrackFrame.Color;
if PickColor(pItemHottrackFrame) then
tbPreview.Appearance.Element.HotTrackFrameColor := pItemHottrackFrame.Color;
(Sender as TSpeedButton).Down := false;
end;
@ -841,6 +943,140 @@ begin
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupCheckedFrameColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupCheckedFrameColor) then
tbPreview.Appearance.Popup.CheckedFrameColor := pPopupCheckedFrameColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupCheckedGradientFromColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupCheckedGradientFromColor) then
tbPreview.Appearance.Popup.CheckedGradientFromColor := pPopupCheckedGradientFromColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupCheckedGradientToColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupCheckedGradientFromColor) then
tbPreview.Appearance.Popup.CheckedGradientToColor := pPopupCheckedGradientToColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupDisabledCaptionColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupDisabledCaptionColor) then
tbPreview.Appearance.Popup.DisabledCaptionColor := pPopupDisabledCaptionColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupDividerLineColorClick(Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupDividerLineColor) then
tbPreview.Appearance.Popup.DividerLineColor := pPopupDividerLineColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupGutterFrameColorClick(Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupGutterFrameColor) then
tbPreview.Appearance.Popup.GutterFrameColor := pPopupGutterFrameColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupGutterGradientFromColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupGutterGradientFromColor) then
tbPreview.Appearance.Popup.GutterGradientFromColor := pPopupGutterGradientFromColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupGutterGradientToColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupGutterGradientToColor) then
tbPreview.Appearance.Popup.GutterGradientToColor := pPopupGutterGradientToColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupHotTrackCaptionColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupHotTrackCaptionColor) then
tbPreview.Appearance.Popup.HotTrackCaptionColor := pPopupHotTrackCaptionColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupHotTrackFrameColorClick(Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupHotTrackFrameColor) then
tbPreview.Appearance.Popup.HotTrackFrameColor := pPopupHotTrackFrameColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupHotTrackGradientFromColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupHotTrackGradientFromColor) then
tbPreview.Appearance.Popup.HotTrackGradientFromColor := pPopupHotTrackGradientFromColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupHotTrackGradientToColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupHotTrackGradientToColor) then
tbPreview.Appearance.Popup.HotTrackGradientToColor := pPopupHotTrackGradientToColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupIdleCaptionColorClick(Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupIdleCaptionColor) then
tbPreview.Appearance.Popup.IdleCaptionColor := pPopupIdleCaptionColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupIdleGradientFromColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupIdleGradientFromColor) then
tbPreview.Appearance.Popup.IdleGradientFromColor := pPopupIdleGradientFromColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.bPopupIdleGradientToColorClick(
Sender: TObject);
begin
(Sender as TSpeedButton).Down := true;
if PickColor(pPopupIdleGradientToColor) then
tbPreview.Appearance.Popup.IdleGradientToColor := pPopupIdleGradientToColor.Color;
(Sender as TSpeedButton).Down := false;
end;
procedure TfrmAppearanceEditWindow.SwitchAttributesLink(const Value: boolean);
begin
cbLinkTab.checked := Value;
@ -898,25 +1134,17 @@ end;
function TfrmAppearanceEditWindow.ChangeColor(Panel: TPanel): boolean;
begin
cdColorDialog.Color := Panel.Color;
if cdColorDialog.Execute then
begin
Result := cdColorDialog.Execute;
if Result then
SetPanelColor(Panel, cdColorDialog.Color);
Result := true
end
else
Result := false;
end;
function TfrmAppearanceEditWindow.ChangeFont(Panel: TPanel): boolean;
begin
fdFontDialog.Font.Assign(Panel.Font);
if fdFontDialog.Execute then
begin
Result := fdFontDialog.Execute;
if Result then
SetPanelFont(Panel, fdFontDialog.Font);
Result := true;
end
else
Result := false;
end;
procedure TfrmAppearanceEditWindow.edItemHotTrackBrightnessChangeChange(
@ -1070,6 +1298,36 @@ begin
cbItemStyle.ItemIndex := ord(Style);
edItemHotTrackBrightnessChange.Value := HotTrackBrightnessChange;
end;
with Popup do
begin
SetPanelFont(pPopupFont, CaptionFont);
SetPanelColor(pPopupDisabledCaptionColor, DisabledCaptionColor);
SetPanelColor(pPopupIdleGradientFromColor, IdleGradientFromColor);
SetPanelColor(pPopupIdleGradientToColor, IdleGradientToColor);
SetComboGradientKind(cbPopupIdleGradientKind, IdleGradientType);
SetPanelColor(pPopupIdleCaptionColor, IdleCaptionColor);
SetPanelColor(pPopupDividerLineColor, DividerLineColor);
SetPanelColor(pPopupHottrackFrameColor, HottrackFrameColor);
SetPanelColor(pPopupHottrackGradientFromColor, HottrackGradientFromColor);
SetPanelColor(pPopupHottrackGradientToColor, HottrackGradientToColor);
SetComboGradientKind(cbPopupHottrackGradientKind, HottrackGradientType);
SetPanelColor(pPopupHottrackCaptionColor, HottrackCaptionColor);
SetPanelColor(pPopupGutterFrameColor, GutterFrameColor);
SetPanelColor(pPopupGutterGradientFromColor, GutterGradientFromColor);
SetPanelColor(pPopupGutterGradientTocolor, GutterGradientToColor);
SetComboGradientKind(cbPopupGutterGradientKind, GutterGradientType);
SetPanelColor(pPopupCheckedFrameColor, CheckedFrameColor);
SetPanelColor(pPopupCheckedGradientFromcolor, CheckedGradientFromColor);
SetPanelColor(pPopupCheckedGradientTocolor, CheckedGradientToColor);
SetComboGradientKind(cbPopupCheckedGradientKind, CheckedGradientType);
// cbPopupStyle.ItemIndex := ord(Style);
// edItemHotTrackBrightnessChange.Value := HotTrackBrightnessChange;
end;
end;
end;
@ -1303,6 +1561,34 @@ begin
Style := TSpkPaneStyle((Sender as TCombobox).ItemIndex);
end;
procedure TfrmAppearanceEditWindow.cbPopupCheckedGradientKindChange(
Sender: TObject);
begin
with tbPreview.Appearance.Popup do
CheckedGradientType := TBackgroundKind((Sender as TCombobox).ItemIndex);
end;
procedure TfrmAppearanceEditWindow.cbPopupGutterGradientKindChange(
Sender: TObject);
begin
with tbPreview.Appearance.Popup do
GutterGradientType := TBackgroundKind((Sender as TCombobox).ItemIndex);
end;
procedure TfrmAppearanceEditWindow.cbPopupHotTrackGradientKindChange(
Sender: TObject);
begin
with tbPreview.Appearance.Popup do
HotTrackGradientType := TBackgroundKind((Sender as TCombobox).ItemIndex);
end;
procedure TfrmAppearanceEditWindow.cbPopupIdleGradientKindChange(
Sender: TObject);
begin
with tbPreview.Appearance.Popup do
IdleGradientType := TBackgroundKind((Sender as TCombobox).ItemIndex);
end;
procedure TfrmAppearanceEditWindow.pPaneGradientToClick(Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
@ -1370,6 +1656,113 @@ begin
end;
end;
procedure TfrmAppearanceEditWindow.pPopupCheckedFrameColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.CheckedFrameColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupCheckedGradientFromColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.CheckedGradientFromColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupCheckedGradientToColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.CheckedGradientToColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupFontClick(Sender: TObject);
begin
if ChangeFont(Sender as TPanel) then
tbPreview.Appearance.Popup.CaptionFont.Assign((Sender as TPanel).Font);
tbPreview.ForceRepaint;
end;
procedure TfrmAppearanceEditWindow.pPopupGutterFrameColorClick(Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.GutterFrameColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupGutterGradientFromColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.GutterGradientFromColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupGutterGradientToColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.GutterGradientToColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupHotTrackFrameColorClick(Sender: TObject
);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.HotTrackFrameColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupHotTrackGradientFromColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.HotTrackGradientFromColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupHotTrackGradientToColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.HotTrackGradientToColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupIdleCaptionColorClick(Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.IdleCaptionColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupDisabledCaptionColorClick(
Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.DisabledCaptionColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupDividerLineColorClick(Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.DividerLineColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupIdleGradientFromColorClick(Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.IdleGradientFromColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupIdleGradientToColorClick(Sender: TObject);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.IdleGradientToColor := (Sender as TPanel).Color;
end;
procedure TfrmAppearanceEditWindow.pPopupHotTrackCaptionColorClick(Sender: TObject
);
begin
if ChangeColor(Sender as TPanel) then
tbPreview.Appearance.Popup.HotTrackCaptionColor := (Sender as TPanel).Color;
end;
function TfrmAppearanceEditWindow.PickColor(APanel: TPanel): Boolean;
var
screenDC: HDC;
@ -1509,20 +1902,20 @@ begin
finally
ico.Free;
end;
// ---
imglist.GetBitmap(0, bTabFrameColor.Glyph);
imglist.GetBitmap(0, bTabGradientFromColor.Glyph);
imglist.GetBitmap(0, bTabGradientToColor.Glyph);
imglist.GetBitmap(0, bActiveTabHeaderFontColor.Glyph);
imglist.GetBitmap(0, bInactiveTabHeaderFontColor.Glyph);
// ---
imglist.GetBitmap(0, bPaneBorderDarkColor.Glyph);
imglist.GetBitmap(0, bPaneBorderLightColor.Glyph);
imglist.GetBitmap(0, bPaneGradientFromColor.Glyph);
imglist.GetBitmap(0, bPaneGradientToColor.Glyph);
imglist.GetBitmap(0, bPaneCaptionBackgroundColor.Glyph);
imglist.GetBitmap(0, bPaneCaptionFontColor.Glyph);
// ---
imglist.GetBitmap(0, bItemIdleCaptionColor.Glyph);
imglist.GetBitmap(0, bItemIdleFrameColor.Glyph);
imglist.GetBitmap(0, bItemIdleGradientFromColor.Glyph);
@ -1543,7 +1936,7 @@ begin
imglist.GetBitmap(0, bItemActiveGradientToColor.Glyph);
imglist.GetBitmap(0, bItemActiveInnerDarkColor.Glyph);
imglist.GetBitmap(0, bItemActiveInnerLightColor.Glyph);
// ---
imglist.GetBitmap(0, bMenuButtonIdleCaptionColor.Glyph);
imglist.GetBitmap(0, bMenuButtonIdleFrameColor.Glyph);
imglist.GetBitmap(0, bMenuButtonIdleGradientFromColor.Glyph);
@ -1558,6 +1951,25 @@ begin
imglist.GetBitmap(0, bMenuButtonActiveFrameColor.Glyph);
imglist.GetBitmap(0, bMenuButtonActiveGradientFromColor.Glyph);
imglist.GetBitmap(0, bMenuButtonActiveGradientToColor.Glyph);
// ---
imglist.GetBitmap(0, bPopupIdleGradientFromColor.Glyph);
imglist.GetBitmap(0, bPopupIdleGradientToColor.Glyph);
imglist.GetBitmap(0, bPopupIdleCaptionColor.Glyph);
imglist.GetBitmap(0, bPopupDisabledCaptionColor.Glyph);
imglist.GetBitmap(0, bPopupDividerLineColor.Glyph);
imglist.GetBitmap(0, bPopupHotTrackFrameColor.Glyph);
imglist.GetBitmap(0, bPopupHotTrackGradientFromColor.Glyph);
imglist.GetBitmap(0, bPopupHotTrackGradientToColor.Glyph);
imglist.GetBitmap(0, bPopupHotTrackCaptionColor.Glyph);
imglist.GetBitmap(0, bPopupGutterFrameColor.Glyph);
imglist.GetBitmap(0, bPopupGutterGradientFromColor.Glyph);
imglist.GetBitmap(0, bPopupGutterGradientToColor.Glyph);
imglist.GetBitmap(0, bPopupCheckedFrameColor.Glyph);
imglist.GetBitmap(0, bPopupCheckedGradientFromColor.Glyph);
imglist.GetBitmap(0, bPopupCheckedGradientToColor.Glyph);
end;
procedure TfrmAppearanceEditWindow.UpdateSizes;