]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/Menus.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / Menus.h
index dce206d67a62b5ee5603ecaa31309a34c8730a4a..1ab407a5e100c077f7193f1c28b98f777cabc3bb 100644 (file)
@@ -4,7 +4,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author John Levon
  *
  * Full author contact details are available in file CREDITS.
 #ifndef MENUS_H
 #define MENUS_H
 
-#include "support/docstring.h"
-
-#include <Qmenu>
+#include <QMenu>
 
 #include <vector>
 
 class QString;
+class QMenuBar;
 
 namespace lyx {
 
+class docstring_list;
 class Lexer;
 class FuncRequest;
 
@@ -30,27 +30,23 @@ namespace frontend {
 
 class GuiView;
 
-class Menus
+class Menu : public QMenu
 {
+       Q_OBJECT
 public:
-       Menus();
-       
        ///
-       bool searchMenu(FuncRequest const & func,
-               std::vector<docstring> & names) const;
-       ///
-       void fillMenuBar(GuiView * view);
-
-       /// \return a top-level submenu given its name.
-       QMenu * menu(QString const & name, GuiView & view);
+       Menu(GuiView * gv, QString const & name, bool top_level);
 
        ///
-       void read(Lexer &);
-
+       ~Menu();
+       
+private Q_SLOTS:
        ///
-       void updateMenu(QString const & name);
+       void updateView();
 
 private:
+       friend class Menus;
+
        /// Use the Pimpl idiom to hide the internals.
        struct Impl;
        /// The pointer never changes although *d's contents may.
@@ -58,21 +54,35 @@ private:
 };
 
 
-class GuiPopupMenuBase : public QMenu
+class Menus
 {
-       Q_OBJECT
-       
 public:
+       Menus();
+       ~Menus();
+
        ///
-       GuiPopupMenuBase(QWidget * parent = 0)
-               : QMenu(parent)
-       {
-               connect(this, SIGNAL(aboutToShow()), this, SLOT(updateView()));
-       }
+       void reset();
        
-private Q_SLOTS:
        ///
-       virtual void updateView() = 0;
+       bool searchMenu(FuncRequest const & func,
+               docstring_list & names) const;
+       ///
+       void fillMenuBar(QMenuBar * qmb, GuiView * view, bool initial = false);
+
+       /// \return a top-level submenu given its name.
+       Menu * menu(QString const & name, GuiView & view);
+
+       ///
+       void read(Lexer &);
+
+       ///
+       void updateMenu(Menu * qmenu);
+
+private:
+       /// Use the Pimpl idiom to hide the internals.
+       struct Impl;
+       ///
+       Impl * d;
 };
 
 } // namespace frontend