From b5b3115e360bb44430853803fd8dc6e95d872e8c Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 30 May 2009 11:17:39 +0000 Subject: [PATCH] LCL: implemented TToolButton.AutoSize git-svn-id: trunk@20303 - --- lcl/comctrls.pp | 2 ++ lcl/include/toolbutton.inc | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/lcl/comctrls.pp b/lcl/comctrls.pp index e74d38744e..15eb42bc25 100644 --- a/lcl/comctrls.pp +++ b/lcl/comctrls.pp @@ -1458,6 +1458,8 @@ type function GroupAllUpAllowed: boolean; function DialogChar(var Message: TLMKey): boolean; override; procedure SetAutoSize(Value: Boolean); override; + procedure RealSetText(const AValue: TCaption); override; + procedure DoAutoSize; override; public constructor Create(TheOwner: TComponent); override; function CheckMenuDropdown: Boolean; dynamic; diff --git a/lcl/include/toolbutton.inc b/lcl/include/toolbutton.inc index e76abe4acc..785833681e 100644 --- a/lcl/include/toolbutton.inc +++ b/lcl/include/toolbutton.inc @@ -396,6 +396,26 @@ begin RequestAlign; end; +procedure TToolButton.RealSetText(const AValue: TCaption); +begin + if ([csLoading,csDestroying]*ComponentState=[]) then + begin + InvalidatePreferredSize; + inherited RealSetText(AValue); + AdjustSize; + end + else inherited RealSetText(AValue); +end; + +procedure TToolButton.DoAutoSize; +var + PreferredWidth: integer; + PreferredHeight: integer; +begin + GetPreferredSize(PreferredWidth,PreferredHeight); + SetBounds(Left,Top,PreferredWidth,PreferredHeight); +end; + procedure TToolButton.SetToolBar(NewToolBar: TToolBar); begin if FToolBar = NewToolBar then exit; @@ -683,7 +703,9 @@ begin Result := -1; end; -procedure TToolButton.GetPreferredSize(var PreferredWidth, PreferredHeight: integer; Raw: boolean; WithThemeSpace: boolean); +procedure TToolButton.GetPreferredSize( + var PreferredWidth, PreferredHeight: integer; Raw: boolean; + WithThemeSpace: boolean); begin inherited GetPreferredSize(PreferredWidth, PreferredHeight, Raw, WithThemeSpace); @@ -959,6 +981,7 @@ begin inc(PreferredWidth, FToolBar.FDropDownWidth); end; end; + //DebugLn(['TToolButton.CalculatePreferredSize ',DbgSName(Self),' ',PreferredWidth,',',PreferredHeight,' Caption=',Caption]); end; class function TToolButton.GetControlClassDefaultSize: TPoint;