X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FMenus.h;h=1ab407a5e100c077f7193f1c28b98f777cabc3bb;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=daafcd3fa99791daf159120fe8eb5fedc14cb871;hpb=fe4b7f4b127a087bd768753add0ebea4dc3a7b17;p=lyx.git diff --git a/src/frontends/qt4/Menus.h b/src/frontends/qt4/Menus.h index daafcd3fa9..1ab407a5e1 100644 --- a/src/frontends/qt4/Menus.h +++ b/src/frontends/qt4/Menus.h @@ -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. @@ -13,15 +13,16 @@ #ifndef MENUS_H #define MENUS_H -#include "support/docstring.h" +#include #include -class QMenu; class QString; +class QMenuBar; namespace lyx { +class docstring_list; class Lexer; class FuncRequest; @@ -29,31 +30,59 @@ namespace frontend { class GuiView; +class Menu : public QMenu +{ + Q_OBJECT +public: + /// + Menu(GuiView * gv, QString const & name, bool top_level); + + /// + ~Menu(); + +private Q_SLOTS: + /// + 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. + Impl * const d; +}; + + class Menus { public: Menus(); + ~Menus(); + + /// + void reset(); /// bool searchMenu(FuncRequest const & func, - std::vector & names) const; + docstring_list & names) const; /// - void fillMenuBar(GuiView * view); + void fillMenuBar(QMenuBar * qmb, GuiView * view, bool initial = false); /// \return a top-level submenu given its name. - QMenu * menu(QString const & name); + Menu * menu(QString const & name, GuiView & view); /// void read(Lexer &); /// - void updateMenu(QString const & name); + void updateMenu(Menu * qmenu); private: /// Use the Pimpl idiom to hide the internals. struct Impl; - /// The pointer never changes although *d's contents may. - Impl * const d; + /// + Impl * d; }; } // namespace frontend