#include "DispatchResult.h"
#include "FuncRequest.h"
#include "FuncStatus.h"
-#include "gettext.h"
+#include "support/gettext.h"
#include "InsetList.h"
#include "Language.h"
#include "MetricsInfo.h"
+#include "TextClass.h"
+#include "support/docstream.h"
#include "support/lstrings.h"
#include <sstream>
-namespace lyx {
+using namespace std;
+using namespace lyx::support;
-using support::token;
-using support::contains;
-using support::subst;
+namespace lyx {
-using std::istringstream;
-using std::ostream;
-using std::ostringstream;
-using std::string;
char const lstinline_delimiters[] =
"!*()-=+|;:'\"`,<.>/?QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
-void InsetListings::init()
-{
- setButtonLabel();
- Font font(Font::ALL_SANE);
- font.decSize();
- font.decSize();
- font.setColor(Color_none);
- setLabelFont(font);
- // FIXME: what to do with those?
- //text_.current_font.setLanguage(latex_language);
- //text_.real_current_font.setLanguage(latex_language);
-}
-
-
-InsetListings::InsetListings(BufferParams const & bp, InsetListingsParams const & par)
- : InsetERT(bp, par.status())
-{
- init();
-}
+InsetListings::InsetListings(Buffer const & buf, InsetListingsParams const & par)
+ : InsetCollapsable(buf, par.status())
+{}
InsetListings::InsetListings(InsetListings const & in)
- : InsetERT(in), params_(in.params_)
-{
- init();
-}
+ : InsetCollapsable(in), params_(in.params_)
+{}
Inset * InsetListings::clone() const
}
-void InsetListings::updateLabels(Buffer const & buf, ParIterator const & it)
+void InsetListings::updateLabels(ParIterator const & it)
{
- Counters & cnts = buf.params().getTextClass().counters();
+ Counters & cnts = buffer().params().documentClass().counters();
string const saveflt = cnts.current_float();
// Tell to captions what the current float is
cnts.current_float("listing");
- InsetCollapsable::updateLabels(buf, it);
+ InsetCollapsable::updateLabels(it);
//reset afterwards
cnts.current_float(saveflt);
}
-void InsetListings::write(Buffer const & buf, ostream & os) const
+void InsetListings::write(ostream & os) const
{
os << "listings" << "\n";
InsetListingsParams const & par = params();
os << "inline true\n";
else
os << "inline false\n";
- InsetCollapsable::write(buf, os);
+ InsetCollapsable::write(os);
}
-void InsetListings::read(Buffer const & buf, Lexer & lex)
+void InsetListings::read(Lexer & lex)
{
while (lex.isOK()) {
lex.next();
break;
}
}
- InsetERT::read(buf, lex);
+ InsetCollapsable::read(lex);
}
-docstring const InsetListings::editMessage() const
+docstring InsetListings::editMessage() const
{
return _("Opened Listing Inset");
}
-int InsetListings::latex(Buffer const & buf, odocstream & os,
- OutputParams const & runparams) const
+int InsetListings::latex(odocstream & os, OutputParams const & runparams) const
{
string param_string = params().params();
// NOTE: I use {} to quote text, which is an experimental feature
// but real_current_font moved to cursor.
//rp.local_font = &text_.real_current_font;
rp.moving_arg = true;
- docstring const caption = getCaption(buf, rp);
+ docstring const caption = getCaption(rp);
runparams.encoding = rp.encoding;
if (param_string.empty() && caption.empty())
os << "\n\\begingroup\n\\inputencoding{latin1}\n\\begin{lstlisting}\n";
os << from_utf8(param_string) << "]\n";
}
lines += 4;
- os << code
- << "\n\\end{lstlisting}\n\\endgroup\n";
+ os << code << "\n\\end{lstlisting}\n\\endgroup\n";
lines += 3;
}
InsetListingsMailer(*this).showDialog(&cur.bv());
break;
}
- InsetERT::doDispatch(cur, cmd);
+ InsetCollapsable::doDispatch(cur, cmd);
break;
}
default:
- InsetERT::doDispatch(cur, cmd);
+ InsetCollapsable::doDispatch(cur, cmd);
break;
}
}
status.enabled(!params().isInline());
return true;
default:
- return InsetERT::getStatus(cur, cmd, status);
+ return InsetCollapsable::getStatus(cur, cmd, status);
}
}
void InsetListings::setButtonLabel()
{
// FIXME UNICODE
- setLabel(isOpen() ? _("Listing") : getNewLabel(_("Listing")));
-}
-
-
-void InsetListings::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 InsetListings::draw(PainterInfo & pi, int x, int y) const
-{
- Font tmpfont = pi.base.font;
- getDrawFont(pi.base.font);
- pi.base.font.realize(tmpfont);
- InsetCollapsable::draw(pi, x, y);
- pi.base.font = tmpfont;
+ if (decoration() == InsetLayout::Classic)
+ setLabel(isOpen() ? _("Listing") : getNewLabel(_("Listing")));
+ else
+ setLabel(getNewLabel(_("Listing")));
}
void InsetListings::validate(LaTeXFeatures & features) const
{
features.require("listings");
- InsetERT::validate(features);
+ InsetCollapsable::validate(features);
}
}
-void InsetListings::getDrawFont(Font & font) const
-{
- font = Font(Font::ALL_INHERIT, latex_language);
- font.setFamily(Font::TYPEWRITER_FAMILY);
- // FIXME: define Color_listing?
- font.setColor(Color_foreground);
-}
-
-
-docstring InsetListings::getCaption(Buffer const & buf,
- OutputParams const & runparams) const
+docstring InsetListings::getCaption(OutputParams const & runparams) const
{
if (paragraphs().empty())
return docstring();
odocstringstream ods;
InsetCaption * ins =
static_cast<InsetCaption *>(it->inset);
- ins->getOptArg(buf, ods, runparams);
- ins->getArgument(buf, ods, runparams);
+ ins->getOptArg(ods, runparams);
+ ins->getArgument(ods, runparams);
return ods.str();
}
}