]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetspecialchar.h
fix typo that put too many include paths for most people
[lyx.git] / src / insets / insetspecialchar.h
index 12258749e26edc616603cd3460a3aed8b4a422a0..1f0547d44455a4d46adeeb1f508932acd2423b06 100644 (file)
@@ -1,10 +1,10 @@
 // -*- C++ -*-
 /* This file is part of*
- * ====================================================== 
+ * ======================================================
  *
  *           LyX, The Document Processor
- *      
- *         Copyright (C) 1997 Asger Alstrup
+ *
+ *         Copyright 1997 Asger Alstrup
  *
  * ====================================================== */
 
@@ -15,7 +15,7 @@
 #pragma interface
 #endif
 
-#include "lyxinset.h"
+#include "inset.h"
 #include "LString.h"
 
 struct LaTeXFeatures;
@@ -28,55 +28,73 @@ public:
        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() {}
        ///
+       explicit
        InsetSpecialChar(Kind k);
        ///
-       int Ascent(LyXFont const & font) const;
+       Kind kind() 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);
-       /// 
-       int Latex(FILE * file, signed char fragile);
+       void read(Buffer const *, LyXLex & lex);
+       ///
+       int latex(Buffer const *, std::ostream &,
+                 bool fragile, bool free_spc) const;
        ///
-       int Latex(string & file, signed char fragile);
+       int ascii(Buffer const *, std::ostream &, int linelen) const;
        ///
-       int Linuxdoc(string & file);
+       int linuxdoc(Buffer const *, std::ostream &) const;
        ///
-       int DocBook(string & file);
+       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::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