kwave  18.07.70
MenuRoot.h
Go to the documentation of this file.
1 /***************************************************************************
2  MenuRoot.h - root node of a menu structure
3  -------------------
4  begin : Mon Jan 10 2000
5  copyright : (C) 2000 by Thomas Eschenbacher
6  email : Thomas.Eschenbacher@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef MENU_ROOT_H
19 #define MENU_ROOT_H
20 
21 #include "config.h"
22 
23 #include <QList>
24 
25 #include "libgui/MenuNode.h"
26 
27 class QMenuBar;
28 
29 namespace Kwave
30 {
31 
32  class MenuSub;
33 
39  class MenuRoot: public Kwave::MenuNode
40  {
41  Q_OBJECT
42 
43  public:
44 
49  explicit MenuRoot(QMenuBar &bar);
50 
52  virtual ~MenuRoot() Q_DECL_OVERRIDE;
53 
68  virtual void insertNode(const QString &name,
69  const QString &position,
70  const QString &command,
71  const QKeySequence &shortcut,
72  const QString &uid) Q_DECL_OVERRIDE;
73 
89  virtual Kwave::MenuSub *insertBranch(const QString &name,
90  const QString &command,
91  const QKeySequence &shortcut,
92  const QString &uid) Q_DECL_OVERRIDE;
93 
104  virtual Kwave::MenuNode *insertLeaf(const QString &name,
105  const QString &command,
106  const QKeySequence &shortcut,
107  const QString &uid) Q_DECL_OVERRIDE;
108 
114  virtual void removeChild(Kwave::MenuNode *child) Q_DECL_OVERRIDE;
115 
121  virtual bool specialCommand(const QString &command) Q_DECL_OVERRIDE;
122 
126  virtual QHash<QString, Kwave::MenuGroup *> &groupList() Q_DECL_OVERRIDE;
127 
132  static void deleteLater(Kwave::MenuNode *node);
133 
134  protected:
135  friend class MenuSub;
136 
141  void showChild(Kwave::MenuSub *child);
142 
147  void hideChild(Kwave::MenuSub *child);
148 
149  private:
150 
152  QMenuBar &m_menu_bar;
153 
155  QHash<QString, Kwave::MenuGroup *> m_group_list;
156 
158  static QList <Kwave::MenuNode *> m_garbage;
159 
160  };
161 }
162 
163 #endif // _MENU_ROOT_H_
164 
165 //***************************************************************************
166 //***************************************************************************
virtual bool specialCommand(const QString &command) Q_DECL_OVERRIDE
Definition: MenuRoot.cpp:163
Definition: App.h:33
virtual void removeChild(Kwave::MenuNode *child) Q_DECL_OVERRIDE
Definition: MenuRoot.cpp:146
virtual void insertNode(const QString &name, const QString &position, const QString &command, const QKeySequence &shortcut, const QString &uid) Q_DECL_OVERRIDE
Definition: MenuRoot.cpp:57
static QList< Kwave::MenuNode * > m_garbage
Definition: MenuRoot.h:158
virtual QHash< QString, Kwave::MenuGroup * > & groupList() Q_DECL_OVERRIDE
Definition: MenuRoot.cpp:51
const QKeySequence & shortcut() const
Definition: MenuNode.h:95
const QString & name() const
Definition: MenuNode.h:74
const QString & command() const
Definition: MenuNode.h:77
virtual ~MenuRoot() Q_DECL_OVERRIDE
Definition: MenuRoot.cpp:45
QHash< QString, Kwave::MenuGroup * > m_group_list
Definition: MenuRoot.h:155
virtual Kwave::MenuNode * insertLeaf(const QString &name, const QString &command, const QKeySequence &shortcut, const QString &uid) Q_DECL_OVERRIDE
Definition: MenuRoot.cpp:93
static void deleteLater(Kwave::MenuNode *node)
Definition: MenuRoot.cpp:177
const QString & uid() const
Definition: MenuNode.h:85
void hideChild(Kwave::MenuSub *child)
Definition: MenuRoot.cpp:110
QMenuBar & m_menu_bar
Definition: MenuRoot.h:152
virtual Kwave::MenuSub * insertBranch(const QString &name, const QString &command, const QKeySequence &shortcut, const QString &uid) Q_DECL_OVERRIDE
Definition: MenuRoot.cpp:73
void showChild(Kwave::MenuSub *child)
Definition: MenuRoot.cpp:122
MenuRoot(QMenuBar &bar)
Definition: MenuRoot.cpp:38