]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetCommand.h
This should be the last of the commits refactoring the InsetLayout code.
[lyx.git] / src / insets / InsetCommand.h
index aedc1fb3af8c13b60303e256bdd82b5b01be3ed2..7173417ec5dc1e8059511394cb55aa879e01b2ec 100644 (file)
@@ -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,