X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathCases.cpp;h=d6f7133e2a1c33cbb0bda78ebd55ac1ddb36125c;hb=154319d0635da7da3523519e28702e4a0ff85bba;hp=5e1ee21fdb6ce446af87adab85bce699dd9a8d1c;hpb=ff4460603e3888948b46f0ab5bfa69a862d538ad;p=lyx.git diff --git a/src/mathed/InsetMathCases.cpp b/src/mathed/InsetMathCases.cpp index 5e1ee21fdb..d6f7133e2a 100644 --- a/src/mathed/InsetMathCases.cpp +++ b/src/mathed/InsetMathCases.cpp @@ -70,47 +70,60 @@ void InsetMathCases::draw(PainterInfo & pi, int x, int y) const void InsetMathCases::doDispatch(Cursor & cur, FuncRequest & cmd) { //lyxerr << "*** InsetMathCases: request: " << cmd << endl; - switch (cmd.action) { - case LFUN_TABULAR_FEATURE: { - docstring const & s = cmd.argument(); + switch (cmd.action()) { + case LFUN_INSET_MODIFY: { + istringstream is(to_utf8(cmd.argument())); + string s; + is >> s; + if (s != "tabular") + break; + is >> s; // vertical lines and adding/deleting columns is not allowed for \cases if (s == "append-column" || s == "delete-column" - || s == "add-vline-left" || s == "add-vline-right") { + || s == "add-vline-left" || s == "add-vline-right") { cur.undispatched(); break; } cur.recordUndo(); } default: - InsetMathGrid::doDispatch(cur, cmd); + break; } + InsetMathGrid::doDispatch(cur, cmd); } bool InsetMathCases::getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus & flag) const { - switch (cmd.action) { - case LFUN_TABULAR_FEATURE: { - docstring const & s = cmd.argument(); + switch (cmd.action()) { + case LFUN_INSET_MODIFY: { + istringstream is(to_utf8(cmd.argument())); + string s; + is >> s; + if (s != "tabular") + break; + is >> s; if (s == "add-vline-left" || s == "add-vline-right") { flag.setEnabled(false); flag.message(bformat( from_utf8(N_("No vertical grid lines in 'cases': feature %1$s")), - s)); + from_utf8(s))); return true; } if (s == "append-column" || s == "delete-column") { flag.setEnabled(false); flag.message(bformat( from_utf8(N_("Changing number of columns not allowed in " - "'cases': feature %1$s")), s)); + "'cases': feature %1$s")), from_utf8(s))); return true; } + break; } default: - return InsetMathGrid::getStatus(cur, cmd, flag); + break; } + return InsetMathGrid::getStatus(cur, cmd, flag); } @@ -143,6 +156,21 @@ void InsetMathCases::maple(MapleStream & os) const } +void InsetMathCases::mathmlize(MathStream & ms) const +{ + ms << "{"; + InsetMathGrid::mathmlize(ms); +} + + +// FIXME XHTML +// We need a brace here, somehow. +void InsetMathCases::htmlize(HtmlStream & ms) const +{ + InsetMathGrid::htmlize(ms, "class='cases'"); +} + + void InsetMathCases::infoize(odocstream & os) const { os << "Cases "; @@ -153,6 +181,12 @@ void InsetMathCases::validate(LaTeXFeatures & features) const { features.require("amsmath"); InsetMathGrid::validate(features); + if (features.runparams().math_flavor == OutputParams::MathAsHTML) + // CSS based on eLyXer's + features.addCSSSnippet( + "table.cases{display: inline-block; text-align: center;" + "border-left: thin solid black; vertical-align: middle; padding-left: 0.5ex;}\n" + "table.cases td {text-align: left;}"); }