mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-16 21:10:26 +00:00
c293be56bd
In particular, the directory frontends/qt4 is renamed to frontends/qt. Many configurations file have to be updated. All mentions of qt4 in the source have been audited, and changed to qt if necessary. The only part that has not been updated is the CMake build system.
98 lines
1.6 KiB
C++
98 lines
1.6 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 "BufferView.h"
|
|
|
|
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();
|
|
|
|
/// QMenu::clear() reimplementation to handle the deletion of submenus.
|
|
void clear();
|
|
|
|
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
|
|
{
|
|
/// noncopyable
|
|
Menus(Menus const &);
|
|
void operator=(Menus const &);
|
|
public:
|
|
Menus();
|
|
~Menus();
|
|
|
|
///
|
|
void reset();
|
|
|
|
///
|
|
bool searchMenu(FuncRequest const & func,
|
|
docstring_list & names, BufferView const * bv = 0) 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
|