X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetlatexaccent.h;h=33446bd11a227e1b1b330ac48ceeb5a3e46ecf1e;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=da33b0ac6495192bfd31a2aa4a676959bc229800;hpb=1d7d3cc4afa2205c801ccc2aa71c7ac59359dc5f;p=lyx.git diff --git a/src/insets/insetlatexaccent.h b/src/insets/insetlatexaccent.h index da33b0ac64..33446bd11a 100644 --- a/src/insets/insetlatexaccent.h +++ b/src/insets/insetlatexaccent.h @@ -1,74 +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 (C) 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(); - /// - InsetLatexAccent(string const & string); - /// - InsetLatexAccent(InsetLatexAccent const &); - /// - 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); + InsetLatexAccent(); /// - void Draw(LyXFont font, LyXScreen & scr, int baseline, float & x); + explicit InsetLatexAccent(std::string const & str); /// - void Write(FILE * file); + bool metrics(MetricsInfo &, Dimension &) const; /// - void Read(LyXLex & lex); + void draw(PainterInfo & pi, int x, int y) const; /// - int Latex(FILE * file, signed char fragile); + bool displayISO8859_9(PainterInfo & pi, int x, int y) const; /// - int Latex(string & file, signed char fragile); + void write(Buffer const &, std::ostream &) const; /// - int Linuxdoc(string & file); + void read(Buffer const &, LyXLex & lex); /// - int DocBook(string & file); + int latex(Buffer const &, odocstream &, + OutputParams const &) const; /// - bool Deletable() const; + int plaintext(Buffer const &, odocstream &, + OutputParams const &) const; /// - bool DirectWrite() 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; /// - InsetLatexAccent * Clone() const; + bool directWrite() const; /// - Inset::Code LyxCode()const; + InsetBase::Code lyxCode()const; /// - inline bool CanDisplay(); -private: + 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{ /// @@ -108,23 +108,28 @@ private: /// 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; - friend ostream & operator<<(ostream &, ACCENT_TYPES); /// 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 @@ -132,12 +137,16 @@ private: /// add something to descent - underlined char bool plusdesc; /// international char - char ic; + mutable char ic; }; -bool InsetLatexAccent::CanDisplay() + +bool InsetLatexAccent::canDisplay() { return candisp; } + +} // namespace lyx + #endif