/** Insertion of accents Proper handling of accented characters. This is class is supposed to handle all LaTeX accents, it is also possible that the class will change a bit so that it also can handle other special characters (e.g. Hstroke) Initiated by Ivan Schreter, later modified by Lgb.
*/ class InsetLatexAccent: public Inset { public: ///
InsetLatexAccent(); ///
InsetLatexAccent(LString const & string); ///
InsetLatexAccent(InsetLatexAccent const&); ///
~InsetLatexAccent(); /// int Ascent(LyXFont const &font) const; /// int Descent(LyXFont const &font) const; /// int Width(LyXFont const &font) const; /// bool DisplayISO8859_9(LyXFont font, LyXScreen &scr, int baseline, float &x); /// void Draw(LyXFont font, LyXScreen &scr, int baseline, float &x); /// void Write(FILE *file); /// void Read(LyXLex &lex); /// int Latex(FILE *file, signedchar fragile); /// int Latex(LString &file, signedchar fragile); /// int Linuxdoc(LString &file); /// bool Deletable() const; /// bool DirectWrite() const; ///
Inset* Clone(); ///
Inset::Code LyxCode()const; /// bool IsEqual(Inset* other); /// inlinebool CanDisplay(); private: /// all the accent types enum ACCENT_TYPES{ ///
ACUTE, // 0 ///
GRAVE, ///
MACRON, ///
TILDE, ///
UNDERBAR, ///
CEDILLA, // 5 ///
UNDERDOT, ///
CIRCLE, ///
TIE, ///
BREVE, ///
CARON, // 10 ///
SPECIAL_CARON, ///
HUNGARIAN_UMLAUT, ///
UMLAUT, ///
DOT, ///
CIRCUMFLEX, // 15 ///
OGONEK, ///
DOT_LESS_I, ///
DOT_LESS_J, // 18 ///
lSLASH, ///
LSLASH
};
/// Check if we know the modifier and can display it ok on screen. void checkContents(); ///
LString contents; /// can display as proper char bool candisp; /// modifier type
ACCENT_TYPES modtype;
/// remove dot from 'i' and 'j' or transform l,L into lslash,LSLaSH bool remdot; /// add something to ascent - accent at the top bool plusasc; /// add something to descent - underlined char bool plusdesc; /// international char char ic;
};