Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qmenubar_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
QMENUBAR_P_H
6
#
define
QMENUBAR_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
"QtWidgets/qstyleoption.h"
21
#
include
<
private
/
qmenu_p
.
h
>
// Mac needs what in this file!
22
#
include
<
qpa
/
qplatformmenu
.
h
>
23
24
#
include
<
QtCore
/
qpointer
.
h
>
25
26
QT_REQUIRE_CONFIG
(
menubar
);
27
28
QT_BEGIN_NAMESPACE
29
30
class
QMenuBarExtension;
31
class
QMenuBarPrivate
:
public
QWidgetPrivate
32
{
33
Q_DECLARE_PUBLIC(QMenuBar)
34
public
:
35
QMenuBarPrivate
() :
itemsDirty
(0),
currentAction
(
nullptr
),
mouseDown
(0),
36
closePopupMode
(0),
defaultPopDown
(1),
popupState
(0),
keyboardState
(0),
altPressed
(0),
37
doChildEffects
(
false
),
platformMenuBar
(
nullptr
)
38
{ }
39
40
~
QMenuBarPrivate
()
41
{
42
delete
platformMenuBar
;
43
}
44
45
void
init
();
46
QAction *
getNextAction
(
const
int
start,
const
int
increment)
const
;
47
48
//item calculations
49
uint
itemsDirty
: 1;
50
51
QList
<
int
>
shortcutIndexMap
;
52
mutable
QList
<
QRect
>
actionRects
;
53
void
calcActionRects
(
int
max_width,
int
start)
const
;
54
QRect
actionRect
(QAction *)
const
;
55
void
updateGeometries
();
56
57
//selection
58
void
mouseRelaseEventFromQMenu
()
59
{
60
Q_Q(QMenuBar);
61
mouseDown =
false
;
62
// update the state from pressed to hover
63
if
(currentAction)
64
q->update(actionRect(currentAction));
65
}
66
QPointer
<QAction>
hoverAction
;
67
QPointer
<QAction>
currentAction
;
68
uint
mouseDown
: 1,
closePopupMode
: 1,
defaultPopDown
;
69
QAction *
actionAt
(QPoint p)
const
;
70
void
setCurrentAction
(QAction *,
bool
=
false
,
bool
=
false
);
71
void
popupAction
(QAction *,
bool
);
72
73
//active popup state
74
uint
popupState
: 1;
75
QPointer
<
QMenu
>
activeMenu
;
76
77
//keyboard mode for keyboard navigation
78
void
focusFirstAction
();
79
void
setKeyboardMode
(
bool
);
80
uint
keyboardState
: 1,
altPressed
: 1;
81
QPointer
<
QWidget
>
keyboardFocusWidget
;
82
83
//firing of events
84
void
activateAction
(QAction *,
QAction
::
ActionEvent
);
85
86
void
_q_actionTriggered
();
87
void
_q_actionHovered
();
88
void
_q_internalShortcutActivated
(
int
);
89
void
_q_updateLayout
();
90
91
//extra widgets in the menubar
92
QPointer
<
QWidget
>
leftWidget
,
rightWidget
;
93
QMenuBarExtension
*
extension
;
94
bool
isVisible
(QAction *action);
95
96
//menu fading/scrolling effects
97
bool
doChildEffects
;
98
99
QRect
menuRect
(
bool
)
const
;
100
101
// reparenting
102
void
handleReparent
();
103
QList
<
QPointer
<
QWidget
>>
oldParents
;
104
105
QList
<
QAction
*>
hiddenActions
;
106
//default action
107
QPointer
<QAction>
defaultAction
;
108
109
QBasicTimer
autoReleaseTimer
;
110
QPlatformMenuBar *
platformMenuBar
;
111
QPlatformMenu
*
getPlatformMenu
(
const
QAction *action);
112
QPlatformMenu
*
findInsertionPlatformMenu
(
const
QAction *action);
113
void
copyActionToPlatformMenu
(
const
QAction *e, QPlatformMenu *menu);
114
115
inline
int
indexOf
(QAction *act)
const
{
return
q_func()->actions().indexOf(act); }
116
};
117
118
QT_END_NAMESPACE
119
120
#
endif
// QMENUBAR_P_H
QMenuBarExtension
Definition
qmenubar.cpp:39
QMenuBarExtension::sizeHint
QSize sizeHint() const override
Definition
qmenubar.cpp:69
QMenuBarExtension::paintEvent
void paintEvent(QPaintEvent *) override
\reimp
Definition
qmenubar.cpp:58
QMenuBarExtension::QMenuBarExtension
QMenuBarExtension(QWidget *parent)
Definition
qmenubar.cpp:47
QMenuBarPrivate
Definition
qmenubar_p.h:32
QMenuBarPrivate::findInsertionPlatformMenu
QPlatformMenu * findInsertionPlatformMenu(const QAction *action)
Definition
qmenubar.cpp:1184
QMenuBarPrivate::extension
QMenuBarExtension * extension
Definition
qmenubar_p.h:93
QMenuBarPrivate::getPlatformMenu
QPlatformMenu * getPlatformMenu(const QAction *action)
Definition
qmenubar.cpp:1169
QMenuBarPrivate::currentAction
QPointer< QAction > currentAction
Definition
qmenubar_p.h:67
QMenuBarPrivate::actionAt
QAction * actionAt(QPoint p) const
Definition
qmenubar.cpp:79
QMenuBarPrivate::calcActionRects
void calcActionRects(int max_width, int start) const
Definition
qmenubar.cpp:383
QMenuBarPrivate::_q_internalShortcutActivated
void _q_internalShortcutActivated(int)
Definition
qmenubar.cpp:1687
QMenuBarPrivate::_q_actionTriggered
void _q_actionTriggered()
Definition
qmenubar.cpp:495
QMenuBarPrivate::actionRects
QList< QRect > actionRects
Definition
qmenubar_p.h:52
QMenuBarPrivate::popupState
uint popupState
Definition
qmenubar_p.h:74
QMenuBarPrivate::_q_updateLayout
void _q_updateLayout()
Definition
qmenubar.cpp:1710
QMenuBarPrivate::itemsDirty
uint itemsDirty
Definition
qmenubar_p.h:49
QMenuBarPrivate::activeMenu
QPointer< QMenu > activeMenu
Definition
qmenubar_p.h:75
QMenuBarPrivate::copyActionToPlatformMenu
void copyActionToPlatformMenu(const QAction *e, QPlatformMenu *menu)
Definition
qmenubar.cpp:1197
QMenuBarPrivate::focusFirstAction
void focusFirstAction()
Definition
qmenubar.cpp:236
QMenuBarPrivate::getNextAction
QAction * getNextAction(const int start, const int increment) const
Definition
qmenubar.cpp:695
QMenuBarPrivate::mouseDown
uint mouseDown
Definition
qmenubar_p.h:68
QMenuBarPrivate::platformMenuBar
QPlatformMenuBar * platformMenuBar
Definition
qmenubar_p.h:110
QMenuBarPrivate::popupAction
void popupAction(QAction *, bool)
Definition
qmenubar.cpp:273
QMenuBarPrivate::setCurrentAction
void setCurrentAction(QAction *, bool=false, bool=false)
Definition
qmenubar.cpp:339
QMenuBarPrivate::keyboardFocusWidget
QPointer< QWidget > keyboardFocusWidget
Definition
qmenubar_p.h:81
QMenuBarPrivate::rightWidget
QPointer< QWidget > rightWidget
Definition
qmenubar_p.h:92
QMenuBarPrivate::oldParents
QList< QPointer< QWidget > > oldParents
Definition
qmenubar_p.h:103
QMenuBarPrivate::indexOf
int indexOf(QAction *act) const
Definition
qmenubar_p.h:115
QMenuBarPrivate::autoReleaseTimer
QBasicTimer autoReleaseTimer
Definition
qmenubar_p.h:109
QMenuBarPrivate::defaultAction
QPointer< QAction > defaultAction
Definition
qmenubar_p.h:107
QMenuBarPrivate::hoverAction
QPointer< QAction > hoverAction
Definition
qmenubar_p.h:66
QMenuBarPrivate::activateAction
void activateAction(QAction *, QAction::ActionEvent)
Definition
qmenubar.cpp:479
QMenuBarPrivate::leftWidget
QPointer< QWidget > leftWidget
Definition
qmenubar_p.h:92
QMenuBarPrivate::hiddenActions
QList< QAction * > hiddenActions
Definition
qmenubar_p.h:105
QMenuBarPrivate::closePopupMode
uint closePopupMode
Definition
qmenubar_p.h:68
QMenuBarPrivate::mouseRelaseEventFromQMenu
void mouseRelaseEventFromQMenu()
Definition
qmenubar_p.h:58
QMenuBarPrivate::updateGeometries
void updateGeometries()
Definition
qmenubar.cpp:127
QMenuBarPrivate::handleReparent
void handleReparent()
Definition
qmenubar.cpp:1305
QMenuBarPrivate::doChildEffects
bool doChildEffects
Definition
qmenubar_p.h:97
QMenuBarPrivate::menuRect
QRect menuRect(bool) const
Definition
qmenubar.cpp:88
QMenuBarPrivate::isVisible
bool isVisible(QAction *action)
Definition
qmenubar.cpp:122
QMenuBarPrivate::_q_actionHovered
void _q_actionHovered()
Definition
qmenubar.cpp:503
QMenuBarPrivate::defaultPopDown
uint defaultPopDown
Definition
qmenubar_p.h:68
QMenuBarPrivate::setKeyboardMode
void setKeyboardMode(bool)
Definition
qmenubar.cpp:247
QMenuBarPrivate::keyboardState
uint keyboardState
Definition
qmenubar_p.h:80
QMenuBarPrivate::actionRect
QRect actionRect(QAction *) const
Definition
qmenubar.cpp:223
QMenuBarPrivate::altPressed
uint altPressed
Definition
qmenubar_p.h:80
QMenuBarPrivate::shortcutIndexMap
QList< int > shortcutIndexMap
Definition
qmenubar_p.h:51
QMenuBar
The QMenuBar class provides a horizontal menu bar.
Definition
qmenubar.h:21
QPainter::QWidget
friend class QWidget
Definition
qpainter.h:431
QPointer
Definition
qpointer.h:19
QPlatformGraphicsBufferHelper
\inmodule QtGui
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(animation)
qApp
#define qApp
Definition
qcoreapplication.h:37
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(menubar)
menu
QMenu menu
[5]
Definition
src_gui_widgets_qmenu.cpp:35
qtbase
src
widgets
widgets
qmenubar_p.h
Generated on
for Qt by
1.14.0