lyx_mirror/src/frontends/qt4/Menus.h
Vincent van Ravesteijn b9e7a9b269 Fix bug #5414: Show context menu accelerators when the context menu is shown after pressing the keyboard context menu key.
This should have been done by qt, but we can override qt by adapting the style on the windows platform.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37678 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-15 16:53:37 +00:00

93 lines
1.4 KiB
C++

// -*- C++ -*-
/**
* \file Menus.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Lars Gullik Bjønnes
* \author John Levon
*
* Full author contact details are available in file CREDITS.
*/
#ifndef MENUS_H
#define MENUS_H
#include <QMenu>
#include <vector>
class QString;
class QMenuBar;
namespace lyx {
class docstring_list;
class Lexer;
class FuncRequest;
namespace frontend {
class GuiView;
class Menu : public QMenu
{
Q_OBJECT
public:
///
Menu(GuiView * gv, QString const & name, bool top_level,
bool keyboard = false);
///
~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,
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, bool keyboard = false);
///
void read(Lexer &);
///
void updateMenu(Menu * qmenu);
private:
/// Use the Pimpl idiom to hide the internals.
struct Impl;
///
Impl * d;
};
} // namespace frontend
} // namespace lyx
#endif // MENUS_H