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
27
28QT_BEGIN_NAMESPACE
29
30class QMenuBarExtension;
32{
33 Q_DECLARE_PUBLIC(QMenuBar)
34public:
39
41 {
42 delete platformMenuBar;
43 }
44
45 void init();
46 QAction *getNextAction(const int start, const int increment) const;
47
48 //item calculations
50
53 void calcActionRects(int max_width, int start) const;
54 QRect actionRect(QAction *) const;
55 void updateGeometries();
56
57 //selection
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 }
69 QAction *actionAt(QPoint p) const;
70 void setCurrentAction(QAction *, bool =false, bool =false);
71 void popupAction(QAction *, bool);
72
73 //active popup state
76
77 //keyboard mode for keyboard navigation
78 void focusFirstAction();
79 void setKeyboardMode(bool);
82
83 //firing of events
84 void activateAction(QAction *, QAction::ActionEvent);
85
86 void _q_actionTriggered();
87 void _q_actionHovered();
89 void _q_updateLayout();
90
91 //extra widgets in the menubar
94 bool isVisible(QAction *action);
95
96 //menu fading/scrolling effects
98
99 QRect menuRect(bool) const;
100
101 // reparenting
102 void handleReparent();
104
106 //default action
108
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
118QT_END_NAMESPACE
119
120#endif // QMENUBAR_P_H
QSize sizeHint() const override
Definition qmenubar.cpp:69
void paintEvent(QPaintEvent *) override
\reimp
Definition qmenubar.cpp:58
QMenuBarExtension(QWidget *parent)
Definition qmenubar.cpp:47
QPlatformMenu * findInsertionPlatformMenu(const QAction *action)
QMenuBarExtension * extension
Definition qmenubar_p.h:93
QPlatformMenu * getPlatformMenu(const QAction *action)
QPointer< QAction > currentAction
Definition qmenubar_p.h:67
QAction * actionAt(QPoint p) const
Definition qmenubar.cpp:79
void calcActionRects(int max_width, int start) const
Definition qmenubar.cpp:383
void _q_internalShortcutActivated(int)
void _q_actionTriggered()
Definition qmenubar.cpp:495
QList< QRect > actionRects
Definition qmenubar_p.h:52
void _q_updateLayout()
QPointer< QMenu > activeMenu
Definition qmenubar_p.h:75
void copyActionToPlatformMenu(const QAction *e, QPlatformMenu *menu)
void focusFirstAction()
Definition qmenubar.cpp:236
QAction * getNextAction(const int start, const int increment) const
Definition qmenubar.cpp:695
QPlatformMenuBar * platformMenuBar
Definition qmenubar_p.h:110
void popupAction(QAction *, bool)
Definition qmenubar.cpp:273
void setCurrentAction(QAction *, bool=false, bool=false)
Definition qmenubar.cpp:339
QPointer< QWidget > keyboardFocusWidget
Definition qmenubar_p.h:81
QPointer< QWidget > rightWidget
Definition qmenubar_p.h:92
QList< QPointer< QWidget > > oldParents
Definition qmenubar_p.h:103
int indexOf(QAction *act) const
Definition qmenubar_p.h:115
QBasicTimer autoReleaseTimer
Definition qmenubar_p.h:109
QPointer< QAction > defaultAction
Definition qmenubar_p.h:107
QPointer< QAction > hoverAction
Definition qmenubar_p.h:66
void activateAction(QAction *, QAction::ActionEvent)
Definition qmenubar.cpp:479
QPointer< QWidget > leftWidget
Definition qmenubar_p.h:92
QList< QAction * > hiddenActions
Definition qmenubar_p.h:105
void mouseRelaseEventFromQMenu()
Definition qmenubar_p.h:58
void updateGeometries()
Definition qmenubar.cpp:127
void handleReparent()
QRect menuRect(bool) const
Definition qmenubar.cpp:88
bool isVisible(QAction *action)
Definition qmenubar.cpp:122
void _q_actionHovered()
Definition qmenubar.cpp:503
void setKeyboardMode(bool)
Definition qmenubar.cpp:247
QRect actionRect(QAction *) const
Definition qmenubar.cpp:223
QList< int > shortcutIndexMap
Definition qmenubar_p.h:51
The QMenuBar class provides a horizontal menu bar.
Definition qmenubar.h:21
friend class QWidget
Definition qpainter.h:431
QT_REQUIRE_CONFIG(animation)
#define qApp
QT_REQUIRE_CONFIG(menubar)
QMenu menu
[5]