Qt: fixed getClientBounds for TQtPage and TQtGroupBox. It should use QWidget_contentsRect() of underlaying widget or parent. issue #23630

git-svn-id: trunk@39838 -
This commit is contained in:
zeljko 2013-01-13 12:59:57 +00:00
parent f4b61649a6
commit 7815ee8a38

View File

@ -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;