/usr/include/qwt/qwt_text_engine.h is in libqwt-dev 6.0.0-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2003 Uwe Rathmann
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Qwt License, Version 1.0
*****************************************************************************/
#ifndef QWT_TEXT_ENGINE_H
#define QWT_TEXT_ENGINE_H 1
#include "qwt_global.h"
#include <qsize.h>
class QFont;
class QRectF;
class QString;
class QPainter;
/*!
\brief Abstract base class for rendering text strings
A text engine is responsible for rendering texts for a
specific text format. They are used by QwtText to render a text.
QwtPlainTextEngine and QwtRichTextEngine are part of the Qwt library.
The implementation of QwtMathMLTextEngine uses code from the
Qt solution package. Because of license implications it is built into
a separate library.
\sa QwtText::setTextEngine()
*/
class QWT_EXPORT QwtTextEngine
{
public:
virtual ~QwtTextEngine();
/*!
Find the height for a given width
\param font Font of the text
\param flags Bitwise OR of the flags used like in QPainter::drawText
\param text Text to be rendered
\param width Width
\return Calculated height
*/
virtual double heightForWidth( const QFont &font, int flags,
const QString &text, double width ) const = 0;
/*!
Returns the size, that is needed to render text
\param font Font of the text
\param flags Bitwise OR of the flags like in for QPainter::drawText
\param text Text to be rendered
\return Caluclated size
*/
virtual QSizeF textSize( const QFont &font, int flags,
const QString &text ) const = 0;
/*!
Test if a string can be rendered by this text engine
\param text Text to be tested
\return true, if it can be rendered
*/
virtual bool mightRender( const QString &text ) const = 0;
/*!
Return margins around the texts
The textSize might include margins around the
text, like QFontMetrics::descent. In situations
where texts need to be aligend in detail, knowing
these margins might improve the layout calculations.
\param font Font of the text
\param text Text to be rendered
\param left Return value for the left margin
\param right Return value for the right margin
\param top Return value for the top margin
\param bottom Return value for the bottom margin
*/
virtual void textMargins( const QFont &font, const QString &text,
double &left, double &right, double &top, double &bottom ) const = 0;
/*!
Draw the text in a clipping rectangle
\param painter Painter
\param rect Clipping rectangle
\param flags Bitwise OR of the flags like in for QPainter::drawText
\param text Text to be rendered
*/
virtual void draw( QPainter *painter, const QRectF &rect,
int flags, const QString &text ) const = 0;
protected:
QwtTextEngine();
};
/*!
\brief A text engine for plain texts
QwtPlainTextEngine renders texts using the basic Qt classes
QPainter and QFontMetrics.
*/
class QWT_EXPORT QwtPlainTextEngine: public QwtTextEngine
{
public:
QwtPlainTextEngine();
virtual ~QwtPlainTextEngine();
virtual double heightForWidth( const QFont &font, int flags,
const QString &text, double width ) const;
virtual QSizeF textSize( const QFont &font, int flags,
const QString &text ) const;
virtual void draw( QPainter *painter, const QRectF &rect,
int flags, const QString &text ) const;
virtual bool mightRender( const QString & ) const;
virtual void textMargins( const QFont &, const QString &,
double &left, double &right, double &top, double &bottom ) const;
private:
class PrivateData;
PrivateData *d_data;
};
#ifndef QT_NO_RICHTEXT
/*!
\brief A text engine for Qt rich texts
QwtRichTextEngine renders Qt rich texts using the classes
of the Scribe framework of Qt.
*/
class QWT_EXPORT QwtRichTextEngine: public QwtTextEngine
{
public:
QwtRichTextEngine();
virtual double heightForWidth( const QFont &font, int flags,
const QString &text, double width ) const;
virtual QSizeF textSize( const QFont &font, int flags,
const QString &text ) const;
virtual void draw( QPainter *painter, const QRectF &rect,
int flags, const QString &text ) const;
virtual bool mightRender( const QString & ) const;
virtual void textMargins( const QFont &, const QString &,
double &left, double &right, double &top, double &bottom ) const;
private:
QString taggedText( const QString &, int flags ) const;
};
#endif // !QT_NO_RICHTEXT
#endif
|