#define INSETFLEX_H
#include "InsetCollapsable.h"
-#include "TextClass.h"
-
namespace lyx {
-
-class InsetFlexParams {
-public:
- ///
- void write(std::ostream & os) const;
- ///
- void read(Lexer & lex);
- ///
- std::string name;
-};
-
-
/** The Flex inset, e.g., CharStyle, Custom inset or XML short element
*/
class InsetFlex : public InsetCollapsable {
public:
///
- InsetFlex(BufferParams const &, InsetLayout);
+ InsetFlex(Buffer const &, DocumentClass * dc,
+ std::string const & layoutName);
///
- docstring name() const { return from_ascii("Flex"); }
- /// Is this character style defined in the document's textclass?
- /// May be wrong after textclass change or paste from another document
- bool undefined() const;
- /// (Re-)set the character style parameters from \p il
- void setLayout(InsetLayout il);
+ docstring name() const { return from_utf8(name_); }
+
///
- virtual docstring const editMessage() const;
+ docstring editMessage() const;
///
InsetCode lyxCode() const { return FLEX_CODE; }
///
- void write(Buffer const &, std::ostream &) const;
- ///
- void read(Buffer const & buf, Lexer & lex);
- ///
- void metrics(MetricsInfo &, Dimension &) const;
+ void write(std::ostream &) const;
///
- void draw(PainterInfo &, int, int) const;
- ///
- void getDrawFont(Font &) const;
+ void read(Lexer & lex);
///
- bool forceDefaultParagraphs(idx_type) const { return true; }
+ virtual bool allowParagraphCustomization(idx_type = 0) const { return false; }
///
- int plaintext(Buffer const &, odocstream &,
- OutputParams const &) const;
+ int plaintext(odocstream &, OutputParams const &) const;
///
- int docbook(Buffer const &, odocstream &,
- OutputParams const &) const;
+ int docbook(odocstream &, OutputParams const &) const;
/// the string that is passed to the TOC
- virtual void textString(Buffer const &, odocstream &) const;
-
+ void textString(odocstream &) const;
///
- InsetFlexParams const & params() const { return params_; }
+ void validate(LaTeXFeatures &) const;
/// should paragraph indendation be ommitted in any case?
- bool neverIndent(Buffer const &) const { return true; }
+ bool neverIndent() const { return true; }
protected:
InsetFlex(InsetFlex const &);
- virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
- ///
- bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const;
private:
- friend class InsetFlexParams;
-
- virtual Inset * clone() const;
+ Inset * clone() const { return new InsetFlex(*this); }
///
- InsetFlexParams params_;
+ std::string name_;
+ ///
+ std::set<std::string> packages_;
+ ///
+ std::string preamble_;
};