~ubuntu-branches/ubuntu/precise/koffice/precise

« back to all changes in this revision

Viewing changes to libs/koreport/wrtembed/ext3of9paint.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2010-10-27 17:52:57 UTC
  • mfrom: (0.12.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101027175257-s04zqqk5bs8ckm9o
Tags: 1:2.2.83-0ubuntu1
* Merge with Debian git remaining changes:
 - Add build-deps on librcps-dev, opengtl-dev, libqtgtl-dev, freetds-dev,
   create-resources, libspnav-dev
 - Remove needless build-dep on libwv2-dev
 - koffice-libs recommends create-resources
 - krita recommends pstoedit
 - Keep our patches
* New upstream release 2.3 beta 3
  - Remove debian/patches fixed by upstream
  - Update install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * OpenRPT report writer and rendering engine
3
 
 * Copyright (C) 2001-2007 by OpenMFG, LLC (info@openmfg.com)
4
 
 * Copyright (C) 2007-2008 by Adam Pigg (adam@piggz.co.uk)
5
 
 *
6
 
 * This library is free software; you can redistribute it and/or
7
 
 * modify it under the terms of the GNU Lesser General Public
8
 
 * License as published by the Free Software Foundation; either
9
 
 * version 2.1 of the License, or (at your option) any later version.
10
 
 *
11
 
 * This library is distributed in the hope that it will be useful,
12
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
 
 * Lesser General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU Lesser General Public
17
 
 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
18
 
 */
19
 
 
20
 
/*
21
 
 *     This file contains the code that will render the extended 3of9 barcode.
22
 
 * This code will parse a string and build a compliant 3of9 string and then
23
 
 * call the 3of9 renderer to do the actual drawing.
24
 
 */
25
 
 
26
 
#include <QString>
27
 
#include <QRect>
28
 
#include <QPainter>
29
 
 
30
 
#include "barcodepaint.h"
31
 
 
32
 
class _ext3of9map
33
 
{
34
 
public:
35
 
    _ext3of9map(const char c, const QString & s) {
36
 
        code = c; conversion = s;
37
 
    }
38
 
    char code;
39
 
    QString conversion;
40
 
};
41
 
const _ext3of9map ext3of9map[] = {
42
 
    _ext3of9map('\0' , "%U"),   // NUL
43
 
    _ext3of9map('\001' , "$A"),   // SOH
44
 
    _ext3of9map('\002' , "$B"),   // STX
45
 
    _ext3of9map('\003' , "$C"),   // ETX
46
 
    _ext3of9map('\004' , "$D"),   // EOT
47
 
    _ext3of9map('\005' , "$E"),   // ENQ
48
 
    _ext3of9map('\006' , "$F"),   // ACK
49
 
    _ext3of9map('\007' , "$G"),   // BEL
50
 
    _ext3of9map('\010' , "$H"),   // BS
51
 
    _ext3of9map('\011' , "$I"),   // HT
52
 
    _ext3of9map('\012' , "$J"),   // LF
53
 
    _ext3of9map('\013' , "$K"),   // VT
54
 
    _ext3of9map('\014' , "$L"),   // FF
55
 
    _ext3of9map('\015' , "$M"),   // CR
56
 
    _ext3of9map('\016' , "$N"),   // SO
57
 
    _ext3of9map('\017' , "$O"),   // SI
58
 
    _ext3of9map('\020' , "$P"),   // DLE
59
 
    _ext3of9map('\021' , "$Q"),   // DC1
60
 
    _ext3of9map('\022' , "$R"),   // DC2
61
 
    _ext3of9map('\023' , "$S"),   // DC3
62
 
    _ext3of9map('\024' , "$T"),   // DC4
63
 
    _ext3of9map('\025' , "$U"),   // NAK
64
 
    _ext3of9map('\026' , "$V"),   // SYN
65
 
    _ext3of9map('\027' , "$W"),   // ETB
66
 
    _ext3of9map('\030' , "$X"),   // CAN
67
 
    _ext3of9map('\031' , "$Y"),   // EM
68
 
    _ext3of9map('\032' , "$Z"),   // SUB
69
 
    _ext3of9map('\033' , "%A"),   // ESC
70
 
    _ext3of9map('\034' , "%B"),   // FS
71
 
    _ext3of9map('\035' , "%C"),   // GS
72
 
    _ext3of9map('\036' , "%D"),   // RS
73
 
    _ext3of9map('\037' , "%E"),   // US
74
 
    _ext3of9map(' ' , " "),   // SPACE
75
 
    _ext3of9map('!' , "/A"),
76
 
    _ext3of9map('"' , "/B"),
77
 
    _ext3of9map('#' , "/C"),
78
 
    _ext3of9map('$' , "/D"),
79
 
    _ext3of9map('%' , "/E"),
80
 
    _ext3of9map('&' , "/F"),
81
 
    _ext3of9map('\'' , "/G"),
82
 
    _ext3of9map('(' , "/H"),
83
 
    _ext3of9map(')' , "/I"),
84
 
    _ext3of9map('*' , "/J"),
85
 
    _ext3of9map('+' , "/K"),
86
 
    _ext3of9map(',' , "/L"),
87
 
    _ext3of9map('-' , "-"),   // /M
88
 
    _ext3of9map('.' , "."),   // /N
89
 
    _ext3of9map('/' , "/O"),
90
 
    _ext3of9map('0' , "0"),   // /P
91
 
    _ext3of9map('1' , "1"),   // /Q
92
 
    _ext3of9map('2' , "2"),   // /R
93
 
    _ext3of9map('3' , "3"),   // /S
94
 
    _ext3of9map('4' , "4"),   // /T
95
 
    _ext3of9map('5' , "5"),   // /U
96
 
    _ext3of9map('6' , "6"),   // /V
97
 
    _ext3of9map('7' , "7"),   // /W
98
 
    _ext3of9map('8' , "8"),   // /X
99
 
    _ext3of9map('9' , "9"),   // /Y
100
 
    _ext3of9map(':' , "/Z"),
101
 
    _ext3of9map(';' , "%F"),
102
 
    _ext3of9map('<' , "%G"),
103
 
    _ext3of9map('=' , "%H"),
104
 
    _ext3of9map('>' , "%I"),
105
 
    _ext3of9map('?' , "%J"),
106
 
    _ext3of9map('@' , "%V"),
107
 
    _ext3of9map('A' , "A"),
108
 
    _ext3of9map('B' , "B"),
109
 
    _ext3of9map('C' , "C"),
110
 
    _ext3of9map('D' , "D"),
111
 
    _ext3of9map('E' , "E"),
112
 
    _ext3of9map('F' , "F"),
113
 
    _ext3of9map('G' , "G"),
114
 
    _ext3of9map('H' , "H"),
115
 
    _ext3of9map('I' , "I"),
116
 
    _ext3of9map('J' , "J"),
117
 
    _ext3of9map('K' , "K"),
118
 
    _ext3of9map('L' , "L"),
119
 
    _ext3of9map('M' , "M"),
120
 
    _ext3of9map('N' , "N"),
121
 
    _ext3of9map('O' , "O"),
122
 
    _ext3of9map('P' , "P"),
123
 
    _ext3of9map('Q' , "Q"),
124
 
    _ext3of9map('R' , "R"),
125
 
    _ext3of9map('S' , "S"),
126
 
    _ext3of9map('T' , "T"),
127
 
    _ext3of9map('U' , "U"),
128
 
    _ext3of9map('V' , "V"),
129
 
    _ext3of9map('W' , "W"),
130
 
    _ext3of9map('X' , "X"),
131
 
    _ext3of9map('Y' , "Y"),
132
 
    _ext3of9map('Z' , "Z"),
133
 
    _ext3of9map('[' , "%K"),
134
 
    _ext3of9map('\\' , "%L"),
135
 
    _ext3of9map(']' , "%M"),
136
 
    _ext3of9map('^' , "%N"),
137
 
    _ext3of9map('_' , "%O"),
138
 
    _ext3of9map('`' , "%W"),
139
 
    _ext3of9map('a' , "+A"),
140
 
    _ext3of9map('b' , "+B"),
141
 
    _ext3of9map('c' , "+C"),
142
 
    _ext3of9map('d' , "+D"),
143
 
    _ext3of9map('e' , "+E"),
144
 
    _ext3of9map('f' , "+F"),
145
 
    _ext3of9map('g' , "+G"),
146
 
    _ext3of9map('h' , "+H"),
147
 
    _ext3of9map('i' , "+I"),
148
 
    _ext3of9map('j' , "+J"),
149
 
    _ext3of9map('k' , "+K"),
150
 
    _ext3of9map('l' , "+L"),
151
 
    _ext3of9map('m' , "+M"),
152
 
    _ext3of9map('n' , "+N"),
153
 
    _ext3of9map('o' , "+O"),
154
 
    _ext3of9map('p' , "+P"),
155
 
    _ext3of9map('q' , "+Q"),
156
 
    _ext3of9map('r' , "+R"),
157
 
    _ext3of9map('s' , "+S"),
158
 
    _ext3of9map('t' , "+T"),
159
 
    _ext3of9map('u' , "+U"),
160
 
    _ext3of9map('v' , "+V"),
161
 
    _ext3of9map('w' , "+W"),
162
 
    _ext3of9map('x' , "+X"),
163
 
    _ext3of9map('y' , "+Y"),
164
 
    _ext3of9map('z' , "+Z"),
165
 
    _ext3of9map('{' , "%P"),
166
 
    _ext3of9map('|' , "%Q"),
167
 
    _ext3of9map('}' , "%R"),
168
 
    _ext3of9map('~' , "%S"),
169
 
    _ext3of9map('\177' , "%T"),   // DEL
170
 
 
171
 
    _ext3of9map(-1 , 0)
172
 
};
173
 
 
174
 
QString convertTo3of9P(QChar c)
175
 
{
176
 
    for (int i = 0; !ext3of9map[i].conversion.isEmpty(); i++)
177
 
        if (ext3of9map[i].code == c.toAscii())
178
 
            return ext3of9map[i].conversion;
179
 
    return QString();
180
 
}
181
 
 
182
 
 
183
 
void renderExtended3of9(const QRect & r, const QString & str, int align, QPainter * pPainter)
184
 
{
185
 
    QString new_str;
186
 
    QChar c;
187
 
 
188
 
    for (int i = 0; i < str.length(); i++) {
189
 
        c = str.at(i);
190
 
        new_str += convertTo3of9P(c);
191
 
    }
192
 
 
193
 
    render3of9(r, new_str, align, pPainter);
194
 
}
195