X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetMarginal.cpp;h=1c1df328e96ba4e31c07d12ba9c585e59ccbdfeb;hb=d4550b7a4d64e9ff772cf3a7635cb4ca532fb340;hp=748ae3eca511b6e451a72f978971d997f502b6ca;hpb=9ad1a3af4fa52bec8b361fbdc2f1db97720a8cc9;p=lyx.git diff --git a/src/insets/InsetMarginal.cpp b/src/insets/InsetMarginal.cpp index 748ae3eca5..1c1df328e9 100644 --- a/src/insets/InsetMarginal.cpp +++ b/src/insets/InsetMarginal.cpp @@ -3,8 +3,8 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Jürgen Vigna - * \author Lars Gullik Bjønnes + * \author Jürgen Vigna + * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS. */ @@ -20,54 +20,21 @@ #include "support/docstream.h" #include "support/gettext.h" - -#include - +#include "support/lstrings.h" namespace lyx { -InsetMarginal::InsetMarginal(Buffer const & buf) +InsetMarginal::InsetMarginal(Buffer * buf) : InsetFootlike(buf) {} -docstring InsetMarginal::editMessage() const -{ - return _("Opened Marginal Note Inset"); -} - - -docstring InsetMarginal::toolTip(BufferView const & bv, int x, int y) const -{ - docstring default_tip = InsetCollapsable::toolTip(bv, x, y); - OutputParams rp(&buffer().params().encoding()); - odocstringstream ods; - InsetText::plaintext(ods, rp); - docstring margin_tip = ods.str(); - // shorten it if necessary - if (margin_tip.size() > 200) - margin_tip = margin_tip.substr(0, 200) + "..."; - if (!isOpen() && !margin_tip.empty()) - return margin_tip + '\n' + default_tip; - return default_tip; -} - - -int InsetMarginal::latex(odocstream & os, OutputParams const & runparams) const -{ - os << "%\n\\marginpar{"; - int const i = InsetText::latex(os, runparams); - os << "%\n}"; - return i + 2; -} - - -int InsetMarginal::plaintext(odocstream & os, - OutputParams const & runparams) const +int InsetMarginal::plaintext(odocstringstream & os, + OutputParams const & runparams, size_t max_length) const { os << '[' << buffer().B_("margin") << ":\n"; - InsetText::plaintext(os, runparams); + InsetText::plaintext(os, runparams, max_length); os << "\n]"; return PLAINTEXT_NEWLINE + 1; // one char on a separate line @@ -85,15 +52,19 @@ int InsetMarginal::docbook(odocstream & os, } -void InsetMarginal::addToToc(ParConstIterator const & cpit) const +void InsetMarginal::addToToc(DocIterator const & cpit, bool output_active, + UpdateType utype) const { - ParConstIterator pit = cpit; - pit.push_back(*this); + DocIterator pit = cpit; + pit.push_back(CursorSlice(const_cast(*this))); - Toc & toc = buffer().tocBackend().toc("marginalnote"); docstring str; - str = getNewLabel(str); - toc.push_back(TocItem(pit, 0, str)); + text().forOutliner(str, TOC_ENTRY_LENGTH); + std::shared_ptr toc = buffer().tocBackend().toc("marginalnote"); + toc->push_back(TocItem(pit, 0, str, output_active)); + + // Proceed with the rest of the inset. + InsetFootlike::addToToc(cpit, output_active, utype); } } // namespace lyx