// -*- C++ -*-
/* This file is part of*
- * ======================================================
+ * ======================================================
*
* LyX, The Document Processor
- *
+ *
* Copyright 1997 Asger Alstrup
*
* ====================================================== */
#pragma interface
#endif
-#include "lyxinset.h"
+#include "inset.h"
#include "LString.h"
struct LaTeXFeatures;
enum Kind {
/// Optional hyphenation point (\-)
HYPHENATION,
+ /// Ligature break point (\textcompwordmark)
+ LIGATURE_BREAK,
/// ... (\ldots)
LDOTS,
/// End of sentence punctuation (\@)
explicit
InsetSpecialChar(Kind k);
///
- int ascent(Painter &, LyXFont const &) const;
+ Kind kind() const;
+ ///
+ int ascent(BufferView *, LyXFont const &) const;
///
- int descent(Painter &, LyXFont const &) const;
+ int descent(BufferView *, LyXFont const &) const;
///
- int width(Painter &, LyXFont const &) const;
+ int width(BufferView *, LyXFont const &) const;
///
- void draw(Painter &, LyXFont const &, int baseline, float & x) const;
+ void draw(BufferView *, LyXFont const &, int, float &, bool) const;
///
- void Write(Buffer const *, std::ostream &) const;
+ void write(Buffer const *, std::ostream &) const;
/// Will not be used when lyxf3
- void Read(Buffer const *, LyXLex & lex);
- ///
- int Latex(Buffer const *, std::ostream &, bool fragile, bool free_spc) const;
+ void read(Buffer const *, LyXLex & lex);
+ ///
+ int latex(Buffer const *, std::ostream &,
+ bool fragile, bool free_spc) const;
///
- int Ascii(Buffer const *, std::ostream &) const;
+ int ascii(Buffer const *, std::ostream &, int linelen) const;
///
- int Linuxdoc(Buffer const *, std::ostream &) const;
+ int linuxdoc(Buffer const *, std::ostream &) const;
///
- int DocBook(Buffer const *, std::ostream &) const;
+ int docbook(Buffer const *, std::ostream &) const;
///
- Inset * Clone() const;
- ///
- Inset::Code LyxCode() const
+ virtual Inset * clone(Buffer const &, bool same_id = false) const;
+ ///
+ Inset::Code lyxCode() const
{
return Inset::SPECIALCHAR_CODE;
}
/// We don't need \begin_inset and \end_inset
- bool DirectWrite() const
+ bool directWrite() const
{
return true;
};
///
- void Validate(LaTeXFeatures &) const;
+ void validate(LaTeXFeatures &) const;
+
+ // should this inset be handled like a normal charater
+ bool isChar() const;
+ /// is this equivalent to a letter?
+ bool isLetter() const;
+ /// is this equivalent to a space (which is BTW different from
+ // a line separator)?
+ bool isSpace() const;
+ // should we break lines after this inset?
+ bool isLineSeparator() const;
private:
/// And which kind is this?
- Kind kind;
+ Kind kind_;
};
#endif