SpkToolbar: Fix anchors in Appearance editor.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7737 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-10-03 14:39:46 +00:00
parent e1af77e5b3
commit bf2850f8a1
2 changed files with 530 additions and 508 deletions

File diff suppressed because it is too large Load Diff

View File

@ -15,6 +15,9 @@ type
{ TfrmAppearanceEditWindow }
TfrmAppearanceEditWindow = class(TForm)
bvHorSpacer: TBevel;
bvPaneHorSpacer: TBevel;
bvVertSpacer: TBevel;
bMenuButtonActiveCaptionColor: TSpeedButton;
bMenuButtonActiveFrameColor: TSpeedButton;
bMenuButtonActiveGradientFromColor: TSpeedButton;
@ -27,6 +30,7 @@ type
bMenuButtonIdleFrameColor: TSpeedButton;
bMenuButtonIdleGradientFromColor: TSpeedButton;
bMenuButtonIdleGradientToColor: TSpeedButton;
bvPaneVertSpacer: TBevel;
cbMenuButtonActiveGradientKind: TComboBox;
cbMenuButtonHottrackGradientKind: TComboBox;
cbMenuButtonIdleGradientKind: TComboBox;
@ -40,12 +44,12 @@ type
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
lblMenuButtonFont: TLabel;
Label34: TLabel;
Label6: TLabel;
LblActive1: TLabel;
LblHotTrack1: TLabel;
LblIdle1: TLabel;
lMenuButtonIdleFrame: TLabel;
lblMenuButtonActive: TLabel;
lblMenuButtonHotTrack: TLabel;
lblMenuButtonIdle: TLabel;
lblTabCornerRadius: TLabel;
lblTabCaptionHeight: TLabel;
@ -71,12 +75,11 @@ type
Label19: TLabel;
Label20: TLabel;
PaneHSpacer: TBevel;
ItemHSpacer: TBevel;
bvItemHorSpacer: TBevel;
edPaneHotTrackBrightnessChange: TSpinEdit;
edItemHotTrackBrightnessChange: TSpinEdit;
edTabCornerRadius: TSpinEdit;
TabSheet6: TTabSheet;
TabVSpacer: TBevel;
bInactiveTabHeaderFontColor: TSpeedButton;
bItemActiveInnerDarkColor: TSpeedButton;
bItemActiveGradientFromColor: TSpeedButton;
@ -110,7 +113,7 @@ type
cbItemStyle: TComboBox;
cbPaneStyle: TComboBox;
ColorView: TShape;
ItemVSpacer: TBevel;
bvItemVertSpacer: TBevel;
gbPreview: TGroupBox;
Label12: TLabel;
Label27: TLabel;
@ -124,7 +127,6 @@ type
ButtonPanel: TPanel;
bTabFrameColor: TSpeedButton;
SpkTab2: TSpkTab;
TabHSpacer: TBevel;
tbPreview: TSpkToolbar;
SpkTab1: TSpkTab;
SpkPane1: TSpkPane;
@ -141,11 +143,11 @@ type
SpkSmallButton6: TSpkSmallButton;
SpkSmallButton7: TSpkSmallButton;
SpkSmallButton8: TSpkSmallButton;
PageControl1: TPageControl;
PageControl: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Label2: TLabel;
lblTabFrame: TLabel;
pTabFrame: TPanel;
pTabGradientFrom: TPanel;
Label3: TLabel;
@ -155,7 +157,7 @@ type
Label5: TLabel;
lblTabHeaderFont: TLabel;
pTabHeaderFont: TPanel;
Label8: TLabel;
lblPaneBorderDark: TLabel;
pPaneBorderDark: TPanel;
pPaneBorderLight: TPanel;
Label21: TLabel;
@ -166,10 +168,10 @@ type
Label11: TLabel;
cbPaneGradientKind: TComboBox;
pPaneCaptionBackground: TPanel;
LblPaneCaptionBackground: TLabel;
lblPaneCaptionBackground: TLabel;
Label13: TLabel;
pPaneCaptionFont: TPanel;
Label1: TLabel;
lblItemIdleFrame: TLabel;
Label7: TLabel;
Label14: TLabel;
Label25: TLabel;
@ -179,12 +181,12 @@ type
pItemIdleGradientTo: TPanel;
pItemIdleGradientFrom: TPanel;
pItemIdleFrame: TPanel;
LblIdle: TLabel;
lblItemIdle: TLabel;
Label28: TLabel;
pItemIdleCaptionColor: TPanel;
Label29: TLabel;
pItemIdleInnerDark: TPanel;
LblLinkInnerLightColor: TLabel;
lblItemInnerLightColor: TLabel;
pItemIdleInnerLight: TPanel;
cbItemHottrackGradientKind: TComboBox;
pItemHottrackGradientTo: TPanel;
@ -390,6 +392,7 @@ type
{%H-}Shift: TShiftState; {%H-}X, {%H-}Y: integer);
private
FAutoSized: Boolean;
procedure UpdateImages;
procedure UpdateSizes;
@ -411,7 +414,7 @@ implementation
{$R *.lfm}
uses
Types, clipbrd, spkt_Const;
Types, clipbrd;
var
CurrPageIndex: Integer = 0;
@ -955,12 +958,12 @@ end;
procedure TfrmAppearanceEditWindow.FormCloseQuery(Sender: TObject;
var CanClose: boolean);
begin
if CanClose then CurrPageIndex := PageControl1.PageIndex;
if CanClose then CurrPageIndex := PageControl.PageIndex;
end;
procedure TfrmAppearanceEditWindow.FormCreate(Sender: TObject);
begin
PageControl1.PageIndex := CurrPageIndex;
PageControl.PageIndex := CurrPageIndex;
end;
procedure TfrmAppearanceEditWindow.FormShow(Sender: TObject);
@ -1561,91 +1564,39 @@ procedure TfrmAppearanceEditWindow.UpdateSizes;
var
w, h: Integer;
procedure AddToHeight(var AHeight: Integer; AControl: TControl);
function Max(a, b: Integer): Integer;
begin
inc(AHeight, AControl.Height);
with AControl.BorderSpacing do
inc(AHeight, Top + Bottom + Around);
if a > b then Result := a else Result := b;
end;
begin
if FAutoSized then
exit;
// Update layout of controls
bOK.AutoSize := false;
bOK.Width := bCancel.Width;
ColorView.Width := ColorView.Height;
h := CbTabGradientKind.Height;
{$IF lcl_fullversion < 1080000}
w := SpkScaleX(pTabFrame.Width, 96);
{$ELSE}
w := pTabFrame.Width;
{$ENDIF}
// h := SpkScaleY(pTabFrame.Height, 96);
h := cbPaneStyle.Top + cbPanestyle.Height + cbPaneStyle.BorderSpacing.Bottom;
PageControl.Constraints.MinHeight := PageControl.Height - PageControl.Clientheight + h;
pTabFrame.Width := w;
pTabFrame.Height := h;
pTabGradientFrom.Height := h;
pTabGradientTo.Height := h;
pActiveTabHeaderFont.Height := h;
pInactiveTabHeaderFont.Height := h;
pTabHeaderFont.Height := h;
w := bMenuButtonActiveFramecolor.Left + bMenuButtonActiveFrameColor.Width;
PageControl.Constraints.MinWidth := PageControl.Width - PageControl.ClientWidth + w;
pPaneBorderDark.Width := w;
pPaneBorderDark.Height := h;
pPaneBorderLight.Height := h;
pPaneGradientFrom.Height := h;
pPaneGradientTo.Height := h;
pPaneCaptionBackground.Height := h;
pPaneCaptionFontColor.Height := h;
pPaneCaptionFont.Height := h;
Constraints.MinHeight := PageControl.Constraints.MinHeight + gbPreview.Height +
ButtonPanel.Height + ButtonPanel.BorderSpacing.Top * 2;
Constraints.MinWidth := Max(
tbPreview.Tabs[0].Panes[2].Rect.Right + 2,
PageControl.Constraints.MinWidth
);
pItemIdleFrame.Width := w;
pItemHotTrackFrame.Width := w;
pItemActiveFrame.Width := w;
pItemIdleFrame.Height := h;
pItemIdleGradientFrom.Height := h;
pItemIdleGradientTo.Height := h;
pItemIdleCaptionColor.Height := h;
pItemIdleInnerDark.Height := h;
pItemIdleInnerLight.Height := h;
pItemFont.Height := h;
pMenuButtonIdleFrame.Width := w;
pMenuButtonHotTrackFrame.Width := w;
pMenuButtonActiveFrame.Width := w;
pMenuButtonIdleFrame.Height := h;
pMenuButtonIdleGradientFrom.Height := h;
pMenuButtonIdleGradientTo.Height := h;
pMenuButtonIdleCaptionColor.Height := h;
pMenuButtonFont.Height := h;
AutoSize := false;
FAutoSized := true;
// TabSheet2 requires the largest height
h := Height - TabSheet2.ClientHeight; // This is the height outside the tabsheet
// Add the heights of all controls
AddToHeight(h, cbLinkPane);
AddToHeight(h, pPaneBorderDark);
AddToHeight(h, pPaneBorderLight);
AddToHeight(h, pPaneGradientFrom);
AddToHeight(h, pPaneGradientTo);
AddToHeight(h, cbPaneGradientKind);
AddToHeight(h, pPaneCaptionBackground);
AddToHeight(h, edPaneHotTrackBrightnessChange);
AddToHeight(h, pPaneCaptionFontColor);
AddToHeight(h, pPaneCaptionFont);
AddToHeight(h, cbPaneStyle);
// Adjust width and height
{$IF lcl_fullversion < 1080000}
Width := SpkScaleX(Width, 96);
Height := SpkScaleY(Height, 96);
// Height := h;
{$ENDIF}
(*
Constraints.MinHeight := h;
Height := 0; *)
Position := poScreenCenter;
Position := poDesigned;
end;
procedure TfrmAppearanceEditWindow.bMenuButtonIdleFrameColorClick(Sender: TObject);