#include "InsetNote.h"
#include "Buffer.h"
+#include "BufferParams.h"
#include "BufferView.h"
+#include "BufferParams.h"
+#include "Counters.h"
#include "Cursor.h"
-#include "debug.h"
+#include "support/debug.h"
#include "DispatchResult.h"
#include "Exporter.h"
#include "FuncRequest.h"
#include "FuncStatus.h"
-#include "gettext.h"
+#include "support/gettext.h"
#include "LaTeXFeatures.h"
-#include "Color.h"
#include "Lexer.h"
#include "MetricsInfo.h"
#include "OutputParams.h"
-#include "Paragraph.h"
+#include "TextClass.h"
-#include "support/lyxalgo.h"
+#include "support/docstream.h"
#include "support/Translator.h"
+#include <algorithm>
#include <sstream>
+using namespace std;
namespace lyx {
-using std::string;
-using std::auto_ptr;
-using std::istringstream;
-using std::ostream;
-using std::ostringstream;
-
-
namespace {
-typedef Translator<std::string, InsetNoteParams::Type> NoteTranslator;
+typedef Translator<string, InsetNoteParams::Type> NoteTranslator;
typedef Translator<docstring, InsetNoteParams::Type> NoteTranslatorLoc;
NoteTranslator const init_notetranslator()
NoteTranslator translator("Note", InsetNoteParams::Note);
translator.addPair("Comment", InsetNoteParams::Comment);
translator.addPair("Greyedout", InsetNoteParams::Greyedout);
- translator.addPair("Framed", InsetNoteParams::Framed);
- translator.addPair("Shaded", InsetNoteParams::Shaded);
return translator;
}
NoteTranslatorLoc const init_notetranslator_loc()
{
- NoteTranslatorLoc translator(_("Note"), InsetNoteParams::Note);
+ NoteTranslatorLoc translator(_("Note[[InsetNote]]"), InsetNoteParams::Note);
translator.addPair(_("Comment"), InsetNoteParams::Comment);
translator.addPair(_("Greyed out"), InsetNoteParams::Greyedout);
- translator.addPair(_("Framed"), InsetNoteParams::Framed);
- translator.addPair(_("Shaded"), InsetNoteParams::Shaded);
return translator;
}
}
-void InsetNote::init()
-{
- setButtonLabel();
-}
-
-
InsetNote::InsetNote(BufferParams const & bp, string const & label)
: InsetCollapsable(bp)
{
params_.type = notetranslator().find(label);
- init();
}
InsetNote::InsetNote(InsetNote const & in)
: InsetCollapsable(in), params_(in.params_)
-{
- init();
-}
+{}
InsetNote::~InsetNote()
}
-auto_ptr<Inset> InsetNote::doClone() const
+Inset * InsetNote::clone() const
{
- return auto_ptr<Inset>(new InsetNote(*this));
+ return new InsetNote(*this);
}
}
+docstring InsetNote::name() const
+{
+ return from_ascii(string("Note") + string(":") + string(notetranslator().find(params_.type)));
+}
+
+
Inset::DisplayType InsetNote::display() const
{
- switch (params_.type) {
- case InsetNoteParams::Framed:
- case InsetNoteParams::Shaded:
- return AlignLeft;
- default:
- return Inline;
- }
+ return Inline;
}
{
params_.read(lex);
InsetCollapsable::read(buf, lex);
- setButtonLabel();
}
{
docstring const label = notetranslator_loc().find(params_.type);
setLabel(label);
-
- Font font(Font::ALL_SANE);
- font.decSize();
- font.decSize();
-
- switch (params_.type) {
- case InsetNoteParams::Note:
- font.setColor(Color::note);
- setBackgroundColor(Color::notebg);
- break;
- case InsetNoteParams::Comment:
- font.setColor(Color::comment);
- setBackgroundColor(Color::commentbg);
- break;
- case InsetNoteParams::Greyedout:
- font.setColor(Color::greyedout);
- setBackgroundColor(Color::greyedoutbg);
- break;
- case InsetNoteParams::Framed:
- font.setColor(Color::greyedout);
- setBackgroundColor(Color::greyedoutbg);
- break;
- case InsetNoteParams::Shaded:
- font.setColor(Color::greyedout);
- setBackgroundColor(Color::shadedbg);
- break;
- }
- setLabelFont(font);
}
case LFUN_INSET_MODIFY:
InsetNoteMailer::string2params(to_utf8(cmd.argument()), params_);
- setButtonLabel();
+ // get a bp from cur:
+ setLayout(cur.buffer().params());
break;
case LFUN_INSET_DIALOG_UPDATE:
InsetNoteMailer(*this).updateDialog(&cur.bv());
break;
-
- case LFUN_MOUSE_RELEASE:
- if (cmd.button() == mouse_button::button3 && hitButton(cmd))
- InsetNoteMailer(*this).showDialog(&cur.bv());
- else
- InsetCollapsable::doDispatch(cur, cmd);
- break;
-
default:
InsetCollapsable::doDispatch(cur, cmd);
break;
}
}
+void InsetNote::updateLabels(Buffer const & buf, ParIterator const & it)
+{
+ TextClass const & tclass = buf.params().getTextClass();
+ Counters savecnt = tclass.counters();
+ InsetCollapsable::updateLabels(buf, it);
+ tclass.counters() = savecnt;
+}
+
+
+bool InsetNote::isMacroScope(Buffer const & buf) const
+{
+ // LyX note has no latex output
+ if (params_.type == InsetNoteParams::Note)
+ return true;
+
+ return InsetCollapsable::isMacroScope(buf);
+}
+
int InsetNote::latex(Buffer const & buf, odocstream & os,
OutputParams const & runparams_in) const
return 0;
OutputParams runparams(runparams_in);
- string type;
if (params_.type == InsetNoteParams::Comment) {
- type = "comment";
runparams.inComment = true;
// Ignore files that are exported inside a comment
runparams.exportdata.reset(new ExportData);
- } else if (params_.type == InsetNoteParams::Greyedout)
- type = "lyxgreyedout";
- else if (params_.type == InsetNoteParams::Framed)
- type = "framed";
- else if (params_.type == InsetNoteParams::Shaded)
- type = "shaded";
+ }
odocstringstream ss;
- ss << "%\n\\begin{" << from_ascii(type) << "}\n";
- InsetText::latex(buf, ss, runparams);
- ss << "\n\\end{" << from_ascii(type) << "}\n";
+ InsetCollapsable::latex(buf, ss, runparams);
// the space after the comment in 'a[comment] b' will be eaten by the
// comment environment since the space before b is ignored with the
// following latex output:
os << str;
runparams_in.encoding = runparams.encoding;
// Return how many newlines we issued.
- return int(lyx::count(str.begin(), str.end(), '\n'));
+ return int(count(str.begin(), str.end(), '\n'));
}
features.require("color");
features.require("lyxgreyedout");
}
- if (params_.type == InsetNoteParams::Shaded) {
- features.require("color");
- features.require("framed");
- }
- if (params_.type == InsetNoteParams::Framed)
- features.require("framed");
InsetText::validate(features);
}