#include "Lexer.h"
#include "LyXAction.h"
#include "MetricsInfo.h"
-#include "OutputParams.h"
+#include "output_docbook.h"
#include "output_xhtml.h"
#include "TextClass.h"
#include "TextMetrics.h"
return translator;
}
-} // anon
+} // namespace
InsetScriptParams::InsetScriptParams()
}
-Inset::DisplayType InsetScript::display() const
-{
- return Inline;
-}
-
-
void InsetScript::metrics(MetricsInfo & mi, Dimension & dim) const
{
int const shift = params_.shift(mi.base.font);
- ScriptChanger dummy(mi.base);
+ // Remember the value of the outser font, so that it can be used in cursorPos.
+ outer_font_ = mi.base.font;
+ Changer dummy = mi.base.changeScript();
InsetText::metrics(mi, dim);
dim.asc -= shift;
dim.des += shift;
void InsetScript::draw(PainterInfo & pi, int x, int y) const
{
int const shift = params_.shift(pi.base.font);
- ScriptChanger dummy(pi.base);
+ Changer dummy = pi.base.changeScript();
InsetText::draw(pi, x, y + shift);
}
void InsetScript::cursorPos(BufferView const & bv,
CursorSlice const & sl, bool boundary, int & x, int & y) const
{
- Font const font = bv.textMetrics(&text()).displayFont(sl.pit(), sl.pos());
- int const shift = params_.shift(font.fontInfo());
+ int const shift = params_.shift(outer_font_);
InsetText::cursorPos(bv, sl, boundary, x, y);
y += shift;
}
{
switch (cmd.action()) {
case LFUN_INSET_MODIFY:
- cur.recordUndoInset(ATOMIC_UNDO, this);
+ cur.recordUndoInset(this);
string2params(to_utf8(cmd.argument()), params_);
break;
default:
case BOX_CODE:
case BRANCH_CODE:
case CAPTION_CODE:
- case COLLAPSABLE_CODE:
+ case COLLAPSIBLE_CODE:
case FLOAT_CODE:
case FLOAT_LIST_CODE:
case FOOT_CODE:
FuncStatus & flag) const
{
switch (cmd.action()) {
- case LFUN_PARAGRAPH_BREAK:
- case LFUN_LAYOUT:
- case LFUN_LAYOUT_PARAGRAPH:
case LFUN_MATH_DISPLAY:
case LFUN_BOX_INSERT:
case LFUN_BRANCH_INSERT:
case LFUN_PREVIEW_INSERT:
case LFUN_QUOTE_INSERT:
case LFUN_TABULAR_INSERT:
+ case LFUN_TABULAR_STYLE_INSERT:
case LFUN_WRAP_INSERT:
flag.setEnabled(false);
return true;
case LFUN_INSET_MODIFY:
flag.setEnabled(true);
return true;
- case LFUN_COMMAND_SEQUENCE: {
+ case LFUN_COMMAND_SEQUENCE: {
// argument contains ';'-terminated commands
string arg = to_utf8(cmd.argument());
// prevent insertion of display math formulas like AMS align
InsetText::plaintext(ods, rp, 200);
docstring content_tip = ods.str();
// shorten it if necessary
- if (content_tip.size() >= 200)
- content_tip = content_tip.substr(0, 197) + "...";
+ support::truncateWithEllipsis(content_tip, 200);
docstring res = scripttranslator_loc().find(params_.type);
if (!content_tip.empty())
res += from_ascii(": ") + content_tip;
}
-int InsetScript::docbook(odocstream & os, OutputParams const & runparams) const
+void InsetScript::docbook(XMLStream & xs, OutputParams const & runparams) const
{
- string cmdname;
+ docstring cmdname;
switch (params_.type) {
case InsetScriptParams::Subscript:
- cmdname = "subscript";
+ cmdname = from_ascii("subscript");
break;
case InsetScriptParams::Superscript:
- cmdname = "superscript";
+ cmdname = from_ascii("superscript");
break;
}
- os << '<' + cmdname + '>';
- int const i = InsetText::docbook(os, runparams);
- os << "</" + cmdname + '>';
- return i;
+ xs << xml::StartTag(cmdname);
+ InsetText::docbook(xs, runparams);
+ xs << xml::EndTag(cmdname);
}