mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-23 16:52:02 +00:00
merge MenuBackend into frontend/Menus
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23527 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
6f1cb456cf
commit
4b12782854
@ -63,8 +63,6 @@ lyx_SOURCES = \
|
||||
$(ASPELL) $(PSPELL) $(ISPELL) SpellBase.cpp \
|
||||
Box.cpp \
|
||||
Box.h \
|
||||
MenuBackend.cpp \
|
||||
MenuBackend.h \
|
||||
Dimension.cpp \
|
||||
Dimension.h \
|
||||
PrinterParams.cpp \
|
||||
|
1069
src/MenuBackend.cpp
1069
src/MenuBackend.cpp
File diff suppressed because it is too large
Load Diff
@ -1,261 +0,0 @@
|
||||
// -*- C++ -*-
|
||||
/**
|
||||
* \file MenuBackend.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 Jean-Marc Lasgouttes
|
||||
*
|
||||
* Full author contact details are available in file CREDITS.
|
||||
*/
|
||||
|
||||
#ifndef MENUBACKEND_H
|
||||
#define MENUBACKEND_H
|
||||
|
||||
#include "FuncStatus.h"
|
||||
#include "FuncRequest.h"
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#include <vector>
|
||||
|
||||
|
||||
namespace lyx {
|
||||
|
||||
class Lexer;
|
||||
class Buffer;
|
||||
class Menu;
|
||||
|
||||
///
|
||||
class MenuItem {
|
||||
public:
|
||||
/// The type of elements that can be in a menu
|
||||
enum Kind {
|
||||
///
|
||||
Command,
|
||||
///
|
||||
Submenu,
|
||||
///
|
||||
Separator,
|
||||
/** This is the list of last opened file,
|
||||
typically for the File menu. */
|
||||
Lastfiles,
|
||||
/** This is the list of opened Documents,
|
||||
typically for the Documents menu. */
|
||||
Documents,
|
||||
/** This is the bookmarks */
|
||||
Bookmarks,
|
||||
///
|
||||
Toc,
|
||||
/** This is a list of viewable formats
|
||||
typically for the File->View menu. */
|
||||
ViewFormats,
|
||||
/** This is a list of updatable formats
|
||||
typically for the File->Update menu. */
|
||||
UpdateFormats,
|
||||
/** This is a list of exportable formats
|
||||
typically for the File->Export menu. */
|
||||
ExportFormats,
|
||||
/** This is a list of importable formats
|
||||
typically for the File->Export menu. */
|
||||
ImportFormats,
|
||||
/** This is the list of elements available
|
||||
* for insertion into document. */
|
||||
CharStyles,
|
||||
/** This is the list of user-configurable
|
||||
insets to insert into document */
|
||||
Custom,
|
||||
/** This is the list of XML elements to
|
||||
insert into the document */
|
||||
Elements,
|
||||
/** This is the list of floats that we can
|
||||
insert a list for. */
|
||||
FloatListInsert,
|
||||
/** This is the list of floats that we can
|
||||
insert. */
|
||||
FloatInsert,
|
||||
/** This is the list of selections that can
|
||||
be pasted. */
|
||||
PasteRecent,
|
||||
/** toolbars */
|
||||
Toolbars,
|
||||
/** Available branches in document */
|
||||
Branches
|
||||
};
|
||||
|
||||
explicit MenuItem(Kind kind);
|
||||
|
||||
MenuItem(Kind kind,
|
||||
docstring const & label,
|
||||
docstring const & submenu = docstring(),
|
||||
bool optional = false);
|
||||
|
||||
MenuItem(Kind kind,
|
||||
docstring const & label,
|
||||
FuncRequest const & func,
|
||||
bool optional = false);
|
||||
|
||||
/// This one is just to please boost::shared_ptr<>
|
||||
~MenuItem();
|
||||
/// The label of a given menuitem
|
||||
docstring const label() const;
|
||||
/// The keyboard shortcut (usually underlined in the entry)
|
||||
docstring const shortcut() const;
|
||||
/// The complete label, with label and shortcut separated by a '|'
|
||||
docstring const fulllabel() const { return label_;}
|
||||
/// The kind of entry
|
||||
Kind kind() const { return kind_; }
|
||||
/// the action (if relevant)
|
||||
FuncRequest const & func() const { return func_; }
|
||||
/// returns true if the entry should be ommited when disabled
|
||||
bool optional() const { return optional_; }
|
||||
/// returns the status of the lfun associated with this entry
|
||||
FuncStatus const & status() const { return status_; }
|
||||
/// returns the status of the lfun associated with this entry
|
||||
FuncStatus & status() { return status_; }
|
||||
/// returns the status of the lfun associated with this entry
|
||||
void status(FuncStatus const & status) { status_ = status; }
|
||||
///returns the binding associated to this action.
|
||||
docstring const binding() const;
|
||||
/// the description of the submenu (if relevant)
|
||||
docstring const & submenuname() const { return submenuname_; }
|
||||
/// set the description of the submenu
|
||||
void submenuname(docstring const & name) { submenuname_ = name; }
|
||||
///
|
||||
Menu * submenu() const { return submenu_.get(); }
|
||||
///
|
||||
void submenu(Menu * menu);
|
||||
|
||||
private:
|
||||
//friend class MenuBackend;
|
||||
///
|
||||
Kind kind_;
|
||||
///
|
||||
docstring label_;
|
||||
///
|
||||
FuncRequest func_;
|
||||
///
|
||||
docstring submenuname_;
|
||||
///
|
||||
bool optional_;
|
||||
///
|
||||
FuncStatus status_;
|
||||
///
|
||||
boost::shared_ptr<Menu> submenu_;
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
class Menu {
|
||||
public:
|
||||
///
|
||||
typedef std::vector<MenuItem> ItemList;
|
||||
///
|
||||
typedef ItemList::const_iterator const_iterator;
|
||||
///
|
||||
typedef ItemList::size_type size_type;
|
||||
///
|
||||
explicit Menu(docstring const & name = docstring()) : name_(name) {}
|
||||
/// Add the menu item unconditionally
|
||||
Menu & add(MenuItem const &);
|
||||
/// Checks the associated FuncRequest status before adding the
|
||||
/// menu item.
|
||||
Menu & addWithStatusCheck(MenuItem const &);
|
||||
///
|
||||
Menu & read(Lexer &);
|
||||
///
|
||||
docstring const & name() const { return name_; }
|
||||
///
|
||||
bool empty() const { return items_.empty(); }
|
||||
/// Clear the menu content.
|
||||
void clear() { items_.clear(); }
|
||||
///
|
||||
ItemList::size_type size() const { return items_.size(); }
|
||||
///
|
||||
MenuItem const & operator[](size_type) const;
|
||||
///
|
||||
bool hasFunc(FuncRequest const &) const;
|
||||
///
|
||||
const_iterator begin() const { return items_.begin(); }
|
||||
///
|
||||
const_iterator end() const { return items_.end(); }
|
||||
|
||||
// Check whether the menu shortcuts are unique
|
||||
void checkShortcuts() const;
|
||||
|
||||
// search for func in this menu iteratively, and put menu
|
||||
// names in a stack.
|
||||
bool searchMenu(FuncRequest const & func, std::vector<docstring> & names)
|
||||
const;
|
||||
|
||||
private:
|
||||
friend class MenuBackend;
|
||||
///
|
||||
ItemList items_;
|
||||
///
|
||||
docstring name_;
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
class MenuBackend {
|
||||
public:
|
||||
///
|
||||
typedef std::vector<Menu> MenuList;
|
||||
///
|
||||
typedef MenuList::const_iterator const_iterator;
|
||||
///
|
||||
typedef MenuList::iterator iterator;
|
||||
///
|
||||
MenuBackend() {}
|
||||
///
|
||||
void read(Lexer &);
|
||||
///
|
||||
void add(Menu const &);
|
||||
///
|
||||
bool hasMenu(docstring const &) const;
|
||||
///
|
||||
Menu & getMenu(docstring const &);
|
||||
///
|
||||
Menu const & getMenu(docstring const &) const;
|
||||
///
|
||||
Menu const & getMenubar() const;
|
||||
///
|
||||
bool empty() const { return menulist_.empty(); }
|
||||
/** This defines a menu whose entries list the FuncRequests
|
||||
that will be removed by expand() in other menus. This is
|
||||
used by the Qt/Mac code
|
||||
*/
|
||||
void specialMenu(Menu const &);
|
||||
///
|
||||
Menu const & specialMenu() { return specialmenu_; }
|
||||
|
||||
/// Expands some special entries of the menu
|
||||
/** The entries with the following kind are expanded to a
|
||||
sequence of Command MenuItems: Lastfiles, Documents,
|
||||
ViewFormats, ExportFormats, UpdateFormats, Branches
|
||||
*/
|
||||
void expand(Menu const & frommenu, Menu & tomenu,
|
||||
Buffer const *) const;
|
||||
///
|
||||
const_iterator begin() const { return menulist_.begin(); }
|
||||
///
|
||||
iterator begin() { return menulist_.begin(); }
|
||||
///
|
||||
const_iterator end() const { return menulist_.end(); }
|
||||
///
|
||||
iterator end() { return menulist_.end(); }
|
||||
|
||||
private:
|
||||
///
|
||||
MenuList menulist_;
|
||||
///
|
||||
Menu menubar_;
|
||||
///
|
||||
Menu specialmenu_;
|
||||
};
|
||||
|
||||
} // namespace lyx
|
||||
|
||||
#endif // MENUBACKEND_H
|
@ -29,7 +29,6 @@ class FuncRequest;
|
||||
class FuncStatus;
|
||||
class Inset;
|
||||
class Lexer;
|
||||
class MenuBackend;
|
||||
struct RGBColor;
|
||||
|
||||
namespace frontend {
|
||||
@ -233,10 +232,6 @@ public:
|
||||
*/
|
||||
virtual void unregisterSocketCallback(int fd) = 0;
|
||||
|
||||
///
|
||||
virtual MenuBackend const & menuBackend() const = 0;
|
||||
virtual MenuBackend & menuBackend() = 0;
|
||||
|
||||
virtual bool searchMenu(FuncRequest const & func,
|
||||
std::vector<docstring> & names) const = 0;
|
||||
};
|
||||
|
@ -651,14 +651,14 @@ Buffer const * GuiApplication::updateInset(Inset const * inset) const
|
||||
|
||||
void GuiApplication::readMenus(Lexer & lex)
|
||||
{
|
||||
menuBackend().read(lex);
|
||||
menus().read(lex);
|
||||
}
|
||||
|
||||
|
||||
bool GuiApplication::searchMenu(FuncRequest const & func,
|
||||
vector<docstring> & names) const
|
||||
{
|
||||
return menuBackend().getMenubar().searchMenu(func, names);
|
||||
return menus().getMenubar().searchMenu(func, names);
|
||||
}
|
||||
|
||||
|
||||
|
@ -65,8 +65,6 @@ public:
|
||||
virtual Clipboard & clipboard();
|
||||
virtual Selection & selection();
|
||||
virtual FontLoader & fontLoader() { return font_loader_; }
|
||||
MenuBackend const & menuBackend() const { return menus_; }
|
||||
MenuBackend & menuBackend() { return menus_; }
|
||||
virtual int exec();
|
||||
virtual void exit(int status);
|
||||
virtual bool event(QEvent * e);
|
||||
|
@ -11,18 +11,16 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "GuiView.h"
|
||||
#include "GuiPopupMenu.h"
|
||||
|
||||
#include "Action.h"
|
||||
#include "GuiApplication.h"
|
||||
#include "GuiPopupMenu.h"
|
||||
#include "GuiView.h"
|
||||
#include "qt_helpers.h"
|
||||
|
||||
#include "LyXFunc.h"
|
||||
#include "MenuBackend.h"
|
||||
|
||||
#include "support/debug.h"
|
||||
#include "support/lstrings.h"
|
||||
|
||||
namespace lyx {
|
||||
namespace frontend {
|
||||
@ -31,7 +29,7 @@ GuiPopupMenu::GuiPopupMenu(GuiView * owner, MenuItem const & mi,
|
||||
bool topLevelMenu)
|
||||
: QMenu(owner), owner_(owner)
|
||||
{
|
||||
name_ = toqstr(mi.submenuname());
|
||||
name_ = mi.submenuname();
|
||||
|
||||
setTitle(label(mi));
|
||||
|
||||
@ -53,13 +51,13 @@ void GuiPopupMenu::updateView()
|
||||
// Here, We make sure that theLyXFunc points to the correct LyXView.
|
||||
theLyXFunc().setLyXView(owner_);
|
||||
|
||||
MenuBackend const & menubackend = guiApp->menuBackend();
|
||||
Menu const & fromLyxMenu = menubackend.getMenu(qstring_to_ucs4(name_));
|
||||
menubackend.expand(fromLyxMenu, topLevelMenu_, owner_->buffer());
|
||||
Menus const & menus = guiApp->menus();
|
||||
Menu const & fromLyxMenu = menus.getMenu(name_);
|
||||
menus.expand(fromLyxMenu, topLevelMenu_, owner_->buffer());
|
||||
|
||||
if (!menubackend.hasMenu(topLevelMenu_.name())) {
|
||||
if (!menus.hasMenu(topLevelMenu_.name())) {
|
||||
LYXERR(Debug::GUI, "\tWARNING: menu seems empty"
|
||||
<< to_utf8(topLevelMenu_.name()));
|
||||
<< fromqstr(topLevelMenu_.name()));
|
||||
}
|
||||
populate(this, &topLevelMenu_);
|
||||
}
|
||||
@ -67,9 +65,9 @@ void GuiPopupMenu::updateView()
|
||||
|
||||
void GuiPopupMenu::populate(QMenu * qMenu, Menu * menu)
|
||||
{
|
||||
LYXERR(Debug::GUI, "populating menu " << to_utf8(menu->name()));
|
||||
LYXERR(Debug::GUI, "populating menu " << fromqstr(menu->name()));
|
||||
if (menu->size() == 0) {
|
||||
LYXERR(Debug::GUI, "\tERROR: empty menu " << to_utf8(menu->name()));
|
||||
LYXERR(Debug::GUI, "\tERROR: empty menu " << fromqstr(menu->name()));
|
||||
return;
|
||||
}
|
||||
LYXERR(Debug::GUI, " ***** menu entries " << menu->size());
|
||||
@ -94,9 +92,9 @@ void GuiPopupMenu::populate(QMenu * qMenu, Menu * menu)
|
||||
} else { // we have a MenuItem::Command
|
||||
|
||||
LYXERR(Debug::GUI, "creating Menu Item "
|
||||
<< to_utf8(m->label()));
|
||||
<< fromqstr(m->label()));
|
||||
|
||||
Action * action = new Action(*(owner_),
|
||||
Action * action = new Action(*owner_,
|
||||
QIcon(), label(*m), m->func(), QString());
|
||||
qMenu->addAction(action);
|
||||
}
|
||||
@ -106,21 +104,22 @@ void GuiPopupMenu::populate(QMenu * qMenu, Menu * menu)
|
||||
|
||||
QString GuiPopupMenu::label(MenuItem const & mi) const
|
||||
{
|
||||
docstring label = support::subst(mi.label(),
|
||||
from_ascii("&"), from_ascii("&&"));
|
||||
QString label = mi.label();
|
||||
label.replace("&", "&&");
|
||||
|
||||
docstring const shortcut = mi.shortcut();
|
||||
if (!shortcut.empty()) {
|
||||
size_t pos = label.find(shortcut);
|
||||
if (pos != docstring::npos)
|
||||
label.insert(pos, 1, char_type('&'));
|
||||
QString shortcut = mi.shortcut();
|
||||
if (!shortcut.isEmpty()) {
|
||||
int pos = label.indexOf(shortcut);
|
||||
if (pos != -1)
|
||||
//label.insert(pos, 1, char_type('&'));
|
||||
label.replace(pos, 0, "&");
|
||||
}
|
||||
|
||||
docstring const binding = mi.binding();
|
||||
if (!binding.empty())
|
||||
QString const binding = mi.binding();
|
||||
if (!binding.isEmpty())
|
||||
label += '\t' + binding;
|
||||
|
||||
return toqstr(label);
|
||||
return label;
|
||||
}
|
||||
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
#ifndef GUIPOPUPMENU_H
|
||||
#define GUIPOPUPMENU_H
|
||||
|
||||
#include "MenuBackend.h"
|
||||
#include "Menus.h"
|
||||
|
||||
#include <QMenu>
|
||||
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "GuiApplication.h"
|
||||
#include "GuiKeySymbol.h"
|
||||
#include "GuiPainter.h"
|
||||
#include "GuiPopupMenu.h"
|
||||
#include "GuiView.h"
|
||||
#include "KeySymbol.h"
|
||||
#include "Language.h"
|
||||
@ -51,6 +50,7 @@
|
||||
#include <QMacStyle>
|
||||
#endif
|
||||
#include <QMainWindow>
|
||||
#include <QMenu>
|
||||
#include <QPainter>
|
||||
#include <QPalette>
|
||||
#include <QScrollBar>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -13,25 +13,211 @@
|
||||
#ifndef MENUS_H
|
||||
#define MENUS_H
|
||||
|
||||
#include "MenuBackend.h"
|
||||
#include "FuncStatus.h"
|
||||
#include "FuncRequest.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QHash>
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#include <vector>
|
||||
|
||||
class QMenu;
|
||||
|
||||
|
||||
namespace lyx {
|
||||
|
||||
class Lexer;
|
||||
class Buffer;
|
||||
|
||||
namespace frontend {
|
||||
|
||||
class Menu;
|
||||
class GuiView;
|
||||
class GuiPopupMenu;
|
||||
class GuiView;
|
||||
|
||||
class Menus : public QObject, public MenuBackend
|
||||
{
|
||||
Q_OBJECT
|
||||
///
|
||||
class MenuItem {
|
||||
public:
|
||||
/// The type of elements that can be in a menu
|
||||
enum Kind {
|
||||
///
|
||||
Command,
|
||||
///
|
||||
Submenu,
|
||||
///
|
||||
Separator,
|
||||
/** This is the list of last opened file,
|
||||
typically for the File menu. */
|
||||
Lastfiles,
|
||||
/** This is the list of opened Documents,
|
||||
typically for the Documents menu. */
|
||||
Documents,
|
||||
/** This is the bookmarks */
|
||||
Bookmarks,
|
||||
///
|
||||
Toc,
|
||||
/** This is a list of viewable formats
|
||||
typically for the File->View menu. */
|
||||
ViewFormats,
|
||||
/** This is a list of updatable formats
|
||||
typically for the File->Update menu. */
|
||||
UpdateFormats,
|
||||
/** This is a list of exportable formats
|
||||
typically for the File->Export menu. */
|
||||
ExportFormats,
|
||||
/** This is a list of importable formats
|
||||
typically for the File->Export menu. */
|
||||
ImportFormats,
|
||||
/** This is the list of elements available
|
||||
* for insertion into document. */
|
||||
CharStyles,
|
||||
/** This is the list of user-configurable
|
||||
insets to insert into document */
|
||||
Custom,
|
||||
/** This is the list of XML elements to
|
||||
insert into the document */
|
||||
Elements,
|
||||
/** This is the list of floats that we can
|
||||
insert a list for. */
|
||||
FloatListInsert,
|
||||
/** This is the list of floats that we can
|
||||
insert. */
|
||||
FloatInsert,
|
||||
/** This is the list of selections that can
|
||||
be pasted. */
|
||||
PasteRecent,
|
||||
/** toolbars */
|
||||
Toolbars,
|
||||
/** Available branches in document */
|
||||
Branches
|
||||
};
|
||||
|
||||
explicit MenuItem(Kind kind);
|
||||
|
||||
MenuItem(Kind kind,
|
||||
QString const & label,
|
||||
QString const & submenu = QString(),
|
||||
bool optional = false);
|
||||
|
||||
MenuItem(Kind kind,
|
||||
QString const & label,
|
||||
FuncRequest const & func,
|
||||
bool optional = false);
|
||||
|
||||
/// This one is just to please boost::shared_ptr<>
|
||||
~MenuItem();
|
||||
/// The label of a given menuitem
|
||||
QString label() const;
|
||||
/// The keyboard shortcut (usually underlined in the entry)
|
||||
QString shortcut() const;
|
||||
/// The complete label, with label and shortcut separated by a '|'
|
||||
QString fulllabel() const { return label_;}
|
||||
/// The kind of entry
|
||||
Kind kind() const { return kind_; }
|
||||
/// the action (if relevant)
|
||||
FuncRequest const & func() const { return func_; }
|
||||
/// returns true if the entry should be ommited when disabled
|
||||
bool optional() const { return optional_; }
|
||||
/// returns the status of the lfun associated with this entry
|
||||
FuncStatus const & status() const { return status_; }
|
||||
/// returns the status of the lfun associated with this entry
|
||||
FuncStatus & status() { return status_; }
|
||||
/// returns the status of the lfun associated with this entry
|
||||
void status(FuncStatus const & status) { status_ = status; }
|
||||
///returns the binding associated to this action.
|
||||
QString binding() const;
|
||||
/// the description of the submenu (if relevant)
|
||||
QString const & submenuname() const { return submenuname_; }
|
||||
/// set the description of the submenu
|
||||
void submenuname(QString const & name) { submenuname_ = name; }
|
||||
///
|
||||
Menu * submenu() const { return submenu_.get(); }
|
||||
///
|
||||
void submenu(Menu * menu);
|
||||
|
||||
private:
|
||||
///
|
||||
Kind kind_;
|
||||
///
|
||||
QString label_;
|
||||
///
|
||||
FuncRequest func_;
|
||||
///
|
||||
QString submenuname_;
|
||||
///
|
||||
bool optional_;
|
||||
///
|
||||
FuncStatus status_;
|
||||
///
|
||||
boost::shared_ptr<Menu> submenu_;
|
||||
};
|
||||
|
||||
|
||||
///
|
||||
class Menu {
|
||||
public:
|
||||
///
|
||||
typedef std::vector<MenuItem> ItemList;
|
||||
///
|
||||
typedef ItemList::const_iterator const_iterator;
|
||||
|
||||
///
|
||||
explicit Menu(QString const & name = QString()) : name_(name) {}
|
||||
|
||||
/// Add the menu item unconditionally
|
||||
Menu & add(MenuItem const &);
|
||||
/// Checks the associated FuncRequest status before adding the
|
||||
/// menu item.
|
||||
Menu & addWithStatusCheck(MenuItem const &);
|
||||
///
|
||||
Menu & read(Lexer &);
|
||||
///
|
||||
QString const & name() const { return name_; }
|
||||
///
|
||||
bool empty() const { return items_.empty(); }
|
||||
/// Clear the menu content.
|
||||
void clear() { items_.clear(); }
|
||||
///
|
||||
size_t size() const { return items_.size(); }
|
||||
///
|
||||
MenuItem const & operator[](size_t) const;
|
||||
///
|
||||
bool hasFunc(FuncRequest const &) const;
|
||||
///
|
||||
const_iterator begin() const { return items_.begin(); }
|
||||
///
|
||||
const_iterator end() const { return items_.end(); }
|
||||
|
||||
// Check whether the menu shortcuts are unique
|
||||
void checkShortcuts() const;
|
||||
|
||||
// search for func in this menu iteratively, and put menu
|
||||
// names in a stack.
|
||||
bool searchMenu(FuncRequest const & func, std::vector<docstring> & names)
|
||||
const;
|
||||
|
||||
private:
|
||||
friend class Menus;
|
||||
///
|
||||
ItemList items_;
|
||||
///
|
||||
QString name_;
|
||||
};
|
||||
|
||||
|
||||
class Menus
|
||||
{
|
||||
public:
|
||||
///
|
||||
typedef std::vector<Menu> MenuList;
|
||||
///
|
||||
typedef MenuList::const_iterator const_iterator;
|
||||
///
|
||||
typedef MenuList::iterator iterator;
|
||||
|
||||
|
||||
Menus() {}
|
||||
|
||||
///
|
||||
@ -42,6 +228,51 @@ public:
|
||||
|
||||
/// update the state of the menuitems - not needed
|
||||
void updateView();
|
||||
///
|
||||
void read(Lexer &);
|
||||
///
|
||||
void add(Menu const &);
|
||||
///
|
||||
bool hasMenu(QString const &) const;
|
||||
///
|
||||
Menu & getMenu(QString const &);
|
||||
///
|
||||
Menu const & getMenu(QString const &) const;
|
||||
///
|
||||
Menu const & getMenubar() const;
|
||||
///
|
||||
bool empty() const { return menulist_.empty(); }
|
||||
/** This defines a menu whose entries list the FuncRequests
|
||||
that will be removed by expand() in other menus. This is
|
||||
used by the Qt/Mac code
|
||||
*/
|
||||
void specialMenu(Menu const &);
|
||||
///
|
||||
Menu const & specialMenu() { return specialmenu_; }
|
||||
|
||||
/// Expands some special entries of the menu
|
||||
/** The entries with the following kind are expanded to a
|
||||
sequence of Command MenuItems: Lastfiles, Documents,
|
||||
ViewFormats, ExportFormats, UpdateFormats, Branches
|
||||
*/
|
||||
void expand(Menu const & frommenu, Menu & tomenu,
|
||||
Buffer const *) const;
|
||||
///
|
||||
const_iterator begin() const { return menulist_.begin(); }
|
||||
///
|
||||
iterator begin() { return menulist_.begin(); }
|
||||
///
|
||||
const_iterator end() const { return menulist_.end(); }
|
||||
///
|
||||
iterator end() { return menulist_.end(); }
|
||||
|
||||
private:
|
||||
///
|
||||
MenuList menulist_;
|
||||
///
|
||||
Menu menubar_;
|
||||
///
|
||||
Menu specialmenu_;
|
||||
|
||||
private:
|
||||
/// Initialize specific MACOS X menubar
|
||||
|
Loading…
x
Reference in New Issue
Block a user