]> git.lyx.org Git - lyx.git/blob - src/insets/insettoc.C
updates to minipage inset
[lyx.git] / src / insets / insettoc.C
1 #include <config.h>
2
3 #ifdef __GNUG__
4 #pragma implementation
5 #endif
6
7 #include "gettext.h"
8 #include "insettoc.h"
9 #include "BufferView.h"
10 #include "LyXView.h"
11 #include "frontends/Dialogs.h"
12 #include "debug.h"
13 #include "buffer.h"
14
15 using std::ostream;
16 using std::endl;
17
18 string const InsetTOC::getScreenLabel() const 
19 {
20         string cmdname( getCmdName() );
21         if (cmdname == "tableofcontents" )
22                 return _("Table of Contents");
23         else if (cmdname == "listofalgorithms" )
24                 return _("List of Algorithms");
25         else if (cmdname == "listoffigures" )
26                 return _("List of Figures");
27         else
28                 return _("List of Tables");
29 }
30
31
32 Inset::Code InsetTOC::LyxCode() const
33 {
34         string cmdname( getCmdName() );
35         if (cmdname == "tableofcontents" )
36                 return Inset::TOC_CODE;
37         else if (cmdname == "listofalgorithms" )
38                 return Inset::LOA_CODE;
39         else if (cmdname == "listoffigures" )
40                 return Inset::LOF_CODE; 
41         else
42                 return Inset::LOT_CODE;
43 }
44
45
46 void InsetTOC::Edit(BufferView * bv, int, int, unsigned int)
47 {
48         bv->owner()->getDialogs()->showTOC( this );
49 }
50
51
52 int InsetTOC::Ascii(Buffer const * buffer, ostream & os, int) const
53 {
54         os << getScreenLabel() << endl << endl;
55
56 #if 0
57         Buffer::TocType type;
58         string cmdname = getCmdName();
59         if (cmdname == "tableofcontents" )
60                 type = Buffer::TOC_TOC;
61         else if (cmdname == "listofalgorithms" )
62                 type = Buffer::TOC_LOA;
63         else if (cmdname == "listoffigures" )
64                 type = Buffer::TOC_LOF; 
65         else
66                 type = Buffer::TOC_LOT;
67
68         vector<vector<Buffer::TocItem> > const toc_list =
69                 buffer->getTocList();
70         vector<Buffer::TocItem> const & toc = toc_list[type];
71         for (vector<Buffer::TocItem>::const_iterator it = toc.begin();
72              it != toc.end(); ++it)
73                 os << string(4 * it->depth, ' ') << it->str << endl;
74 #else
75 #warning Fix Me! (Lgb)
76         string type;
77         string cmdname = getCmdName();
78         if (cmdname == "tableofcontents" )
79                 type = "TOC";
80         else if (cmdname == "listofalgorithms" )
81                 type = "LOA";
82         else if (cmdname == "listoffigures" )
83                 type = "LOF";
84         else 
85                 type = "LOT";
86
87         Buffer::Lists const toc_list = buffer->getLists();
88         Buffer::Lists::const_iterator cit =
89                 toc_list.find(type);
90         if (cit != toc_list.end()) {
91                 Buffer::SingleList::const_iterator ccit = cit->second.begin();
92                 Buffer::SingleList::const_iterator end = cit->second.end();
93                 for (; ccit != end; ++ccit)
94                         os << string(4 * ccit->depth, ' ')
95                            << ccit->str << endl;
96         }
97 #endif
98         os << endl;
99         return 0;
100 }
101
102
103 int InsetTOC::Linuxdoc(Buffer const *, ostream & os) const
104 {
105         if (getCmdName() == "tableofcontents" )
106                 os << "<toc>";
107         return 0;
108 }
109
110
111 int InsetTOC::DocBook(Buffer const *, ostream & os) const
112 {
113         if (getCmdName() == "tableofcontents" )
114                 os << "<toc></toc>";
115         return 0;
116 }