4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Asger Alstrup Nielsen
8 * \author Jean-Marc Lasgouttes
9 * \author Lars Gullik Bjønnes
10 * \author Juergen Spitzmueller
12 * Full author contact details are available in file CREDITS
24 /// Used to insert different kinds of spaces
25 class InsetSpace : public Inset {
28 /// The different kinds of spaces we support
30 /// Normal space ('\ ')
32 /// Protected (no break) space ('~')
40 /// \enspace (0.5em unbreakable)
42 /// \enspace (0.5em breakable)
44 /// Negative thin space ('\negthinspace')
57 void metrics(MetricsInfo &, Dimension &) const;
59 void draw(PainterInfo & pi, int x, int y) const;
61 void write(Buffer const *, std::ostream &) const;
62 /// Will not be used when lyxf3
63 void read(Buffer const *, LyXLex & lex);
65 int latex(Buffer const *, std::ostream &,
66 LatexRunParams const &) const;
68 int ascii(Buffer const *, std::ostream &, int linelen) const;
70 int linuxdoc(Buffer const *, std::ostream &) const;
72 int docbook(Buffer const *, std::ostream &, bool mixcont) const;
74 virtual Inset * clone(Buffer const &) const;
76 Inset::Code lyxCode() const { return Inset::SPACE_CODE; }
77 /// We don't need \begin_inset and \end_inset
78 bool directWrite() const { return true; }
80 // should this inset be handled like a normal charater
82 /// is this equivalent to a letter?
83 bool isLetter() const;
84 /// is this equivalent to a space (which is BTW different from
87 // should we break lines after this inset?
88 bool isLineSeparator() const;
90 /// And which kind is this?
94 #endif // INSET_SPACE_H