X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcommand.h;h=a2397dba654e02ac2d2895395e20f89506e32522;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=8478ac9a7a0404a0c1154b3a3f5f25ef334f382a;hpb=ba01e80b7cd9ff3dd59e268206603e6be6cecfd9;p=lyx.git diff --git a/src/insets/insetcommand.h b/src/insets/insetcommand.h index 8478ac9a7a..a2397dba65 100644 --- a/src/insets/insetcommand.h +++ b/src/insets/insetcommand.h @@ -7,17 +7,21 @@ * \author Angus Leeming * \author Lars Gullik Bjønnes * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #ifndef INSET_LATEXCOMMAND_H #define INSET_LATEXCOMMAND_H - #include "inset.h" #include "insetcommandparams.h" -#include "renderers.h" +#include "render_button.h" #include "mailinset.h" +#include "cursor.h" + + +namespace lyx { + // Created by Alejandro 970222 /** Used to insert a LaTeX command automatically @@ -27,91 +31,134 @@ */ /// -class InsetCommand : public Inset { +class InsetCommand : public InsetOld { public: /// - explicit - InsetCommand(InsetCommandParams const &); + InsetCommand(InsetCommandParams const &, std::string const & mailer_name); /// - void metrics(MetricsInfo &, Dimension &) const; + ~InsetCommand(); + /// + bool metrics(MetricsInfo &, Dimension &) const; /// void draw(PainterInfo & pi, int x, int y) const; /// - void write(Buffer const *, std::ostream & os) const + void write(Buffer const &, std::ostream & os) const { p_.write(os); } /// - virtual void read(Buffer const *, LyXLex & lex) + virtual void read(Buffer const &, LyXLex & lex) { p_.read(lex); } - /// Can remove one InsetBibKey is modified - void scanCommand(string const & c) { p_.scanCommand(c); }; - /// - virtual int latex(Buffer const *, std::ostream &, - LatexRunParams const &) const; /// - int ascii(Buffer const *, std::ostream &, int linelen) const; + virtual int latex(Buffer const &, odocstream &, + OutputParams const &) const; /// - virtual int linuxdoc(Buffer const *, std::ostream &) const; + int plaintext(Buffer const &, odocstream &, + OutputParams const &) const; /// - virtual int docbook(Buffer const *, std::ostream &, bool) const; + virtual int docbook(Buffer const &, odocstream &, + OutputParams const & runparams) const; /// - Inset::Code lyxCode() const { return Inset::NO_CODE; } + InsetBase::Code lyxCode() const { return InsetBase::NO_CODE; } /// InsetCommandParams const & params() const { return p_; } + /// FIXME remove + std::string const getContents() const { return p_.getContents(); } + /// FIXME remove + void setContents(std::string const & c) + { + updateButtonLabel_ = true; + p_.setContents(c); + } + /// + void setParam(std::string const & name, docstring const & value) + { + updateButtonLabel_ = true; + p_[name] = value; + } + /// + docstring const & getParam(std::string const & name) const + { + return p_[name]; + } + /// FIXME remove + virtual void replaceContents(std::string const & from, std::string const & to); + /// FIXME remove + std::string const getOptions() const { return p_.getOptions(); } + /// FIXME remove + std::string const getSecOptions() const { return p_.getSecOptions(); } + /// + RenderButton & button() const { return button_; } + /// + bool setMouseHover(bool mouse_hover); + +protected: /// - virtual dispatch_result localDispatch(FuncRequest const & cmd); - /// - string const & getContents() const { return p_.getContents(); } + virtual void doDispatch(LCursor & cur, FuncRequest & cmd); /// - void setContents(string const & c) { p_.setContents(c); } + bool getStatus(LCursor & cur, FuncRequest const & cmd, FuncStatus &) const; /// - string const & getOptions() const { return p_.getOptions(); } - -protected: + docstring const getCommand() const { return p_.getCommand(); } /// - string const getCommand() const { return p_.getCommand(); } + std::string const & getCmdName() const { return p_.getCmdName(); } /// - string const & getCmdName() const { return p_.getCmdName(); } + void setCmdName(std::string const & n) + { + updateButtonLabel_ = true; + p_.setCmdName(n); + } /// - void setCmdName(string const & n) { p_.setCmdName(n); } + void setOptions(std::string const & o) + { + updateButtonLabel_ = true; + p_.setOptions(o); + } /// - void setOptions(string const & o) { p_.setOptions(o); } + void setSecOptions(std::string const & s) + { + updateButtonLabel_ = true; + p_.setSecOptions(s); + } /// void setParams(InsetCommandParams const &); - /// - virtual BufferView * view() const; /// This should provide the text for the button - virtual string const getScreenLabel(Buffer const *) const = 0; + virtual docstring const getScreenLabel(Buffer const &) const = 0; private: /// InsetCommandParams p_; - mutable bool set_label_; - mutable ButtonRenderer button_; + std::string mailer_name_; + /// changes color when mouse enters/leaves this inset + bool mouse_hover_; + mutable bool updateButtonLabel_; + mutable RenderButton button_; }; class InsetCommandMailer : public MailInset { public: /// - InsetCommandMailer(string const & name, InsetCommand & inset); + InsetCommandMailer(std::string const & name, InsetCommand & inset); /// virtual InsetBase & inset() const { return inset_; } /// - virtual string const & name() const { return name_; } + virtual std::string const & name() const { return name_; } /// - virtual string const inset2string() const; + virtual std::string const inset2string(Buffer const &) const; /// - static void string2params(string const &, InsetCommandParams &); + static void string2params(std::string const &, std::string const & name, + InsetCommandParams &); /// - static string const params2string(string const & name, - InsetCommandParams const &); + static std::string const params2string(std::string const & name, + InsetCommandParams const &); private: /// - string const name_; + std::string const name_; /// InsetCommand & inset_; }; + +} // namespace lyx + #endif