• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kde-runtime API Reference
  • KDE Home
  • Contact Us
 

PlasmaComponents

  • sources
  • kde-4.14
  • kde-runtime
  • plasma
  • declarativeimports
  • plasmacomponents
qmenu.h
Go to the documentation of this file.
1 /*
2  * Copyright 2011 Viranch Mehta <viranch.mehta@gmail.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Library General Public License as
6  * published by the Free Software Foundation; either version 2, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this program; if not, write to the
16  * Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  */
19 
20 #ifndef QMENU_PROXY_H
21 #define QMENU_PROXY_H
22 
23 #include <QObject>
24 #include <QMenu>
25 #include <QDeclarativeListProperty>
26 #include "qmenuitem.h"
27 #include "enums.h"
28 
29 class QDeclarativeItem;
30 
31 class QMenuProxy : public QObject
32 {
33  Q_OBJECT
34 
35  Q_PROPERTY(QDeclarativeListProperty<QMenuItem> content READ content CONSTANT)
36  Q_CLASSINFO("DefaultProperty", "content")
37 
38 
41  Q_PROPERTY(QObject *visualParent READ visualParent WRITE setVisualParent NOTIFY visualParentChanged())
42  Q_PROPERTY(DialogStatus::Status status READ status NOTIFY statusChanged)
43 
44 public:
45  QMenuProxy(QObject *parent = 0);
46  ~QMenuProxy();
47 
48  QDeclarativeListProperty<QMenuItem> content();
49  int actionCount() const;
50  QMenuItem *action(int) const;
51  DialogStatus::Status status() const;
52 
53  QObject *visualParent() const;
54  void setVisualParent(QObject *parent);
55 
56  Q_INVOKABLE void open(int x, int y);
57  Q_INVOKABLE void open();
58  Q_INVOKABLE void close();
59  Q_INVOKABLE void clearMenuItems();
60  Q_INVOKABLE void addMenuItem(const QString &text);
61  Q_INVOKABLE void addMenuItem(QMenuItem *item);
62 
63 protected:
64  bool event(QEvent *event);
65 
66 Q_SIGNALS:
67  void statusChanged();
68  void visualParentChanged();
69  void triggered(QMenuItem *item);
70  void triggeredIndex(int index);
71 
72 private Q_SLOTS:
73  void itemTriggered(QAction *item);
74  void markAsClosed();
75 
76 private:
77  QList<QMenuItem*> m_items;
78  QMenu *m_menu;
79  DialogStatus::Status m_status;
80  QWeakPointer<QObject> m_visualParent;
81 };
82 
83 #endif //QMENU_PROXY_H
84 
QEvent
QMenuProxy::triggeredIndex
void triggeredIndex(int index)
qmenuitem.h
QMenuProxy::status
DialogStatus::Status status() const
QMenuProxy::visualParentChanged
void visualParentChanged()
QMenuProxy::actionCount
int actionCount() const
Definition: qmenu.cpp:50
QMenuItem
Definition: qmenuitem.h:26
QMenuProxy::action
QMenuItem * action(int) const
Definition: qmenu.cpp:55
QObject
QMenuProxy::addMenuItem
Q_INVOKABLE void addMenuItem(const QString &text)
Definition: qmenu.cpp:136
QMenuProxy::triggered
void triggered(QMenuItem *item)
QString
QList
DialogStatus
Definition: enums.h:27
QMenuProxy::clearMenuItems
Q_INVOKABLE void clearMenuItems()
Definition: qmenu.cpp:130
QMenuProxy::close
Q_INVOKABLE void close()
Definition: qmenu.cpp:294
QMenu
QMenuProxy::open
Q_INVOKABLE void open()
Definition: qmenu.cpp:224
QMenuProxy::setVisualParent
void setVisualParent(QObject *parent)
Definition: qmenu.cpp:70
enums.h
QMenuProxy::event
bool event(QEvent *event)
Definition: qmenu.cpp:97
QAction
QWeakPointer
QDeclarativeItem
QMenuProxy
Definition: qmenu.h:31
QMenuProxy::statusChanged
void statusChanged()
QObject::parent
QObject * parent() const
QDeclarativeListProperty
QMenuProxy::content
QDeclarativeListProperty< QMenuItem > content()
QMenuProxy::visualParent
QObject * visualParent() const
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:08:40 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

PlasmaComponents

Skip menu "PlasmaComponents"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List

kde-runtime API Reference

Skip menu "kde-runtime API Reference"
  • KCMShell
  • KNotify
  • Plasma Runtime
  •     PlasmaCore
  •     DragAndDrop
  •     PlasmaComponents
  •     PlasmaExtraComponents
  •     QtExtraComponents

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal