Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qsplitter_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QSPLITTER_P_H
6
#
define
QSPLITTER_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtWidgets
/
private
/
qtwidgetsglobal_p
.
h
>
20
#
include
"private/qframe_p.h"
21
22
#
include
<
QtCore
/
qpointer
.
h
>
23
24
QT_REQUIRE_CONFIG
(
splitter
);
25
26
QT_BEGIN_NAMESPACE
27
28
static
const
uint Default = 2;
29
30
class
QSplitterLayoutStruct
31
{
32
public
:
33
QRect
rect
;
34
int
sizer
;
35
uint
collapsed
: 1;
36
uint
collapsible
: 2;
37
QWidget
*
widget
;
38
QSplitterHandle
*
handle
;
39
40
QSplitterLayoutStruct
() :
sizer
(-1),
collapsed
(
false
),
collapsible
(
Default
),
widget
(
nullptr
),
handle
(
nullptr
) {}
41
~
QSplitterLayoutStruct
() {
delete
handle; }
42
int
getWidgetSize
(Qt::Orientation orient);
43
int
getHandleSize
(Qt::Orientation orient);
44
int
pick
(
const
QSize &size, Qt::Orientation orient)
45
{
return
(orient == Qt::Horizontal) ? size.width() : size.height(); }
46
};
47
48
class
QSplitterPrivate
:
public
QFramePrivate
49
{
50
Q_DECLARE_PUBLIC(QSplitter)
51
public
:
52
QSplitterPrivate
() :
53
#
if
QT_CONFIG
(
rubberband
)
54
rubberBand
(
nullptr
),
55
#
endif
56
opaque
(
true
),
firstShow
(
true
),
57
childrenCollapsible
(
true
),
compatMode
(
false
),
handleWidth
(-1),
blockChildAdd
(
false
),
opaqueResizeSet
(
false
) {}
58
~
QSplitterPrivate
();
59
60
#
if
QT_CONFIG
(
rubberband
)
61
QPointer
<
QRubberBand
>
rubberBand
;
62
#
endif
63
mutable
QList
<
QSplitterLayoutStruct
*>
list
;
64
Qt
::
Orientation
orient
;
65
bool
opaque
: 8;
66
bool
firstShow
: 8;
67
bool
childrenCollapsible
: 8;
68
bool
compatMode
: 8;
69
int
handleWidth
;
70
bool
blockChildAdd
;
71
bool
opaqueResizeSet
;
72
73
inline
int
pick
(
const
QPoint &pos)
const
74
{
return
orient == Qt::Horizontal ? pos.x() : pos.y(); }
75
inline
int
pick
(
const
QSize &s)
const
76
{
return
orient == Qt::Horizontal ? s.width() : s.height(); }
77
78
inline
int
trans
(
const
QPoint &pos)
const
79
{
return
orient == Qt::Vertical ? pos.x() : pos.y(); }
80
inline
int
trans
(
const
QSize &s)
const
81
{
return
orient == Qt::Vertical ? s.width() : s.height(); }
82
83
void
init
();
84
void
recalc
(
bool
update =
false
);
85
void
doResize
();
86
void
storeSizes
();
87
void
getRange
(
int
index,
int
*,
int
*,
int
*,
int
*)
const
;
88
void
addContribution
(
int
,
int
*,
int
*,
bool
)
const
;
89
int
adjustPos
(
int
,
int
,
int
*,
int
*,
int
*,
int
*)
const
;
90
bool
collapsible
(
QSplitterLayoutStruct
*)
const
;
91
bool
collapsible
(
int
index)
const
92
{
return
(index < 0 || index >= list.size()) ?
true
: collapsible(list.at(index)); }
93
QSplitterLayoutStruct
*
findWidget
(QWidget *)
const
;
94
void
insertWidget_helper
(
int
index, QWidget *widget,
bool
show);
95
QSplitterLayoutStruct
*
insertWidget
(
int
index, QWidget *);
96
void
doMove
(
bool
backwards,
int
pos,
int
index,
int
delta,
97
bool
mayCollapse,
int
*positions,
int
*widths);
98
void
setGeo
(
QSplitterLayoutStruct
*s,
int
pos,
int
size,
bool
allowCollapse);
99
int
findWidgetJustBeforeOrJustAfter
(
int
index,
int
delta,
int
&collapsibleSize)
const
;
100
void
updateHandles
();
101
void
setSizes_helper
(
const
QList<
int
> &sizes,
bool
clampNegativeSize =
false
);
102
bool
shouldShowWidget
(
const
QWidget *w)
const
;
103
104
};
105
106
class
QSplitterHandlePrivate
:
public
QWidgetPrivate
107
{
108
Q_DECLARE_PUBLIC(QSplitterHandle)
109
public
:
110
QSplitterHandlePrivate
() :
s
(
nullptr
),
orient
(
Qt
::
Horizontal
),
mouseOffset
(0),
opaq
(
false
),
hover
(
false
),
pressed
(
false
) {}
111
112
inline
int
pick
(
const
QPoint
&
pos
)
const
113
{
return
orient
==
Qt
::
Horizontal
?
pos
.
x
() :
pos
.
y
(); }
114
115
QSplitter
*
s
;
116
Qt
::
Orientation
orient
;
117
int
mouseOffset
;
118
bool
opaq
: 1;
119
bool
hover
: 1;
120
bool
pressed
: 1;
121
};
122
123
QT_END_NAMESPACE
124
125
#
endif
QSplitterHandlePrivate
Definition
qsplitter_p.h:107
QSplitterHandlePrivate::opaq
bool opaq
Definition
qsplitter_p.h:118
QSplitterHandlePrivate::orient
Qt::Orientation orient
Definition
qsplitter_p.h:116
QSplitterHandlePrivate::hover
bool hover
Definition
qsplitter_p.h:119
QSplitterHandlePrivate::pressed
bool pressed
Definition
qsplitter_p.h:120
QSplitterHandlePrivate::mouseOffset
int mouseOffset
Definition
qsplitter_p.h:117
QSplitterLayoutStruct
Definition
qsplitter_p.h:31
QSplitterLayoutStruct::rect
QRect rect
Definition
qsplitter_p.h:33
QSplitterLayoutStruct::getWidgetSize
int getWidgetSize(Qt::Orientation orient)
Definition
qsplitter.cpp:327
QSplitterLayoutStruct::~QSplitterLayoutStruct
~QSplitterLayoutStruct()
Definition
qsplitter_p.h:41
QSplitterLayoutStruct::collapsed
uint collapsed
Definition
qsplitter_p.h:35
QSplitterLayoutStruct::QSplitterLayoutStruct
QSplitterLayoutStruct()
Definition
qsplitter_p.h:40
QSplitterLayoutStruct::getHandleSize
int getHandleSize(Qt::Orientation orient)
Definition
qsplitter.cpp:346
QSplitterLayoutStruct::pick
int pick(const QSize &size, Qt::Orientation orient)
Definition
qsplitter_p.h:44
QSplitterLayoutStruct::widget
QWidget * widget
Definition
qsplitter_p.h:37
QSplitterLayoutStruct::collapsible
uint collapsible
Definition
qsplitter_p.h:36
QSplitterLayoutStruct::sizer
int sizer
Definition
qsplitter_p.h:34
QSplitterLayoutStruct::handle
QSplitterHandle * handle
Definition
qsplitter_p.h:38
QSplitterPrivate
Definition
qsplitter_p.h:49
QSplitterPrivate::orient
Qt::Orientation orient
Definition
qsplitter_p.h:64
QSplitterPrivate::trans
int trans(const QPoint &pos) const
Definition
qsplitter_p.h:78
QSplitterPrivate::doResize
void doResize()
Definition
qsplitter.cpp:450
QSplitterPrivate::pick
int pick(const QPoint &pos) const
Definition
qsplitter_p.h:73
QSplitterPrivate::opaque
bool opaque
Definition
qsplitter_p.h:65
QSplitterPrivate::getRange
void getRange(int index, int *, int *, int *, int *) const
Definition
qsplitter.cpp:577
QSplitterPrivate::childrenCollapsible
bool childrenCollapsible
Definition
qsplitter_p.h:67
QSplitterPrivate::recalc
void recalc(bool update=false)
Definition
qsplitter.cpp:361
QSplitterPrivate::init
void init()
Definition
qsplitter.cpp:351
QSplitterPrivate::doMove
void doMove(bool backwards, int pos, int index, int delta, bool mayCollapse, int *positions, int *widths)
Definition
qsplitter.cpp:757
QSplitterPrivate::compatMode
bool compatMode
Definition
qsplitter_p.h:68
QSplitterPrivate::blockChildAdd
bool blockChildAdd
Definition
qsplitter_p.h:70
QSplitterPrivate::findWidget
QSplitterLayoutStruct * findWidget(QWidget *) const
Definition
qsplitter.cpp:793
QSplitterPrivate::collapsible
bool collapsible(int index) const
Definition
qsplitter_p.h:91
QSplitterPrivate::opaqueResizeSet
bool opaqueResizeSet
Definition
qsplitter_p.h:71
QSplitterPrivate::collapsible
bool collapsible(QSplitterLayoutStruct *) const
Definition
qsplitter.cpp:661
QSplitterPrivate::handleWidth
int handleWidth
Definition
qsplitter_p.h:69
QSplitterPrivate::shouldShowWidget
bool shouldShowWidget(const QWidget *w) const
Definition
qsplitter.cpp:709
QSplitterPrivate::addContribution
void addContribution(int, int *, int *, bool) const
Definition
qsplitter.cpp:541
QSplitterPrivate::insertWidget
QSplitterLayoutStruct * insertWidget(int index, QWidget *)
Definition
qsplitter.cpp:825
QSplitterPrivate::adjustPos
int adjustPos(int, int, int *, int *, int *, int *) const
Definition
qsplitter.cpp:630
QSplitterPrivate::updateHandles
void updateHandles()
Definition
qsplitter.cpp:670
QSplitterPrivate::storeSizes
void storeSizes()
Definition
qsplitter.cpp:533
QSplitterPrivate::list
QList< QSplitterLayoutStruct * > list
Definition
qsplitter_p.h:63
QSplitterPrivate::setSizes_helper
void setSizes_helper(const QList< int > &sizes, bool clampNegativeSize=false)
Definition
qsplitter.cpp:676
QSplitterPrivate::insertWidget_helper
void insertWidget_helper(int index, QWidget *widget, bool show)
Definition
qsplitter.cpp:806
QSplitterPrivate::setGeo
void setGeo(QSplitterLayoutStruct *s, int pos, int size, bool allowCollapse)
Definition
qsplitter.cpp:715
QSplitterPrivate::firstShow
bool firstShow
Definition
qsplitter_p.h:66
QSplitterPrivate::findWidgetJustBeforeOrJustAfter
int findWidgetJustBeforeOrJustAfter(int index, int delta, int &collapsibleSize) const
Definition
qsplitter.cpp:556
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(splitter)
qtbase
src
widgets
widgets
qsplitter_p.h
Generated on
for Qt by
1.18.0