~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to tools/linguist/linguist/printout.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
 
4
**
 
5
** This file is part of the linguist application of the Qt Toolkit.
 
6
**
 
7
** This file may be distributed under the terms of the Q Public License
 
8
** as defined by Trolltech AS of Norway and appearing in the file
 
9
** LICENSE.QPL included in the packaging of this file.
 
10
**
 
11
** This file may be distributed and/or modified under the terms of the
 
12
** GNU General Public License version 2 as published by the Free Software
 
13
** Foundation and appearing in the file LICENSE.GPL included in the
 
14
** packaging of this file.
 
15
**
 
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
 
17
**   information about Qt Commercial License Agreements.
 
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
 
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
 
20
**
 
21
** Contact info@trolltech.com if any conditions of this licensing are
 
22
** not clear to you.
 
23
**
 
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
26
**
 
27
****************************************************************************/
 
28
 
 
29
#ifndef PRINTOUT_H
 
30
#define PRINTOUT_H
 
31
 
 
32
#include <qfont.h>
 
33
#include <qpainter.h>
 
34
#include <qrect.h>
 
35
#include <qlist.h>
 
36
#include <qdatetime.h>
 
37
 
 
38
class QPrinter;
 
39
class QFontMetrics;
 
40
 
 
41
class PrintOut
 
42
{
 
43
public:
 
44
    enum Rule { NoRule, ThinRule, ThickRule };
 
45
    enum Style { Normal, Strong, Emphasis };
 
46
 
 
47
    PrintOut( QPrinter *printer );
 
48
    ~PrintOut();
 
49
 
 
50
    void setRule( Rule rule );
 
51
    void setGuide( const QString& guide );
 
52
    void vskip();
 
53
    void flushLine( bool mayBreak = false );
 
54
    void addBox( int percent, const QString& text = QString(),
 
55
                 Style style = Normal,
 
56
                 int halign = Qt::AlignLeft | Qt::TextWordWrap ); //NEW WordBread -> TextWordWrap
 
57
 
 
58
    int pageNum() const { return page; }
 
59
 
 
60
    struct Box
 
61
    {
 
62
        QRect rect;
 
63
        QString text;
 
64
        QFont font;
 
65
        int align;
 
66
 
 
67
        Box() : align( 0 ) { }
 
68
        Box( const QRect& r, const QString& t, const QFont& f, int a )
 
69
            : rect( r ), text( t ), font( f ), align( a ) { }
 
70
        Box( const Box& b )
 
71
            : rect( b.rect ), text( b.text ), font( b.font ),
 
72
              align( b.align ) { }
 
73
 
 
74
        Box& operator=( const Box& b ) {
 
75
            rect = b.rect;
 
76
            text = b.text;
 
77
            font = b.font;
 
78
            align = b.align;
 
79
            return *this;
 
80
        }
 
81
 
 
82
        bool operator==( const Box& b ) const {
 
83
            return rect == b.rect && text == b.text && font == b.font &&
 
84
                   align == b.align;
 
85
        }
 
86
    };
 
87
 
 
88
private:
 
89
    void breakPage(bool init = false);
 
90
    void drawRule( Rule rule );
 
91
 
 
92
    struct Paragraph {
 
93
        QRect rect;
 
94
        QList<Box> boxes;
 
95
 
 
96
        Paragraph() { }
 
97
        Paragraph( QPoint p ) : rect( p, QSize(0, 0) ) { }
 
98
    };
 
99
 
 
100
    QPrinter *pr;
 
101
    QPainter p;
 
102
    QFont f8;
 
103
    QFont f10;
 
104
    QFontMetrics *fmetrics;
 
105
    Rule nextRule;
 
106
    Paragraph cp;
 
107
    int page;
 
108
    bool firstParagraph;
 
109
    QString g;
 
110
    QDateTime dateTime;
 
111
 
 
112
    int hmargin;
 
113
    int vmargin;
 
114
    int voffset;
 
115
    int hsize;
 
116
    int vsize;
 
117
};
 
118
 
 
119
#endif