From 7815ee8a385a8e87bf68170157c6596b4e22b076 Mon Sep 17 00:00:00 2001 From: zeljko Date: Sun, 13 Jan 2013 12:59:57 +0000 Subject: [PATCH] Qt: fixed getClientBounds for TQtPage and TQtGroupBox. It should use QWidget_contentsRect() of underlaying widget or parent. issue #23630 git-svn-id: trunk@39838 - --- lcl/interfaces/qt/qtwidgets.pas | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index fa7e515512..bc60b6060a 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -710,6 +710,7 @@ type procedure DetachEvents; override; function CanPaintBackground: Boolean; override; function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override; + function getClientBounds: TRect; override; function getText: WideString; override; procedure setText(const W: WideString); override; procedure setFocusPolicy(const APolicy: QtFocusPolicy); override; @@ -1751,6 +1752,7 @@ type function CreateWidget(const AParams: TCreateParams):QWidgetH; override; public function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override; + function getClientBounds: TRect; override; function getIcon: QIconH; function getIndex(const ATextChanging: Boolean = False): Integer; function getTabWidget: QTabWidgetH; @@ -6956,6 +6958,12 @@ begin end; end; +function TQtGroupBox.getClientBounds: TRect; +begin + QWidget_contentsRect(Widget, @Result); + OffsetRect(Result, -Result.Left, -Result.Top); +end; + function TQtGroupBox.getText: WideString; begin QGroupBox_title(QGroupBoxH(Widget), @Result); @@ -15541,6 +15549,19 @@ begin Result := inherited EventFilter(Sender, Event); end; +function TQtPage.getClientBounds: TRect; +var + w: QWidgetH; +begin + w := QWidget_parentWidget(Widget); + if (FChildOfComplexWidget = ccwTabWidget) and (w <> nil) then + begin + QWidget_contentsRect(w, @Result); + OffsetRect(Result, -Result.Left, -Result.Top); + end else + Result := inherited getClientBounds; +end; + function TQtPage.getIcon: QIconH; begin Result := FIcon;