#include "gettext.h"
#include "Language.h"
#include "Layout.h"
-#include "Color.h"
#include "LyXAction.h"
#include "Lexer.h"
#include "TextClass.h"
void InsetERT::init()
{
setButtonLabel();
- setLabelFont(layout_.labelfont);
// FIXME: what to do with those?
//text_.current_font.setLanguage(latex_language);
//text_.real_current_font.setLanguage(latex_language);
InsetERT::InsetERT(BufferParams const & bp, CollapseStatus status)
: InsetCollapsable(bp, status)
{
- setLayout(bp);
init();
}
Language const *, string const & contents, CollapseStatus status)
: InsetCollapsable(bp, status)
{
- Font font(Font::ALL_INHERIT, latex_language);
+ Font font(FONT_INHERIT, latex_language);
paragraphs().begin()->insert(0, contents, font);
// the init has to be after the initialization of the paragraph
}
-void InsetERT::read(Buffer const & buf, Lexer & lex)
-{
- InsetCollapsable::read(buf, lex);
-
- // Force default font
- // This avoids paragraphs in buffer language that would have a
- // foreign language after a document langauge change, and it ensures
- // that all new text in ERT gets the "latex" language, since new text
- // inherits the language from the last position of the existing text.
- // As a side effect this makes us also robust against bugs in LyX
- // that might lead to font changes in ERT in .lyx files.
- Font font(Font::ALL_INHERIT, latex_language);
- ParagraphList::iterator par = paragraphs().begin();
- ParagraphList::iterator const end = paragraphs().end();
- while (par != end) {
- pos_type siz = par->size();
- for (pos_type i = 0; i <= siz; ++i) {
- par->setFont(i, font);
- }
- ++par;
- }
-}
-
-
docstring const InsetERT::editMessage() const
{
return _("Opened ERT Inset");
setStatus(cur, st);
break;
}
- case LFUN_PASTE:
- case LFUN_CLIPBOARD_PASTE:
- case LFUN_PRIMARY_SELECTION_PASTE: {
- InsetCollapsable::doDispatch(cur, cmd);
-
- // Since we can only store plain text, we must reset all
- // attributes.
- // FIXME: Change only the pasted paragraphs
-
- Font font = layout->font;
- // ERT contents has always latex_language
- font.setLanguage(latex_language);
- ParagraphList::iterator const end = paragraphs().end();
- for (ParagraphList::iterator par = paragraphs().begin();
- par != end; ++par) {
- // in case par had a manual label
- par->setBeginOfBody();
- pos_type const siz = par->size();
- for (pos_type i = 0; i < siz; ++i) {
- par->setFont(i, font);
- }
- par->params().clear();
- }
- break;
- }
default:
// Force any new text to latex_language
// FIXME: This should only be necessary in init(), but
// start of an existing paragraph get the buffer language
// and not latex_language, so we take this brute force
// approach.
- cur.current_font = layout->font;
- cur.real_current_font = layout->font;
- cur.current_font.setLanguage(latex_language);
- cur.real_current_font.setLanguage(latex_language);
+ cur.current_font.fontInfo() = layout->font;
+ cur.real_current_font.fontInfo() = layout->font;
InsetCollapsable::doDispatch(cur, cmd);
break;
}
}
-void InsetERT::metrics(MetricsInfo & mi, Dimension & dim) const
-{
- Font tmpfont = mi.base.font;
- getDrawFont(mi.base.font);
- mi.base.font.realize(tmpfont);
- InsetCollapsable::metrics(mi, dim);
- mi.base.font = tmpfont;
-}
-
-
void InsetERT::draw(PainterInfo & pi, int x, int y) const
{
- Font tmpfont = pi.base.font;
- getDrawFont(pi.base.font);
- pi.base.font.realize(tmpfont);
const_cast<InsetERT &>(*this).setButtonLabel();
InsetCollapsable::draw(pi, x, y);
- pi.base.font = tmpfont;
}
}
-void InsetERT::getDrawFont(Font & font) const
-{
- font = Font(Font::ALL_INHERIT, latex_language);
- font.realize(layout_.font);
-}
-
-
string const InsetERTMailer::name_("ert");
InsetERTMailer::InsetERTMailer(InsetERT & inset)