4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Lars Gullik Bjønnes
9 * Full author contact details are available in file CREDITS.
16 #include "InsetCollapsable.h"
17 #include "InsetCommand.h"
22 class InsetIndexParams {
25 explicit InsetIndexParams(docstring const & b = docstring())
28 void write(std::ostream & os) const;
30 void read(Lexer & lex);
36 /** Used to insert index labels
38 class InsetIndex : public InsetCollapsable {
41 InsetIndex(Buffer *, InsetIndexParams const &);
43 static std::string params2string(InsetIndexParams const &);
45 static void string2params(std::string const &, InsetIndexParams &);
48 bool hasSettings() const;
50 InsetCode lyxCode() const { return INDEX_CODE; }
52 docstring name() const { return from_ascii("Index"); }
54 ColorCode labelColor() const;
56 void write(std::ostream & os) const;
58 void read(Lexer & lex);
60 int docbook(odocstream &, OutputParams const &) const;
61 /// At the moment, this does nothing. See development/HTML.notes
62 /// for some remarks on what could be done.
63 docstring xhtml(odocstream &, OutputParams const &) const;
65 int latex(odocstream &, OutputParams const &) const;
67 bool showInsetDialog(BufferView *) const;
69 bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
71 void doDispatch(Cursor & cur, FuncRequest & cmd);
72 /// should paragraph indendation be omitted in any case?
73 bool neverIndent() const { return true; }
75 void addToToc(DocIterator const &);
77 docstring const buttonLabel(BufferView const & bv) const;
79 docstring toolTip(BufferView const & bv, int x, int y) const;
80 /// Updates needed features for this inset.
81 void validate(LaTeXFeatures & features) const;
83 docstring contextMenu(BufferView const & bv, int x, int y) const;
85 Inset * clone() const { return new InsetIndex(*this); }
88 friend class InsetIndexParams;
90 InsetIndexParams params_;
94 class InsetPrintIndex : public InsetCommand {
97 InsetPrintIndex(InsetCommandParams const &);
99 InsetCode lyxCode() const { return INDEX_PRINT_CODE; }
102 static ParamInfo const & findInfo(std::string const &);
104 static std::string defaultCommand() { return "printindex"; };
106 static bool isCompatibleCommand(std::string const & s);
108 int latex(odocstream &, OutputParams const &) const;
109 /// Does nothing yet.
110 docstring xhtml(odocstream &, OutputParams const &) const;
112 void doDispatch(Cursor & cur, FuncRequest & cmd);
114 bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
116 virtual docstring contextMenu(BufferView const & bv, int x, int y) const;
118 /// Updates needed features for this inset.
119 void validate(LaTeXFeatures & features) const;
121 bool hasSettings() const;
124 DisplayType display() const { return AlignCenter; }
126 docstring screenLabel() const;
128 Inset * clone() const { return new InsetPrintIndex(*this); }