+ return pimpl_->lyxfunc_;
+}
+
+
+LyXServer & LyX::server()
+{
+ BOOST_ASSERT(pimpl_->lyx_server_.get());
+ return *pimpl_->lyx_server_.get();
+}
+
+
+LyXServer const & LyX::server() const
+{
+ BOOST_ASSERT(pimpl_->lyx_server_.get());
+ return *pimpl_->lyx_server_.get();
+}
+
+
+LyXServerSocket & LyX::socket()
+{
+ BOOST_ASSERT(pimpl_->lyx_socket_.get());
+ return *pimpl_->lyx_socket_.get();
+}
+
+
+LyXServerSocket const & LyX::socket() const
+{
+ BOOST_ASSERT(pimpl_->lyx_socket_.get());
+ return *pimpl_->lyx_socket_.get();
+}
+
+
+frontend::Application & LyX::application()
+{
+ BOOST_ASSERT(pimpl_->application_.get());
+ return *pimpl_->application_.get();
+}
+
+
+frontend::Application const & LyX::application() const
+{
+ BOOST_ASSERT(pimpl_->application_.get());
+ return *pimpl_->application_.get();
+}
+
+
+kb_keymap & LyX::topLevelKeymap()
+{
+ BOOST_ASSERT(pimpl_->toplevel_keymap_.get());
+ return *pimpl_->toplevel_keymap_.get();
+}
+
+
+Converters & LyX::converters()
+{
+ return pimpl_->converters_;
+}
+
+
+Converters & LyX::systemConverters()
+{
+ return pimpl_->system_converters_;
+}
+
+
+IconvProcessor & LyX::iconvProcessor()
+{
+ return pimpl_->iconv;
+}
+
+
+kb_keymap const & LyX::topLevelKeymap() const
+{
+ BOOST_ASSERT(pimpl_->toplevel_keymap_.get());
+ return *pimpl_->toplevel_keymap_.get();
+}
+
+
+Messages & LyX::getMessages(std::string const & language)
+{
+ map<string, Messages>::iterator it = pimpl_->messages_.find(language);
+
+ if (it != pimpl_->messages_.end())
+ return it->second;
+
+ std::pair<map<string, Messages>::iterator, bool> result =
+ pimpl_->messages_.insert(std::make_pair(language, Messages(language)));
+
+ BOOST_ASSERT(result.second);
+ return result.first->second;
+}
+
+
+Messages & LyX::getGuiMessages()
+{
+ return pimpl_->messages_["GUI"];
+}
+
+
+void LyX::setGuiLanguage(std::string const & language)
+{
+ pimpl_->messages_["GUI"] = Messages(language);