#include <sstream>
using lyx::docstring;
+using lyx::odocstream;
+using lyx::odocstringstream;
using lyx::cap::grabAndEraseSelection;
using lyx::support::bformat;
using lyx::support::subst;
for (row_type row = 0; row < nrows(); ++row) {
int const yy = y + rowinfo_[row].offset_;
FontSetChanger dummy(pi.base, "mathrm");
- string const nl = nicelabel(row);
- docstring const dnl(nl.begin(), nl.end());
- pi.draw(xx, yy, dnl);
+ docstring const nl = nicelabel(row);
+ pi.draw(xx, yy, nl);
}
}
setPosCache(pi, x, y);
if (display()) {
InsetMathGrid::metricsT(mi, dim);
} else {
- ostringstream os;
+ odocstringstream os;
WriteStream wi(os, false, true);
write(wi);
dim.wid = os.str().size();
if (display()) {
InsetMathGrid::drawT(pain, x, y);
} else {
- ostringstream os;
+ odocstringstream os;
WriteStream wi(os, false, true);
write(wi);
pain.draw(x, y, os.str().c_str());
namespace {
-string const latex_string(InsetMathHull const & inset)
+docstring const latex_string(InsetMathHull const & inset)
{
- ostringstream ls;
+ odocstringstream ls;
WriteStream wi(ls, false, false);
inset.write(wi);
return ls.str();
void InsetMathHull::addPreview(lyx::graphics::PreviewLoader & ploader) const
{
if (RenderPreview::status() == LyXRC::PREVIEW_ON) {
- string const snippet = latex_string(*this);
+ docstring const snippet = latex_string(*this);
preview_->addPreview(snippet, ploader);
}
}
{
if (RenderPreview::status() == LyXRC::PREVIEW_ON) {
Buffer const & buffer = cur.buffer();
- string const snippet = latex_string(*this);
+ docstring const snippet = latex_string(*this);
preview_->addPreview(snippet, buffer);
preview_->startLoading(buffer);
}
}
-void InsetMathHull::getLabelList(Buffer const &, vector<string> & labels) const
+void InsetMathHull::getLabelList(Buffer const &, vector<docstring> & labels) const
{
for (row_type row = 0; row < nrows(); ++row)
if (!label_[row].empty() && nonum_[row] != 1)
- labels.push_back(label_[row]);
+ // FIXME UNICODE
+ labels.push_back(lyx::from_utf8(label_[row]));
}
}
-string InsetMathHull::nicelabel(row_type row) const
+docstring InsetMathHull::nicelabel(row_type row) const
{
if (nonum_[row])
- return string();
+ return docstring();
if (label_[row].empty())
- return string("(#)");
- return '(' + label_[row] + ')';
+ return lyx::from_ascii("(#)");
+ // FIXME UNICODE
+ return lyx::from_utf8('(' + label_[row] + ')');
}
void InsetMathHull::doExtern(LCursor & cur, FuncRequest & func)
{
- string lang;
- string extra;
- istringstream iss(lyx::to_utf8(func.argument()));
- iss >> lang >> extra;
+ docstring dlang;
+ docstring extra;
+ lyx::idocstringstream iss(func.argument());
+ iss >> dlang >> extra;
if (extra.empty())
- extra = "noextra";
+ extra = lyx::from_ascii("noextra");
+ string const lang = lyx::to_ascii(dlang);
#ifdef WITH_WARNINGS
#warning temporarily disabled
size_type pos = cur.cell().find_last(eq);
MathArray ar;
if (cur.inMathed() && cur.selection()) {
- asArray(grabAndEraseSelection(cur), ar);
+ // FIXME UNICODE
+ asArray(lyx::from_utf8(grabAndEraseSelection(cur)), ar);
} else if (pos == cur.cell().size()) {
ar = cur.cell();
lyxerr << "use whole cell: " << ar << endl;
case LFUN_LABEL_INSERT: {
recordUndoInset(cur);
row_type r = (type_ == hullMultline) ? nrows() - 1 : cur.row();
- string old_label = label(r);
- string const default_label =
- (lyxrc.label_init_length >= 0) ? "eq:" : "";
+ docstring old_label = lyx::from_utf8(label(r));
+ docstring const default_label = lyx::from_ascii(
+ (lyxrc.label_init_length >= 0) ? "eq:" : "");
if (old_label.empty())
old_label = default_label;
- string const contents = cmd.argument().empty() ?
- old_label : lyx::to_utf8(cmd.argument());
- InsetCommandParams p("label", contents);
+ InsetCommandParams p("label");
+ p["name"] = cmd.argument().empty() ? old_label : cmd.argument();
string const data = InsetCommandMailer::params2string("label", p);
if (cmd.argument().empty())
//lyxerr << "arg: " << lyx::to_utf8(cmd.argument()) << endl;
string const name = cmd.getArg(0);
if (name == "label") {
- InsetCommandParams p;
+ InsetCommandParams p("label");
InsetCommandMailer::string2params(name, lyx::to_utf8(cmd.argument()), p);
string str = p.getContents();
recordUndoInset(cur);
void InsetMathHull::write(Buffer const &, std::ostream & os) const
{
- WriteStream wi(os, false, false);
- os << "Formula ";
+ odocstringstream oss;
+ WriteStream wi(oss, false, false);
+ oss << "Formula ";
write(wi);
+ os << lyx::to_utf8(oss.str());
}
}
-int InsetMathHull::plaintext(Buffer const &, lyx::odocstream & os,
+int InsetMathHull::plaintext(Buffer const &, odocstream & os,
OutputParams const &) const
{
if (0 && display()) {
//metrics();
return tpain.textheight();
} else {
- std::ostringstream oss;
- WriteStream wi(oss, false, true);
+ WriteStream wi(os, false, true);
wi << cell(0);
- // FIXME UNICODE
- os << lyx::from_utf8(oss.str());
return wi.line();
}
}
int InsetMathHull::docbook(Buffer const & buf, ostream & os,
OutputParams const & runparams) const
{
- MathMLStream ms(os);
+ odocstringstream oss;
+ MathMLStream ms(oss);
int res = 0;
string name;
if (getType() == hullSimple)
bname += " id=\"" + sgml::cleanID(buf, runparams, label(0)) + "\"";
ms << MTag(bname.c_str());
- ostringstream ls;
+ odocstringstream ls;
if (runparams.flavor == OutputParams::XML) {
ms << MTag("alt role=\"tex\" ");
// Workaround for db2latex: db2latex always includes equations with
// so we strip LyX' math environment
WriteStream wi(ls, false, false);
InsetMathGrid::write(wi);
- ms << subst(subst(ls.str(), "&", "&"), "<", "<");
+ ms << subst(subst(lyx::to_utf8(ls.str()), "&", "&"), "<", "<");
ms << ETag("alt");
ms << MTag("math");
InsetMathGrid::mathmlize(ms);
} else {
ms << MTag("alt role=\"tex\"");
res = latex(buf, ls, runparams);
- ms << subst(subst(ls.str(), "&", "&"), "<", "<");
+ ms << subst(subst(lyx::to_utf8(ls.str()), "&", "&"), "<", "<");
ms << ETag("alt");
}
ms << "\">";
ms << ETag(name.c_str());
+ os << lyx::to_utf8(oss.str());
return ms.line() + res;
}
-int InsetMathHull::textString(Buffer const & buf, lyx::odocstream & os,
+int InsetMathHull::textString(Buffer const & buf, odocstream & os,
OutputParams const & op) const
{
return plaintext(buf, os, op);