+ bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
+ ///
+ void metrics(MetricsInfo &, Dimension &) const;
+ ///
+ void draw(PainterInfo & pi, int x, int y) const;
+ ///
+ virtual void drawBackground(PainterInfo &, int, int) const {}
+ ///
+ void latex(otexstream &, OutputParams const &) const;
+ ///
+ int plaintext(odocstringstream & ods, OutputParams const & op,
+ size_t max_length = INT_MAX) const;
+ ///
+ int docbook(odocstream &, OutputParams const & runparams) const;
+ ///
+ bool setMouseHover(BufferView const * bv, bool mouse_hover) const;
+ ///
+ bool clickable(BufferView const &, int, int) const { return hasSettings(); }
+ //@}
+
+protected:
+ /// \name Methods relaying to the InsetCommandParams p_
+ //@{
+ ///
+ std::string contextMenuName() const;
+ ///
+ bool showInsetDialog(BufferView * bv) const;
+ //@}
+
+protected:
+ /// \name Functions relaying to the InsetCommandParams
+ //@{
+ /// Build the complete LaTeX command
+ /// \see InsetCommandParams::getCommand
+ docstring const getCommand(OutputParams const & rp) const
+ { return p_.getCommand(rp); }
+ /// Return the command name
+ /// \see InsetCommandParams::getCmdName
+ std::string const & getCmdName() const { return p_.getCmdName(); }
+ /// Set the name to \p n. This must be a known name. All parameters
+ /// are cleared except those that exist also in the new command.
+ /// What matters here is the parameter name, not position.
+ /// \see InsetCommandParams::setCmdName
+ void setCmdName(std::string const & n) { p_.setCmdName(n); }
+ //@}
+
+private: