4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Angus Leeming
8 * \author Lars Gullik Bjønnes
10 * Full author contact details are available in file CREDITS
13 #ifndef INSET_LATEXCOMMAND_H
14 #define INSET_LATEXCOMMAND_H
17 #include "insetbutton.h"
18 #include "insetcommandparams.h"
19 #include "mailinset.h"
20 #include <boost/utility.hpp>
22 // Created by Alejandro 970222
23 /** Used to insert a LaTeX command automatically
25 * Similar to InsetLaTeX but having control of the basic structure of a
26 * LaTeX command: \name[options]{contents}.
30 class InsetCommand : public InsetButton, boost::noncopyable {
34 InsetCommand(InsetCommandParams const &);
36 InsetCommand(InsetCommand const &);
38 void write(Buffer const *, std::ostream & os) const
41 virtual void read(Buffer const *, LyXLex & lex)
43 /// Can remove one InsetBibKey is modified
44 void scanCommand(string const & c) { p_.scanCommand(c); };
46 virtual int latex(Buffer const *, std::ostream &,
47 LatexRunParams const &) const;
49 int ascii(Buffer const *, std::ostream &, int linelen) const;
51 virtual int linuxdoc(Buffer const *, std::ostream &) const;
53 virtual int docbook(Buffer const *, std::ostream &, bool) const;
55 Inset::Code lyxCode() const { return Inset::NO_CODE; }
58 string const getCommand() const { return p_.getCommand(); }
60 string const & getCmdName() const { return p_.getCmdName(); }
62 string const & getOptions() const { return p_.getOptions(); }
64 string const & getContents() const { return p_.getContents(); }
66 void setCmdName(string const & n) { p_.setCmdName(n); }
68 void setOptions(string const & o) { p_.setOptions(o); }
70 void setContents(string const & c) { p_.setContents(c); }
72 InsetCommandParams const & params() const { return p_; }
74 void setParams(InsetCommandParams const &);
76 virtual dispatch_result localDispatch(FuncRequest const & cmd);
80 InsetCommandParams p_;
84 class InsetCommandMailer : public MailInset {
87 InsetCommandMailer(string const & name, InsetCommand & inset);
89 virtual InsetBase & inset() const { return inset_; }
91 virtual string const & name() const { return name_; }
93 virtual string const inset2string() const;
95 static void string2params(string const &, InsetCommandParams &);
97 static string const params2string(string const & name,
98 InsetCommandParams const &);
103 InsetCommand & inset_;