mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 13:29:37 +02:00
git-svn-id: trunk@17580 -
This commit is contained in:
parent
bf81770999
commit
c734f2f286
@ -622,7 +622,9 @@ type
|
|||||||
FTabBarEventHook: QWidget_hookH;
|
FTabBarEventHook: QWidget_hookH;
|
||||||
FTabBarChangedHook: QTabBar_hookH;
|
FTabBarChangedHook: QTabBar_hookH;
|
||||||
FTabBar: QTabBarH;
|
FTabBar: QTabBarH;
|
||||||
|
FStackWidget: QWidgetH;
|
||||||
function getShowTabs: Boolean;
|
function getShowTabs: Boolean;
|
||||||
|
function getStackWidget: QWidgetH;
|
||||||
function getTabBar: QTabBarH;
|
function getTabBar: QTabBarH;
|
||||||
procedure setShowTabs(const AValue: Boolean);
|
procedure setShowTabs(const AValue: Boolean);
|
||||||
protected
|
protected
|
||||||
@ -652,6 +654,7 @@ type
|
|||||||
|
|
||||||
property ShowTabs: Boolean read getShowTabs write setShowTabs;
|
property ShowTabs: Boolean read getShowTabs write setShowTabs;
|
||||||
property TabBar: QTabBarH read getTabBar;
|
property TabBar: QTabBarH read getTabBar;
|
||||||
|
property StackWidget: QWidgetH read getStackWidget;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TQtComboBox }
|
{ TQtComboBox }
|
||||||
@ -5499,6 +5502,8 @@ function TQtTabWidget.getTabBar: QTabBarH;
|
|||||||
begin
|
begin
|
||||||
if FTabBar = nil then
|
if FTabBar = nil then
|
||||||
begin
|
begin
|
||||||
|
{$note we can remove QLCLTabWidget, and get it like StackWidget,
|
||||||
|
objectName is qt_tabwidget_tabbar.}
|
||||||
FTabBar := QLCLTabWidget_tabBarHandle(QTabWidgetH(Widget));
|
FTabBar := QLCLTabWidget_tabBarHandle(QTabWidgetH(Widget));
|
||||||
QWidget_setFocusPolicy(FTabBar, QtNoFocus);
|
QWidget_setFocusPolicy(FTabBar, QtNoFocus);
|
||||||
end;
|
end;
|
||||||
@ -5510,6 +5515,32 @@ begin
|
|||||||
Result := QWidget_isVisible(TabBar);
|
Result := QWidget_isVisible(TabBar);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TQtTabWidget.getStackWidget: QWidgetH;
|
||||||
|
var
|
||||||
|
List: TPtrIntArray;
|
||||||
|
Obj: QObjectH;
|
||||||
|
i: Integer;
|
||||||
|
WStr: WideString;
|
||||||
|
begin
|
||||||
|
if FStackWidget = nil then
|
||||||
|
begin
|
||||||
|
QObject_children(Widget, @List);
|
||||||
|
for i := 0 to High(List) do
|
||||||
|
begin
|
||||||
|
Obj := QObjectH(List[i]);
|
||||||
|
QObject_objectName(Obj, @WStr);
|
||||||
|
{do not localize !}
|
||||||
|
if WStr = 'qt_tabwidget_stackedwidget' then
|
||||||
|
begin
|
||||||
|
FStackWidget := QWidgetH(List[i]);
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
FCentralWidget := FStackWidget;
|
||||||
|
end;
|
||||||
|
Result := FStackWidget;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TQtTabWidget.setShowTabs(const AValue: Boolean);
|
procedure TQtTabWidget.setShowTabs(const AValue: Boolean);
|
||||||
begin
|
begin
|
||||||
QWidget_setVisible(TabBar, AValue);
|
QWidget_setVisible(TabBar, AValue);
|
||||||
@ -5608,23 +5639,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TQtTabWidget.getClientBounds: TRect;
|
function TQtTabWidget.getClientBounds: TRect;
|
||||||
var
|
|
||||||
ATabSize: TSize;
|
|
||||||
option: QStyleOptionTabWidgetFrameH;
|
|
||||||
begin
|
begin
|
||||||
option := QStyleOptionTabWidgetFrame_create();
|
QWidget_contentsRect(StackWidget, @Result)
|
||||||
QStyleOption_initFrom(QStyleOptionH(option), Widget);
|
|
||||||
QStyle_subElementRect(QWidget_style(Widget), @Result, QStyleSE_TabWidgetTabContents, option, Widget);
|
|
||||||
QStyleOptionTabWidgetFrame_destroy(option);
|
|
||||||
|
|
||||||
QWidget_size(TabBar, @ATabSize);
|
|
||||||
case getTabPosition of
|
|
||||||
QTabWidgetNorth: inc(Result.Top, ATabSize.cy);
|
|
||||||
QTabWidgetSouth: dec(Result.Bottom, ATabSize.cy);
|
|
||||||
QTabWidgetWest : inc(Result.Left, ATabSize.cx);
|
|
||||||
QTabWidgetEast : dec(Result.Right, ATabSize.cx);
|
|
||||||
end;
|
|
||||||
//WriteLn(dbgs(Result));
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TQtTabWidget.getCurrentIndex: Integer;
|
function TQtTabWidget.getCurrentIndex: Integer;
|
||||||
|
Loading…
Reference in New Issue
Block a user