X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetspecialchar.h;h=833256b703350837c30a290c838e9ecf773d6a2f;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=1a35435a91dff0f8a321b0a1df588ea1eb1d9dd1;hpb=27de1486ca34aaad446adb798d71a77d6f6304da;p=lyx.git diff --git a/src/insets/insetspecialchar.h b/src/insets/insetspecialchar.h index 1a35435a91..833256b703 100644 --- a/src/insets/insetspecialchar.h +++ b/src/insets/insetspecialchar.h @@ -1,84 +1,100 @@ // -*- C++ -*- /* This file is part of* - * ====================================================== + * ====================================================== * * LyX, The Document Processor * - * Copyright (C) 1997 Asger Alstrup + * Copyright 1997 Asger Alstrup * - *======================================================*/ + * ====================================================== */ -#ifndef _INSET_SPECIALCHAR_H -#define _INSET_SPECIALCHAR_H +#ifndef INSET_SPECIALCHAR_H +#define INSET_SPECIALCHAR_H #ifdef __GNUG__ #pragma interface #endif -#include "lyxinset.h" +#include "inset.h" #include "LString.h" struct LaTeXFeatures; /// Used to insert special chars -class InsetSpecialChar: public Inset { +class InsetSpecialChar : public Inset { public: /// The different kinds of special chars we support enum Kind { /// Optional hyphenation point (\-) HYPHENATION, + /// Ligature break point (\textcompwordmark) + LIGATURE_BREAK, /// ... (\ldots) LDOTS, /// End of sentence punctuation (\@) END_OF_SENTENCE, /// Menu separator - MENU_SEPARATOR + MENU_SEPARATOR, + /// Protected Separator + PROTECTED_SEPARATOR }; /// - InsetSpecialChar(); + InsetSpecialChar() {} /// + explicit InsetSpecialChar(Kind k); /// - ~InsetSpecialChar(); + Kind kind() const; /// - int Ascent(LyXFont const &font) const; + int ascent(BufferView *, LyXFont const &) const; /// - int Descent(LyXFont const &font) const; + int descent(BufferView *, LyXFont const &) const; /// - int Width(LyXFont const &font) const; + int width(BufferView *, LyXFont const &) const; /// - void Draw(LyXFont, LyXScreen &scr, int baseline, float &x); + void draw(BufferView *, LyXFont const &, int, float &, bool) const; /// - void Write(FILE *file); + void write(Buffer const *, std::ostream &) const; /// Will not be used when lyxf3 - void Read(LyXLex &lex); + void read(Buffer const *, LyXLex & lex); /// - int Latex(FILE *file, signed char fragile); + int latex(Buffer const *, std::ostream &, + bool fragile, bool free_spc) const; /// - int Latex(LString &file, signed char fragile); + int ascii(Buffer const *, std::ostream &, int linelen) const; /// - int Linuxdoc(LString &file); + int linuxdoc(Buffer const *, std::ostream &) const; /// - int DocBook(LString &file); + int docbook(Buffer const *, std::ostream &) const; /// - Inset* Clone(); + virtual Inset * clone(Buffer const &, bool same_id = false) const; /// - Inset::Code LyxCode() const + Inset::Code lyxCode() const { - return Inset::NO_CODE; + 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