X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettoc.C;h=c93c62e26acb11e63787d4aa6b65eab0022a139d;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=a4f89da74c1d7a18d6ae321a20c8d7ab85e56f1f;hpb=d6fa7c567c47f1af95f026174a83bf75dde08f84;p=lyx.git diff --git a/src/insets/insettoc.C b/src/insets/insettoc.C index a4f89da74c..c93c62e26a 100644 --- a/src/insets/insettoc.C +++ b/src/insets/insettoc.C @@ -4,28 +4,85 @@ #pragma implementation #endif +#include "gettext.h" #include "insettoc.h" -#include "buffer.h" -#include "bufferlist.h" -#include "commandtags.h" -#include "lyxfunc.h" -#include "LyXView.h" #include "BufferView.h" +#include "LyXView.h" +#include "frontends/Dialogs.h" +#include "debug.h" +#include "buffer.h" + + +using std::vector; +using std::ostream; + -void InsetTOC::Edit(BufferView * bv, int, int, unsigned int) +string const InsetTOC::getScreenLabel(Buffer const *) const { - bv->owner()->getLyXFunc()->Dispatch(LFUN_TOCVIEW); + string const cmdname(getCmdName()); + + if (cmdname == "tableofcontents") + return _("Table of Contents"); + return _("Unknown toc list"); } -int InsetTOC::Linuxdoc(string & file) const + +Inset::Code InsetTOC::lyxCode() const +{ + string const cmdname(getCmdName()); + if (cmdname == "tableofcontents") + return Inset::TOC_CODE; + return Inset::NO_CODE; +} + + +void InsetTOC::edit(BufferView * bv, int, int, unsigned int) +{ + bv->owner()->getDialogs()->showTOC(this); +} + + +void InsetTOC::edit(BufferView * bv, bool) +{ + edit(bv, 0, 0, 0); +} + + +int InsetTOC::ascii(Buffer const * buffer, ostream & os, int) const +{ + os << getScreenLabel(buffer) << "\n\n"; + + string type; + string const cmdname = getCmdName(); + if (cmdname == "tableofcontents") + type = "TOC"; + Buffer::Lists const toc_list = buffer->getLists(); + Buffer::Lists::const_iterator cit = + toc_list.find(type); + if (cit != toc_list.end()) { + Buffer::SingleList::const_iterator ccit = cit->second.begin(); + Buffer::SingleList::const_iterator end = cit->second.end(); + for (; ccit != end; ++ccit) + os << string(4 * ccit->depth, ' ') + << ccit->str << "\n"; + } + + os << "\n"; + return 0; +} + + +int InsetTOC::linuxdoc(Buffer const *, ostream & os) const { - file += ""; + if (getCmdName() == "tableofcontents") + os << ""; return 0; } -int InsetTOC::DocBook(string & file) const +int InsetTOC::docbook(Buffer const *, ostream & os) const { - file += ""; + if (getCmdName() == "tableofcontents") + os << ""; return 0; }