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')
56 void dimension(BufferView *, LyXFont const &, Dimension &) const;
58 void draw(BufferView *, LyXFont const &, int, float &) const;
60 void write(Buffer const *, std::ostream &) const;
61 /// Will not be used when lyxf3
62 void read(Buffer const *, LyXLex & lex);
64 int latex(Buffer const *, std::ostream &, LatexRunParams const &,
65 bool fragile, bool free_spc) const;
67 int ascii(Buffer const *, std::ostream &, int linelen) const;
69 int linuxdoc(Buffer const *, std::ostream &) const;
71 int docbook(Buffer const *, std::ostream &, bool mixcont) const;
73 virtual Inset * clone(Buffer const &, bool same_id = false) const;
75 Inset::Code lyxCode() const { return Inset::SPACE_CODE; }
76 /// We don't need \begin_inset and \end_inset
77 bool directWrite() const { return true; }
79 // should this inset be handled like a normal charater
81 /// is this equivalent to a letter?
82 bool isLetter() const;
83 /// is this equivalent to a space (which is BTW different from
86 // should we break lines after this inset?
87 bool isLineSeparator() const;
89 /// And which kind is this?
93 #endif // INSET_SPACE_H