#include "LyX.h"
+#include "LayoutFile.h"
#include "Buffer.h"
#include "BufferList.h"
#include "CmdDef.h"
#include "Encoding.h"
#include "ErrorList.h"
#include "Format.h"
+#include "FuncStatus.h"
#include "KeyMap.h"
#include "Language.h"
#include "Lexer.h"
#include "LyXAction.h"
#include "LyXFunc.h"
#include "LyXRC.h"
-#include "MenuBackend.h"
#include "ModuleList.h"
#include "Mover.h"
#include "Server.h"
#include "ServerSocket.h"
#include "Session.h"
-#include "TextClassList.h"
#include "ToolbarBackend.h"
#include "frontends/alert.h"
#include "frontends/Application.h"
+#include "support/lassert.h"
#include "support/debug.h"
#include "support/environment.h"
#include "support/ExceptionMessage.h"
bool use_gui = true;
-bool quitting; // flag, that we are quitting the program
-
namespace {
// Filled with the command line arguments "foo" of "-sysdir foo" or
LyX & LyX::ref()
{
- BOOST_ASSERT(singleton_);
+ LASSERT(singleton_, /**/);
return *singleton_;
}
LyX const & LyX::cref()
{
- BOOST_ASSERT(singleton_);
+ LASSERT(singleton_, /**/);
return *singleton_;
}
Session & LyX::session()
{
- BOOST_ASSERT(pimpl_->session_.get());
+ LASSERT(pimpl_->session_.get(), /**/);
return *pimpl_->session_.get();
}
Session const & LyX::session() const
{
- BOOST_ASSERT(pimpl_->session_.get());
+ LASSERT(pimpl_->session_.get(), /**/);
return *pimpl_->session_.get();
}
Server & LyX::server()
{
- BOOST_ASSERT(pimpl_->lyx_server_.get());
+ LASSERT(pimpl_->lyx_server_.get(), /**/);
return *pimpl_->lyx_server_.get();
}
Server const & LyX::server() const
{
- BOOST_ASSERT(pimpl_->lyx_server_.get());
+ LASSERT(pimpl_->lyx_server_.get(), /**/);
return *pimpl_->lyx_server_.get();
}
ServerSocket & LyX::socket()
{
- BOOST_ASSERT(pimpl_->lyx_socket_.get());
+ LASSERT(pimpl_->lyx_socket_.get(), /**/);
return *pimpl_->lyx_socket_.get();
}
ServerSocket const & LyX::socket() const
{
- BOOST_ASSERT(pimpl_->lyx_socket_.get());
+ LASSERT(pimpl_->lyx_socket_.get(), /**/);
return *pimpl_->lyx_socket_.get();
}
frontend::Application & LyX::application()
{
- BOOST_ASSERT(pimpl_->application_.get());
+ LASSERT(pimpl_->application_.get(), /**/);
return *pimpl_->application_.get();
}
frontend::Application const & LyX::application() const
{
- BOOST_ASSERT(pimpl_->application_.get());
+ LASSERT(pimpl_->application_.get(), /**/);
return *pimpl_->application_.get();
}
-KeyMap & LyX::topLevelKeymap()
-{
- return pimpl_->toplevel_keymap_;
-}
-
-
CmdDef & LyX::topLevelCmdDef()
{
return pimpl_->toplevel_cmddef_;
}
-KeyMap const & LyX::topLevelKeymap() const
-{
- return pimpl_->toplevel_keymap_;
-}
-
-
Messages & LyX::getMessages(string const & language)
{
map<string, Messages>::iterator it = pimpl_->messages_.find(language);
pair<map<string, Messages>::iterator, bool> result =
pimpl_->messages_.insert(make_pair(language, Messages(language)));
- BOOST_ASSERT(result.second);
+ LASSERT(result.second, /**/);
return result.first->second;
}
cap::clearCutStack();
cap::clearSelection();
- // Set a flag that we do quitting from the program,
- // so no refreshes are necessary.
- quitting = true;
-
// close buffers first
pimpl_->buffer_list_.closeAll();
void LyX::earlyExit(int status)
{
- BOOST_ASSERT(pimpl_->application_.get());
+ LASSERT(pimpl_->application_.get(), /**/);
// LyX::pimpl_::application_ is not initialised at this
// point so it's safe to just exit after some cleanup.
prepareExit();
// aknowledged.
// if reconfiguration is needed.
- while (textclasslist.empty()) {
+ while (LayoutFileList::get().empty()) {
switch (Alert::prompt(
_("No textclass is found"),
_("LyX cannot continue because no textclass is found. "
// This must happen after package initialization and after lyxrc is
// read, therefore it can't be done by a static object.
ConverterCache::init();
-
+
+ // init the global menubar on Mac. This must be done after the session
+ // was recovered to know the "last files".
+ if (use_gui)
+ theApp()->initGlobalMenu();
+
return true;
}
}
-void LyX::deadKeyBindings(KeyMap * kbmap)
-{
- // bindKeyings for transparent handling of deadkeys
- // The keysyms are gotten from XFree86 X11R6
- kbmap->bind("~C-~S-~M-dead_acute", FuncRequest(LFUN_ACCENT_ACUTE));
- kbmap->bind("~C-~S-~M-dead_breve", FuncRequest(LFUN_ACCENT_BREVE));
- kbmap->bind("~C-~S-~M-dead_caron", FuncRequest(LFUN_ACCENT_CARON));
- kbmap->bind("~C-~S-~M-dead_cedilla", FuncRequest(LFUN_ACCENT_CEDILLA));
- kbmap->bind("~C-~S-~M-dead_abovering", FuncRequest(LFUN_ACCENT_CIRCLE));
- kbmap->bind("~C-~S-~M-dead_circumflex", FuncRequest(LFUN_ACCENT_CIRCUMFLEX));
- kbmap->bind("~C-~S-~M-dead_abovedot", FuncRequest(LFUN_ACCENT_DOT));
- kbmap->bind("~C-~S-~M-dead_grave", FuncRequest(LFUN_ACCENT_GRAVE));
- kbmap->bind("~C-~S-~M-dead_doubleacute", FuncRequest(LFUN_ACCENT_HUNGARIAN_UMLAUT));
- kbmap->bind("~C-~S-~M-dead_macron", FuncRequest(LFUN_ACCENT_MACRON));
- // nothing with this name
- // kbmap->bind("~C-~S-~M-dead_special_caron", LFUN_ACCENT_SPECIAL_CARON);
- kbmap->bind("~C-~S-~M-dead_tilde", FuncRequest(LFUN_ACCENT_TILDE));
- kbmap->bind("~C-~S-~M-dead_diaeresis", FuncRequest(LFUN_ACCENT_UMLAUT));
- // nothing with this name either...
- //kbmap->bind("~C-~S-~M-dead_underbar", FuncRequest(LFUN_ACCENT_UNDERBAR));
- kbmap->bind("~C-~S-~M-dead_belowdot", FuncRequest(LFUN_ACCENT_UNDERDOT));
- kbmap->bind("~C-~S-~M-dead_tie", FuncRequest(LFUN_ACCENT_TIE));
- kbmap->bind("~C-~S-~M-dead_ogonek",FuncRequest(LFUN_ACCENT_OGONEK));
-}
-
-
// return true if file does not exist or is older than configure.py.
static bool needsUpdate(string const & file)
{
// Read the ui file `name'
bool LyX::readUIFile(string const & name, bool include)
{
- enum Uitags {
+ enum {
ui_menuset = 1,
ui_toolbars,
ui_toolbarset,
ui_last
};
- struct keyword_item uitags[ui_last - 1] = {
+ LexerKeyword uitags[] = {
{ "include", ui_include },
{ "menuset", ui_menuset },
{ "toolbars", ui_toolbars },
uifiles.push_back(name);
LYXERR(Debug::INIT, "Found " << name << " in " << ui_path);
- Lexer lex(uitags, ui_last - 1);
+ Lexer lex(uitags);
lex.setFile(ui_path);
if (!lex.isOK()) {
lyxerr << "Unable to set LyXLeX for ui file: " << ui_path
break;
}
case ui_menuset:
- theApp()->menuBackend().read(lex);
+ theApp()->readMenus(lex);
break;
case ui_toolbarset:
Server & theServer()
{
// FIXME: this should not be use_gui dependent
- BOOST_ASSERT(use_gui);
+ LASSERT(use_gui, /**/);
return LyX::ref().server();
}
ServerSocket & theServerSocket()
{
// FIXME: this should not be use_gui dependent
- BOOST_ASSERT(use_gui);
+ LASSERT(use_gui, /**/);
return LyX::ref().socket();
}
KeyMap & theTopLevelKeymap()
{
- return LyX::ref().topLevelKeymap();
+ return LyX::ref().pimpl_->toplevel_keymap_;
}