LCL-GTK2: Take caption of an autosized GroupBox into account when calculating width. Issue #20447, patch from Henry Vermaak

git-svn-id: trunk@45786 -
This commit is contained in:
juha 2014-07-05 10:49:42 +00:00
parent 4eb34e48ee
commit e8fb5ea3fd

View File

@ -2365,32 +2365,9 @@ end;
class procedure TGtk2WSCustomGroupBox.GetPreferredSize(
const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer;
WithThemeSpace: Boolean);
var
Widget: PGtkWidget;
border_width: Integer;
begin
Widget := PGtkWidget(GetFrameWidget({%H-}PGTKEventBox(AWinControl.Handle)));
if Assigned(PGtkFrame(Widget)^.label_widget) then
begin
PreferredWidth := gtk_widget_get_xthickness(Widget) * 2 +
gtk_widget_get_xthickness(PGtkFrame(Widget)^.label_widget);
PreferredHeight := Max(gtk_widget_get_ythickness(Widget),
gtk_widget_get_ythickness(PGtkFrame(Widget)^.label_widget)) +
gtk_widget_get_ythickness(Widget);
end else
begin
PreferredWidth := gtk_widget_get_xthickness(Widget) * 2;
PreferredHeight := gtk_widget_get_ythickness(Widget) * 2;
end;
if WithThemeSpace then
begin
border_width := (PGtkContainer(Widget)^.flag0 and bm_TGtkContainer_border_width) shr
bp_TGtkContainer_border_width;
inc(PreferredWidth, border_width);
inc(PreferredHeight, 2 * border_width);
end;
GetGTKDefaultWidgetSize(AWinControl, PreferredWidth, PreferredHeight,
WithThemeSpace);
end;
class procedure TGtk2WSCustomGroupBox.SetFont(const AWinControl: TWinControl;