X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetlatexaccent.h;h=33446bd11a227e1b1b330ac48ceeb5a3e46ecf1e;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=c61bfec1c6677456be5bbbd5b3d4235224146847;hpb=8ed9dbabde30b31a6a14e032fa42f682a196ef7a;p=lyx.git diff --git a/src/insets/insetlatexaccent.h b/src/insets/insetlatexaccent.h index c61bfec1c6..33446bd11a 100644 --- a/src/insets/insetlatexaccent.h +++ b/src/insets/insetlatexaccent.h @@ -1,77 +1,74 @@ // -*- C++ -*- -/* This file is part of* - * ====================================================== +/** + * \file insetlatexaccent.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich + * \author Lars Gullik Bjønnes * - * ====================================================== */ + * Full author contact details are available in file CREDITS. + */ #ifndef INSET_LATEX_ACCENT_H #define INSET_LATEX_ACCENT_H -#ifdef __GNUG__ -#pragma interface -#endif +#include "inset.h" +#include "support/types.h" + + +namespace lyx { + +class Dimension; -#include "lyxinset.h" -#include "LString.h" -#include "lyxlex.h" /** 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 { +class InsetLatexAccent : public InsetOld { public: /// InsetLatexAccent(); /// - explicit - InsetLatexAccent(string const & string); - /// - int ascent(BufferView *, LyXFont const &) const; - /// - int descent(BufferView *, LyXFont const &) const; - /// - int width(BufferView *, LyXFont const &) const; - /// - void draw(BufferView *, LyXFont const &, int, float &, bool) const; - /// - int Lbearing(LyXFont const & font) const; + explicit InsetLatexAccent(std::string const & str); /// - int Rbearing(LyXFont const & font) const; + bool metrics(MetricsInfo &, Dimension &) const; /// - bool DisplayISO8859_9(BufferView *, LyXFont const & font, - int baseline, float & x) const; + void draw(PainterInfo & pi, int x, int y) const; /// - void Write(Buffer const *, std::ostream &) const; + bool displayISO8859_9(PainterInfo & pi, int x, int y) const; /// - void Read(Buffer const *, LyXLex & lex); + void write(Buffer const &, std::ostream &) const; /// - int Latex(Buffer const *, std::ostream &, - bool fragile, bool free_spc) const; + void read(Buffer const &, LyXLex & lex); /// - int Ascii(Buffer const *, std::ostream &) const; + int latex(Buffer const &, odocstream &, + OutputParams const &) const; /// - int Linuxdoc(Buffer const *, std::ostream &) const; + int plaintext(Buffer const &, odocstream &, + OutputParams const &) const; /// - int DocBook(Buffer const *, std::ostream &) const; + int docbook(Buffer const &, odocstream &, + OutputParams const &) const; + /// the string that is passed to the TOC + virtual int textString(Buffer const &, odocstream &, + OutputParams const &) const; /// - bool Deletable() const; + bool directWrite() const; /// - bool DirectWrite() const; + InsetBase::Code lyxCode()const; /// - Inset * Clone() const; - /// - Inset::Code LyxCode()const; - /// - inline bool CanDisplay(); + inline bool canDisplay(); + // should this inset be handled like a normal charater + bool isChar() const { return true; } + + /// is this equivalent to a letter? + virtual bool isLetter() const { return candisp; } + /// all the accent types enum ACCENT_TYPES{ /// @@ -111,23 +108,28 @@ public: /// DOT_LESS_I, /// - DOT_LESS_J, // 18 + DOT_LESS_J, // 18 /// - lSLASH, + lSLASH, /// - LSLASH + LSLASH }; private: friend std::ostream & operator<<(std::ostream &, ACCENT_TYPES); + + virtual std::auto_ptr doClone() const; + /// Check if we know the modifier and can display it ok on screen. void checkContents(); /// - string contents; + void drawAccent(PainterInfo const & pi, int x, int y, char_type accent) const; + /// + std::string 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 @@ -135,13 +137,16 @@ private: /// add something to descent - underlined char bool plusdesc; /// international char - mutable char ic; + mutable char ic; }; -bool InsetLatexAccent::CanDisplay() +bool InsetLatexAccent::canDisplay() { return candisp; } + +} // namespace lyx + #endif