Qt 4.8
qmenubar_x11.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #include "qmenubar_x11_p.h"
43 
44 #ifndef QT_NO_MENUBAR
45 
46 #include "qapplication.h"
47 #include "qdebug.h"
48 #include "qevent.h"
49 #include "qmenu.h"
50 #include "qmenubar.h"
51 
52 #include <private/qfactoryloader_p.h>
53 
55 
57 {
58 }
59 
60 void QX11MenuBar::init(QMenuBar *_menuBar)
61 {
62  nativeMenuBar = -1;
63  menuBar = _menuBar;
64 }
65 
66 void QX11MenuBar::setVisible(bool visible)
67 {
68  menuBar->QWidget::setVisible(visible);
69 }
70 
72 {
73  Q_UNUSED(e);
74 }
75 
76 void QX11MenuBar::handleReparent(QWidget *oldParent, QWidget *newParent, QWidget *oldWindow, QWidget *newWindow)
77 {
78  Q_UNUSED(oldParent)
79  Q_UNUSED(newParent)
80  Q_UNUSED(oldWindow)
81  Q_UNUSED(newWindow)
82 }
83 
85 {
86  return true;
87 }
88 
90 {
91 }
92 
94 {
95  if (nativeMenuBar == -1 || (value != bool(nativeMenuBar))) {
96  nativeMenuBar = value;
97  }
98 }
99 
101 {
102  return false;
103 }
104 
106 {
107  return false;
108 }
109 
111 {
112  return false;
113 }
114 
116 {
118  virtual QStringList keys() const { return QStringList(); }
119 };
120 
122 {
123  static QPlatformMenuBarFactoryInterface *factory = 0;
124  if (!factory) {
125 #ifndef QT_NO_LIBRARY
127  factory = qobject_cast<QPlatformMenuBarFactoryInterface *>(loader.instance(QLatin1String("default")));
128 #endif // QT_NO_LIBRARY
129  if(!factory) {
130  static QX11MenuBarFactory def;
131  factory = &def;
132  }
133  }
134  return factory;
135 }
136 
138 
139 #endif // QT_NO_MENUBAR
T qobject_cast(QObject *object)
Definition: qobject.h:375
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
virtual void setNativeMenuBar(bool)
virtual void actionEvent(QActionEvent *e)
virtual bool shortcutsHandledByNativeMenuBar() const
Return true if the native menubar is capable of listening to the shortcut keys.
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
virtual void setVisible(bool visible)
virtual bool allowCornerWidgets() const
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QActionEvent class provides an event that is generated when a QAction is added, removed, or changed.
Definition: qevent.h:632
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
virtual void handleReparent(QWidget *oldParent, QWidget *newParent, QWidget *oldWindow, QWidget *newWindow)
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
virtual void popupAction(QAction *)
QAbstractPlatformMenuBar * create()
#define QPlatformMenuBarFactoryInterface_iid
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
QPlatformMenuBarFactoryInterface * qt_guiPlatformMenuBarFactory()
The platform-specific implementation of a menubar.
virtual void init(QMenuBar *)
The QMenuBar class provides a horizontal menu bar.
Definition: qmenubar.h:62
QObject * instance(const QString &key) const
QMenuBar * menuBar
virtual bool isNativeMenuBar() const
virtual bool menuBarEventFilter(QObject *, QEvent *event)
virtual QStringList keys() const
The QEvent class is the base class of all event classes.
Definition: qcoreevent.h:56
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729
The QAction class provides an abstract user interface action that can be inserted into widgets...
Definition: qaction.h:64