~ubuntu-branches/ubuntu/hoary/kvirc/hoary

« back to all changes in this revision

Viewing changes to src/plugins/image/libkviimage.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Robin Verduijn
  • Date: 2004-12-14 15:32:19 UTC
  • mfrom: (0.2.1 upstream) (1.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20041214153219-fdink3gyp2s20b6g
Tags: 2:2.1.3.1-2
* Change Recommends on xmms to a Suggests.
* Rebuild against KDE 3.3.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//
2
 
//   Copyright (C) 1999-2000 Szymon Stefanek (stefanek@tin.it)
3
 
//
4
 
//   This program is FREE software. You can redistribute it and/or
5
 
//   modify it under the terms of the GNU General Public License
6
 
//   as published by the Free Software Foundation; either version 2
7
 
//   of the License, or (at your opinion) any later version.
8
 
//
9
 
//   This program is distributed in the HOPE that it will be USEFUL,
10
 
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
 
//   See the GNU General Public License for more details.
13
 
//
14
 
//   You should have received a copy of the GNU General Public License
15
 
//   along with this program. If not, write to the Free Software Foundation,
16
 
//   Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
 
//
18
 
 
19
 
 
20
 
#define __KVIRC_PLUGIN__
21
 
 
22
 
#include "kvirc_plugin.h"
23
 
 
24
 
#include "libkviimage.h"
25
 
 
26
 
#include "kvi_ircview.h"
27
 
#include "kvi_locale.h"
28
 
#include "kvi_malloc.h"
29
 
 
30
 
#include <qtoolbutton.h>
31
 
#include <qpopupmenu.h>
32
 
#include <qglobal.h>
33
 
#include <qfiledialog.h>
34
 
#include <qdir.h>
35
 
#include <qfileinfo.h>
36
 
 
37
 
KviImageView::KviImageView(QWidget * parent)
38
 
:QScrollView(parent)
39
 
{
40
 
        m_pOriginalPixmap = 0;
41
 
        m_pViewedImage = 0;
42
 
        m_uZoom = 100;
43
 
        resizeContents(0,0);
44
 
}
45
 
 
46
 
KviImageView::~KviImageView()
47
 
{
48
 
        if(m_pViewedImage)delete m_pViewedImage;
49
 
        if(m_pOriginalPixmap)delete m_pOriginalPixmap;
50
 
}
51
 
 
52
 
bool KviImageView::loadImage(const char *fName)
53
 
{
54
 
        QPixmap pix(fName);
55
 
        if(pix.isNull())return false;
56
 
        if(m_pOriginalPixmap)delete m_pOriginalPixmap;
57
 
        m_pOriginalPixmap = new QPixmap(pix);
58
 
        if(m_pViewedImage)delete m_pViewedImage;
59
 
        m_pViewedImage = new QImage();
60
 
        *m_pViewedImage = pix;
61
 
        m_uZoom        = 100;
62
 
        resizeContents(m_pViewedImage->width(),m_pViewedImage->height());
63
 
        viewport()->update();
64
 
        return true;
65
 
}
66
 
 
67
 
void KviImageView::setZoom(unsigned int zoom)
68
 
{
69
 
        if(!m_pOriginalPixmap)m_uZoom = 100;
70
 
        m_uZoom = zoom;
71
 
        if(zoom < 1)m_uZoom = 1;
72
 
        if(zoom > 100000)m_uZoom = 100000; //enough ? :)
73
 
        if(m_pViewedImage)delete m_pViewedImage;
74
 
        m_pViewedImage = new QImage();
75
 
        *m_pViewedImage = *m_pOriginalPixmap;
76
 
        int newW = (m_pOriginalPixmap->width() * m_uZoom) / 100;
77
 
        int newH = (m_pOriginalPixmap->height() * m_uZoom) / 100; 
78
 
        *m_pViewedImage = m_pViewedImage->smoothScale(newW,newH);
79
 
        resizeContents(m_pViewedImage->width(),m_pViewedImage->height());
80
 
        viewport()->update();
81
 
}
82
 
 
83
 
void KviImageView::drawContents(QPainter *p,int clipx,int clipy,int clipw,int cliph)
84
 
{
85
 
//      debug("%d,%d,%d,%d",clipx,clipy,clipw,cliph);
86
 
        if(m_pViewedImage){
87
 
                int w = m_pViewedImage->width() - clipx;
88
 
                int h = m_pViewedImage->height() - clipy;
89
 
                if(w > clipw)w = clipw;
90
 
                if(h > cliph)h = cliph;
91
 
                if((w >= 0) && (h >= 0))p->drawImage(clipx,clipy,*m_pViewedImage,clipx,clipy,w,h);
92
 
        }
93
 
}
94
 
 
95
 
static const char * zoom_up_xpm[] = {
96
 
"32 32 216 2",
97
 
"       c None",
98
 
".      c #020204",
99
 
"+      c #1686F4",
100
 
"@      c #6EC6F4",
101
 
"#      c #0242FC",
102
 
"$      c #424244",
103
 
"%      c #7286B4",
104
 
"&      c #0662F4",
105
 
"*      c #26A2F4",
106
 
"=      c #0A76F4",
107
 
"-      c #C2C2C4",
108
 
";      c #3E8AF4",
109
 
">      c #222224",
110
 
",      c #3242FC",
111
 
"'      c #1692EC",
112
 
")      c #0222FC",
113
 
"!      c #0252FC",
114
 
"~      c #72B2F4",
115
 
"{      c #4AA2F4",
116
 
"]      c #1662F4",
117
 
"^      c #96D2F4",
118
 
"/      c #2272F4",
119
 
"(      c #BAE2F4",
120
 
"_      c #2A82F4",
121
 
":      c #1256FC",
122
 
"<      c #A2A2A4",
123
 
"[      c #0232FC",
124
 
"}      c #666664",
125
 
"|      c #3EA2F4",
126
 
"1      c #2A92C4",
127
 
"2      c #1A6AD4",
128
 
"3      c #025AF4",
129
 
"4      c #56B2F4",
130
 
"5      c #8EC2F4",
131
 
"6      c #0A7AF4",
132
 
"7      c #0E3244",
133
 
"8      c #A6D2F4",
134
 
"9      c #E2E2E4",
135
 
"0      c #066EF4",
136
 
"a      c #BADEF4",
137
 
"b      c #4A96F4",
138
 
"c      c #267AF4",
139
 
"d      c #2A8EF4",
140
 
"e      c #021EFC",
141
 
"f      c #024AFC",
142
 
"g      c #929294",
143
 
"h      c #3A5A7C",
144
 
"i      c #022AFC",
145
 
"j      c #7EBAF4",
146
 
"k      c #B6B6B4",
147
 
"l      c #767674",
148
 
"m      c #329AC4",
149
 
"n      c #166AF4",
150
 
"o      c #121214",
151
 
"p      c #168EEC",
152
 
"q      c #023AFC",
153
 
"r      c #3EAAF4",
154
 
"s      c #F6F6F4",
155
 
"t      c #5E9EF4",
156
 
"u      c #5E5E5C",
157
 
"v      c #0E62EC",
158
 
"w      c #2AAAEC",
159
 
"x      c #1A72CC",
160
 
"y      c #0E52FC",
161
 
"z      c #6EBAF4",
162
 
"A      c #5EA2F4",
163
 
"B      c #0A5EF4",
164
 
"C      c #52BEEC",
165
 
"D      c #82CEF4",
166
 
"E      c #323234",
167
 
"F      c #AADAF4",
168
 
"G      c #D2D2D4",
169
 
"H      c #429EF4",
170
 
"I      c #2E7AF4",
171
 
"J      c #368AF4",
172
 
"K      c #1E6AFC",
173
 
"L      c #2682F4",
174
 
"M      c #76CEF4",
175
 
"N      c #4A4A4C",
176
 
"O      c #828284",
177
 
"P      c #2A2A2C",
178
 
"Q      c #2E4AF4",
179
 
"R      c #1E9EF4",
180
 
"S      c #2262DC",
181
 
"T      c #A2D2F4",
182
 
"U      c #1E5EDC",
183
 
"V      c #A6AAEC",
184
 
"W      c #6E6E6C",
185
 
"X      c #2E92F4",
186
 
"Y      c #025EF4",
187
 
"Z      c #1A7ACC",
188
 
"`      c #EAEAEC",
189
 
" .     c #0A4EFC",
190
 
"..     c #162AFC",
191
 
"+.     c #1A1A1C",
192
 
"@.     c #023EFC",
193
 
"#.     c #46AAF4",
194
 
"$.     c #B2DEF4",
195
 
"%.     c #DADADC",
196
 
"&.     c #7AC6F4",
197
 
"*.     c #0246FC",
198
 
"=.     c #32A2F4",
199
 
"-.     c #CECECC",
200
 
";.     c #2E46F4",
201
 
">.     c #2296F4",
202
 
",.     c #0226FC",
203
 
"'.     c #2E76F4",
204
 
").     c #C2E2F4",
205
 
"!.     c #3682F4",
206
 
"~.     c #127AF4",
207
 
"{.     c #0E6EF4",
208
 
"].     c #4E9AF4",
209
 
"^.     c #2A7AF4",
210
 
"/.     c #024EFC",
211
 
"(.     c #9E9E9C",
212
 
"_.     c #2656E4",
213
 
":.     c #022EFC",
214
 
"<.     c #BEBEBC",
215
 
"[.     c #7E7E7C",
216
 
"}.     c #2E9EF4",
217
 
"|.     c #3EAEE4",
218
 
"1.     c #0A66F4",
219
 
"2.     c #1A72F4",
220
 
"3.     c #0A56FC",
221
 
"4.     c #7ABAF4",
222
 
"5.     c #66AEF4",
223
 
"6.     c #5ABAEC",
224
 
"7.     c #8ACAF4",
225
 
"8.     c #3A3A3C",
226
 
"9.     c #8E8E8C",
227
 
"0.     c #56AEF4",
228
 
"a.     c #4A92F4",
229
 
"b.     c #0A0A0C",
230
 
"c.     c #AAAAAC",
231
 
"d.     c #FEFEFC",
232
 
"e.     c #1E66FC",
233
 
"f.     c #6AA6F4",
234
 
"g.     c #165EFC",
235
 
"h.     c #3A9EF4",
236
 
"i.     c #1E82F4",
237
 
"j.     c #7AB6F4",
238
 
"k.     c #86BEF4",
239
 
"l.     c #1A96F4",
240
 
"m.     c #6A6A6C",
241
 
"n.     c #12364C",
242
 
"o.     c #BABABC",
243
 
"p.     c #7A7A7C",
244
 
"q.     c #226EF4",
245
 
"r.     c #727274",
246
 
"s.     c #464644",
247
 
"t.     c #0266F4",
248
 
"u.     c #2AA6F4",
249
 
"v.     c #C6C6C4",
250
 
"w.     c #262624",
251
 
"x.     c #2676F4",
252
 
"y.     c #165AFC",
253
 
"z.     c #3AA6F4",
254
 
"A.     c #8AC6F4",
255
 
"B.     c #E6E6E4",
256
 
"C.     c #227EF4",
257
 
"D.     c #969694",
258
 
"E.     c #161614",
259
 
"F.     c #2EAEEC",
260
 
"G.     c #363634",
261
 
"H.     c #AEDEF4",
262
 
"I.     c #D6D6D4",
263
 
"J.     c #3A8EF4",
264
 
"K.     c #2286F4",
265
 
"L.     c #4E4E4C",
266
 
"M.     c #868684",
267
 
"N.     c #2E2E2C",
268
 
"O.     c #EEEEEC",
269
 
"P.     c #1E1E1C",
270
 
"Q.     c #DEDEDC",
271
 
"R.     c #1676F4",
272
 
"S.     c #76BEF4",
273
 
"T.     c #1E8EF4",
274
 
"U.     c #56B6EC",
275
 
"V.     c #328EF4",
276
 
"W.     c #4A9EF4",
277
 
"X.     c #3692F4",
278
 
"Y.     c #1666F4",
279
 
"Z.     c #0236FC",
280
 
"`.     c #2A96C4",
281
 
" +     c #1A6ED4",
282
 
".+     c #A2D6F4",
283
 
"++     c #A6AEEC",
284
 
"@+     c #7ACAF4",
285
 
"#+     c #3686F4",
286
 
"$+     c #127EF4",
287
 
"%+     c #265AE4",
288
 
"&+     c #8ACEF4",
289
 
"*+     c #42AEF4",
290
 
"=+     c #065AFC",
291
 
"-+     c #0E66EC",
292
 
";+     c #0E76F4",
293
 
">+     c #0652FC",
294
 
",+     c #9AD2F4",
295
 
"'+     c #BEE2F4",
296
 
")+     c #0A6EF4",
297
 
"!+     c #4E96F4",
298
 
"~+     c #064AFC",
299
 
"{+     c #062AFC",
300
 
"]+     c #1A6AF4",
301
 
"^+     c #063AFC",
302
 
"/+     c #56BEEC",
303
 
"(+     c #AEDAF4",
304
 
"_+     c #327AF4",
305
 
":+     c #3A8AF4",
306
 
"<+     c #226AFC",
307
 
"[+     c #065EF4",
308
 
"}+     c #063EFC",
309
 
"|+     c #0646FC",
310
 
"1+     c #3246F4",
311
 
"2+     c #0626FC",
312
 
"3+     c #0E56FC",
313
 
"                                                                ",
314
 
"                                                                ",
315
 
"                  O.B.Q.G -.-                       . .         ",
316
 
"              s g N.E.+.P E L.M.c.                  . .         ",
317
 
"          d.o.b.7 1 w R l.p x h u M.9.          . . . . . .     ",
318
 
"        d.D.. m C U.*+z.}.T.$+0 2 W O [.        . . . . . .     ",
319
 
"        o.. |.@ D &.z #.h.d + {.t.B [.p.            . .         ",
320
 
"      s o m M ,+F .+k.5.H d C.{.1.=+U 9.}           . .         ",
321
 
"      9.7 /+&+(+).'+T j.W.:+c n Y ! f % l                       ",
322
 
"    ` P 1 /+D H.'+a T j.].#+x.Y.3.f *._.(.N                     ",
323
 
"    9 E.w 4 &.T F 8 5 f.a.!.q.g.>+# @.^+k 8.                    ",
324
 
"    %.P.w r 0.4.k.j.~ !+#+'.Y.3+*.# Z.[ v.8.                    ",
325
 
"    -.w.R }.| { A t a.; '.e.y.~+@.q :.i -.N.                    ",
326
 
"    v.E ' >.X X.X.:+!._+<+U y # q [ :.,.G >                     ",
327
 
"    <.L.x + K.L _ ^./ <+y.y # q [ i ,.;.- +.                    ",
328
 
"      M.h 6 6 R.2.]+g.3+>+# q [ i ,.e V W                       ",
329
 
"      < u  +t.0 1.[+3.*.# @.[ :.,.e , %.o                       ",
330
 
"        M.W -+[+3 ! f *.q [ :.,.e ..O.s.                        ",
331
 
"        M.[.[.S ! f # @.Z.:.i ) ;.` m.b..                       ",
332
 
"          r.r.9.% %+}+Z.:.:.;.V %.s.. . . .                     ",
333
 
"              u r.(.k v.v.I.- m.o   . 9.Q.. .                   ",
334
 
"                  $ 8.E P P.E.        . 9.Q.. .                 ",
335
 
"                                        . 9.Q.. .               ",
336
 
"                                          . 9.Q.. .             ",
337
 
"                                            . 9.Q.. .           ",
338
 
"                                              . 9.Q.. .         ",
339
 
"                                                . 9.Q.. .       ",
340
 
"                                                  . 9.Q..       ",
341
 
"                                                    . .         ",
342
 
"                                                                ",
343
 
"                                                                ",
344
 
"                                                                "};
345
 
 
346
 
static const char * zoom_none_xpm[] = {
347
 
"32 32 167 2",
348
 
"       c None",
349
 
".      c #EFEFEF",
350
 
"+      c #E6E6E6",
351
 
"@      c #DEDEDE",
352
 
"#      c #D5D5D5",
353
 
"$      c #CDCDCD",
354
 
"%      c #C4C4C4",
355
 
"&      c #FF0000",
356
 
"*      c #F7F7F7",
357
 
"=      c #919191",
358
 
"-      c #2E2E2E",
359
 
";      c #161616",
360
 
">      c #1D1D1D",
361
 
",      c #272727",
362
 
"'      c #333333",
363
 
")      c #4F4F4F",
364
 
"!      c #878787",
365
 
"~      c #AAAAAA",
366
 
"{      c #111111",
367
 
"]      c #0F3246",
368
 
"^      c #2892C6",
369
 
"/      c #29A8EB",
370
 
"(      c #24A1F0",
371
 
"_      c #1896F1",
372
 
":      c #158DED",
373
 
"<      c #1972CC",
374
 
"[      c #3A5979",
375
 
"}      c #5D5D5D",
376
 
"|      c #53BCEF",
377
 
"1      c #54B7EF",
378
 
"2      c #43AEF0",
379
 
"3      c #38A4F1",
380
 
"4      c #2E9CF2",
381
 
"5      c #1F8DF3",
382
 
"6      c #107FF3",
383
 
"7      c #0877F4",
384
 
"8      c #6CBAF1",
385
 
"9      c #47A8F2",
386
 
"0      c #399CF3",
387
 
"a      c #288EF3",
388
 
"b      c #1D82F4",
389
 
"c      c #F4F4F4",
390
 
"d      c #65ADF2",
391
 
"e      c #439DF3",
392
 
"f      c #308CF4",
393
 
"g      c #909090",
394
 
"h      c #646464",
395
 
"i      c #8F8F8F",
396
 
"j      c #113448",
397
 
"k      c #57BEEF",
398
 
"l      c #4B9DF4",
399
 
"m      c #358AF5",
400
 
"n      c #024BF9",
401
 
"o      c #7384B4",
402
 
"p      c #787878",
403
 
"q      c #EBEBEB",
404
 
"r      c #2D2D2D",
405
 
"s      c #2A94C6",
406
 
"t      c #5ABBEF",
407
 
"u      c #88CBF3",
408
 
"v      c #B0DCF6",
409
 
"w      c #024CF9",
410
 
"x      c #0245FA",
411
 
"y      c #2454E7",
412
 
"z      c #A0A0A0",
413
 
"A      c #494949",
414
 
"B      c #E1E1E1",
415
 
"C      c #2FADEA",
416
 
"D      c #54B3F0",
417
 
"E      c #79C4F2",
418
 
"F      c #9AD0F4",
419
 
"G      c #ADD9F6",
420
 
"H      c #0245F9",
421
 
"I      c #013EFA",
422
 
"J      c #0439F9",
423
 
"K      c #B7B7B7",
424
 
"L      c #404040",
425
 
"M      c #D8D8D8",
426
 
"N      c #29A7F0",
427
 
"O      c #3EABF1",
428
 
"P      c #57AEF1",
429
 
"Q      c #77BCF2",
430
 
"R      c #85BEF4",
431
 
"S      c #7EBAF4",
432
 
"T      c #0246F9",
433
 
"U      c #013FFA",
434
 
"V      c #0138FB",
435
 
"W      c #0131FC",
436
 
"X      c #373737",
437
 
"Y      c #CFCFCF",
438
 
"Z      c #1E9CF1",
439
 
"`      c #31A0F1",
440
 
" .     c #3EA0F2",
441
 
"..     c #49A2F3",
442
 
"+.     c #5DA3F4",
443
 
"@.     c #5D9FF5",
444
 
"#.     c #4A94F5",
445
 
"$.     c #002AFC",
446
 
"%.     c #C6C6C6",
447
 
"&.     c #1792EC",
448
 
"*.     c #2394F2",
449
 
"=.     c #2C92F3",
450
 
"-.     c #3692F4",
451
 
";.     c #3A8FF4",
452
 
">.     c #0427FB",
453
 
",.     c #D3D3D3",
454
 
"'.     c #252525",
455
 
").     c #BDBDBD",
456
 
"!.     c #4E4E4E",
457
 
"~.     c #1978CC",
458
 
"{.     c #1687F3",
459
 
"].     c #2087F4",
460
 
"^.     c #2483F4",
461
 
"/.     c #2E46F5",
462
 
"(.     c #C1C1C1",
463
 
"_.     c #1C1C1C",
464
 
":.     c #838383",
465
 
"<.     c #3A5B79",
466
 
"[.     c #0B7AF3",
467
 
"}.     c #1279F4",
468
 
"|.     c #1474F5",
469
 
"1.     c #0241FA",
470
 
"2.     c #013AFB",
471
 
"3.     c #A2A2A2",
472
 
"4.     c #5C5C5C",
473
 
"5.     c #186FD4",
474
 
"6.     c #046CF5",
475
 
"7.     c #0249F9",
476
 
"8.     c #0242FA",
477
 
"9.     c #013BFB",
478
 
"0.     c #0134FB",
479
 
"a.     c #012DFC",
480
 
"b.     c #868686",
481
 
"c.     c #6B6B6B",
482
 
"d.     c #0243FA",
483
 
"e.     c #013CFB",
484
 
"f.     c #0135FB",
485
 
"g.     c #012EFC",
486
 
"h.     c #0027FD",
487
 
"i.     c #0020FE",
488
 
"j.     c #013CFA",
489
 
"k.     c #3044F7",
490
 
"l.     c #696969",
491
 
"m.     c #2559E7",
492
 
"n.     c #043FF8",
493
 
"o.     c #0136FB",
494
 
"p.     c #012FFC",
495
 
"q.     c #042BFB",
496
 
"r.     c #2E48F5",
497
 
"s.     c #A5ACE8",
498
 
"t.     c #DBDBDB",
499
 
"u.     c #454545",
500
 
"v.     c #080808",
501
 
"w.     c #737373",
502
 
"x.     c #9E9E9E",
503
 
"y.     c #C0C0C0",
504
 
"z.     c #6A6A6A",
505
 
"A.     c #101010",
506
 
"B.     c #000000",
507
 
"C.     c #8C8C8C",
508
 
"D.     c #E0E0E0",
509
 
"E.     c #424242",
510
 
"F.     c #3A3A3A",
511
 
"G.     c #313131",
512
 
"H.     c #292929",
513
 
"I.     c #202020",
514
 
"J.     c #181818",
515
 
"                                                                ",
516
 
"                                                                ",
517
 
"                  . + @ # $ %                                   ",
518
 
"    & & & &   * = - ; > , ' ) ! ~   & & &                       ",
519
 
"    & & & & & { ] ^ / ( _ : < [ } & & & &                       ",
520
 
"    & & & & & & | 1 2 3 4 5 6 7 & & & & &                       ",
521
 
"        & & & & & & 8 9 0 a b & & & & & &                       ",
522
 
"      c { & & & & & & d e f & & & & & g h                       ",
523
 
"      i j k & & & & & & l m & & & & n o p                       ",
524
 
"    q r s t u v & & & & & & & & & w x y z A                     ",
525
 
"    B ; C D E F G & & & & & & & & H I J K L                     ",
526
 
"    M > N O P Q R S & & & & & & T U V W % X                     ",
527
 
"    Y , Z `  ...+.@.#.& & & & & & V W $.$ -                     ",
528
 
"    %.' &.*.=.-.;.& & & & & & & & & & >.,.'.                    ",
529
 
"    ).!.~.{.].^.& & & & & & & & & & & /.(._.                    ",
530
 
"      :.<.[.}.|.& & & & & 1.2.& & & & & &                       ",
531
 
"      3.4.5.6.& & & & 7.8.9.0.a.& & & & & &                     ",
532
 
"        b.c.& & & & & d.e.f.g.h.i.& & & & &                     ",
533
 
"        ! & & & & & d.j.f.g.h.i.k.q l.& & &                     ",
534
 
"        & & & & & m.n.o.p.q.r.s.t.u.v.& & &                     ",
535
 
"        & & & & w.x.K % $ ,.y.z.A.  B.C.D.B.B.                  ",
536
 
"        & & &     E.F.G.H.I.J.        B.C.D.B.B.                ",
537
 
"                                        B.C.D.B.B.              ",
538
 
"                                          B.C.D.B.B.            ",
539
 
"                                            B.C.D.B.B.          ",
540
 
"                                              B.C.D.B.B.        ",
541
 
"                                                B.C.D.B.B.      ",
542
 
"                                                  B.C.D.B.      ",
543
 
"                                                    B.B.        ",
544
 
"                                                                ",
545
 
"                                                                ",
546
 
"                                                                "};
547
 
 
548
 
static const char * zoom_down_xpm[] = {
549
 
"32 32 216 2",
550
 
"       c None",
551
 
".      c #020204",
552
 
"+      c #1686F4",
553
 
"@      c #6EC6F4",
554
 
"#      c #0242FC",
555
 
"$      c #424244",
556
 
"%      c #7286B4",
557
 
"&      c #0662F4",
558
 
"*      c #26A2F4",
559
 
"=      c #0A76F4",
560
 
"-      c #C2C2C4",
561
 
";      c #3E8AF4",
562
 
">      c #222224",
563
 
",      c #3242FC",
564
 
"'      c #1692EC",
565
 
")      c #0222FC",
566
 
"!      c #0252FC",
567
 
"~      c #72B2F4",
568
 
"{      c #4AA2F4",
569
 
"]      c #1662F4",
570
 
"^      c #96D2F4",
571
 
"/      c #2272F4",
572
 
"(      c #BAE2F4",
573
 
"_      c #2A82F4",
574
 
":      c #1256FC",
575
 
"<      c #A2A2A4",
576
 
"[      c #0232FC",
577
 
"}      c #666664",
578
 
"|      c #3EA2F4",
579
 
"1      c #2A92C4",
580
 
"2      c #1A6AD4",
581
 
"3      c #025AF4",
582
 
"4      c #56B2F4",
583
 
"5      c #8EC2F4",
584
 
"6      c #0A7AF4",
585
 
"7      c #0E3244",
586
 
"8      c #A6D2F4",
587
 
"9      c #E2E2E4",
588
 
"0      c #066EF4",
589
 
"a      c #BADEF4",
590
 
"b      c #4A96F4",
591
 
"c      c #267AF4",
592
 
"d      c #2A8EF4",
593
 
"e      c #021EFC",
594
 
"f      c #024AFC",
595
 
"g      c #929294",
596
 
"h      c #3A5A7C",
597
 
"i      c #022AFC",
598
 
"j      c #7EBAF4",
599
 
"k      c #B6B6B4",
600
 
"l      c #767674",
601
 
"m      c #329AC4",
602
 
"n      c #166AF4",
603
 
"o      c #121214",
604
 
"p      c #168EEC",
605
 
"q      c #023AFC",
606
 
"r      c #3EAAF4",
607
 
"s      c #F6F6F4",
608
 
"t      c #5E9EF4",
609
 
"u      c #5E5E5C",
610
 
"v      c #0E62EC",
611
 
"w      c #2AAAEC",
612
 
"x      c #1A72CC",
613
 
"y      c #0E52FC",
614
 
"z      c #6EBAF4",
615
 
"A      c #5EA2F4",
616
 
"B      c #0A5EF4",
617
 
"C      c #52BEEC",
618
 
"D      c #82CEF4",
619
 
"E      c #323234",
620
 
"F      c #AADAF4",
621
 
"G      c #D2D2D4",
622
 
"H      c #429EF4",
623
 
"I      c #2E7AF4",
624
 
"J      c #368AF4",
625
 
"K      c #1E6AFC",
626
 
"L      c #2682F4",
627
 
"M      c #76CEF4",
628
 
"N      c #4A4A4C",
629
 
"O      c #828284",
630
 
"P      c #2A2A2C",
631
 
"Q      c #2E4AF4",
632
 
"R      c #1E9EF4",
633
 
"S      c #2262DC",
634
 
"T      c #A2D2F4",
635
 
"U      c #1E5EDC",
636
 
"V      c #A6AAEC",
637
 
"W      c #6E6E6C",
638
 
"X      c #2E92F4",
639
 
"Y      c #025EF4",
640
 
"Z      c #1A7ACC",
641
 
"`      c #EAEAEC",
642
 
" .     c #0A4EFC",
643
 
"..     c #162AFC",
644
 
"+.     c #1A1A1C",
645
 
"@.     c #023EFC",
646
 
"#.     c #46AAF4",
647
 
"$.     c #B2DEF4",
648
 
"%.     c #DADADC",
649
 
"&.     c #7AC6F4",
650
 
"*.     c #0246FC",
651
 
"=.     c #32A2F4",
652
 
"-.     c #CECECC",
653
 
";.     c #2E46F4",
654
 
">.     c #2296F4",
655
 
",.     c #0226FC",
656
 
"'.     c #2E76F4",
657
 
").     c #C2E2F4",
658
 
"!.     c #3682F4",
659
 
"~.     c #127AF4",
660
 
"{.     c #0E6EF4",
661
 
"].     c #4E9AF4",
662
 
"^.     c #2A7AF4",
663
 
"/.     c #024EFC",
664
 
"(.     c #9E9E9C",
665
 
"_.     c #2656E4",
666
 
":.     c #022EFC",
667
 
"<.     c #BEBEBC",
668
 
"[.     c #7E7E7C",
669
 
"}.     c #2E9EF4",
670
 
"|.     c #3EAEE4",
671
 
"1.     c #0A66F4",
672
 
"2.     c #1A72F4",
673
 
"3.     c #0A56FC",
674
 
"4.     c #7ABAF4",
675
 
"5.     c #66AEF4",
676
 
"6.     c #5ABAEC",
677
 
"7.     c #8ACAF4",
678
 
"8.     c #3A3A3C",
679
 
"9.     c #8E8E8C",
680
 
"0.     c #56AEF4",
681
 
"a.     c #4A92F4",
682
 
"b.     c #0A0A0C",
683
 
"c.     c #AAAAAC",
684
 
"d.     c #FEFEFC",
685
 
"e.     c #1E66FC",
686
 
"f.     c #6AA6F4",
687
 
"g.     c #165EFC",
688
 
"h.     c #3A9EF4",
689
 
"i.     c #1E82F4",
690
 
"j.     c #7AB6F4",
691
 
"k.     c #86BEF4",
692
 
"l.     c #1A96F4",
693
 
"m.     c #6A6A6C",
694
 
"n.     c #12364C",
695
 
"o.     c #BABABC",
696
 
"p.     c #7A7A7C",
697
 
"q.     c #226EF4",
698
 
"r.     c #727274",
699
 
"s.     c #464644",
700
 
"t.     c #0266F4",
701
 
"u.     c #2AA6F4",
702
 
"v.     c #C6C6C4",
703
 
"w.     c #262624",
704
 
"x.     c #2676F4",
705
 
"y.     c #165AFC",
706
 
"z.     c #3AA6F4",
707
 
"A.     c #8AC6F4",
708
 
"B.     c #E6E6E4",
709
 
"C.     c #227EF4",
710
 
"D.     c #969694",
711
 
"E.     c #161614",
712
 
"F.     c #2EAEEC",
713
 
"G.     c #363634",
714
 
"H.     c #AEDEF4",
715
 
"I.     c #D6D6D4",
716
 
"J.     c #3A8EF4",
717
 
"K.     c #2286F4",
718
 
"L.     c #4E4E4C",
719
 
"M.     c #868684",
720
 
"N.     c #2E2E2C",
721
 
"O.     c #EEEEEC",
722
 
"P.     c #1E1E1C",
723
 
"Q.     c #DEDEDC",
724
 
"R.     c #1676F4",
725
 
"S.     c #76BEF4",
726
 
"T.     c #1E8EF4",
727
 
"U.     c #56B6EC",
728
 
"V.     c #328EF4",
729
 
"W.     c #4A9EF4",
730
 
"X.     c #3692F4",
731
 
"Y.     c #1666F4",
732
 
"Z.     c #0236FC",
733
 
"`.     c #2A96C4",
734
 
" +     c #1A6ED4",
735
 
".+     c #A2D6F4",
736
 
"++     c #A6AEEC",
737
 
"@+     c #7ACAF4",
738
 
"#+     c #3686F4",
739
 
"$+     c #127EF4",
740
 
"%+     c #265AE4",
741
 
"&+     c #8ACEF4",
742
 
"*+     c #42AEF4",
743
 
"=+     c #065AFC",
744
 
"-+     c #0E66EC",
745
 
";+     c #0E76F4",
746
 
">+     c #0652FC",
747
 
",+     c #9AD2F4",
748
 
"'+     c #BEE2F4",
749
 
")+     c #0A6EF4",
750
 
"!+     c #4E96F4",
751
 
"~+     c #064AFC",
752
 
"{+     c #062AFC",
753
 
"]+     c #1A6AF4",
754
 
"^+     c #063AFC",
755
 
"/+     c #56BEEC",
756
 
"(+     c #AEDAF4",
757
 
"_+     c #327AF4",
758
 
":+     c #3A8AF4",
759
 
"<+     c #226AFC",
760
 
"[+     c #065EF4",
761
 
"}+     c #063EFC",
762
 
"|+     c #0646FC",
763
 
"1+     c #3246F4",
764
 
"2+     c #0626FC",
765
 
"3+     c #0E56FC",
766
 
"                                                                ",
767
 
"                                                                ",
768
 
"                  O.B.Q.G -.-                                   ",
769
 
"              s g N.E.+.P E L.M.c.                              ",
770
 
"          d.o.b.7 1 w R l.p x h u M.9.          . . . . . .     ",
771
 
"        d.D.. m C U.*+z.}.T.$+0 2 W O [.        . . . . . .     ",
772
 
"        o.. |.@ D &.z #.h.d + {.t.B [.p.                        ",
773
 
"      s o m M ,+F .+k.5.H d C.{.1.=+U 9.}                       ",
774
 
"      9.7 /+&+(+).'+T j.W.:+c n Y ! f % l                       ",
775
 
"    ` P 1 /+D H.'+a T j.].#+x.Y.3.f *._.(.N                     ",
776
 
"    9 E.w 4 &.T F 8 5 f.a.!.q.g.>+# @.^+k 8.                    ",
777
 
"    %.P.w r 0.4.k.j.~ !+#+'.Y.3+*.# Z.[ v.8.                    ",
778
 
"    -.w.R }.| { A t a.; '.e.y.~+@.q :.i -.N.                    ",
779
 
"    v.E ' >.X X.X.:+!._+<+U y # q [ :.,.G >                     ",
780
 
"    <.L.x + K.L _ ^./ <+y.y # q [ i ,.;.- +.                    ",
781
 
"      M.h 6 6 R.2.]+g.3+>+# q [ i ,.e V W                       ",
782
 
"      < u  +t.0 1.[+3.*.# @.[ :.,.e , %.o                       ",
783
 
"        M.W -+[+3 ! f *.q [ :.,.e ..O.s.                        ",
784
 
"        M.[.[.S ! f # @.Z.:.i ) ;.` m.b..                       ",
785
 
"          r.r.9.% %+}+Z.:.:.;.V %.s.. . . .                     ",
786
 
"              u r.(.k v.v.I.- m.o   . 9.Q.. .                   ",
787
 
"                  $ 8.E P P.E.        . 9.Q.. .                 ",
788
 
"                                        . 9.Q.. .               ",
789
 
"                                          . 9.Q.. .             ",
790
 
"                                            . 9.Q.. .           ",
791
 
"                                              . 9.Q.. .         ",
792
 
"                                                . 9.Q.. .       ",
793
 
"                                                  . 9.Q..       ",
794
 
"                                                    . .         ",
795
 
"                                                                ",
796
 
"                                                                ",
797
 
"                                                                "};
798
 
 
799
 
static const char * open_file_xpm[] = {
800
 
"32 32 208 2",
801
 
"       c None",
802
 
".      c #FFFFFF",
803
 
"+      c #F6F6F6",
804
 
"@      c #EEEEEE",
805
 
"#      c #E5E5E5",
806
 
"$      c #DDDDDD",
807
 
"%      c #D4D4D4",
808
 
"&      c #CCCCCC",
809
 
"*      c #C3C3C3",
810
 
"=      c #BBBBBB",
811
 
"-      c #B2B2B2",
812
 
";      c #AAAAAA",
813
 
">      c #A1A1A1",
814
 
",      c #999999",
815
 
"'      c #909090",
816
 
")      c #878787",
817
 
"!      c #7F7F7F",
818
 
"~      c #777777",
819
 
"{      c #6E6E6E",
820
 
"]      c #666666",
821
 
"^      c #5D5D5D",
822
 
"/      c #555555",
823
 
"(      c #4C4C4C",
824
 
"_      c #444444",
825
 
":      c #E6E6E6",
826
 
"<      c #DEDEDE",
827
 
"[      c #D6D6D6",
828
 
"}      c #CECECE",
829
 
"|      c #C6C6C6",
830
 
"1      c #BEBEBE",
831
 
"2      c #B6B6B6",
832
 
"3      c #AEAEAE",
833
 
"4      c #A6A6A6",
834
 
"5      c #9D9D9D",
835
 
"6      c #959595",
836
 
"7      c #8D8D8D",
837
 
"8      c #858585",
838
 
"9      c #7D7D7D",
839
 
"0      c #757575",
840
 
"a      c #6D6D6D",
841
 
"b      c #656565",
842
 
"c      c #4D4D4D",
843
 
"d      c #3C3C3C",
844
 
"e      c #343434",
845
 
"f      c #FAFAFA",
846
 
"g      c #F1F1F1",
847
 
"h      c #E9E9E9",
848
 
"i      c #E1E1E1",
849
 
"j      c #D9D9D9",
850
 
"k      c #D1D1D1",
851
 
"l      c #C9C9C9",
852
 
"m      c #C1C1C1",
853
 
"n      c #B9B9B9",
854
 
"o      c #B1B1B1",
855
 
"p      c #A9A9A9",
856
 
"q      c #989898",
857
 
"r      c #888888",
858
 
"s      c #808080",
859
 
"t      c #787878",
860
 
"u      c #707070",
861
 
"v      c #686868",
862
 
"w      c #606060",
863
 
"x      c #585858",
864
 
"y      c #505050",
865
 
"z      c #484848",
866
 
"A      c #404040",
867
 
"B      c #373737",
868
 
"C      c #2F2F2F",
869
 
"D      c #F5F5F5",
870
 
"E      c #EDEDED",
871
 
"F      c #FBFBFB",
872
 
"G      c #F4F4F4",
873
 
"H      c #E7E7E7",
874
 
"I      c #E0E0E0",
875
 
"J      c #DADADA",
876
 
"K      c #D3D3D3",
877
 
"L      c #CDCDCD",
878
 
"M      c #BFBFBF",
879
 
"N      c #ACACAC",
880
 
"O      c #A5A5A5",
881
 
"P      c #9F9F9F",
882
 
"Q      c #919191",
883
 
"R      c #8B8B8B",
884
 
"S      c #848484",
885
 
"T      c #7E7E7E",
886
 
"U      c #F0F0F0",
887
 
"V      c #E8E8E8",
888
 
"W      c #FDFDFD",
889
 
"X      c #F7F7F7",
890
 
"Y      c #E3E3E3",
891
 
"Z      c #DCDCDC",
892
 
"`      c #CFCFCF",
893
 
" .     c #C2C2C2",
894
 
"..     c #B5B5B5",
895
 
"+.     c #A8A8A8",
896
 
"@.     c #9B9B9B",
897
 
"#.     c #949494",
898
 
"$.     c #7A7A7A",
899
 
"%.     c #737373",
900
 
"&.     c #EBEBEB",
901
 
"*.     c #F9F9F9",
902
 
"=.     c #F3F3F3",
903
 
"-.     c #ECECEC",
904
 
";.     c #DFDFDF",
905
 
">.     c #D8D8D8",
906
 
",.     c #D2D2D2",
907
 
"'.     c #CBCBCB",
908
 
").     c #C5C5C5",
909
 
"!.     c #B8B8B8",
910
 
"~.     c #A4A4A4",
911
 
"{.     c #979797",
912
 
"].     c #8A8A8A",
913
 
"^.     c #838383",
914
 
"/.     c #7C7C7C",
915
 
"(.     c #767676",
916
 
"_.     c #6F6F6F",
917
 
":.     c #696969",
918
 
"<.     c #626262",
919
 
"[.     c #5C5C5C",
920
 
"}.     c #EAEAEA",
921
 
"|.     c #E2E2E2",
922
 
"1.     c #DBDBDB",
923
 
"2.     c #C7C7C7",
924
 
"3.     c #BABABA",
925
 
"4.     c #B4B4B4",
926
 
"5.     c #ADADAD",
927
 
"6.     c #A0A0A0",
928
 
"7.     c #939393",
929
 
"8.     c #8C8C8C",
930
 
"9.     c #868686",
931
 
"0.     c #727272",
932
 
"a.     c #6B6B6B",
933
 
"b.     c #5E5E5E",
934
 
"c.     c #515151",
935
 
"d.     c #4A4A4A",
936
 
"e.     c #D0D0D0",
937
 
"f.     c #CACACA",
938
 
"g.     c #BDBDBD",
939
 
"h.     c #B0B0B0",
940
 
"i.     c #A2A2A2",
941
 
"j.     c #9C9C9C",
942
 
"k.     c #8F8F8F",
943
 
"l.     c #828282",
944
 
"m.     c #7B7B7B",
945
 
"n.     c #747474",
946
 
"o.     c #676767",
947
 
"p.     c #616161",
948
 
"q.     c #5A5A5A",
949
 
"r.     c #545454",
950
 
"s.     c #464646",
951
 
"t.     c #393939",
952
 
"u.     c #333333",
953
 
"v.     c #717171",
954
 
"w.     c #6A6A6A",
955
 
"x.     c #636363",
956
 
"y.     c #565656",
957
 
"z.     c #494949",
958
 
"A.     c #434343",
959
 
"B.     c #353535",
960
 
"C.     c #282828",
961
 
"D.     c #D7D7D7",
962
 
"E.     c #5F5F5F",
963
 
"F.     c #595959",
964
 
"G.     c #525252",
965
 
"H.     c #454545",
966
 
"I.     c #3F3F3F",
967
 
"J.     c #383838",
968
 
"K.     c #313131",
969
 
"L.     c #2B2B2B",
970
 
"M.     c #242424",
971
 
"N.     c #1E1E1E",
972
 
"O.     c #171717",
973
 
"P.     c #4E4E4E",
974
 
"Q.     c #414141",
975
 
"R.     c #3B3B3B",
976
 
"S.     c #2E2E2E",
977
 
"T.     c #272727",
978
 
"U.     c #202020",
979
 
"V.     c #1A1A1A",
980
 
"W.     c #131313",
981
 
"X.     c #0D0D0D",
982
 
"Y.     c #060606",
983
 
"Z.     c #3D3D3D",
984
 
"`.     c #303030",
985
 
" +     c #2A2A2A",
986
 
".+     c #232323",
987
 
"++     c #1C1C1C",
988
 
"@+     c #161616",
989
 
"#+     c #0F0F0F",
990
 
"$+     c #090909",
991
 
"%+     c #020202",
992
 
"&+     c #000000",
993
 
"*+     c #2C2C2C",
994
 
"=+     c #262626",
995
 
"-+     c #1F1F1F",
996
 
";+     c #181818",
997
 
">+     c #121212",
998
 
",+     c #0B0B0B",
999
 
"'+     c #050505",
1000
 
")+     c #222222",
1001
 
"!+     c #1B1B1B",
1002
 
"~+     c #151515",
1003
 
"{+     c #0E0E0E",
1004
 
"]+     c #070707",
1005
 
"^+     c #010101",
1006
 
"/+     c #111111",
1007
 
"(+     c #0A0A0A",
1008
 
"_+     c #030303",
1009
 
"                                                                ",
1010
 
"                                                                ",
1011
 
"                                                                ",
1012
 
"                                                                ",
1013
 
"                                                                ",
1014
 
"                                                                ",
1015
 
"        . . . . .                                               ",
1016
 
"      . . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _           ",
1017
 
"    . + @ : < [ } | 1 2 3 4 5 6 7 8 9 0 a b ^ / c _ d e         ",
1018
 
"    f g h i j k l m n o p > q ' r s t u v w x y z A B C         ",
1019
 
"    D E . . . . . F G E H I J K L | M n - N O P q Q R S T ~     ",
1020
 
"    U V . . W X U h Y Z [ ` l  .= ..3 +.> @.#.7 ) s $.%.a ]     ",
1021
 
"    &.Y *.=.-.: ;.>.,.'.).1 !.o ; ~.5 {.' ].^./.(._.:.<.[./     ",
1022
 
"    : < }.|.1.% } 2.m 3.4.5.4 6., 7.8.9.! t 0.a.b b.x c.d._     ",
1023
 
"    i j 1.e.f.* g.2 h.p i.j.6 k.r l.m.n.{ o.p.q.r.c s.A t.u.    ",
1024
 
"    Z e.l M n - N O P q Q R S T ~ v.w.x.^ y.y z.A.d B.C C.      ",
1025
 
"    D.m ..3 +.> @.#.7 ) s $.%.a ] E.F.G.( H.I.J.K.L.M.N.O.      ",
1026
 
"    ,.o ~.5 {.' ].^./.(._.:.<.[./ P.z Q.R.e S.T.U.V.W.X.Y.      ",
1027
 
"    L i.7.8.9.! t 0.a.b b.x c.d._ Z.B `. +.+++@+#+$+%+&+&+      ",
1028
 
"    l {.l.m.n.{ o.p.q.r.c s.A t.u.*+=+-+;+>+,+'+&+&+&+&+&+      ",
1029
 
"    S s v.w.x.^ y.y z.A.d B.C C.)+!+~+{+]+^+&+&+&+&+&+&+        ",
1030
 
"    0.] E.F.G.( H.I.J.K.L.M.N.O./+(+_+&+&+&+&+&+&+&+&+&+        ",
1031
 
"    [./ P.z Q.R.e S.T.U.V.W.X.Y.&+&+&+&+&+&+&+&+&+&+&+&+        ",
1032
 
"    d._ Z.B `. +.+++@+#+$+%+&+&+&+&+&+&+&+&+&+&+&+&+&+&+        ",
1033
 
"    t.u.*+&+&+&+&+,+'+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+        ",
1034
 
"      &+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+          ",
1035
 
"                                                                ",
1036
 
"                                                                ",
1037
 
"                                                                ",
1038
 
"                                                                ",
1039
 
"                                                                ",
1040
 
"                                                                "};
1041
 
 
1042
 
 
1043
 
static const char * icon_xpm[] = {
1044
 
"16 16 153 2",
1045
 
"       c None",
1046
 
".      c #FFFFFF",
1047
 
"+      c #F7F7F7",
1048
 
"@      c #EEEEEE",
1049
 
"#      c #E6E6E6",
1050
 
"$      c #DDDDDD",
1051
 
"%      c #D5D5D5",
1052
 
"&      c #CCCCCC",
1053
 
"*      c #C4C4C4",
1054
 
"=      c #BBBBBB",
1055
 
"-      c #B3B3B3",
1056
 
";      c #AAAAAA",
1057
 
">      c #A2A2A2",
1058
 
",      c #999999",
1059
 
"'      c #919191",
1060
 
")      c #000000",
1061
 
"!      c #090909",
1062
 
"~      c #161616",
1063
 
"{      c #232323",
1064
 
"]      c #2F2F2F",
1065
 
"^      c #3C3C3C",
1066
 
"/      c #494949",
1067
 
"(      c #555555",
1068
 
"_      c #626262",
1069
 
":      c #888888",
1070
 
"<      c #FEFEFE",
1071
 
"[      c #A1A1A1",
1072
 
"}      c #8F8F8F",
1073
 
"|      c #838383",
1074
 
"1      c #787878",
1075
 
"2      c #6A6A6A",
1076
 
"3      c #5C5C5C",
1077
 
"4      c #4C4C4C",
1078
 
"5      c #3D3D3D",
1079
 
"6      c #2E2E2E",
1080
 
"7      c #212121",
1081
 
"8      c #1A1A1A",
1082
 
"9      c #707070",
1083
 
"0      c #7F7F7F",
1084
 
"a      c #F5F5F5",
1085
 
"b      c #9E9E9E",
1086
 
"c      c #DADADA",
1087
 
"d      c #969696",
1088
 
"e      c #6B6B6B",
1089
 
"f      c #5B5B5B",
1090
 
"g      c #5A5A5A",
1091
 
"h      c #C6C6C6",
1092
 
"i      c #808080",
1093
 
"j      c #323232",
1094
 
"k      c #7E7E7E",
1095
 
"l      c #767676",
1096
 
"m      c #ECECEC",
1097
 
"n      c #929292",
1098
 
"o      c #909090",
1099
 
"p      c #949494",
1100
 
"q      c #D2D2D2",
1101
 
"r      c #D1D1D1",
1102
 
"s      c #585858",
1103
 
"t      c #666666",
1104
 
"u      c #6E6E6E",
1105
 
"v      c #7B7B7B",
1106
 
"w      c #4E4E4E",
1107
 
"x      c #222222",
1108
 
"y      c #8C8C8C",
1109
 
"z      c #6D6D6D",
1110
 
"A      c #E3E3E3",
1111
 
"B      c #878787",
1112
 
"C      c #9A9A9A",
1113
 
"D      c #D3D3D3",
1114
 
"E      c #B5B5B5",
1115
 
"F      c #5F5F5F",
1116
 
"G      c #434343",
1117
 
"H      c #1E1E1E",
1118
 
"I      c #171717",
1119
 
"J      c #636363",
1120
 
"K      c #040404",
1121
 
"L      c #7C7C7C",
1122
 
"M      c #797979",
1123
 
"N      c #A8A8A8",
1124
 
"O      c #CFCFCF",
1125
 
"P      c #979797",
1126
 
"Q      c #464646",
1127
 
"R      c #252525",
1128
 
"S      c #1D1D1D",
1129
 
"T      c #151515",
1130
 
"U      c #A9A9A9",
1131
 
"V      c #D0D0D0",
1132
 
"W      c #121212",
1133
 
"X      c #6F6F6F",
1134
 
"Y      c #696969",
1135
 
"Z      c #676767",
1136
 
"`      c #C9C9C9",
1137
 
" .     c #C0C0C0",
1138
 
"..     c #646464",
1139
 
"+.     c #2A2A2A",
1140
 
"@.     c #202020",
1141
 
"#.     c #B7B7B7",
1142
 
"$.     c #515151",
1143
 
"%.     c #C7C7C7",
1144
 
"&.     c #5D5D5D",
1145
 
"*.     c #777777",
1146
 
"=.     c #575757",
1147
 
"-.     c #2C2C2C",
1148
 
";.     c #1B1B1B",
1149
 
">.     c #0F0F0F",
1150
 
",.     c #C5C5C5",
1151
 
"'.     c #484848",
1152
 
").     c #BEBEBE",
1153
 
"!.     c #535353",
1154
 
"~.     c #525252",
1155
 
"{.     c #757575",
1156
 
"].     c #0C0C0C",
1157
 
"^.     c #3F3F3F",
1158
 
"/.     c #444444",
1159
 
"(.     c #424242",
1160
 
"_.     c #343434",
1161
 
":.     c #242424",
1162
 
"<.     c #BDBDBD",
1163
 
"[.     c #0D0D0D",
1164
 
"}.     c #0A0A0A",
1165
 
"|.     c #E1E1E1",
1166
 
"1.     c #363636",
1167
 
"2.     c #ACACAC",
1168
 
"3.     c #4A4A4A",
1169
 
"4.     c #939393",
1170
 
"5.     c #4B4B4B",
1171
 
"6.     c #1C1C1C",
1172
 
"7.     c #616161",
1173
 
"8.     c #9F9F9F",
1174
 
"9.     c #070707",
1175
 
"0.     c #EFEFEF",
1176
 
"a.     c #2D2D2D",
1177
 
"b.     c #A3A3A3",
1178
 
"c.     c #3E3E3E",
1179
 
"d.     c #393939",
1180
 
"e.     c #353535",
1181
 
"f.     c #474747",
1182
 
"g.     c #181818",
1183
 
"h.     c #FDFDFD",
1184
 
"i.     c #030303",
1185
 
"j.     c #747474",
1186
 
"k.     c #818181",
1187
 
"l.     c #8E8E8E",
1188
 
"m.     c #A7A7A7",
1189
 
"n.     c #B4B4B4",
1190
 
"o.     c #C1C1C1",
1191
 
"p.     c #CDCDCD",
1192
 
"q.     c #E7E7E7",
1193
 
"r.     c #F3F3F3",
1194
 
"s.     c #3B3B3B",
1195
 
"t.     c #333333",
1196
 
"u.     c #2B2B2B",
1197
 
"v.     c #111111",
1198
 
". . . + @ # $ % & * = - ; > , ' ",
1199
 
". ) ) ) ) ) ) ! ~ { ] ^ / ( _ : ",
1200
 
"< ) [ , } | 1 2 3 4 5 6 7 8 9 0 ",
1201
 
"a ) b b & c d e f g h i j 8 k l ",
1202
 
"m ) n o p q r 1 s t u v w x y z ",
1203
 
"A ) : B i C D E F 9 / G H I C J ",
1204
 
"c K L M l z N O P Q 4 R S T U g ",
1205
 
"V W X u Y J Z `  ...+.@.8 W #.$.",
1206
 
"%.@._ F &.( *.=.h N -.;.T >.,.'.",
1207
 
").6 !.~.w } $.$.{. .} I W ].D ^.",
1208
 
"E ^ /.(., 1 F _.:.[ <.e [.}.|.1.",
1209
 
"2.3._...4.i 5.7 6.7.C 8.'.9.0.a.",
1210
 
"b.s R :.c.=.d.8 T W e.f.Q g.h.:.",
1211
 
"C t ;.8 8 I T W >.].}.9.K i.. ;.",
1212
 
"' j.k.l.C m.n.o.p.c q.r.. . . W ",
1213
 
": 0 *.u t &.( 4 /.s.t.u.x 8 v.! "
1214
 
};
1215
 
 
1216
 
static QPixmap * g_pIcon;
1217
 
static KviStr g_szLastBrowsedDirectory("/");
1218
 
 
1219
 
 
1220
 
KviImageWindow::KviImageWindow(KviFrame *lpFrm)
1221
 
:KviWindow("!Image Viewer: No file loaded",KVI_WND_TYPE_PLUGIN,lpFrm)
1222
 
{
1223
 
        m_pImageView = new KviImageView(this);
1224
 
        m_pToolBar = new QToolBar("toolbar",lpFrm,this);
1225
 
 
1226
 
        QToolButton * b = new QToolButton(QPixmap(open_file_xpm),"Open image","Open image",this,SLOT(openFile()),m_pToolBar);
1227
 
        b->setUsesBigPixmap(true);
1228
 
        b = new QToolButton(QPixmap(zoom_up_xpm),"Zoom in","Zoom in",this,SLOT(zoomIn10()),m_pToolBar);
1229
 
#if QT_VERSION >= 210
1230
 
        QPopupMenu * m = new QPopupMenu(this);
1231
 
        m->insertItem("+ 1 %",this,SLOT(zoomIn()));
1232
 
        m->insertItem("+ 5 %",this,SLOT(zoomIn5()));
1233
 
        m->insertItem("+ 10 %",this,SLOT(zoomIn10()));
1234
 
        m->insertItem("+ 50 %",this,SLOT(zoomIn50()));
1235
 
        m->insertItem("+ 100 %",this,SLOT(zoomIn100()));
1236
 
        b->setPopup(m);
1237
 
#endif
1238
 
        b->setUsesBigPixmap(true);
1239
 
        b = new QToolButton(QPixmap(zoom_down_xpm),"Zoom out","Zoom out",this,SLOT(zoomOut10()),m_pToolBar);
1240
 
#if QT_VERSION >= 210
1241
 
        m = new QPopupMenu(this);
1242
 
        m->insertItem("- 1 %",this,SLOT(zoomOut()));
1243
 
        m->insertItem("- 5 %",this,SLOT(zoomOut5()));
1244
 
        m->insertItem("- 10 %",this,SLOT(zoomOut10()));
1245
 
        m->insertItem("- 50 %",this,SLOT(zoomOut50()));
1246
 
        m->insertItem("- 100 %",this,SLOT(zoomOut100()));
1247
 
        b->setPopup(m);
1248
 
#endif
1249
 
        b->setUsesBigPixmap(true);
1250
 
        b = new QToolButton(QPixmap(zoom_none_xpm),"No zoom","No zoom",this,SLOT(noZoom()),m_pToolBar);
1251
 
        b->setUsesBigPixmap(true);
1252
 
        m_pToolBar->show();
1253
 
        setFocusHandler(m_pImageView);
1254
 
}
1255
 
 
1256
 
KviImageWindow::~KviImageWindow()
1257
 
{
1258
 
}
1259
 
 
1260
 
QPixmap * KviImageWindow::myIconPtr()
1261
 
{
1262
 
        return g_pIcon;
1263
 
}
1264
 
 
1265
 
void KviImageWindow::resizeEvent(QResizeEvent *)
1266
 
{
1267
 
        int hght = m_pToolBar->sizeHint().height();
1268
 
        m_pToolBar->setGeometry(0,0,width(),hght);
1269
 
        m_pImageView->setGeometry(0,hght,width(),height() - hght);
1270
 
}
1271
 
 
1272
 
 
1273
 
 
1274
 
 
1275
 
bool KviImageWindow::loadImage(const char *fName)
1276
 
{
1277
 
        KviStr filename = fName;
1278
 
        filename.stripWhiteSpace();
1279
 
        if(filename.isEmpty())filename = QFileDialog::getOpenFileName(g_szLastBrowsedDirectory.ptr());
1280
 
        if(filename.isEmpty())return true;
1281
 
        if(!m_pImageView->loadImage(filename.ptr())){
1282
 
                g_pApp->warningBox(__tr("Could not load image %s"),filename.ptr());
1283
 
                return false;
1284
 
        }
1285
 
        QFileInfo fi(filename.ptr());
1286
 
        g_szLastBrowsedDirectory = fi.filePath();
1287
 
        KviStr tmp(KviStr::Format,"!Image Viewer: %s",filename.ptr());
1288
 
        setWindowCaption(tmp.ptr());
1289
 
        return true;
1290
 
}
1291
 
 
1292
 
void KviImageWindow::openFile()
1293
 
{
1294
 
        loadImage("");
1295
 
}
1296
 
 
1297
 
void KviImageWindow::zoomIn(){ m_pImageView->setZoom(m_pImageView->zoom() + 1); }
1298
 
void KviImageWindow::zoomIn5(){ m_pImageView->setZoom(m_pImageView->zoom() + 5); }
1299
 
void KviImageWindow::zoomIn10(){ m_pImageView->setZoom(m_pImageView->zoom() + 10); }
1300
 
void KviImageWindow::zoomIn50(){ m_pImageView->setZoom(m_pImageView->zoom() + 50); }
1301
 
void KviImageWindow::zoomIn100(){ m_pImageView->setZoom(m_pImageView->zoom() + 100); }
1302
 
void KviImageWindow::zoomOut(){ m_pImageView->setZoom(m_pImageView->zoom() - 1); }
1303
 
void KviImageWindow::zoomOut5(){ m_pImageView->setZoom(m_pImageView->zoom() - 5); }
1304
 
void KviImageWindow::zoomOut10(){ m_pImageView->setZoom(m_pImageView->zoom() - 10); }
1305
 
void KviImageWindow::zoomOut50(){ m_pImageView->setZoom(m_pImageView->zoom() - 50); }
1306
 
void KviImageWindow::zoomOut100(){ m_pImageView->setZoom(m_pImageView->zoom() - 100); }
1307
 
 
1308
 
void KviImageWindow::noZoom()
1309
 
{
1310
 
        m_pImageView->setZoom(100);
1311
 
}
1312
 
 
1313
 
bool image_plugin_command_image(KviPluginCommandStruct *cmd)
1314
 
{
1315
 
        KviImageWindow * wnd = new KviImageWindow(cmd->frame);
1316
 
        kvirc_plugin_add_window(cmd->handle,cmd->frame,wnd);
1317
 
        KviStr tmp = kvirc_plugin_param(cmd,1);
1318
 
        wnd->loadImage(tmp.ptr());
1319
 
        return true;
1320
 
}
1321
 
 
1322
 
bool image_plugin_init(KviPluginCommandStruct *cmd)
1323
 
{
1324
 
        g_pIcon = new QPixmap(icon_xpm);
1325
 
        g_szLastBrowsedDirectory = QDir::homeDirPath();
1326
 
        kvirc_plugin_register_command(cmd->handle,"IMAGE",image_plugin_command_image);
1327
 
        return true; // success
1328
 
}
1329
 
 
1330
 
void image_plugin_cleanup()
1331
 
{
1332
 
        delete g_pIcon;
1333
 
        kvirc_plugin_unregister_meta_object("KviImageView");
1334
 
        kvirc_plugin_unregister_meta_object("KviImageWindow");
1335
 
}
1336
 
 
1337
 
/*
1338
 
        @document: doc_plugin_image.kvihelp
1339
 
        @title: The image viewer plugin
1340
 
                Adds a simple internal image viewer to KVIrc.<br>
1341
 
                You can view images by using the command<br>
1342
 
                <b>/image [filename]</b><br>
1343
 
                Filename must be an absolute file path.<br>
1344
 
                If no filename is specified , a "file open" dialog
1345
 
                will be shown to allow selecting a file.<br>
1346
 
                The image types supported are depending on
1347
 
                the underlying Qt and compilation options.<br>
1348
 
                Generally, bmp, png, pnm and xpm are available.<br>
1349
 
                If KVIrc has been compiled with the jpeg support, that
1350
 
                format will be also viewable.<br>
1351
 
                You can use the viewer as the default "player"
1352
 
                of images (see <a href="play.kvihelp">PLAY</a>).<br>
1353
 
                In order to do so , put "IMAGE <a href="s_execfilename.kvihelp">$execFileName</a>" in the
1354
 
                "Run script" field (misc options dialog , mimetypes tab)
1355
 
                for the mimetypes that you want to play with the viewer.<br>
1356
 
                Note:<br>
1357
 
                If you unload the plugin , the /IMAGE command will no longer work.<br>
1358
 
                Here comes a simple workaround "commandline field" script for this problem:<br>
1359
 
                Version 1: Use the plugin if is loaded.<br>
1360
 
                <b><a href="if.kvihelp">if</a>(<a href="s_pluginLoaded.kvihelp">$pluginLoaded</a>(image))image <a href="s_execfilename.kvihelp">$ExecFileName</a>; else <a href="exec.kvihelp">exec</a> -q myviewer <a href="s_execfilename.kvihelp">$ExecFileName</a></b><br>
1361
 
                Workaround 2: Use the plugin always, if it is not loaded , load it.<br>
1362
 
                <b><a href="if.kvihelp">if</a>(!<a href="s_pluginloaded.kvihelp">$pluginLoaded</a>(image))<a href="plugin.kvihelp">PLUGIN</a> load libkviimage.so; image <a href="s_execfilename.kvihelp">$ExecFileName</a></b><br>
1363
 
*/
1364
 
 
1365
 
void image_plugin_help()
1366
 
{
1367
 
        kvirc_plugin_show_help_page("doc_plugin_image.kvihelp");
1368
 
}
1369
 
 
1370
 
KviPlugin kvirc_plugin =
1371
 
{
1372
 
        "image" ,
1373
 
        "A simple image viewer" ,
1374
 
        "0.1" ,
1375
 
        "Szymon Stefanek <stefanek@tin.it>" ,
1376
 
        "Exports the /IMAGE command" ,
1377
 
        image_plugin_init ,
1378
 
        image_plugin_cleanup ,
1379
 
        0 ,
1380
 
        image_plugin_help
1381
 
};
1382
 
 
1383
 
#include "m_libkviimage.moc"