X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCommand.h;h=7173417ec5dc1e8059511394cb55aa879e01b2ec;hb=2c357c1d23b7b83839a9beb8225d4f1ae4f793b4;hp=aedc1fb3af8c13b60303e256bdd82b5b01be3ed2;hpb=42123ab8a71080b6d15fca4e0c43ae76abf00a1e;p=lyx.git diff --git a/src/insets/InsetCommand.h b/src/insets/InsetCommand.h index aedc1fb3af..7173417ec5 100644 --- a/src/insets/InsetCommand.h +++ b/src/insets/InsetCommand.h @@ -24,21 +24,20 @@ namespace lyx { // Created by Alejandro 970222 -/** Used to insert a LaTeX command automatically - * - * Similar to InsetLaTeX but having control of the basic structure of a - * LaTeX command: \name[options]{contents}. +/** Used to insert a LaTeX command automatically. */ /// -class InsetCommand : public InsetOld { +class InsetCommand : public Inset { public: /// InsetCommand(InsetCommandParams const &, std::string const & mailer_name); /// ~InsetCommand(); /// - bool metrics(MetricsInfo &, Dimension &) const; + void metrics(MetricsInfo &, Dimension &) const; + /// + Dimension const dimension(BufferView const &) const { return button_.dimension(); } /// void draw(PainterInfo & pi, int x, int y) const; /// @@ -54,20 +53,13 @@ public: /// int docbook(Buffer const &, odocstream &, OutputParams const & runparams) const; /// - InsetBase::Code lyxCode() const { return InsetBase::NO_CODE; } - + InsetCode lyxCode() const { return NO_CODE; } /// InsetCommandParams const & params() const { return p_; } - /// FIXME remove - std::string const getContents() const { return p_.getContents(); } -protected: - /// FIXME remove - void setContents(std::string const & c) - { - updateButtonLabel_ = true; - p_.setContents(c); - } -public: + /// FIXME Remove + docstring const getFirstNonOptParam() const { return p_.getFirstNonOptParam(); } + /// Whether the button label should be recomputed. + void refresh() { updateButtonLabel_ = true; } /// void setParam(std::string const & name, docstring const & value) { @@ -79,12 +71,22 @@ public: { return p_[name]; } - /// FIXME remove - virtual void replaceContents(std::string const & from, std::string const & to); + /// + void edit(Cursor & cur, bool front, + EntryDirection entry_from = ENTRY_DIRECTION_IGNORE); /// RenderButton & button() const { return button_; } /// bool setMouseHover(bool mouse_hover); + /// Return parameter information for command cmdName. + /// Not implemented here. Must be implemented in derived class. + static CommandInfo const * findInfo(std::string const & cmdName); + /// Return default command for this inset. + /// Not implemented here. Must be implemented in derived class. + static std::string defaultCommand(); + /// Whether this is a command this inset can represent. + /// Not implemented here. Must be implemented in derived class. + static bool isCompatibleCommand(std::string const & cmd); protected: /// @@ -109,10 +111,13 @@ protected: private: /// InsetCommandParams p_; + /// std::string mailer_name_; /// changes color when mouse enters/leaves this inset bool mouse_hover_; + /// mutable bool updateButtonLabel_; + /// mutable RenderButton button_; }; @@ -122,13 +127,13 @@ public: /// InsetCommandMailer(std::string const & name, InsetCommand & inset); /// - virtual InsetBase & inset() const { return inset_; } + virtual Inset & inset() const { return inset_; } /// virtual std::string const & name() const { return name_; } /// virtual std::string const inset2string(Buffer const &) const; - /// - static void string2params(std::string const &, std::string const & name, + /// returns true if params are successfully read + static bool string2params(std::string const &, std::string const & name, InsetCommandParams &); /// static std::string const params2string(std::string const & name,