source: trunk/doc/html/themes-example.html

Last change on this file was 190, checked in by rudi, 14 years ago

reference documentation added

File size: 131.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/examples/themes/themes.doc:4 -->
3<html>
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6<title>Themes (Styles)</title>
7<style type="text/css"><!--
8fn { margin-left: 1cm; text-indent: -1cm; }
9a:link { color: #004faf; text-decoration: none }
10a:visited { color: #672967; text-decoration: none }
11body { background: #ffffff; color: black; }
12--></style>
13</head>
14<body>
15
16<table border="0" cellpadding="0" cellspacing="0" width="100%">
17<tr bgcolor="#E5E5E5">
18<td valign=center>
19 <a href="index.html">
20<font color="#004faf">Home</font></a>
21 | <a href="classes.html">
22<font color="#004faf">All&nbsp;Classes</font></a>
23 | <a href="mainclasses.html">
24<font color="#004faf">Main&nbsp;Classes</font></a>
25 | <a href="annotated.html">
26<font color="#004faf">Annotated</font></a>
27 | <a href="groups.html">
28<font color="#004faf">Grouped&nbsp;Classes</font></a>
29 | <a href="functions.html">
30<font color="#004faf">Functions</font></a>
31</td>
32<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>Themes (Styles)</h1>
33
34
35<p>
36This examples demonstrates how to let widgets be drawn in different
37styles (themes). As an example, themes looking like wood and metal
38are implemented. You can switch between the different styles
39during runtime using the pulldown menu.
40<p> <hr>
41<p> Header file of the Wood theme:
42<p> <pre>/****************************************************************************
43** $Id: themes-example.html 2051 2007-02-21 10:04:20Z chehrlic $
44**
45** Definition of something or other
46**
47** Created : 979899
48**
49** Copyright (C) 1997-2007 Trolltech ASA. All rights reserved.
50**
51** This file is part of an example program for Qt. This example
52** program may be used, distributed and modified without limitation.
53**
54*****************************************************************************/
55
56#ifndef WOOD_H
57#define WOOD_H
58
59
60#include &lt;<a href="qpalette-h.html">qpalette.h</a>&gt;
61
62#ifndef QT_NO_STYLE_WINDOWS
63
64#include &lt;<a href="qwindowsstyle-h.html">qwindowsstyle.h</a>&gt;
65
66
67class NorwegianWoodStyle : public <a href="qwindowsstyle.html">QWindowsStyle</a>
68{
69public:
70 NorwegianWoodStyle();
71 void polish( <a href="qapplication.html">QApplication</a>*);
72 void polish( <a href="qwidget.html">QWidget</a>* );
73 void unPolish( <a href="qwidget.html">QWidget</a>* );
74 void unPolish( <a href="qapplication.html">QApplication</a>*);
75
76 void drawPrimitive( PrimitiveElement pe,
77 <a href="qpainter.html">QPainter</a> *p,
78 const <a href="qrect.html">QRect</a> &amp;r,
79 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
80 SFlags flags = Style_Default,
81 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
82
83 void drawControl( ControlElement element,
84 <a href="qpainter.html">QPainter</a> *p,
85 const <a href="qwidget.html">QWidget</a> *widget,
86 const <a href="qrect.html">QRect</a> &amp;r,
87 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
88 SFlags how = Style_Default,
89 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
90
91 void drawControlMask( ControlElement element,
92 <a href="qpainter.html">QPainter</a> *p,
93 const <a href="qwidget.html">QWidget</a> *widget,
94 const <a href="qrect.html">QRect</a> &amp;r,
95 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
96
97 void drawComplexControl( ComplexControl cc,
98 <a href="qpainter.html">QPainter</a> *p,
99 const <a href="qwidget.html">QWidget</a> *widget,
100 const <a href="qrect.html">QRect</a> &amp;r,
101 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
102 SFlags how = Style_Default,
103 SCFlags sub = SC_All,
104 SCFlags subActive = SC_None,
105 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
106
107 void drawComplexControlMask( ComplexControl control,
108 <a href="qpainter.html">QPainter</a> *p,
109 const <a href="qwidget.html">QWidget</a> *widget,
110 const <a href="qrect.html">QRect</a> &amp;r,
111 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
112
113 <a href="qrect.html">QRect</a> querySubControlMetrics( ComplexControl control,
114 const <a href="qwidget.html">QWidget</a> *widget,
115 SubControl sc,
116 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
117
118 <a href="qrect.html">QRect</a> subRect( SubRect r, const <a href="qwidget.html">QWidget</a> *widget ) const;
119
120
121private:
122 void drawSemicircleButton(QPainter *p, const <a href="qrect.html">QRect</a> &amp;r, int dir,
123 bool sunken, const <a href="qcolorgroup.html">QColorGroup</a> &amp;g ) const;
124 <a href="qpalette.html">QPalette</a> oldPalette;
125 <a href="qpixmap.html">QPixmap</a> *sunkenDark;
126 <a href="qpixmap.html">QPixmap</a> *sunkenLight;
127
128};
129
130#endif
131
132#endif
133</pre>
134
135<p> <hr>
136<p> Implementation of the Wood theme:
137<p> <pre><a name="x249"></a><a name="x248"></a><a name="x247"></a><a name="x203"></a>/****************************************************************************
138** $Id: themes-example.html 2051 2007-02-21 10:04:20Z chehrlic $
139**
140** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
141**
142** This file is part of an example program for Qt. This example
143** program may be used, distributed and modified without limitation.
144**
145*****************************************************************************/
146
147#include "wood.h"
148
149#ifndef QT_NO_STYLE_WINDOWS
150
151#include "qapplication.h"
152#include "qcombobox.h"
153#include "qpainter.h"
154#include "qdrawutil.h" // for now
155#include "qpixmap.h" // for now
156#include "qpalette.h" // for now
157#include "qwidget.h"
158#include "qlabel.h"
159#include "qimage.h"
160#include "qpushbutton.h"
161#include "qwidget.h"
162#include "qrangecontrol.h"
163#include "qscrollbar.h"
164#include &lt;limits.h&gt;
165#include "qstylefactory.h"
166
167/* XPM */
168static const char *polish_xpm[] = {
169/* width height num_colors chars_per_pixel */
170" 96 96 254 2",
171/* colors */
172".. c #9c4a34",
173".# c #a4825c",
174".a c #bc5e2c",
175".b c #d48432",
176".c c #dc9f51",
177".d c #bc6e1c",
178".e c #d4855d",
179".f c #94664c",
180".g c #bc714e",
181".h c #8c6664",
182".i c #d4923c",
183".j c #bc8444",
184".k c #d49360",
185".l c #d4794e",
186".m c #ecaf68",
187".n c #bc8365",
188".o c #d47439",
189".p c #a46954",
190".q c #dc9f70",
191".r c #e48544",
192".s c #bc7b51",
193".t c #a47761",
194".u c #bc7b42",
195".v c #a4523c",
196".w c #e4945e",
197".x c #9c784c",
198".y c #d4844a",
199".z c #eca053",
200".A c #bc614c",
201".B c #e4855c",
202".C c #bc8350",
203".D c #c48e68",
204".E c #b16634",
205".F c #e49339",
206".G c #bc703a",
207".H c #bc7c67",
208".I c #a45f34",
209".J c #cc714d",
210".K c #d48c5f",
211".L c #a47057",
212".M c #cc703a",
213".N c #dca674",
214".O c #b47859",
215".P c #bc6729",
216".Q c #d49475",
217".R c #d48b4a",
218".S c #cc8351",
219".T c #cc8466",
220".U c #ac6841",
221".V c #e4a651",
222".W c #e49576",
223".X c #d47d31",
224".Y c #ac6e4b",
225".Z c #c07650",
226".0 c #e48c43",
227".1 c #e49452",
228".2 c #9c745f",
229".3 c #e47e54",
230".4 c #cc7c4f",
231".5 c #cc7c32",
232".6 c #b46133",
233".7 c #d49a68",
234".8 c #d67e4f",
235".9 c #bc7643",
236"#. c #b47056",
237"## c #d48b3a",
238"#a c #dc9f5e",
239"#b c #e49a60",
240"#c c #cc6a31",
241"#d c #8c6244",
242"#e c #dc9a41",
243"#f c #eca753",
244"#g c #bc8a58",
245"#h c #d48c76",
246"#i c #bc693f",
247"#j c #bc715d",
248"#k c #9c6857",
249"#l c #f4b171",
250"#m c #bc8a6a",
251"#n c #eca16d",
252"#o c #a87e58",
253"#p c #a4613f",
254"#q c #a48569",
255"#r c #d4846d",
256"#s c #dc935f",
257"#t c #c47c50",
258"#u c #dc8449",
259"#v c #bc6950",
260"#w c #cc9678",
261"#x c #c4703a",
262"#y c #cc7b67",
263"#z c #dc8c5e",
264"#A c #ac7067",
265"#B c #eca86e",
266"#C c #b4786d",
267"#D c #dc8c4a",
268"#E c #b46842",
269"#F c #d47c41",
270"#G c #e48d51",
271"#H c #e59a52",
272"#I c #9c6e3f",
273"#J c #d49351",
274"#K c #cc843b",
275"#L c #ecb678",
276"#M c #9c5a38",
277"#N c #d4795c",
278"#O c #c47b39",
279"#P c #ec9560",
280"#Q c #ac764c",
281"#R c #c48351",
282"#S c #c48e74",
283"#T c #cc7650",
284"#U c #cc8a84",
285"#V c #bc6a5c",
286"#W c #e4af74",
287"#X c #b46855",
288"#Y c #e4a06e",
289"#Z c #ac775b",
290"#0 c #e48d5d",
291"#1 c #c47d65",
292"#2 c #cc763f",
293"#3 c #b47e5d",
294"#4 c #cc8a55",
295"#5 c #cc8a67",
296"#6 c #bf622f",
297"#7 c #dc853b",
298"#8 c #e49f4a",
299"#9 c #9c505c",
300"a. c #8c5644",
301"a# c #cc7329",
302"aa c #a45a51",
303"ab c #b48264",
304"ac c #9c7a7c",
305"ad c #9c5f4f",
306"ae c #b4844c",
307"af c #a46749",
308"ag c #dca664",
309"ah c #b46e1c",
310"ai c #c4762c",
311"aj c #a45a3c",
312"ak c #dc9a74",
313"al c #ac7e46",
314"am c #ac6a6c",
315"an c #eca862",
316"ao c #e49a41",
317"ap c #e49a78",
318"aq c #bc7660",
319"ar c #d57e5e",
320"as c #9c6e5c",
321"at c #ab7e65",
322"au c #cc8a44",
323"av c #9c6240",
324"aw c #bc6244",
325"ax c #bc5d3f",
326"ay c #e48550",
327"az c #eca060",
328"aA c #cc7160",
329"aB c #cc7c42",
330"aC c #b46241",
331"aD c #b4726c",
332"aE c #eca67f",
333"aF c #9c6a3c",
334"aG c #94685a",
335"aH c #c48240",
336"aI c #c48465",
337"aJ c #dc7640",
338"aK c #cc8f54",
339"aL c #e4a76f",
340"aM c #c4692e",
341"aN c #dc9474",
342"aO c #ac6050",
343"aP c #b47048",
344"aQ c #94614b",
345"aR c #ac836c",
346"aS c #a47048",
347"aT c #b4764a",
348"aU c #ec8e5c",
349"aV c #dc9a53",
350"aW c #cc765e",
351"aX c #b48a64",
352"aY c #dc9a63",
353"aZ c #c47640",
354"a0 c #ec9a60",
355"a1 c #c48a54",
356"a2 c #c48a67",
357"a3 c #ac5a3c",
358"a4 c #ac8458",
359"a5 c #dc855d",
360"a6 c #c4714d",
361"a7 c #dc9243",
362"a8 c #dc794e",
363"a9 c #ac6955",
364"b. c #cc8f67",
365"b# c #ac6032",
366"ba c #ac7056",
367"bb c #dc7a34",
368"bc c #ec9553",
369"bd c #dc8d3b",
370"be c #e4a060",
371"bf c #f4a654",
372"bg c #c46842",
373"bh c #c46f62",
374"bi c #ac613d",
375"bj c #dc866c",
376"bk c #c4694e",
377"bl c #dc7d42",
378"bm c #ec8d4f",
379"bn c #dc9351",
380"bo c #cc9177",
381"bp c #c4695f",
382"bq c #ecb075",
383"br c #e4a75f",
384"bs c #d4843c",
385"bt c #bc722c",
386"bu c #d4936c",
387"bv c #d47644",
388"bw c #bc7d5c",
389"bx c #ac563c",
390"by c #e4956c",
391"bz c #a47a4c",
392"bA c #d48454",
393"bB c #bc825c",
394"bC c #e49544",
395"bD c #bc7044",
396"bE c #bc7e74",
397"bF c #d48d6c",
398"bG c #cc7144",
399"bH c #b47864",
400"bI c #bc6a34",
401"bJ c #d49684",
402"bK c #d48b54",
403"bL c #cc845c",
404"bM c #cc8474",
405"bN c #ac684c",
406"bO c #cc7d5c",
407"bP c #eca27c",
408"bQ c #dc946c",
409"bR c #c47c5c",
410"bS c #dc8554",
411"bT c #c47244",
412"bU c #dc8c6c",
413"bV c #dc8c54",
414"bW c #b4684c",
415"bX c #cc8344",
416"bY c #c47b44",
417"bZ c #c4825c",
418"b0 c #e4a17c",
419"b1 c #ac7a64",
420"b2 c #e48c6c",
421"b3 c #c47a74",
422"b4 c #e49f54",
423"b5 c #9c674c",
424"b6 c #946764",
425"b7 c #c48674",
426/* pixels */
427"#u#G#G#P#G#G#G.1#G#G.1.1.1.w#G.r#D.1.1.1#D#DbVbV.K.K.K.KbO.Z.Z#TaP.GaT.Z.O.O.O.H.9aP.ZaPaPaPbZbo.i.k#J.k#JbKbnbn#b#sbVbV#G#G.r.ray.r.0#G.0#G.1bc.r.0.0bc.0.0.0.r.1.1.1.1#G#D.0#D.0.0.0bcbcbc.1.0",
428"#aagaLbrag#a#a#a#DbVbn#G#0.1#0#Da5#za5.4.J.Jbk#vbt.G#x.9bY.4#tbYbw.saPaP.Ub#af.Y.s.s.Z.saP#E.gbw.U.U.UaObWbWbWaPb#b#.E#t.K.K#z#s#s#sbQ#s#sbn#s#sbn#s.w#s.w#s#sbn.ybV#s#sbV#s#sbQ#aak.7.k.7.k.k.k",
429"#..g#.#.#j#.#XbW#Z#o.O.O#3.n.n.Halalalala4aXaXa4#t.u.9#R#5bu.k#5bob7aIaI.nbwbw#m#5aIa2#5#5aIb7#5.DbBbB#3bwbw.C.O#oabab.naI.C#t#R.9#tbY#tbY.ZbY.s#t#t#t#R.sbY.s#tbD.Z.Z#t.9.Z#t.4bBbw.s.saT.9aTaT",
430".ybS.ybSbVbVbVbVbl#u#u#ubSaybSay#s#za5#z#z#z.KbA.Qb.aIbZbZbB.g.U.gaP#.aP#.aPaP.O.9aP.g.s.O.ZaP.Z#CaD#Aamamamam#X#3#Z.OaPaPaPaP.saZbY#t#t#tbY#tbY#t#tbLbZ.SbR#t#tbZbRbZbRbR.sbRbR.4aBaB.4bY.4.4.4",
431"bKbV#zbKbA.ybK#zbV#z#0bS#0#0#0aya5bA.4.4.4#T#xbgbwaq.O.g.O#j#.aPaCaC#v.g.gaPaP.Z#R#R#t#t#t.Z.s.Z#O#O.5aH#KbY.S#4bD.G#xaZaZ#2.SbVbV#s.wbV#zbSbAa5.e.KbQbQbU#s#z.K#5.K#5.T#4#5.Kb..4bZbL.T.ebL.K.K",
432"#A#A#C#C#AaD#CbEatataRb1b1abb1.t#I.f#IaSbz.x.#.##v.g.g#1bR.T#5#hbObO.T.K.K#5.KbubL.4.4#t.4.Z#tbL.e#r.K.K.e.e.T#r.K#z.K#z#sbVbS#zbV#u#ubVbl#F.8.l#2.4.8bAbA.l.4bva6.g#x.g#x#i#i#i.L.Lba#Z#Z#Z#Zba",
433"aPaT.u.u.s.C.C.C.SbA.S.4.SbA.8.8#r#rbF#h.TbO.T#h.KbF.e.e.S.S.S.S#u.y.8bA.e.4bA.e.K#zbQ#s.K.KbUbQ.y.R.y.yaB#O#xbT#t.4bLbLbL.4bL.S.4.S.4#T.Za6.Z.JbD.g.Z.g.Z.g.Z.ZaP.g#iaP#i#E#EaC.Obababa.ObH#Z.O",
434"#zbSbA.e#za5.e.8bV.KbV.ybAbK#zbK.8.ybV#z.y#F.y#sbKbA.Rbn#sbn#b#b#Y.w#sbV.y.4.lbA.y.y.ybA#T.MbG.4bObO.4.SbLbOaq#..O.Yaf#p#p.I.U.UaT.Z.O.Oaq.O.H.Hb1b1#Z#Z.L#Zat#3bw.s.HbBb7aIaIaIbA.l.4aBbAbA.e.e",
435"#DbVbn.w#s.w#sbVbAbSbSbV#D#GbS#0.1#H#H#H#b.1bn.1#4.S#t#t.S.TbL.S.K.K.K.S.SbK.e.S#t.4#t#tbDaPb#b#.U#E.9.S.ebVbS#G.K.K#r.l#y#T.Z.Z#2aB.S.ybS#u.8#F#Kau.y.S.y.y.R.y#z#z#sbn.1bna7bd#F#DbVbVbV#s.w#s",
436".1#s.1#s.1bVbS.y.K#z#sbVbVbA.8#FbA.8ar.8.e#r.e#NbKbA.S.S.S.SbLbLaBaBaB#2aB.SbKbAbVbVbV#s.w#YbebQ.KbA.e.KbV.ybl.ybsbsbs#D#u#D#u.R.y#D#DbVbV#s#0.wbebe#b#bbQ.wbn#GbV#G#D#G#D#GbV#D.ybV#sbV#s#s.w#s",
437".wbn.w.w#bbQbVbV.4.4.ybKbnbV#z#z#G#D#D#D#u#D.y.R#2aB#2.M#x.M#2#2#z#s.w#sbV#s.w#s.1.w.w#b.w.1#G#G#s#zbVbVbVbSbVbVbd#ubd.r#D#D#D#D.1bC.1.1.1.1#D.1bV#G#0#0#G.w.1a0bC#G.0aybS.Ba5a5bVbVbV.w#z.w#sbV",
438"#ubVbVbVbV#GbV#D#s#sbn#b.w.w.1bVb2b2a5#z#z.K#zbA.w#s.w#sbV#s#z#s.w#b.w.w#GbV.w.w.X#Da0a0#G.1bcaz#G#GbS#GbV#ubV#0#z#0#0a5#0#0b2#0.0.r.0.0#u#u#F.o.M.M.M#F#ubV#G.1#b#P.w.w.w#0aya5.y#u.y.ybVbnbVbV",
439".wbV#GbV#G#s#G#0.1#G.1.1.1#G#G.0#0#0.w.wby.wbQbn.w.w#G.w.wa0#b#P#u#G#G#0#G#G#G.w#baz#Yaz.1.0#D.0#G#G#G#GbVbl.8blbva8.8.B#z.Ba5#0ay#G#G#z#G#z#z#z#zbU#z#z#zbQbybQ#zbK#z#s#sbn.R.y#2#2aB.8bVbV#0bV",
440".w.w.w#z.w.w.w.w#GbV.r.0.0#G#G#Gbda7a7#H#8#8#8#H#u#u#F#u#D#GbV#u#G#G.w.1.w#G.wa0bV#D#DbV.w#baz.w#G#G#G#G#0.BbSa5#u#u#D.1.1bn.0#7#z#0bSbSbSa5#z#z#r.e.e.4.4#2#2bT.4.4.4.S.R.Rbn.i#s.K#zbV#s#0bV.w",
441"#u.8#u#u#ubV#GbVby.wbQ.w#b.wbVbl#T#T.l.ear.Ba5.8.w#G#G#G.w.1.1.1.1#G#G.w.1#G#G.w#P.w#G.1.w#P.w#0#D#DbV.w.w#0#0#0.w#b#baVaVbn.1#G.y.y#F#F#2.obv#Fay#z#GbVbV#z.e.e#z#z#zbV#s#s#s#sbQbQ#sbQ.wbV#G#0",
442"#0#0#0#G#0#u#ublbDbT.4#4#zbQ.e.e#s#s#s#z.w#0#0aU#DbSbVbV#D#D#D#G.w#G#G.w#P.w.w.w#Gbmbmbmay#u#G.waz#b.w.w#Ga5bl#uaraW#i#i#ia6.4.ebVbnbQ#b.w.w#GbV#u.r.r#G#G#G#0a5.1.wbV#zbSar.J.JbT#x#2.y#F.8#u#G",
443"#5.TbL#tbD#i.g.Z.SbA#zbAbKbSbSbA#u#D#G#u#u#u#DbV#GbVay#G#0#G#G.r#D#Gbn.w#b#b#HaY.1bVbV.y#u.y#F#Fbv.o.M#2#2#2aBbG.9#OaB.y#D.1.1.1.w#s.1.w#G#G#G.rbdbda7bdbnbn#sbQ.nbw.s.Z.4.8.8.8.obl#u#zbV#z.K.K",
444"#i#x.Z#tbL.K.kbQbAbVbK#u.ybSbV#z#G.w.w#G#D#G#0#G.1#G#D.1.1.1.1.1bVbV#z.yaBaM.M.5.y.y.y#ubV.w#P.w.w.w#b.1.1.w.wby#b.w#b.w#b.w.1.1#u#u#ubVbAbK#z.S.T.TbO.Z#vbga3axbD#xaZ.8bAbAbAbA.e#4bA#ta6.P.6.6",
445".S.4bL.e.e.e.ebA.8bSbSbSbVay#0#G.1.1a0.1#ba0#H#bbc#Hbc#Ha0bc.1.0#z.8#T.J.l.ebVbV#G#G#G.w.w.w.w#P.w#b#n#b.1.1.w#n.1.1.1#G#G#D#ublbl#2.4.4.g.Z#ZbN#9#9aa#X.g.ZbOar.Mbvbla5#z#zbA.laPbNbi.U.U#..Zbw",
446"bL.e.e.e#zbSbSbl#u#DbS#G#G#0#G#G.1.1.1.1bc#Ha0.1#G.1.1a0#b.1#u#F.e.4#T.8by#b#na0a0#b.w.w.w.w#P#0bVbV.1.1#G#G#u#G.1#G#G#ubS.8.l#T.Z.g#ibW.UbNa9#p.UaP.9.S.ybVbV#Dayay#z#z.e.4bT#i.pad#pbN#.bRaI.T",
447".4.e.KbS.8blblbSbSbS#GbV#G#0#G#G#G.0.1.1bcaz#H.1#G.1.w#P.w.w#z.8bK.KbQbQbV#u#D.1#0#G#G#G#G#G.1#P.1.1beazbe.1#G#u#zbK.K.4bO.Z#j#v#A#ka9.YbW.ZbL.4.R.R.ibn#D#u#F#FbS.S.4aqaPbNbi.I#.bWaP.gbObL.8bL",
448".K.K#z.e#F.lbv#F#z#GbS#u#u#G.w#G#u#G#G#G.1a0bc.1#P#P#P.w#GbVarar.R#J#HaY.1.1.1#H#H#b.1.1bc.1#P.1.w#b#bazbe.w#zbA#t#t.Z.Z.Z.g#.#.b1ba#..Z.Z.lbS#u.y#u#ubSbS#N.laA#j.ga9#kad#ka9#..g.g#tbO.e.e.ebA",
449".l.l.8.y.8bAbAa5bSbS#ubSbS#0.w#G#G#G#G#G.1bc.1bCbm.1.1.0#Dblbv#T#D.R.ybVbe#nazanananbeaz#b#bbc#H.wa0.1#sbV.S.S#t#t.s.Z.sbwaIaIaI#t#t.4bA.lbl#ubl.3a5a5.e.4bh#V#XbN#k#kaG#k.L.OaIbL.e.K.ebA.y.4.8",
450"bSbAbAa5.ebA.8.4.8.ybS#z#G.w#0bSay#0bm#G#G.0.1.0bc#H.zbf.zbe.1#z.KbVbSbA.y#D#D.1bebebe#HbeazazazazazbebV.S.4#1bMbZbR.Z.Z.Z#t#tbYbl.o#ubS#Gay#0#uarbl.laB#t.uaT.Oad#kaGb6#ka9.g.Z#t#t.4.4#t.4bK.K",
451"aBbs.y.ybA.l.lar.4aBaB.8.y#F#u.wbn#D#D#G.0.0a7.FbdbCbc.1.1.0.1bc.F#8#H.1.ybG.4.ebn#s#s#baY#saYaV#b.w#s#J.SaZbD.sbR#t.S#z#ubs#F.R#D#D.0#G#G#G#G.0#D.R.yaBbDbDaP.g#Zb1.L.fb6.h.hac.I.YaT.u#t.Z.Z#2",
452"b3bR#1.4.4.4bX.R.K.KbV.ybl#F#F#F#za5a5.B#z#0#sby.1#G.1.1.1bm#G.1a0a0#H#H#b#b#s.ya#.X.y.ybVbn.w#bbebeaY#sbAbRbZa2au.S.R#s#z.y.e#zbs#ubn.1.1.1#G#D.0#D#D.RbA.4bO.4aPbD#Eb#af.I#Maf.2.x.L.L#Z.O.n#S",
453"aObi#Xbw.s.sbY.SbXbK#z#z.w.w.wa0#z#za5bS.l.l.8bVbSbVbS#G#G#G.w#Pbe.w#b#bazbrb4#Hbebebe.1#u#F.5.X#F.y#s#Y.NaN.Q.Q.T.Tbu.w#sbn.1be#sbVbV.y.y.ybn#b#G#G#G#G#0bn#zbSbn#bbn#D.R.RaBbX#3.O.Yaf.I.Ibi#E",
454"aVbX.G.6a3aCb3#U.y#z#s#0#z.w.w#s#H#H.1.1.0#G#Hb4bVbV#u#u#u#D.0#D.1.1.1#D#7#D#Hb4bCbc.1.w#b#b#n#nbe.1#u.yaBbX.S.kb4.cb4aYbA#T.4#r.4.K.K#s#s#s#D.y#GaybV.w.w.w.w.w#G.w.w.w#b.1bn.1#P.w.w#0#0aybS#G",
455"bnaVaYbeaNarbp.A.P#2#F.y#u#s.w#sb4b4.1.1.1.1#H#H#nbeaz#b#HbnbCa7.zbe.z.1#D#D.w#Baz.z#H.w#P.w.w.wbebeanbrbebn.RbX.4bQb0aL#BaYa7.bbA.4#xaMaZ.ybK.kbA.4.4#F.8.ybA.ybv#u#ubS#sbV#D#zbl.ray#G#G#P.w#P",
456".w#0bSbVbV#D#D.1aY#b.w#zbS#FaBaB#x.M.l.8a5byap#bbn.1bebebebebeaza7.0bd#u#ubSbS.BbC#D.0#D#G.w.w.1anazb4bebebebr#B.V.c#D#Oai.S#s.WaE#Y#Y#YaY.kaB#x#4.S.S.4aBbX.y.y.y.K#z.KbV#z.ybV.ybKbKbK.K.K#z.k",
457".8.8#u#G.w#HaV.1#s.w#s#0#zbV.wbQ#na0by#0a5bSbvbg.M#F.y#ubSbA#z.k.w.w.w.wa0a0.w.w#H.w#HbV#D#u#G.1.1.1#b.w.1.1#D#DbVakaLaLaLbq#B.VaB.XaB.ybKbQaLaL.q.qaY#a#b.w#b#b#b#b.wbn#s#D.y#D#s#s#s#JbKau.SbA",
458"b4#Hbe#baY#s.K.S.y#F.ybSbS.R#zbe#H#H.1#Gbc#b#bbn.w#bbybQ.4#xbga6#T.l#za5bV#G#Gbc.w#b#b.wbV#D.1beby.wbVbV#z#s.w#Y#bbeaY#J#s#Ybe.1#B#B#Bbr#s.RbA.KbKbnaV.w#b.w#Ha0b4anbe#Hbe.1.1#bbC#8bc#Ha0a0#Pbc",
459"b4#8#8#H#HbCbC.1b4#b.w.1#P#G#G.0akbVbXaB#2#2.4bAbA.KbAbV#s#b#YaY.1bV.8aZ.GbYaB.S.RaV#abebn.1#8az#b.w.w#b#ba0by.w.1#Hazbebe.1#s#b#ebnbnbnaVaVaYbnbnb4bebe#abe#abebnbnbnbn.ibnbnbn##a7#8#8#ea7beaL",
460"#Y.w.w#s.w#0#z#0#D#DbVbVbVbV#bana7#D.1.1#b.1#D#D#u#u#Fa#.o.y#D#D.r.r.w#b#Y#b#b.w.gbkbg#Tar#za5a5####.5.b.Ra7.1bn#HaV#H#Hbn#D#D.ybQbQ#z.K.e.K.e.ea7bnaVa7bnaY#aaL.m#Wbrbr#Ybr#W.m#L#L#L.mbeb4.w#b",
461"#sbK.ybS#z#zbSbS.k.k.K.S.SbAbKbn.w.1#D#GbV#GbV.w#G#G#G#u#u#ubl#7.r#G#G#0#zayay.0#Y.wa5bS#zbS.8.M.4.Z#xbka6#TbObO#D.Rbn#s#bbebebebV.R.R.y.R#D#DbVbebe#BbqaLbebn.Rbnbnbebr#BbrbeaV#Da7bran.mbr.1#D",
462"anazbean#Banbe#H.y#O#x#x.ybKbK.R.Jbvar.ebja5#N#TbvbS#z#0#0.1#0bV#G#u#u.o#Fbb#7bm#F#7#u#D#Dbn#bbe#s#s#sbn.w#zbVbVbkbpbpbpbhbhbhbhaAaAaWaW#N#r#rbFbs.ybKbn#b#YaLbq#Bbrbebebebr#BbqbeaLbe#Y#B#B#B#B",
463"a7#DbCb4azananan#BaL#b#Yby#b#G#ub0aN.e#x#i#xaWbObAa5.e.8.4#2.4.4.w.wbQ#zbSbSbVbV.w#z#zbS.JbGbG.l#D#GbV.1.w.1#G#G#H#8#8#8aoa7#8#8#D#Dbn.1bnbC.1bC#b.w#D#D.y.5bs.y##a7#Hbranbe.1.i#sbn#D.Rbsbs#ubs",
464"#b#0.y.8#2#2#2#2#F#u#G.w#0#G#Pazb4b4beb4bnbn##.5#xaB.4.4.4.e#z.K.e.SbA.8bA.ebK.K#zbV.y#ubVbVbVbVar.8ara8ara8a5ar.RbV#zbVbA.y#D#sbSa5a5bV#zbSbVbS#G#DbV#b#b.1bn#bananbeb4b4anananbean#B#B#Bazbebe",
465"#0a5bSbV.w#Y#BaE.1#0.wbSay#uay#Gbd.FbCbC#H.zanaz#b#b#b.w#zbA#2#c.P#6#6.M#2.e.K.k#KaB.Xbsbn.1.1#7#Hbna7#D#D#D#D.0#0#zbVbV#u#F#FblbdbCbC.1bC#G.1.1bV#u#D#G#Hbean.manbeanan#B.manan.mbebe.1bV.1.1.1",
466".zbCa7#Hazanb4#8#Y.w.y.8#z.w#G#D#G#0#P#0#0#0#uaJ#D#u#ubl#D#0.wb2.w.1#0#0.w#z.4.G#vbhbRbO#rar#N.l#4bL.S.4.4.4.4bLay#D#uay.1#Ha0.w.1.w.1.w#G#s#0.w#G.1.1an#Bazb4b4anazb4b4.zananan#f#f#8#b#H.w.1#b",
467"b4#Hbd#Ha7#H.1.0a7#H#b.wbV#s.w#0#D#D#D#D#G#u#u#G#G#G#GbV#u.8.y#ubs#7#G.1.1bn#D.y#xbXbAbAbYbt.Z#RbXbK#s.k.R.S.RbAbl#F.o.o#Fbv.yblbV#u#7#G.1.z.z.z.w.1#G#u#D.0#G#nb4#H.1.1#b.zb4.z#H.1.1.1#Hbe.m#B",
468"#Y.w#D.1ay.w.w#Ga7#H#H.w#G#G#G#G#D.wbV#G.1.w#G.1#D#D#ubSbA#u.KbV#s#G#u#u#ubVbn#s.zb4b4#sbO.g#V#X.MaB.yaBaB#2aZ#2.y.y.R.KbQ.KbQbu#zbAbK#s#bbe#Ybea0be#bbn.w#D.y#G.1bC.1.1a0#b.z.z.zbc#H.zbCao#HbC",
469".wbS#0.wa0a0#na0azaz#b#H.1#G.0.0.w#P.w#G#0#G#uay#D#DbAbK#z.KbSbK.l.4bv.8#F.l.e.S#ubAbA.RbK.K.K#s.4bAa5#z#z#z#z#z#w#m#3ba.p.p.L.L.ZaZbD#t#R.SaKaKakap#Y#bak#s#zakbn#D#u#D.y#7bs#7#F#F#u#0#0#0by.w",
470"bna7anbran#8az#8.1#ba0#bbcbeaza0a0.w#G#G.1bm#G#0.1#z#GbV#z#0#s#G.e#z#z#za5.8bGbgaAbv#T.l#F#Da7a7bQbybQ#z.e#z.ebAblblay.0ay.raJ.obR.s#tbR#t.s.s#tbDaZa6bT.Z.gbT.SbA.S.S.KbQ.q.q#YbqaLbeaV#D#u#D#u",
471"auauaL#W#Wbr#L#Wbe#nbe.w.w.w.1a7.1#H.1.0#u#7#7.r.0#ubl#uay#Gay#u#z#za5#u#ubS#za5#D#u#u.8.8.8.8#r.4bYaZ.G.GaZaZaZ#t.SbLbFb.#5bO.Z#t.Z.Z#t.Z#iaC.E.Z#1.g.ga6#ibWbR.C.s#..OaPbNbi.Ua9ajaO#X#v#y#r#h",
472"bL#1b.aI.g.I.UaP.GaZ#t.4.SbK#sbQbe#Bbe#b.1#D#D.w#G#DbSbl.8bl#u#F.8aB#F#F#F#ubV.w.ybSbS#u.8.8a5#z.k.K.KbK.KbQaYakbu.K.S.4.4.4.S.e.4.8.4.ebF.Kb.#h.gbR#taq.ZbW#E.gaP.YbNba#.babaaP#3.u.s#R#R.S.KbK",
473"a6a6.Z.ebO.T.QaNa2a2aIaT.Ub#.6.EbIaZaZ.4.S.SbA.kakbQ.k.KbF.ebA.y.e.ebSbS#u.8#FbG#r#r#r.e#F.ybsbdbV#zbV.yaBaB#2#2#MavaS#Z.O.O.OaPa6#i#i.ZbRaI.H.n.ZaIaI.T#5aIbRb.b.bLaIbRbR.gbWaP.g#v.g.Z#x.gbT#i",
474"#H.1#DaY.ybV.SaB.Y.O.O#.#X.ObBaIbR.T#1#t#1.Z.g.ZaP.U.U#EbW.g.g.g#T#T.4.l.l.8bS.e#F.8#F.l.8arararblbSa5#0bS.BbS#ubV#u#ubl#ublblbl#5bZ.gaP#.babN.pb##E#E#E.Z.g.gaIaB#2.ZbL.T.e.e.K#z.kby#b#b#Y#Baz",
475"brbrb4#Hb4.1#D.0.R.y.y#F.yaBbvaB.Z.g.g.g#jaOaxbxaFaS.Y.O.s.s#ta2#Fbla5bSay#ua8bl.y.y.RbK#J.KbKbK.S#F.y.8.8bA#F.l.y.y.8.8.4.4.4.4aPbtaPaP#E.YaPbNaP.Z.sbwbw.C.CbZbB.C.Z#..O.H.OaP#RbX.SbK#JbnaV#a",
476"aZ#taZ.Z.4bLbO.ebLbR.S.TbL.T#4buaK.S#R#R#4.Sbw#t#3aT.Z.ZbD#i.E#i#Z#ZafafbN#Z.na2.3ay.B.Bay.B.8a8bn.y.4.4.4.8.8bAbl.y.ybKbS.e.e.8#F.K#s#s.k.KbLbObL#t.Z.9.G.GbI.E.G.9aP.g.ZbZbZ#tbJaI#.#EbW#E.g.Z",
477"aKaKaH.u.C.C.sbw.O.O.O.O.Y.Uba.O.uaPbtaT.u.s.s#Rb.#4#5bLbL#T.Z.4.4#t.4.4#t.4.y.ebKbAbV.KbAbAbA.K.KbVbAa5#z#z#z.y#z#zbS.8aB#2.M#2.o#F#ubl#F#u#G.wbQbKbKbnbQ#YaL#Y#saY.KbAbYaBaBbY#.bibiaPaI.Tb7bR",
478"#h#5#1#X#jaOaaaa#M#paf.Ybaba.n#S.H#.#.aDaqaqaq.HaPbW#x.Z.4.Z.4bR#RbLb.b..k#4#R.4#RaH.u.u.u.ja1aK#F.S.4.K#zbQ#zbVbSbSbS.ybS#DbVbVayayayblbbbl#u#G#D#u#u#D.1.1#b#H#H#b#b#GbV#s#b.1#L#WaL#WbqaLbK#K",
479".zanbeb4be#aaY#aak.k#4bL#t.G.G#i#1#j#j.gaq#j#.bW.ZaT#tbRbObRbLb.#u.r.r.r.r.rbmbm#za5bv.la5a5a5a5.K.4#xbg#xbg.MaM#2.8bV#s.w#sbV#ubS#z.1#z#G#G.1#G.1.1.1.1.1.1bc.1.1.1.1#G.wazaz#Bb4#8bC#Hbebe#H#b",
480"#D#G#G#u#0#zbSbSbVbVbAbAbV#z#z#s#JbK.R#s#saYaVaYb.#4.SbL.4.Z#t#t.L.LaS.Lba.O.n#mbQ#z.K#zbQ#0.e#2bQ.K.K.K#z#s#z#D.y#F#F#F#F#F.oaB.8.y.8.y#ubV#0#D#u.r#G.0#G#G#Gbc.1#G#G#G#G#Hbc.1#naz#b.w.1#0#0#P",
481".z.zbcbCbcbC.0.0be#b#ba0#H.1.1.w#Dbdbdbn#H#8.z.z#BaL#b.w#sbV#z#s.K.K.K#z.K.K#z.K#R.C.j#RauaubYbt.6#6a6bL#zak#bak#D#D#D.y#u#u#0#0.w#sbV#u#F#Fbl#u.w#0#G#G.1#G.1#G.r#GbV#GbV.1bc#H.w.w.wa0#0bS#G#0",
482".w.w.1#G.1#P#G#P.w.1#H.1.1#D#D.1by#0#0#G#P.w.w#b#Hbc#Gay#G.r.1.wbv#F.l#F.laJbvblbA.8.l.8a5#z#zbS.K#4bO.4#TaBaB#Fb4#baz#b#P#zbl.o#F#D#0#G#G#GaU#0.B#u#u#u#G#G#0.1.w.w.w.w#0#G.1.1b4anbraz#8.1#8az",
483"b4.1bnbC.1b4.zaz#f#fbr#fb4#8.Van#f#8#8ananbe#G#u.1#G#DbC.1.1.w.1.w.1#G#G#GbS#ubSaiaB.SbXaB#2.4bKbvar.ebF.T#1#j.gah#O##bnbn#D#baY.1#D#DbS#u#D#7#7.o#u#0.wbya0a0#0.wbn#0bSbAbS#z#0#8#8an.z.1bd.1a0",
484"#b.1.1bn.1bebran#W.man.manbran.m.m#Bbebe.1#D#D#bbCbCbC#GbC#G.1#G#u.8#ubSbVbS#z#z.w#s#D#ubV.1.w.w#Da7bd#Dbs.5.5#O.Q.Q.K#N.Jbgawax#O.y#z#s#z#z#b#B.zazaz.1#GbC.0bd#7#D#ubSbV#G.wbebr.Vbe#8#D#7#7#G",
485"#b#b#b#b.w#b#bbeb4#H.cbebe#bbnbK.e#z#z#sbVbs#D#G#z#z#za5a5#za5a5#sbn#z#z#z.y.8bAbl#F.o.o#u#G#G.r.1bnbn#D#DbV#z.w#T#x.MbGbla5a5.eaB.S.SbT.6.a#2bK.1bn.1bn.1bean#lazazbe.1.R#F.5a#.S.e.ebUbU.W.Wap",
486".ybAbAbKbK#DbV.waV#HbebebeaYbnbn#z#FaB#F.y#D#Dbnbe#H.1bn.1#Dbnbn#8#eao#e#8#8#8#8#0#0#0.w#G#G.ray#2.J#2#2.la5#z.w#b.1#u#Gbnbn#D#DbAbA.4.4.8bA#z#z.e.8#T.J#x.l.K#z#D#0.w.w#b.qbraLanbr.Vbr#8bd.b.b",
487"#B#B#Bazbrbebebe#8brbrbrbe.zbrbr.mbrb4#H#b#sbVbV#NaW#T#T.J.JbkbkaAbp#Vbpbhbpbpbp.e#zbQ.w.w#s.1.w#H#b.1#G#D#7#7#FbS.8.l.l.8a5#sbybV#G#0.w#0#z#Fa#.4#NbOar#r#r#z#za8.ybS.8.4aB.SbK.cb4anan.mbeanan",
488"brbrbebrazbr#f.Vbr#f.manb4bebean.V.V.m.maL.1bA.y.Rbnbnbnbnbn#Hb4#Y.w#saYbQbnbK.RbT.GaM#2.4bVbVbK.8#F#u#z.wbybyby#G#G#zbV#u#F#F.obb#uay#0#0.w.w.w#b#b#sbn#D.X.5.b#z#0#za5bAbA.K#s#TaAbObO#T#T#raN",
489"bnbnbnbeanbq#l#Lan.maLbrbebebrbeaVb4b4aVbnbn.wbe#T.4.ybAbK.KbQbQ#D.R#D.1.1#H.1#H#Y#s#zbVbV#z#u.ya5a5ar.l#T.J#vawa7#Hb4be#b.1.0.0#G#ublbv#c#c#2#u#Dbd#D.1.w#Hbean#b.w.wbVbSbVbVbVbVbV#D.1bV.1#ban",
490"#Bbebe#abebeaVbnbn#sbn#D#s#a#b.w.q#b.q#Y#Ybe#HbnaY#baY#baVbnaVaV#bbn.w#bbebeaV#H#D.1bebe.w#G.wa0.z.z#HaV#HaYbnaV.ebLa6a6a6bOa5b2.w#b.w#zbU#s#s#zbA.lbv#T#T.l.y#0#8.1#D.1.wazaza0.w#P.wbebe#H#baz",
491"az.1bcbc.1.1bCa0#H#8b4b4#H#Hbebr#b#bbn.ybXbK#s.c.ia7bebe#zbV.8a5bnaY.caLaLbe#H#H.kbKbKbK#s#b#b#H#bbV#DbV.wbe.w.1bCbCbn#D#2bg#i#i.J.lbA#s#b#bbQbQ#JbVbVbS#G#u.R.R.SaB#2#2aB#Fbd#H.z.1.wa0#b#Ybe#Y",
492"au.S.S#J.k.R.kaY#DbVbV#sbn#s#s#b#Y#Y#Y#Yak.q#Y.N#Y#Y#a.R.y.y.ybV#ebrbq#WaL#B#bbV.i.RbVbn.1#bb4b4#s#D.y#ubV.1#b#H.1.1#bbe#Y#b#s#z#z#z#D#7bs#u.y.lai.5#F#u#0.wbebe.qakbQbQ#baY#b#b.1.1.0#G#D#ubb#F",
493".k#s.k.k.K.KbK.KbA.KbK.K#z#s#z.K.5aBbX.4bY#RaHbY.Z.4.e#s#sbnb4#H.q#Y#sai.dbs#8anbeanan#Ybe#H#H#8#b#H.wbV#G#G.0.1.wbV#u#F#7#D.1b4#bbebebeazb4.1bVbebe.w#z#u#FaBai.4#2.4.ebQbQ.w#Y.w#G#GbVay#u#z.w",
494"bm#G#Gaybl#ublblbAbA.8bSbAa5bS#F#D.1#zbnbVbK.K.K.K.e.4aB.y#Dbnbea7#8brbq#Y.K.ebU#Hbe#Yanazbeazanazaz#n#n.w.1.1.1.w.w.1#Pa0#b.1.0bV#G.1.1az#b.w#s#sbVbV#ubVbV.1#s#z.yaB#2bG.M#xbgbG.8#z#Yb0#b#s#z",
495"bS#GaybS#G.w#b#b#zbV#0bV.w.w#G#G#G#G.1#G#zbV#D#u.y#D#z#s#s.K.8aiar.4.4bV#sbn.cbr#s#u#2.M#x.y#D#b.1#b#b#b#na0a0a0a0.1.0.X#7#u.1a0#z#D#u#F#u#ubVbV#n#n#b#Pby#b#Y#n#bbn#D#DbV.KbV#z.K#1#i.6.6bDbL.Q",
496"#Ebi#p.U.Y#Z#C#3bAbAbKbV#s#G#s#0#D#G.w.w#0bc#Gay.1#D#7#F.ya5#s.WaV.cbebn#sbQ#h.T.K.kbQb0aE#YbV.X.y.y.y.ybV.w#b.1#8.1azazaza0a0.wa0.w#0#GbV#z#z#0#F#F#F#F#F#u#ubVbe#b.1aY.wbV.ybAbRbR.Zaq.Z#E.U.U",
497".n#Z.p.Las.faQ.fafaf.U.UaPbD.Z#t.4bK#za5#z#G#G#G#G#G.w#G#GbV#u.ybUbQ#z#zbV#JbKbYb.#R.Z#tbA.wbe#n.R#D.y.y.8#Dbn#D#Y.w.wbn.w.waza0.1.1#H#b#P.w#GbV.w#0bV#u#u#u#u#ubv.o#F.y#DbK#z.K#z#4.4.S.TbL#t#t",
498"bLaZbD#R#taP.U#Z.hb6as.L#k.pba#ZbD.s.ZbTbG.8bS#Gay.B#G#0#G#D.0#D#s.y.ybVbV.4.ZbL.s.s#R#4#s.w#H.1aY.qbebQ#s#s#sbnar.l.l#u.1#HbC.FbC.1bC.1.1.1.1.1aybVbV.w#s.w#s#0by#za5#u.y.4.l#r.y.8#F.8.K.e.4#T",
499"#4#4.S.4#taZ#T#2aZaTbNaQ#daQ.fasaS#QaT.s.4.8ararbl#ubVbV#ubl#F.XbT.G#t.S#tbkbT.T.uaH#OaB#D.1.zaz.z#f.z.zb4.za0.z#Jbn#JbK.ybAbK#s#z#baz.z.z.zaobc.0.1#G.0#G#u#G#G#ubS#0bVa5bS#uaBaB.y.y#u#F#FbA.K",
500"#zbK.e.S.8.S.S.T.O#Z.LaQaQaQb5af#..Z#t.4#F.yblblbl#ubVbVbK.S#t.saI#tbwbZaI#t#t.S.n#1.TbF#zbQby.wbebranbraz#b.1.wan#nbe.w#z.y#FaB.8.ybn#Haobcbcbc.1.1.1.1#G#G#G#0#G#0#GbV#ubVbVbV.8bAblbAbSbS.K.K",
501"#F.l.8.4bLbRbRbR#Z.L#kafafbN#..Zbg.Jbv.8#u#D.0#7#ubS.y#t.s.Obaas#3baaP.Z.sbD.Z.Z.y#JaY#a#Ybe#b.wb4#b#bbebebebe#bbm.0#u#G.w.w#0bVbGbAbVbV.1.1.w#P.1#Ha0bc.1#Day#D#0.1bS#u#ubV#zbVar.8.l.8a5a5.e#N",
502"#T.4.4bObw#.bNad#k.pba#.bR.4bAa5ara5#zbVbV#u.y.4.K#t.gbi#pb5.p#k.ZaP.Z#t.S.y#Dbna7bCb4.zazb4ao.1#b.1.1bVaybV#G.wa0.w#G#z#0#z.K.y.8bV.w.1.1.1bc.1bcbc#Ha0.1.0#G#G#G#G#G#G#GbVbV#ubla8a8blbSa5.8.4",
503".e.T#1bw#..paQa.#E#v.Z.8.ebSbSay#FblbA.y.S.T.TaIaDbN#paj.U#v.g#ta6#TbAbSbS#G.1bc#GaU#P.w#0#GbSbS#G#Gay.r#D#G.w#P#D.y.8.4.4.e.e.e#u.1#P.1bc.1.1.1.0#Ha0#Hbc.1.1.way#0.w#0bV#GbV.ybl#F#u#zbVbKbA.y",
504".g#.bW.UaOa9#..O.4.8bAbSbS#u.lbv.K.K.S#x#Eb#.v...Yba#..Z#T.4#Fbvbl#ubS#G.0#GbCbc#Pbc#P#P#G.w.w#P#Gbc.w.w.w.w#P.wb0.qbQ.K#r.S.S.S#G.1b4#P#H.1bc.1.1bca0.1#P.w.w.w#G#z#GbVbVbSbSbS#DbV#s.K#4.S.4.4",
505"#EaC#i.gbT.4.4bAbAbAbSbAbA.4.ZaPa3.6#6#E#x.4bLbL.4bAbKbAbSbS#ubS#0#P#P.w.w.1.w.1#H.1a7bCbn#H#H#Hbybyby#z#z.8.4.4aM#xaZ#2.8.y#GbV#Gbc.w.1#G.w.1.wbcbC#G#G.1#G#GaybSbSbS.8bla5bA.8#z#z.KbZbRaT.ZaP",
506".4#r.K#z#z#G#ubb.8.y.y.y#R.O#Z.tbMbM#5.ebA.R#D#Day.rayaybV#G.wby.1#G.w#G.w.wbV#u.TbObO.Z.Za6bD#ia6bTbDbD#iaP.s#t.K#s.wbya0#P.1bm#G#0#0.BbSayb2#0.1#G#u#GbVay.8.8blbSa5bSa5#za5bAar.Z.gbaa9baba.O",
507"b2bS.8#N#T.Ja6bk.M.M.lbS#z#G#z.w#ubV#GbV.1#G#D.ra7bnaV#H#Hbnbn#D.l.4#2.E.6.6bT.T.X.X#u#D.1.1b4be.1#G#G#G.0#Gbcbc.1.1.w.1.w.1#D#G#D.0.0#D#GbVaybS#G.1.1#Dbn#DbnbV.SbA.KbVbK.4aZbD#F#ubVbSaybV.wbn",
508"#D.0#Dbn.1#sbQ#s#za5#z.w#zbS.y#ubV.kbVbVbVbVbVbnaW.l.l.4#Narar.8bCbn#HaVbnaVbebea0.w.w.1.1a7#u#7.1#s#H.1.w#Ha0#b#G.w.w.w.1.w#G#G.0#G.1#0.w#0#0.wbS.ebS.e.l.4.JbG.y#u#D.w.w.w#sbQbV#s#0ay#ubV#D#D",
509".0bn#Gbn#D.R.R.RbV#G#z#0bV#u#u.y.SaBbYaB#t.4bA.ea5#zb2bSbSbVbV.w.0.0a7#Hb4#Hbn#7a5#z#z.w.wa0a0#bbeaz#b#b#bbn#D.y.1#G#G#G#G#u#G#u.1.1#b.1aybl#Fa8bG#T.8.eby.Wb0bP#G#Gbm#Gbm#G#G#G#sbn.w#z#G#G#zbn",
510"#z.w.w#zar.4#T.Jbv#F.ybSbV#ubSbVaY#s#s.Ka5.K#z.Kbl#u#D#G#D.rbd.ra5#0bS.BbVa5#ua8.ybla8#u#0#G#G#G.0#D#G.wbe#B#Ybe#P.w.w.w.1#0#G#G#G.1#P.w.w#0#0.w#baY#s.wbn.0#D#7ay.rbm.r#G#G#G#GbV#0#z#0#G#z.1.w",
511".8ara5.Ka5.ear.e.w.w.wa0#bby.w#b#0#0bV#u#F#FbGbv.8.8ay#z#0#0#0#0#z#0a5aya5ayb2#0bV#GbV#D#u#u#D#Ga0a0bc.1bc#G#D#u#Day#D#GbV#G.w#s.w.w.w.w.w#z.w.waBbs.y#D#DbC.1bCbV#G#0.1#0#G#0#zbKbSbSbS#u#ubVbV",
512"#Hb4bebeazbeaz#Y#ubV#u#z#u.y.8#F.w.w.w.w#0.w#0#z#G#ubl#F#u#u#u#Fbd#u#D.0#7#7#7#D#u#D#GbV#G.w#bbebc.1#G#G.1.w#P.w#b.wby#s.w.w#s.w#z#z.KbA.4#F#T#2ar.e.ebA.ebAbAbSbQ.w#s.w#z#zbK.4.y.8bSbS#0bSbVbn",
513"bn.1a7bnbn#D###u.1#0bn.w#G#z#D#0#0bV.w.w.w#bbe#bb4b4#HbCa7#Dbd.ybs.R#D#u#u#F#7bs#u#u#u.ybA.S.4bLap#b.WbQ#z#s#z#z.8.4.8#2#2bG.MbT.4.SbA.S.4.S.K.Kararar.ea5.ebS.e.8.8.ybS#z#z#s.KbAbla5#0#0.w#s.w",
514"#s#z#s#z#z#z#za5#D#D#GbV.wbV#z#0.Ka5bKbAau.R.S.R.lbAa5.e#r#NaAaAa6.ZaW#N#N.e.e.e.BbSa5.earbOa6#Ebi#EbDbDa6#t.4.4.ebA.SbA.e.K.K#zbL.T.KbL#t#TbL.Kbn.1.1.1.w#Hbeb4bV#z#z#G.w#z#z.K#za5#zby#0bVbV#z",
515"#u#D#DbV#u#ua8#ubXau.y.y.ybs#DbsbK.SbL#RaIaI.C#3bw#t#R#R.S.S.S.y#t.gaPaP.gaT.Z.ObabaaP.Z.Z.Z.4.l#F#2#2#O.S.ebA.8.S#2aB.y#zbKbS.y#u#D.1.w.1bnbVbn#zbK.y.SbK#4.S#tbSbV#u.8.8#u.8#ubV.y.y.y#ubA#ubV",
516".##q#qat.tas.2.2#A#A#AbH.H#C.H#CaMbI#x.GaZ.9bD.G.9bD.GbT#2#2aBaBbK.ybAbKbK.S.S.S#t.Z.Z.4bAbK#zbV#sbV.K.K.K#s.KbV.K.y.SbA.KbK.y.S.4.ybAbK.K.K.K.K.K.K.e.K#4.K#4bLa2#5.D#5a2aIaIa2aIbBbZbwbw.s.OaP",
517"ba.O.Obaba#.#.#..A.A#v.Abkbkbk.A.y.8.SbA.e.S.S.4.K.e.e.e.e#z#z#0bS#ubV#zbV.y.ybS#4.SbY.S.y.yaBaB.4#t#t#t#t.S.S.S.e.4.4.S.K.KbL.S#hbF.TbR.gaPbWaP#Z#ZbaaS.p#kb5b5bNa9#..O.O.Oaq.ObaaP.O.O#Zba.Y.Y",
518"#D#u#u#uaybSbS#u#s#s#z.w#s#s.1bnbQbQbQbQbQ.Q.K.T#t.4.Z#2#T.4.4.4bAbA.SbA.S.S.K.KbQ.K.K.K#5bLbL.SbO#R.T#5b.#5.K.kb.#5bLbZbZbR.Z.gaP#.aPbNbNbN.O.Hbwbwbwbw#3.O.O.O#2.4.8.8.8.8.ybAbA.e#z#s#z#s#z#s",
519"#5.TbLbL.TbLbLbL#m#gae.CaX.Caeae.Z.4#tbLbLbZbR#tbObR#tbR.4.4.4#t.saP.U#E.YaP.U#..UbWbibWbNbNa9#..gbW.Z.sbwaP.G.9aP#E.U#E#EaPaP.U.Y#3bBaIbw.Cb.#w.ybSa5bVbSbV#z.w#z#z#z.K.K.e.ea5bAa5.ea5.ea5a5.e",
520".U.Y.YaTaT.Z.O.gbRbRbwbw#tbB.s.ZbTbT.Z#t.4.4.4a6#t.Z#t#t#t#ta6bDaIbZbB.n#m.n#3#3#X#.aq.HbH#..H#m.TbRaIa2.DaI.T#4bwbRbwbwbZb.bob.#4b.buaK#R.s.9#t#3.O.O.Obw.sbw.sbwbwbwbw#tbwbRbB.Z.gaP.gaP.gaP.g",
521"aB#FbSbVbV#D#ubVaya8bl.8aybS#u#u#zbVbV#zbV#zbK#u#u#u.y.8.ybA.ybA.4bY.4.4#t#tbDaZ#tbR.4#t.4#t#tbL.K#tbwaI#5aIbLbFaIaIbwbD.U#E.Ubi#EbDbD.ZbT#xbT#xabaRaR#oabat.O#Z.s#t.SbLaI#4aKb.b.b..Kbu.7.Qbub.",
522".w#b#b#Y.w#0.1#G#z#G#z#G#b#b#b#s.1#G#G#G.1bc#G#G#G#Day#G#G#G#G#G.w#G#GbV.1#z.w#b.kbnbKbn#s#DbVbV.K#t#iaP.ZbW.g.Z.s.s.gaPaP.Zbw.Za6.Z.Z.8#r#z#ra5#D.r.r.r#Gbcbmbm#G.1.w.wbc.w#G#G#G#G#G#Ga0#P.1.r"
523};
524
525
526
527/* XPM */
528static const char *button_xpm[] = {
529/* width height num_colors chars_per_pixel */
530" 96 96 254 2",
531/* colors */
532".. c #9c3218",
533".# c #a4733e",
534".a c #bc450a",
535".b c #d4700c",
536".c c #dc8c29",
537".d c #bc5e00",
538".e c #d46b37",
539".f c #945431",
540".g c #bc5a2c",
541".h c #8c4e4b",
542".i c #d47e16",
543".j c #bc7422",
544".k c #d47d3a",
545".l c #d45e28",
546".m c #ec9b3e",
547".n c #bc6b43",
548".o c #d45a13",
549".p c #a45236",
550".q c #dc8848",
551".r c #e46b1b",
552".s c #bc652f",
553".t c #a46243",
554".u c #bc6920",
555".v c #a4391e",
556".w c #e47b35",
557".x c #9c6b30",
558".y c #d46d24",
559".z c #ec8a29",
560".A c #bc452a",
561".B c #e46833",
562".C c #bc702e",
563".D c #c47845",
564".E c #b15314",
565".F c #e47e10",
566".G c #bc5a18",
567".H c #bc6145",
568".I c #a44d16",
569".J c #cc5728",
570".K c #d47439",
571".L c #a45b39",
572".M c #cc5815",
573".N c #dc8f4c",
574".O c #b46239",
575".P c #bc5307",
576".Q c #d4794f",
577".R c #d47624",
578".S c #cc6c2c",
579".T c #cc6941",
580".U c #ac5222",
581".V c #e49328",
582".W c #e4754d",
583".X c #d4650b",
584".Y c #ac592c",
585".Z c #c05e2d",
586".0 c #e4751a",
587".1 c #e47d29",
588".2 c #9c6143",
589".3 c #e45f2b",
590".4 c #cc632a",
591".5 c #cc660d",
592".6 c #b44b13",
593".7 c #d48442",
594".8 c #d66228",
595".9 c #bc6221",
596"#. c #b45736",
597"## c #d47714",
598"#a c #dc8936",
599"#b c #e48237",
600"#c c #cc530c",
601"#d c #8c522b",
602"#e c #dc8819",
603"#f c #ec9129",
604"#g c #bc7936",
605"#h c #d46f50",
606"#i c #bc521d",
607"#j c #bc553b",
608"#k c #9c523b",
609"#l c #f49a45",
610"#m c #bc7548",
611"#n c #ec8643",
612"#o c #a86d3a",
613"#p c #a44d21",
614"#q c #a4754b",
615"#r c #d46547",
616"#s c #dc7937",
617"#t c #c4642d",
618"#u c #dc6c21",
619"#v c #bc4d2e",
620"#w c #cc7e53",
621"#x c #c45917",
622"#y c #cc5c42",
623"#z c #dc7036",
624"#A c #ac5448",
625"#B c #ec8f44",
626"#C c #b45c4d",
627"#D c #dc7622",
628"#E c #b45222",
629"#F c #d4651b",
630"#G c #e47328",
631"#H c #e58429",
632"#I c #9c5f23",
633"#J c #d47f2b",
634"#K c #cc7116",
635"#L c #eca24e",
636"#M c #9c471c",
637"#N c #d45b36",
638"#O c #c46716",
639"#P c #ec7836",
640"#Q c #ac642d",
641"#R c #c46f2e",
642"#S c #c47551",
643"#T c #cc5b2b",
644"#U c #cc685f",
645"#V c #bc4b3a",
646"#W c #e49a4b",
647"#X c #b44c35",
648"#Y c #e48745",
649"#Z c #ac613c",
650"#0 c #e47234",
651"#1 c #c46242",
652"#2 c #cc5e1a",
653"#3 c #b4683d",
654"#4 c #cc7430",
655"#5 c #cc7042",
656"#6 c #bf4b0d",
657"#7 c #dc6e13",
658"#8 c #e48c21",
659"#9 c #9c3445",
660"a. c #8c432b",
661"a# c #cc5e04",
662"aa c #a43f33",
663"ab c #b46d44",
664"ac c #9c5e62",
665"ad c #9c4833",
666"ae c #b4742c",
667"af c #a4522b",
668"ag c #dc943c",
669"ah c #b46000",
670"ai c #c46309",
671"aj c #a4441e",
672"ak c #dc7f4c",
673"al c #ac6e27",
674"am c #ac4b4e",
675"an c #ec9238",
676"ao c #e48518",
677"ap c #e47c4f",
678"aq c #bc5c3e",
679"ar c #d56238",
680"as c #9c5840",
681"at c #ab6946",
682"au c #cc761f",
683"av c #9c5024",
684"aw c #bc4922",
685"ax c #bc421d",
686"ay c #e46927",
687"az c #ec8836",
688"aA c #cc513b",
689"aB c #cc661d",
690"aC c #b44a21",
691"aD c #b4544c",
692"aE c #ec8a55",
693"aF c #9c5a20",
694"aG c #94533f",
695"aH c #c4701d",
696"aI c #c46b42",
697"aJ c #dc5a18",
698"aK c #cc7b2f",
699"aL c #e49046",
700"aM c #c4520b",
701"aN c #dc774c",
702"aO c #ac4631",
703"aP c #b45b28",
704"aQ c #944e30",
705"aR c #ac6e4d",
706"aS c #a45f2a",
707"aT c #b4612a",
708"aU c #ec7032",
709"aV c #dc872b",
710"aW c #cc5939",
711"aX c #b47844",
712"aY c #dc843b",
713"aZ c #c4601d",
714"a0 c #ec7f36",
715"a1 c #c47531",
716"a2 c #c47344",
717"a3 c #ac431d",
718"a4 c #ac7439",
719"a5 c #dc6735",
720"a6 c #c4582a",
721"a7 c #dc7c1b",
722"a8 c #dc5d26",
723"a9 c #ac5036",
724"b. c #cc7742",
725"b# c #ac4b13",
726"ba c #ac5a37",
727"bb c #dc5f0c",
728"bc c #ec7a29",
729"bd c #dc7813",
730"be c #e48b37",
731"bf c #f48e28",
732"bg c #c44e1f",
733"bh c #c44e3f",
734"bi c #ac4b1e",
735"bj c #dc6544",
736"bk c #c44c2b",
737"bl c #dc611a",
738"bm c #ec7125",
739"bn c #dc7d29",
740"bo c #cc7752",
741"bp c #c4473c",
742"bq c #ec994b",
743"br c #e49336",
744"bs c #d46f16",
745"bt c #bc600a",
746"bu c #d47a46",
747"bv c #d45b1e",
748"bw c #bc653a",
749"bx c #ac3c1d",
750"by c #e47943",
751"bz c #a46b2e",
752"bA c #d46b2e",
753"bB c #bc6c3a",
754"bC c #e47f1b",
755"bD c #bc5b22",
756"bE c #bc6052",
757"bF c #d47346",
758"bG c #cc561f",
759"bH c #b46044",
760"bI c #bc5312",
761"bJ c #d4775e",
762"bK c #d4732e",
763"bL c #cc6b37",
764"bM c #cc644f",
765"bN c #ac512d",
766"bO c #cc6137",
767"bP c #ec8552",
768"bQ c #dc7944",
769"bR c #c46339",
770"bS c #dc6a2c",
771"bT c #c45a21",
772"bU c #dc6f44",
773"bV c #dc732c",
774"bW c #b4502c",
775"bX c #cc6d1f",
776"bY c #c46521",
777"bZ c #c46939",
778"b0 c #e48653",
779"b1 c #ac6445",
780"b2 c #e46e43",
781"b3 c #c45851",
782"b4 c #e48b2b",
783"b5 c #9c5430",
784"b6 c #944d49",
785"b7 c #c46a51",
786/* pixels */
787".waB.U#5#Dba.##u#sbn#H.8#z.0#Db2.4#E.g.e#T#F#z#4bL.n#EbSbm.kauaz#Bbnbr#B.y#b#bb4.w.z#D.z#haKaZbr#Ha6bLaubn.w#Yb4.z#0#ba7an#s#Yb4b4.8.wbnaVaOb3aBbS.l.K.4bL.S#i#5#0#u.w.w#u.w.1#D#zaP#AbK.y#.#a#u",
788"#b#F.Y.T#u.O#q#D#z.1b4ar.wbn.0bS#raC#..T.4.lbK#4aZ#Zbi#G#G#s.S.1bebnbr#BbA#b.1.1.w.z#Gan#5aK#tbr.1a6#1aua7bS.w#HbCa5#0#DazbK.w#8#H.8#0aVbXbibRbsbA.l.K.e.e.4#x.T#0.8.wbVbVbn#sbVbSaT#AbVbS.gag#G",
789"#bbS.YbL#u.O#q#D#sa7bea5.w#G#D.8.K#ibW#1.4.8.e.SbD.p#pay#G.k.Sbcbebnbe#BbA#b.1bn.1bc#Gbe#1aHaZb4#D.Zb.aLan#0#Dbda7bS.ybCbe.y.w#8be#ubSaY.G#X#1.ybA.8#z.K.ebL.ZbL#0#u.w#GbV.w.1bnbA.u#C#z.y#.aL#G",
790"#YbVaTbL#ubaatbV#zbnbe.K#zbnbn#N#z.g.UbwbO.4.S.4#R.L.UbSay.k#Jbc#abebrazbK#bbnbC#GbC#ub4#X.u.Z#HaY.eaI#Wbr.w.1#H#HbV.8b4anbS#s#H#b#GbVbe.6bw.4.ya5.y.ebS.e.e#t#t#G#u#zbVbV.w#s.w.e.u#CbKbS#.br#P",
791".wbVaT.Tayba.t#u#zbnaza5ar#D.1#T#zbTaO#.bwbL.8#t#tas.Y#Gbl.K.k.1beanazbrbK.w.1.1.1bc#0be#j.C.4b4.ybO.g#Wana0aya7az.w#2az#B#z.w#HaY.wbVaNa3.s.4bA.e.8#F.8#z.ebLbD#0#u.w#GbV#b.1#s#z.s#AbAbV#jag#G",
792"#0#D.ZbLbS#.as#u#z#Dbe.e.4.R#s.J#G.4a9.p#.bR.SaZaP.f#Z.w#u.K.R.1bebqbrbe#D#bbeb4#PbC#z#aaO.CbL.1bV.T.Ibr#8a0.w#Han#Y#2anan#z#0bC#s#H#DaraC.s.4.lbAbA.lblbS.e.K#i#ubV.w#s#GbQbV.wa5.CaD.ybV#.#a#G",
793".1#u.ObLbS#..2a8#z##azar#T.RbQa6#u.4#.aQbNbR.S#T.UaQ#C#bblbK.kbCaV#l#fbebV#bbr.z#G.0bSaYaa.sbO#D.S.Q.U#Laz#n.w.1b4#B#2anbebS#zbC.KaV#Dbpb3bYbX.l.8bAbvblbS.e.k.g#u#G.w#GbVbVbS#s.e.C#CbKbV#X#a#G",
794"#GbV.gbL#u#..2#ua5#u#Y.e.J.R#sbkbbbA.Oa.adbR.T#2#Z.f#3#bbl.KaYa0bn#L.Vbe.wbeanaz#P.0bS#aaabw.e.0aBaNaP#W#8a0#G.0#8aE#2an#HbS#0.1.S.1.1.A#U.S.Rar.4a5#FbSblbAbQ.ZblbV.w#0#DbV.ybV.8.CbE#zbVbW#a.1",
795"#zaybR#m#s.A#AbX#D.1#u.wbvbV#z.M.8bA.4#E#k#Z.OaZ.hafbA#zbAbA#D#Hbnanbr#8aVb4#W#f.wbebVak#M.ObL.R.Ya2.Gbe.1aza7a7#Y.1#F#B.y.k#Db4.y#saY.P.ybX.K.4.8bS#zbS#u.8bA.SbDby#G.1#s.4.KbAbV.SatbVbl#Z#D#G",
796"#Ga8bR#g#s.A#Aau#D#0bV.w#F#Ga5.M.ybA.8#v.p.L#ZaTb6afbAbVbA.KbV#8#s.m#fbr#H#H.m#f.1#bbV.k#p.ObR.y.Oa2aZ#n#baz#H#H.w#0#uaL#O.k#D#b#F.w#b#2#zbK.KaB.ybS#GbS#DbSbVbAbT.wbV#G#s.4#zbS.KbAat#z#u#obV#G",
797"#zblbwae#z#v#A.y#Gbn#u.w.y#z#z.l.ybSbA.Zba#k.LbNas.UbK#0.8bKbVb4bnaL.mbrbe.canbr#H#bbA#4af.O.S.y.OaI#tbea0#b#H#b.y.w#G#b#x.KbV.w.y#s.w#F#s#zbVaBbS#ubS#GbSbSbK#z.4bQ.r.1bn.y#sbSbV.SaR#0#u.Obn.1",
798"#G.8bw.C.w.AbH.ybV.w#za0bS#0.wbS.ybAbS.8#.afaQaQ.L.UbVbVbS.K#sb4#Dbranbrbebe.m#f.1a0bAbL.Y.O.T#F#.aT.4.w#b#H.w.w.8bS.w#Y#x.SbV.1bS#0#z.y#0#z.y.8#zbS#ubV#GbS#ubA#4.w.0.1#bbKbVbV.y.4b1bS#u.O#G.1",
799"#bay#taX#sbk.H.y.w#G#u#bbVbV#z#z#RbAbS.ebRafaQ#d#kaP#s.wbA#zbn#H#sbeb4bebebeanb4.1#HbV#tba.YbL.y#X.U.S.wbc.1#GbV#zay#0by.y.SbV#PbS#zbS#u#z.wbl.y#GbS#u#G#GbV.ybK#z#b.0.1.wbnbV#DbA.Sb1#0bS#3#0.1",
800"#bbSbB.C#sbk#CbsbV#z.yby#u#ubS#G.O.4#ubS.4bNaQaQ.pbD#G.wa5#s#s#H#abebe.zaY#bbr#8#D.1#z.Gba.U.TaB.Ob#bK.wbe#G#G#s.w#u#G#bbKbAbV#G.RbV#F#s.w.w#F#F.w#0#G#0#0aybSbSbQ.w#G#G.wbVbA#GbKbAab#0ay.n.1.w",
801"#b#u.sae.1bk.H#D#z#D.8.wbS#u.y#z#Z.Z.lbSbA#.b5.fba.Z#s#GbS#z#sbe#bbrbebrbnbnan.V#D.1#z.G.nba#4bvbB.6#s.1az.0#G.w#Gay#P#GbKbK#b#G#z.waB.w.w.w#F#u#0.w.w#G#G#0bVbS.ebV#G#G.1#z.8bS#z.8b1#0bS.n#0#G",
802"#s#u.Zaebn.A#Cbs#0#0#F#bbV.y#u.w.taPbvaya5.Zafas#Z#t#0#G#F.K#bbr.wbeanbrbnbK.man.1.w#s#i#S.ObuaBaI.EbQa7a0.0#G#0#D#Gaz#u.Rbnan.0bebQaB#s#sa0#F.wbS#G#G#G#G#G#zbA.ebl#G.0bV#z#F#0bK.8.tayay.H#D.r",
803".1#zbT.ZbQ.yaMbK.K#0.w#0aY.SbV#ubMa3.K#Farbg#.aSbD.4#D#G#D.5#Y#b.qaV.V.m#z.e.m#fby#D#J#1.H.uaK.ZbRbIbe.1a0.w#D#D#Gbdb4b0.J.wa7ak#H#n#xb4#H#z#zbnay#G#u#G.1.1#G#u#s#Tbd#0b2#GbA.1.8#r#Ia5#sala5#D",
804"#GbVbT.4bQ.8bI.Sa5bV.w#0#saB.kbVbM.6.Kbla5.J.Z#Q.sbK#G#G.1aB#Y#b#bb4.Vbr#F#z#B#8#0bdbK#j#.aP.S.g.TaZ#B#H.w#P.w#D#0.Fb4aNbv.1#DbV#Ha0.Mb4#H#za5#D#0#G#G.0.1.1.w#D#s#Ta7#0b2#D.8#H.y#r.fbA#zal#z.1",
805"#GbV.Z#tbQ.S#xbLbK.w.wbV#sbYbV#G#5#6.SbA#zbv#taT.Z#z.w.1#zbX#Ybn.qb4.mb4aB#zbe#8#0bd.R#j#.bt#R.g#1aZbe.1#G.wbV#D#PbCbe.ear#D.1bX.1by.l.1.1a5a5#Dbm#G#G.1.1a0.w#G#s.la7.wa5#Dar#HbVbF#I.4a5ala5.1",
806"#G#z#tbLbQbA.G#RbA.w.w#u.KaBbVbV.e#E#x.ybV.8.4.sbTa5.w#Gbn.4#Y.y#YaV.m#H#F#sbean#Gbn#s.gaDaT#R.g#t.4#b.0#G#G#G#D#0bCb4#x.e#G.1aB#G#0.8.1.1bS.B#G#G#G#G.1.1.1#G#u#z.e#H.w#z#D.8#H#z#haS.4#zal.4.1",
807".1bV.4bLbQ.eaZaIau.w#0#Fa5#tbV.1bA#x#E.SbV#u#F.4bG#z#0#zbVbYakbX#YbnaL#b.ybV.1an#P#H#saqaq.u#4#j#1.S.1#u.1#0.1#G#0#Hbn#ibjbV#b#2bca5a5.1.0.l#z.0#G.1.1bcbc#b#D#u.war#8by#z#u.e#b.y.Tbz.4#za4.J#D",
808"bc#z.4bZ.Q.S.9aI.R#b.w#F.K.4bV#G.R.4b#.T#u#D.y.8.8#GbcbVbK#R.qbKbebn.1#s#Dbs#Dbe.w#8aY#jaq.s.SaO.Z.S#D#7bm#G.w#u#0.zbn#xa5#G.1#2#bbSby.1#G.l#0.0.0bca0az#Ha0#G#u#0.B#8.w.K#D#r.1#FbO.x#T#zaX.J#D",
809"#GbK.4bR.K.SbD.C.Sbe#0bG#zbAbV#D#DbL.v.T.y.0blarbS#G#G#D.KaH#Y#s#H.wbAbV#D#D#D#G.w.zaV#.aq.sbwax.gbA#D#7#G#u#G#u#uan##aW#NbV#D.4#bbvap#H#H.8#sa7.1.1bc#Ha0#H#0#D#0a5#8bQ#z.y.ebn.y.T.##x.KaXbkbV",
810"#G#ua6#t.T.4.G#3.R#b#zbv.K.ebn.r#DbL..aI.4#7blar#G#Gay#u.KbY.N.cbnbe.ybVbn#G#b#u#b.zaYbW.H#R#tbx.Z.k.w.r#0ay.1#GaJaz.5bO#T.w#DbAbnbg#b#Hb4bVby.F.0bC.1.1.1#b#GbVaU.8#HbnbA.R#N.1#s#h.#bgbAa4#vbV",
811"#G#u#tbO#t.K.9bw.lb4#G.8bla5aWa7ay.4.YaD.K#ublblay#G.1.y.K.Z#Y.iaY#T.R#Nbe#zbC.1#H#Bb..ZaPb.#3aFaPak#G.0.1#D#D#G#D#b#xbAbv#G#ubA.w.Mbn#nbVbS.1bdbcbm#P#G#Gbc.1#G#D.w#u.w.w#2bK#4bK.K#vbw.Q#tbt.K",
812"#D#u.ZbR.4.ebD#tbAb4#u.8#u#z.lbn.rbAbabN#tbS#u#u.B#G#D#D.e.4#Ya7#b.4bnaW#H#zbC#GbcaL#4aTbW#4aTaS.UbQ#D#u#z#D#D#G#u#baBa5bS#G#u.K#b#F.1bebVbV#GbC#H.1#P.1.1#H#GbVbS#G#u.w#saBbA.SbAbF.gaqb..u.G.K",
813"ay.y#t#t.Z.e.G#Ra5#Hblay#Db2.laVaybK#.#p.g.ybVbV#G.w#7#z.4.e#abeaY.ybn#T.1#zbC#D#G#b.S#t#x#5.Z.Y.U.kbSbl#GbA#u#G#u#b.4.e#z#G#FbAby.ybeaz#ubS.1bc.z.1#P.w.1bc#DaybV#G#F#G.w#2.S#t.R.e.g.OaI.9#x.K",
814"#G.8#tbR#2.ebT#R.ebC#F#z#GbS.4#HaybA.Zajbi#tbVbV#0#G#F#saB#s.Rbe#bbAbn#Tbna5#GbCay.wbLbR.ZbL.Z.O#E.Kbl#ubVbKbSbVbl.w.4.8#0#ua#bVbQ#ube#b#u#G.1.1bf.0.w#Pa0#H.1#GbV#G#u.w#s.M.S#tbn.e#1.gbZ#R.9.K",
815"#G.y#t.4#T.e#2.S#ra7#u#0#DbS#N#HbVbS#T.U#p.sbK#u#G#G.y#s.y#s.y#zaVbKbn.J.1a5bC.1#G#s.4bO.4bLbD.sbWbF.8ay#z#zbA#u#D#z.4.4#0#u.o#s.4bSbe#H#u#G.1.1.z#D#G.w#ba0.1#0#D.w#D.wbV#x.S.S#s.SbR.ObZ#5bYbO",
816"#GbA#t.4.4#z#2.S#N#D#u#0.rbVarbn#GbS.4#vb5.O.Sbl#DbVa5.K#Dbn.ybVbn.Kbn.J#D#z#G.1.rbV.ZbR.Z#T#i.s.g.ebl#G#0.K#u.8#0bA.e#2.1#u.y#b#xbAbebn#D#Gbm.0beblbV.w.1bc.1#G#D.1#Ga0#s.M.S.Tbn.S.T#jbBbu.4.Z",
817"#G.ya6.4.4#zaB.SaAbd#u#0bdbVarbn.w#u#F.g.pba#t#F.0#u#s.8bnb4.y.8aVbQ#Hbkbna5.1.w.1#z#tbL.4.Z.E#t.gbA#uay#sbS.K.y.w#2#z.4#0bl#D#Ybg#zbebC.0.w#G.1.1bvar#z#u.1.1#G#D.1bV#b#z#2bLbL#b.S#5#..g.k#t.Z",
818"#GbAbD#t.4#0aB.yaA.y#F#0.r.w.8#DbybSbv#t#kas.s.X#D.y.Waibe#HbVa5aVbQb4bkbna5#G.1.w#s#tb.bR.4#ia2.g.y#F#u#GbKbV#ub2#c.K.4bV#7#DaYa6.kaza7#D#P.1bc#z#Tar.8#F.0.1.r#G.1#u#P#s#2bL.S#b.S#haP.U#5bY#T",
819".w.4aI.sbAbSbK#ta6bsbd#za5.0bC.l.1#0bla6.Z#3aIbT#sbUaVara7.q#ebn#b#D#YaA#8#s#u.wbv.K.L#u#R.4#Z#F#T.e.8#z.e.l#sbs.w.P.e.w#G.r.r.1#T.wa7.z.1bea0.F.K#D.RbK.e#zbV#D.w.1#G#u.w#zaB.K#Y#ubOaC.gbobwaP",
820"#GbYbZaPbA#u.y.g.Z.R#u#0#0.0bn.4#G#P#u#TaPba#t.G.ybQ.c.4#8#YbraYbn.R.wbp#ebn.8.1#F.K.L.rbL#t#Zbl#T.eaB#z#z.4#G#7.1#6.S.w#u#G.rbV.l.w.0be.1.wa0#8bV.R#J.K.4.8bV#G#G#G#G#G#b#saB.K.w.ybOaCaPb7.s.G",
821"#G.4bB.U.SbVbAaPaW#D#Da5bSa7#H#2.w#PbSbA.ZaPbw#t.y#zbe.4br#sbq.c.w#D#s#Vao#z#u#G.l.KaS.rb..4afa5.4bS#Fa5#zbv#u#G#0#6bAbQ#u#G.w.8#z.wbd.z.1#b#H#HbS.y#HbQ#T#T#zbn#G#G.w#G.w.waB.K#s.8.T#v#.aIaPaT",
822"bV.4.n#EbA#zbKaP#N#u.0ay.B#HaV.E#G.w#GbS#t.ZbZ.SbV#zbnbVbqai#WaL#b.1aYbp#e#zbS#G#F#z.L.rb..4afbS.lbS#F#u#z.8#u.1#0.M.8#z.o#0#baZa5.w#u.1#D#b#H.1bAbVaYbQ.8.J.y.w.w.w.1#0.w#s#2.SbVbA.K.gaPaIaP.Z",
823".1#t#m.Y.SbVbK.g#N#u#7a5bVb4bn.6.w.w.0bS.S.saI#tbVbV#s#s#Y.daLaLbe.1bQbh#8#zbV#G.l.Kba.r.k#tbNay.l#u#F#ua5#F#u.1.w#2bAbS#F#z#Y.GbVa0#u#D#7az#b.y.ybe.1bVby.laB#b#P.1.w#G#GbVaB.S.y.e.K.g#..n.U.O",
824"#z#t.naP.S.y.SaT.e#F#7aya5#HaV.6.w.1#G#G.ybD#tbk.4#JbQbn.Kbs#Bbebe#Hbnbp#8.ybSbSaJ.K.O.r#4.4#Z#u.8.8#ubS.8.lbVbn#z.e.ebSbbay#bbY#Ga0bS#D#Dbr#bbG#D#n.1#u#b.eaM#b.w#G#G#GbV#s.SbK.4.4#5aPaPbwb#.O",
825".wbD#3.U.K.y.S.Z.e#7#7b2#ubnbebTbV.wbC.1#D.Z#tbT.ZbK#h.c.e#8#b#HaV.1bKbp#8.8#z#ubv#z.nbm#R.y.na8bS#FbV#zbG.ebn#D.4.KbKbV#7ay#baB#G.wbS.w#Hb4#s.4#Daz.1#D#nbV.M#H.w#G.w#G.w.wbK.e.lbA.KaPaPbwaf.O",
826"#baZ#3#..KbS.S.O.ebs#D#0a8#7be.T#u.1bcbcbn.Z.S.TbLbY.TbrbUanbV#H#H#H.Rbp#8bA#zbSbl.K#mbm.4.ea2bl.ebG.wa5bg.S#s.y.G.k.KbVbm.0.w.Sbc.w.B#Bb4#H.y.e.1an#H.1a0bV.5aY.w.wa0.w.w#sbA.SbA.ebu.Z.O#m.Y.H",
827".k#t#X.UbQ#4#tba.B#u#ubV.ya5a0.X.T#H#P#Ga7.y.n.u.sb..K#s#Hbe.i.k#D#YbT.e#0bl.waibA#RbQ#z#RbK.3.y#F#r.y#DaA#u.z#x#v#K#z.w#F#Y.g.R.w#HbCazbCbea#bnbean#H#0a0#G.y.1#G#PbV#b.X.1bV#t.y.KbL#R.9#5.s.9",
828"bnbR#.bW.K.S.ZbabS#u#D#Gbl#z.w.XbO.1bcaUbC#J#1aH.s#R.k#ubean.RbK.1#s.G#z#0#F#saB.8.C#za5aHbAay.y.8#rbS#ubvbAb4bXbhaBbV#z#7.wbkaV#b.w#D.zbcbe.X#sbean#b#G#b#G.ybVbm.w#Daz#D.wbV.4.y#z.4#RaPaI.saP",
829"bK.4aqbi.KbY.ZaPa5#u#GbVa8#z.w#ubOa7#P#Pb4aY.T#O#R.ZbQ#2#YanbVbKbe#zaMbQ#0.o#D.S.l.j.Kbv.ubV.B.R#F#rbS#u#TbAb4bAbR.X.y#z#ua5bg#a#b#H.0#H.1be.y#sbebe.1#G.w#G.ybVbm#G#D#Ya0.wbV#t.ybQ.4#t.ga2.Z.Z",
830"bn#t.HbW.K.S.4.Z.e.ybV#D#u.w.1#D.ZbC#P.w.z#abFaB#4#tb0.Man#YbnbKbebV#2.w.w.o#ubX.8#R#z.l.u.K.BbK.l.e#u.8.l.R#sbAbObs#ubS#DbS#Tbe.wbV#D.w.w.1.y#b#Haz.1#G.w.w#u.ybm.1bVaza0#b#s#tbA#s#t#t.s#5.saP",
831"#s.4bHbN#5.ybA.ZarbA#G#u#0.w.1.1.Zbn#G#0az#Y#z#D#sbAaE#xazbe.1#s.wbV.4.w#G#ubVaBa5aubQa5.ubAay#J.8#F.8.8#FbKbObY#rbnbV.J#D#zarbnbV#D#G#P#b#ubVaYbe#bbc#G.w.wbV#uay.w.w.1#G.w.wbD#T.K.4#t.O#5aPaP",
832"#D#t#.bNbL.ybK.ZbO.S.w#u#Ga0a7.1a6#H.w#Gb4bebQ.1.w.w#Y.ybe#H#b#b#G#zbV#s#G#G.1#2#zau#0a5.jbA.B.Kar.y.8.8#D.K.gbtar.1bVbGbnbS#z.1#D#u.w.w#b#Fbn#saz#b.1#G.w.w.w.y#u#P#b.0.1.1#YaP.M.K.Z.Z.ZaI#EaP",
833"bV#t.Ha9bLaB#z.4a6.4#b#D#Ga0#ub4bD#H.wbSao#bby.z#HbebV#Daz#Hb4#b.w#ubV.1.r#G.w.4#zbY.ea5a1bA.8bKarbsa5.8a7.K#V.Z#N.1bVbG#b.8a5#8.1#G.w.w#n.5.waYazbc#P.1#P.w#P#F#G.waz#Dbc#Gbeb#bGbU#t.saPb7.gbZ",
834"bVbL#m#..SaBbV.l#EbLbe#G#G#b#7be#i#H#PbS.1.w.waz.1#n.X#ban#8b4#Ha0.ybK.way.r.wbKbSbt#2a5aK.Ka8bKarbd#z#ra7#s#X#R.l#7bV.lbe.Ma5azbe.1.1.w#n.X#baVaz#H.1#P#0#P.w#F.w#0.w.0az#GbQb#.4bQbL.Z.Z#5bwbo",
835".K.K.T.gbO.4#s#Fbiapbca0.0be.1.1a6by#G#G#bb4be.zaY.R.y.1az#b#s#b.za5.8#H#2.1#Dbv.K.6bQ.K#F.Kbn.SblbV.k.4bQ.4.MbX#4#Har#D#s.4###bby.1anbebe#Fbe#baz.w.w.1bV.w.wbvaz#D#G#G#G#s.K.UbO.y.e#O#C.D.U.i",
836"#t#tbRbW#R#tbV#2#E#b.1a0#Daz#s#GbTbybc#G.1#bbr#f.q#D.y#baz#H#DbV.za5#F#b.Jbna7ar#4#6.K.4.SbV.y#FbS#z.KbYbybAaBbKbLbn.8#G#s.Z##.w.w.1azbe.1.ybe.waza0#b.1bV#b.w.o#b#D#G#G#G#zbA#EbO.R#r#OaDbB.U.k",
837"#ibwaI.Z.T#t.K#2bD.W#Gbc#G#b#H#GbDby.way.1#ban.zbe.y.y#b#n.w.y#D#Har#u.1#2bnbd.ebOa6.K#x.4bA.4.ya5bV.KaZbQa5.y#s.Sa7arbV#s#x.5.wbV#bb4an#u#saY#sbe.1#bbe.1#n#b.M.wbV#G#GbSbV.e.9.4.y.K.5#AbB.U#J",
838"aPaIa2.s#5#t.K#ObDbQ#G.1.w#b.1#GbD#z.w.rbVbebr.zbQ.y.y#b#nbV#ubVaV.l#z#G#2#D#DbF.4bL.Kbg.Ka5.4.8#0.ybK.G#z#zaB.k.4#Da8.1bnbk.b#bbV.wbebr.y#Y#s#JbV#sazaz.1#b.1#2.w.w#G#G#GbV.K.S.S.y.KaHam#3aO.k",
839".Z#5.Dbwb.#t.K.Sa6#z.1bcbe#b.w.0#i#z.w#Daybeazb4#s.8bV#n.w#GbV.w#H#T.w#D.l#Dbs.T#T#z#z#x#z#z.4.8bSaB.K.G.e#zaB.R.4#Dar.w.wa6.R#b#z.1bebeaB.NbA.S.SbVbebe#G.1.1#2#G.w#0bVbVbVbV.ebLaB.e#KambwbW#J",
840"bWaIaIaP#5.S#s.e#t#s.w#G#Bbn#H#GaP.8.w#GbVbe#b.z#s#D.wa0.1#G.1beaY.Jby#7a5bV.5#1aBak#sbgbQ#z.8bA.BaBbQaZ#z#z#2.S.4#Da8.1#z#Ta7a0#s.1bebnbXaNbRaZ.4.S.w.1#G.1.w#2a5#0.Bbl#ubS.ybVbO#O.ebYambwbWbK",
841".gbL.T.G.K.S.KbA.4#z#P#D#Y#Da0bc.s.4#P.w#Gbe.1a0#sbn#ba0.1.0#b.wbn#vby#7#z#z.5#jaB#b#z.M#z#z.8#FbS#2aYaZ.e#zaZ.R.4#Da5#GbVbO.1by.w#Dbr.R.S.QbZbD#1.S#z#G#u.w.waBbl#0bS.8bVbVblbSaq#x.T.Sam.CbWbn",
842".ZbF#4.9.k.SbV.8.4#z.w#ube.y#bbc#t.4.w#P.w#b.w.zbn#D.1a0.1.1#H.1aVawby#F.w.w#O.g#Fak#DaMbV.ybA.l#u#2akaZbA#z#2bAbL.0ar#GbVbObn.w#Y#D#BbX.k.Qa2.sbM#tbA#u#G#nbybG#u#0a5bl#0bV.y#G#.bT#r#4#X.OaPbn",
843".saIbwaPb..e.K.S.e.8#b#D#P.1#G.1.KaMb0#Da0bman#Jar#Y#8a0.w.w.1bC.ea7#GbS#b#T.Qahb4#D.y#2bS#zbl.ybV#Mbu#tbl#w.yblay#0.R#Hbk#D#H.1#bbV.V.4b4.TaubRbZ#t#t#z.1.1#b.9ar.w#ubv#zbdbs.K.O#t.KbD#3#ob##b",
844".saIbR#E#5.4.y#2bA.4.way.w#G.w.1#s#x.q.y.w.0#nbn.l.w.1.1.wbV.1bCbL#H#G.8.1#x.Q#O#b#D#F.8bS#z.y.y#uav.K.Sbl#m.y#F#D#zbV#8bp.RaV#Hbeak.cbQ.c.T.S#tbR.s#tbK#G.1.w#OaW#b#ua8#0#ubs.K.Y.4#z.G#Zabb##s",
845".gbwbw.UbL.4.SaB.S.8by#D.w#G.w.w.waZbQ.8#G#ube#J.l.waz.0.1#u#bbna6b4#z.l#u.M.K##az#D#FbVbSbS.y.8#uaS.SbLay#3.R.o#ubV#z#8bpbn#HazaYaL#Db0b4bu.R.S.Z.Z.Z.K#G.1#baB#i#b#D.8#0bdbs#rafbL.K#x.Oab.EbV",
846"aPbDbw#EbZ.SbA.ybA#2#s#G.w#G.w.1by#2.K.4#z#G.wbK#ubnaz.X#P#Fbe#Da6bebV.l#GbG#Nbn#b.y#F#s.y.8bK.8bl#Z.4bF.0ba.K.oaybVbV#8bp#s#Hbe#JaL#OaLaY.w#s#z.Z.s.Z.4#u#G.w.y#iaV.1.Ba5.r#D.l#pbL#zaZaP.n#tbV",
847"aP.UbZ#EbZ.K.K#z.e#2.wbV.1#G.1.wa0.8#r.4#0.w#z.y.1.waz#7a0#7#Y#2a6#b#u.8bnbl.Jbn#P#u#F.wbSaBbS.4#u.O.4b.ay.pbQ#F.1#ubAaobh#bbnbe#saLai#BbA#s#z#u.Zbw.ZbObS#G#b#D#iaV.1#z#0#D#u#y#pbL#saZaPaI.K#G",
848".Z#Eb.aPbR.KbKbK.KbG.w#G#0#u.w.1#P.y.S.e#z.w.ybA#H.wa0#u#b#D#bbgbO.1#Fa5bna5bg#D#z#u#F#s#D#2.e.4bl.O.4#5.r.p.Kbv#H#F.ya7bhbe#D.1#Ybq.SaY#Tbn.ybs#taI.g.Z.8#D.w.1a6bnbn.B#0#D#D#T.I.4bV#2aP.C.K#G",
849"bw.UboaP.ZbL.ybS.K.M#s.w#G#G#G#D.1#G.S.e.K#0#FbKbCaza0.1.1.1#s#ia5.0#F#s#Da5aw#bbl#0.obVbV.M.e.4bl.O.SbOaJ.LbQ.ya0#F#D#8bhbe#D#sbe#B#sa7.4.1.e#F#taI#.#j.l#u.1.1.4.1.0a5b2#D#u.Z.UbLbS.SaP#t#z.r",
850".Zbib..U.g.S.S.y#zbT.w#s#G#u#G#GbmbV.S.e.ybVaB#s.Fa0.wa0.0b4#z#ib2.0.oby#D.eaxaY.o#0aB#ubV#2.8.4blaP.e.Z.o.Lbubl.wbl#s#8bhbe.y#b.1.V.W.b#rbe#z.RbYaI#.#v#Tbl.1.1.e#G#7#0#0#D.R.Z.U.S#zbV.s#R#s.r",
851"a6#E#4.YaP#h.4#ubL.4#z.w#G.1.0#D#G#G#G#u.8bG.8#zbC.1a0#zbV#b#z.J.w#GbbbVbAaB#O.1#F.w.8bSay.o#FaP#5a6.4#tbR.Z#zbV.1bdbS#DaAbVbQ#e#BaBaEbA.4#sbs#Dbl#tb1#A.Zbl#u.wbV.y#zay.0.1.y#2aT.4bVbVaZ.9#say",
852".ZbDb.#3#.bF.y#D.T.S#z.w.1.1#G.0#0bc.1.1bVbA.y#b.1.1.w#D#Gbe#z.l#b#u#u#GbA.S.y#D#D#s.y#zay#F.KbtbZ#i.8.Z.saZbA#u.wbCa5#DaA.RbQbn#B.X#Y.4.KbV#u#D.o#tba#k.g#2#u#sbn.y#0#G.rbC#DaB.Z.S#u#sbY#t#s.r",
853".ZbDbubBaP.TbA.1.KbA.K.w#P#b.1.0#0.wb4#P.wbVbnazbC#H#0#u.1be#DbA.wblay#0.4.S#z#D#0bV.8.1ay#u#saP.g#i.4.Z#tbDbK#7.1bCa5bnaW.R#zbn#BaB#Y#x.KbVbn.0#u.4#.a9#i.4#u.1bQ#FbS#G.0.1#D.S.O.4#u.w#tbYbQ.0",
854".8.ZaKaIbNbRbK.wbL.SbA.w.w.1#0#D.B.1#P.1.1bV#H.z.1#b#G#F.1be#7#s#zbv#0.w.4bT#sbS#G#u.y#zblbl#saPaP.Z.e#tbR#t#s#G.w.1bV.1aW.y.Kbnbr.y#YaM#s.y.1#GbSbA.Z.YbW.4bV.w#b#FbS#z.0.1bV.y.O#TbVbV#t#t#s#G",
855"#rbT#RbwbN.g.K.1#t.4.4.w.way.w#GbS#G#Hbc.1.1ao.z.1#PbV#uazazbs#bbU#c#0#0.8.6#z#u#G#F#u#Gbb#F.k#E#.bRbF.Z#t#R#b.1#GbC#zbn#N.R.eaV#sbKaYaZ#s.y.1#G#G.l.ZbW.U.gbA#G.w#2bS#G#u.1bVbSaq.Zbl#z#tbY#s.0",
856"#z#x.s.CbNaP.Kbn#T.S#F#z#0bl#0bVay.w.1.1.1.1bc.z.1.w#z#u#bb4#u#b#s#c.w#zbA.a#z#D#G#FbV#Gbl#u.K.YbaaI.K#i.s.Sbe.z#s#GbSbC#r#D.KaV.RbQ.k.y#s.y.1#Gaybl.l.ZbN.ZbK#G.w.oa5#z#u.1#s#u.Oa6#FbSbY.Zbn#G",
857"#rbT.9b..ObW.KbVbL.K#T.w#0#F#0ayb2.1bc.1bc.wbcao.1#G#zbV.w.1.ybQ#s#2.w#F#z#2#b#7aUbl#0.1#u#GbLaPbN.Hb.aC.saK#Y.z#0.1bV.1#r#D.eaYbAaLaBbK#Dbn#G#G#0#ubSbLa9#Z#z#G#Gbv#z#z#F#D#0.8.H.Z.8bA#tbY#s.1",
858"a5#x#t#w.HaP.Kbn.K.K#2.w.wa8.wbS#0.w.1.1.1#Pbcbc.1bV#0bV#sbV.lbQ#z#u.wa##zbK#B#7#0#u#D#G#G.wbObN.p.n#h.E#taKbe.z.w.1bSbCbFbV.ebn.KaL#x.k.y#b#D.0#ubl#u.4#pbN.S.rbV#F#z#z.o.1.w#F.H.J.la5bY.s#sbc",
859"#Dab#3.ybw#Z.K#zbnararaB#bbGbS#G.1bc.1.0bc.1.1.0ay.w#F#n#sbeai#JbA#D#b.4.e.1.z.o.B.w#u.1#DbQbLaPb#.Z.g.ZbDaka0.w#GbV#G#bbsbea7bnbK.q#4bA#G#G.0#Dar.3.y.R.U#9.Tbd#uay#r#z.MbVbe#Kb1bD#2.e#t#tbn.r",
860".raR.ObSbw#Z.KbK.1ar.ebsaY#T.e.1#GbCbc#Hbc#H.1.1bV#0#F#nbVbe.5bV.lbd#b#N.8bnaz#u#u#0.r.1#ubK#t.Z#EaIbR#1aZapbe.1.1#u#D.w.ybebnb4bn.q.S.4ay#G#D.Rbla5#u.RaP#9.Tbd.r#z.ebU.M#Gbeaub1.g.4.K#t#t#s.0",
861".raR.Oa5bwba.e.y.1ar.e.y#s.8bS.1#u#Ga0a0#Ha0.1#GbVbV#F#bbV.w#FbVbv#D#sbO#T.1az#0#u#G#G.1#ubK.Z.s#EaI#t.ga6#Y#b#G.1#DbV#DbK#BaVbeaVaY.S.4bV#G#D.y.la5#u.i.9aabOa7.r#G.e#z.M#0#b.y#Z.Z.8bQbL#t.w.0",
862".r#o.ObVbwaS.K.S.1.ebA#D.w.e.e#D#G#G.1#Ha0bc.1.0.w#u#F#P#u#z#ubS#T.1bnar.Jbn.1.w#u#G.0.1#Dbn.9bw#E.Taq.gbT#bbn#uan#G#b#Dbnbqa7be.w#a.4#F.w#G.RaBaB.ebSbn.S#X.Zbd#GbV.4#z#F#0#b.S#Z.gbAbQbZ#R#sbc",
863"#GabbwbS#3.p#4bK.wa5.e#Dbnby.lbnbV.1#Pbc.1.1#G#G#s#u#FbybV#u#0#G#T.w#D#r#x.1#Gby#G.1#G.1.1bQ.Gbw.Z#5.Za6.Zak.w#D#B#H#b.y#baLbn#a#b#baB.8.w#0bAbD#t.4bS#D.y.g#vbn#GbV.4#z#u#GbQ.y.L.ZbAbU.S.s.w.0",
864"bcat.sbV.O#k.K#4#H.ebAbC.0.W.4#Day#G.w.1.0#D#G#u.w#u#u#bbV#F.w#u.l#H.X#r.lbebCa0#G#G#G.1.1#Y.G.C.gaIbW#i.g#s#D.0azbe.1.5#YbeaYbe.w.wbX.y.wbn.4bD.ubh#N#ubV.Zbgbn#G#z#2bQbV.w.w.y#Z.g.l#sbRbY#s.0",
865"bm.Obw#z.Ob5#4.SbebSbA.1#Db0.Jbn.8#G.w.1#Gay#G#G#s#u#u#Y.1aBbe.R.ybe.5#z.Kan.0a0#0.1#Gbc#baLbI.C.gbR#EbWbT#z.y#Gb4anbnbsaLbn#a#a#H#b.ybA.w#zbOaPaT#V.l#FbVbOa3#s#0.e#2by#G.1bn.Rat.Z.4#z#t.s#s.0",
866"bm#Z.s.w.Ob5bL#tb4.ebSbC#7bPbGbV.8ay.w.w#G#D#0#G#0#ubV#n#saibe.R#0an.b#z#z#lbd#0.1#Gbc.1#H#Y.EbZaIb..gbR.Sak#G#nb4.m#b.ybq.RaLbea0#b.y.y.wbS.4.g.O#XaA#F#DaraxbQa5.ebTbQ.1a0#G.y#3.Zbv.K#t#tbn.r",
867"#G.sbw#z#2bNa2bSbV.8bQbVay#G.y.SblbS#Gay#G#0#G#ubybvbe#b#z.4.q.S#8#b#za8#Daz#7.w.w.r.1.1#H#s.GbBaBb.aP.CbAbn.1b4ananan###Bbn.mbnb4#b.ybv#GbnaP#ZadbN#jbSay.MbD.n.1#z.4#z#bbCbV#zbwaPa6#5bZbD.y.1",
868".1#tbw#z.4a9#5bV#z.8.w#G.r#G#ubAbSbS#z#0#G.1#0bS#z.o#bbn.y#2akaB.1.w#0.y#0az#Dbn.w#G#G.1#baY.9.C#2bL.Y.s.S#DbC#Hazbeana7brbn#Wbnan#b.K#u.w#bbDb1#k#k.g.Saybv#xbw.w#z.4bK#P#G#G#z.s.g.g.KbR.ZbV.1",
869".w.Sbw#z.8#..D#u#z.y#s#0bmbm#D.Ka5bS#G.w#GbS#G#0a5#F.1#DaB.4bQ#2#D.w#zbS.wbe#u#0.wbV#G.1#b.KaP.Z.ZaIbN#..S#u.1.1b4anbe#Hbebebrbnbe.w#z#u.wbn#E.LaG#ka9.4#zblaZ.sbV#z.4#z.w.0#D#s.H#i#x#5bZ.Z#s.1",
870".wbLbw.K.8.O#5.8#GbS.w.1.r#G.wbVbS.8bV#0#G#ubVbV#u.yaY#D#2.ebQ#2.1bVa5.8.w.1bSbS.w#G#G#G#GbA.g#.bLbRba.O.K#D.1.1b4anb4brbebrbrbn#Hbn.KbS.w#Db#.fb6aG#kaq#za5.8.Z#zbV.S#s.way#GbnbBaP.g.TbR#t#s.1",
871"bcaI#t.K.8.Oa2.8.w#z#z#0#Gbm.wbKa5blbVbV#G#u#ua5.y#D.wbVbGbQ#baB.wbSbA.4#b.RbVbA#0bV#G.wbVbY.Z.O.TbR#.aPbQ.ya0#b.z#Bb4anbe#B#Y.ibe#sbV#s#b.Rafb6#k#kadaP.e#zbA.4bS#s.R#s.wbS#D.1b7#i#x#4bR.9bV#G",
872".w#4bw.e.8.OaI#u#z#z#z#G#G#G.w.4#za5bS#GbVbVbVbS.4bKbV.K.MbQaY#FazbVbAaB.q#F#GbS#G.1#Haz#saBbZ.H.e.gbabN.q#7#b.zan.manbebrbrbrbn.1#D#zbV.1.R.I.ha9.L#kbN.4#zbA.8ar#s.Rbn#0.B#GbnaI#E#i#5.s.Z#s#D",
873"#GaKbR.e.yaqaI.8#z#sbK#0#G#G#saZa5bAbSbVbV#zbV#u.l#z.ybV#x.w#bbdazbV.K.Sbr.5.w#z.1bcbcaz#baBbZ.O.ebWbabi.qbs.zb4ananan.1#Bbe#Wbn.1.y.y#DbnaB#M.h.g.Oa9bibTbAbA.8.J#sbn.Raya5bVa7aI#E#i.KbR#t#s.0",
874"#Gb.bBa5bA.Oa2#u.K.K.4#z#G#GbQbDbA.8bS.y#ubVbVaB#r.KbA#zbg#Y#b#Ha0bV#sbKaLa#be#0.1#H.1#B.1bY#taP.KaPaP.U#Y#7.z.zananan.ibqaV.mbn#b#DbV#z.1bXafac.ZaI#..I#i.lbA.8.J#s.i.ya5a5#DbdaIaC#ib.bR.4bQ#D",
875"#Gb..ZbAbAbaaIbV#zbA.ybKbV#sbV#Far#z#Dblblar.8aB.y#zbR.KbG.w.1.z.wbV#T.can.Sbr#8b4.w#nb4#L#.bJ#R#z.g#3a9bq#F.z#H#f.mbe#sbe#D#L##bC#s.ybl#P#3.2.I#tbL.g#..paP.e.obTbQ#s#2.ybV.y#FbA.O.L.4.4bB#a.0",
876"#Gb..ga5.eaPbB.ya5bl.8bS#0bn#s#u.Z#zbV#Fa8.8bA.y.8#4bR#1.8#G.1.1#PbVaAb4br.e.V#8an.waz#8#WbiaIbX.k#v.uajaL#Fbc.1#fbeanbnaLa7#La7#8#sbK.r.w.O.x.Y#t.e.gbWadbN#4bl#xbQ.K#2#ubVbV#D.lba.LbZaBbwak.0",
877"#G.KaP.e#z.ObZ.y#za5bSbS#z.w#0bV.g.K#s#ua8.lbl.y#F.4.Z#i#z#G.0.w.w#DbOan.V.ebeanbr.w#bbCaLbi#..Sby.g.saObe#u#H.1#8be#B#Dbebr#L#8bc#sbKay.w.Y.LaT.4.K#taP#pbibA#u#2#s#zaB.ybV#sbV.4bababLaB.s.7.0",
878"#Gbu.ga5#s.Obw.yby#0bSbS#0#zaybSbabZ.K#zbl.8bA#u.8.Saq.6#YbV#Ga0be.1bOanbrbU#8.zaza0.w#H#WaP#EbK#b.Z#R#XaV#0.z.1#b.1#B.R#Yan.m#8#H#JbK#G#0af.L.u.4.ebO.gbN.U#t#z.ybQbV.8.y.wbVbVaBba#Z.T.4.s.kbc",
879"a0.7aP.e#z#Zbw#u#0#0#0#u#G#G#uaya9bR#4bVbSa5bS#F.K.T.Z.6b0ay#D#bbebV#T.m#8bU#D.1#8#0.1bebqaIbW#J#b#x#R#v#D#0bC#H#HbV#Bbs#B.mbe#ea0bK.K#G#0.I#Z#t#tbA.ebO#..Ua6bV#F.w#sbVbV#z#sbVbA.O#Z.ebYaT.7bc",
880"#P.Q.ga5#sba.sbAbV.wbS#u#z#GbVbVbaaT.SbKa5a5bS#F.ebL#EbD#b#u#u#Y#H.1#Tbebd.W#7bd.1bS#0beaL.T#Ebn#Y.g.S#y#u#0aobe.w.1azbs#Bbrb4a7a0au.K#Pay.I.O.Z.4.y.ebLbR#..P#z.8bV#0bVbn.w#s#sbAbH#ZbL.4.9.kbc",
881".1buaPa5#z.Y.O#ubV#sbVbV.1#z#D.wba.Z.4bA.8.e.KbA.4#t.UbL#s#zbbbe#b#b#ran.b.W#7.1#8#G#0#HbKb7.gaV#BbT.K#r#Dby#H.m.1.1be#u#B.1.wbe#P.S#z.wbSbi.n.ZbK.4.e.8aI.Z.6.K#u#GbV#0bV#s.w.w.e#Z#Z.K.4aT.k.1",
882".rb..g.e#s.YaPbV#z.wbnbV.wbn#Dbn.OaP.4.y.4#N.K.K#T#t.U.Q#z.w#F#YazanaNan.bap#Ga0az#0#P#b#KbR.Z#aaz#ibK#h#u.wbC#B#b.1bebs#B#D#baLbcbA.k#P#G#E#S#2.K.8bAbL.Tbw.6.K#G#0.wbVbVbV#s#s.e.Oba.K.4aT.k.0"
883};
884
885static void drawroundrect( <a href="qpainter.html">QPainter</a> *p, QCOORD x, QCOORD y,
886 QCOORD w, QCOORD h, QCOORD d );
887
888static inline int buttonthickness( int d );
889
890static QRegion roundRectRegion( const <a href="qrect.html">QRect</a>&amp; g, int r );
891
892static void get_combo_parameters( const <a href="qrect.html">QRect</a> &amp;r,
893 int &amp;ew, int &amp;awh, int &amp;ax,
894 int &amp;ay, int &amp;sh, int &amp;dh,
895 int &amp;sy );
896
897static int get_combo_extra_width( int h, int *return_awh = 0 );
898
899enum { PointUp, PointDown, PointLeft, PointRight };
900
901
902<a name="f225"></a>NorwegianWoodStyle::NorwegianWoodStyle() : <a href="qwindowsstyle.html">QWindowsStyle</a>()
903{
904}
905
906/*!
907 Reimplementation from QStyle
908 */
909<a name="x261"></a>void NorwegianWoodStyle::<a href="qstyle.html#polish">polish</a>( <a href="qapplication.html">QApplication</a> *app)
910{
911
912<a name="x186"></a> oldPalette = app-&gt;<a href="qapplication.html#palette">palette</a>();
913
914 // we simply create a nice QColorGroup with a couple of fancy wood
915 // pixmaps here and apply to it all widgets
916
917 <a href="qimage.html">QImage</a> img(button_xpm);
918 <a href="qimage.html">QImage</a> orig = img;
919<a name="x208"></a> orig.<a href="qimage.html#detach">detach</a>();
920 <a href="qpixmap.html">QPixmap</a> button;
921<a name="x228"></a> button.<a href="qpixmap.html#convertFromImage">convertFromImage</a>(img);
922
923
924 int i;
925<a name="x209"></a> for (i=0; i&lt;img.<a href="qimage.html#numColors">numColors</a>(); i++) {
926<a name="x207"></a> QRgb rgb = img.<a href="qimage.html#color">color</a>(i);
927 <a href="qcolor.html">QColor</a> c(rgb);
928<a name="x192"></a> rgb = c.<a href="qcolor.html#dark">dark</a>(120).rgb();
929<a name="x210"></a> img.<a href="qimage.html#setColor">setColor</a>(i,rgb);
930 }
931 <a href="qpixmap.html">QPixmap</a> mid;
932 mid.<a href="qpixmap.html#convertFromImage">convertFromImage</a>(img);
933
934 img = orig;
935 img.<a href="qimage.html#detach">detach</a>();
936 for (i=0; i&lt;img.<a href="qimage.html#numColors">numColors</a>(); i++) {
937 QRgb rgb = img.<a href="qimage.html#color">color</a>(i);
938 <a href="qcolor.html">QColor</a> c(rgb);
939<a name="x193"></a> rgb = c.<a href="qcolor.html#light">light</a>().rgb();
940 img.<a href="qimage.html#setColor">setColor</a>(i,rgb);
941 }
942 <a href="qpixmap.html">QPixmap</a> light;
943 light.<a href="qpixmap.html#convertFromImage">convertFromImage</a>(img);
944
945 img = orig;
946 img.<a href="qimage.html#detach">detach</a>();
947 for (i=0; i&lt;img.<a href="qimage.html#numColors">numColors</a>(); i++) {
948 QRgb rgb = img.<a href="qimage.html#color">color</a>(i);
949 <a href="qcolor.html">QColor</a> c(rgb);
950 rgb = c.<a href="qcolor.html#dark">dark</a>(180).rgb();
951 img.<a href="qimage.html#setColor">setColor</a>(i,rgb);
952 }
953 <a href="qpixmap.html">QPixmap</a> dark;
954 dark.<a href="qpixmap.html#convertFromImage">convertFromImage</a>(img);
955
956
957 <a href="qimage.html">QImage</a> bgimage(polish_xpm);
958 <a href="qpixmap.html">QPixmap</a> background;
959 background.<a href="qpixmap.html#convertFromImage">convertFromImage</a>(bgimage);
960
961 img = bgimage;
962 img.<a href="qimage.html#detach">detach</a>();
963 for (i=0; i&lt;img.<a href="qimage.html#numColors">numColors</a>(); i++) {
964 QRgb rgb = img.<a href="qimage.html#color">color</a>(i);
965 <a href="qcolor.html">QColor</a> c(rgb);
966 rgb = c.<a href="qcolor.html#dark">dark</a>(180).rgb();
967 img.<a href="qimage.html#setColor">setColor</a>(i,rgb);
968 }
969 sunkenDark = new <a href="qpixmap.html">QPixmap</a>;
970 sunkenDark-&gt;<a href="qpixmap.html#convertFromImage">convertFromImage</a>(img);
971
972
973 img = bgimage;
974 img.<a href="qimage.html#detach">detach</a>();
975 for (i=0; i&lt;img.<a href="qimage.html#numColors">numColors</a>(); i++) {
976 QRgb rgb = img.<a href="qimage.html#color">color</a>(i);
977 <a href="qcolor.html">QColor</a> c(rgb);
978 rgb = c.<a href="qcolor.html#light">light</a>(130).rgb();
979 img.<a href="qimage.html#setColor">setColor</a>(i,rgb);
980 }
981 sunkenLight= new <a href="qpixmap.html">QPixmap</a>;
982 sunkenLight-&gt;<a href="qpixmap.html#convertFromImage">convertFromImage</a>(img);
983
984
985
986 <a href="qpalette.html">QPalette</a> op(QColor(212,140,95));
987 // QPalette op(white);
988<a name="x224"></a> <a href="qcolorgroup.html">QColorGroup</a> active (op.<a href="qpalette.html#active">active</a>().foreground(),
989 QBrush(op.<a href="qpalette.html#active">active</a>().button(),button),
990 QBrush(op.<a href="qpalette.html#active">active</a>().light(), light),
991 QBrush(op.<a href="qpalette.html#active">active</a>().dark(), dark),
992 QBrush(op.<a href="qpalette.html#active">active</a>().mid(), mid),
993 op.<a href="qpalette.html#active">active</a>().text(),
994 Qt::white,
995 QColor(236,182,120),
996 QBrush(op.<a href="qpalette.html#active">active</a>().background(), background)
997 );
998<a name="x225"></a> <a href="qcolorgroup.html">QColorGroup</a> disabled (op.<a href="qpalette.html#disabled">disabled</a>().foreground(),
999 QBrush(op.<a href="qpalette.html#disabled">disabled</a>().button(),button),
1000 QBrush(op.<a href="qpalette.html#disabled">disabled</a>().light(), light),
1001 op.<a href="qpalette.html#disabled">disabled</a>().dark(),
1002 QBrush(op.<a href="qpalette.html#disabled">disabled</a>().mid(), mid),
1003 op.<a href="qpalette.html#disabled">disabled</a>().text(),
1004 Qt::white,
1005 QColor(236,182,120),
1006 QBrush(op.<a href="qpalette.html#disabled">disabled</a>().background(), background)
1007 );
1008
1009<a name="x187"></a> app-&gt;<a href="qapplication.html#setPalette">setPalette</a>(QPalette(active, disabled, active), TRUE );
1010
1011}
1012
1013<a name="x263"></a>void NorwegianWoodStyle::<a href="qstyle.html#unPolish">unPolish</a>( <a href="qapplication.html">QApplication</a> *app)
1014{
1015 app-&gt;<a href="qapplication.html#setPalette">setPalette</a>(oldPalette, TRUE);
1016}
1017
1018/*!
1019 Reimplementation from QStyle
1020 */
1021void NorwegianWoodStyle::<a href="qstyle.html#polish">polish</a>( <a href="qwidget.html">QWidget</a>* w)
1022{
1023
1024 // the polish function sets some widgets to transparent mode and
1025 // some to translate background mode in order to get the full
1026 // benefit from the nice pixmaps in the color group.
1027
1028<a name="x253"></a> if ( !w-&gt;<a href="qwidget.html#isTopLevel">isTopLevel</a>() ) {
1029<a name="x211"></a> if ( w-&gt;<a href="qobject.html#inherits">inherits</a>("QPushButton")
1030 || w-&gt;<a href="qobject.html#inherits">inherits</a>("QToolButton")
1031 || w-&gt;<a href="qobject.html#inherits">inherits</a>("QComboBox") ) {
1032<a name="x255"></a> w-&gt;<a href="qwidget.html#setAutoMask">setAutoMask</a>( TRUE );
1033 return;
1034 }
1035<a name="x250"></a> if ( w-&gt;<a href="qwidget.html#backgroundPixmap">backgroundPixmap</a>() )
1036<a name="x256"></a> w-&gt;<a href="qwidget.html#setBackgroundOrigin">setBackgroundOrigin</a>( QWidget::WindowOrigin );
1037 }
1038}
1039
1040void NorwegianWoodStyle::<a href="qstyle.html#unPolish">unPolish</a>( <a href="qwidget.html">QWidget</a>* w)
1041{
1042 // the polish function sets some widgets to transparent mode and
1043 // some to translate background mode in order to get the full
1044 // benefit from the nice pixmaps in the color group.
1045 if ( !w-&gt;<a href="qwidget.html#isTopLevel">isTopLevel</a>() ) {
1046 if ( w-&gt;<a href="qobject.html#inherits">inherits</a>("QPushButton")
1047 || w-&gt;<a href="qobject.html#inherits">inherits</a>("QToolButton")
1048 || w-&gt;<a href="qobject.html#inherits">inherits</a>("QComboBox") ) {
1049 w-&gt;<a href="qwidget.html#setAutoMask">setAutoMask</a>( FALSE );
1050 return;
1051 }
1052 if ( w-&gt;<a href="qwidget.html#backgroundPixmap">backgroundPixmap</a>() )
1053 w-&gt;<a href="qwidget.html#setBackgroundOrigin">setBackgroundOrigin</a>( QWidget::WidgetOrigin );
1054 }
1055}
1056
1057<a name="x260"></a>void NorwegianWoodStyle::<a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PrimitiveElement pe,
1058 <a href="qpainter.html">QPainter</a> *p,
1059 const <a href="qrect.html">QRect</a> &amp;r,
1060 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1061 SFlags flags, const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1062{
1063 int x, y, w, h;
1064<a name="x240"></a> r.<a href="qrect.html#rect">rect</a>( &amp;x, &amp;y, &amp;w, &amp;h );
1065 switch ( pe ) {
1066 case PE_ButtonCommand:
1067 {
1068 int d = QMIN( w, h ) / 2;
1069 int b = buttonthickness( d );
1070
1071 <a href="qregion.html">QRegion</a> internR = roundRectRegion( QRect(x + b, y + b,
1072 w - 2 * b,
1073 h - 2 * b), d - b );
1074<a name="x218"></a> <a href="qpen.html">QPen</a> oldPen = p-&gt;<a href="qpainter.html#pen">pen</a>();
1075
1076<a name="x195"></a> <a href="qbrush.html">QBrush</a> brush( flags &amp; Style_Sunken ? cg.<a href="qcolorgroup.html#brush">brush</a>(QColorGroup::Mid) :
1077 cg.<a href="qcolorgroup.html#brush">brush</a>(QColorGroup::Button) );
1078<a name="x220"></a> p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( internR );
1079<a name="x216"></a> p-&gt;<a href="qpainter.html#fillRect">fillRect</a>( r, brush );
1080
1081 int e = QMIN( w, h ) / 2;
1082 <a href="qpoint.html">QPoint</a> p2( x + w - 1 - e, y + e );
1083 <a href="qpoint.html">QPoint</a> p3( x + e, y + h - 1 - e );
1084
1085 <a href="qpointarray.html">QPointArray</a> a;
1086<a name="x232"></a><a name="x230"></a> a.setPoints( 5, x,y, x+w-1, y, p2.<a href="qpoint.html#x">x</a>(), p2.<a href="qpoint.html#y">y</a>(), p3.<a href="qpoint.html#x">x</a>(), p3.<a href="qpoint.html#y">y</a>(),
1087 x, y + h - 1 );
1088 p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( QRegion(a) - internR );
1089
1090<a name="x198"></a> p-&gt;<a href="qpainter.html#fillRect">fillRect</a>( r, (flags &amp; Style_Sunken ? QBrush( cg.<a href="qcolorgroup.html#dark">dark</a>(), *sunkenDark)
1091 : cg.<a href="qcolorgroup.html#brush">brush</a>(QColorGroup::Light)) );
1092
1093 // A little inversion is needed the buttons
1094 // ( but not flat)
1095 if ( flags &amp; Style_Raised || flags &amp; Style_Sunken ) {
1096<a name="x231"></a> a.<a href="qpointarray.html#setPoint">setPoint</a>( 0, x + w - 1, y + w - 1 );
1097 p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( QRegion( a ) - internR );
1098
1099<a name="x200"></a> p-&gt;<a href="qpainter.html#fillRect">fillRect</a>( r, (flags &amp; Style_Sunken ? QBrush( cg.<a href="qcolorgroup.html#light">light</a>(), *sunkenLight) : cg.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Dark ) ) );
1100 }
1101 p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( internR );
1102<a name="x221"></a> p-&gt;<a href="qpainter.html#setClipping">setClipping</a>( FALSE );
1103<a name="x222"></a><a name="x199"></a> p-&gt;<a href="qpainter.html#setPen">setPen</a>( cg.<a href="qcolorgroup.html#foreground">foreground</a>() );
1104 drawroundrect( p, x, y, w, h, d );
1105 p-&gt;<a href="qpainter.html#setPen">setPen</a>( oldPen );
1106 break;
1107 }
1108 case PE_ScrollBarAddLine:
1109 if ( flags &amp; Style_Horizontal )
1110 drawSemicircleButton( p, r, PointRight, flags &amp; Style_Down, cg );
1111 else
1112 drawSemicircleButton( p, r, PointDown, flags &amp; Style_Down, cg );
1113 break;
1114 case PE_ScrollBarSubLine:
1115 if ( flags &amp; Style_Horizontal )
1116 drawSemicircleButton( p, r, PointLeft, flags &amp; Style_Down, cg );
1117 else
1118 drawSemicircleButton( p, r, PointUp, flags &amp; Style_Down, cg );
1119 break;
1120 default:
1121 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawPrimitive">drawPrimitive</a>( pe, p, r, cg, flags, opt );
1122 break;
1123 }
1124}
1125
1126<a name="x259"></a>void NorwegianWoodStyle::<a href="qstyle.html#drawControl">drawControl</a>( ControlElement element,
1127 <a href="qpainter.html">QPainter</a> *p,
1128 const <a href="qwidget.html">QWidget</a> *widget,
1129 const <a href="qrect.html">QRect</a> &amp;r,
1130 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1131 SFlags how, const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1132{
1133 switch( element ) {
1134 case CE_PushButton:
1135 {
1136 const <a href="qpushbutton.html">QPushButton</a> *btn;
1137 btn = ( const <a href="qpushbutton.html">QPushButton</a> * )widget;
1138 <a href="qcolorgroup.html">QColorGroup</a> myCg( cg );
1139 SFlags flags = Style_Default;
1140<a name="x189"></a> if ( btn-&gt;<a href="qbutton.html#isOn">isOn</a>() )
1141 flags |= Style_On;
1142<a name="x188"></a> if ( btn-&gt;<a href="qbutton.html#isDown">isDown</a>() )
1143 flags |= Style_Down;
1144 if ( btn-&gt;<a href="qbutton.html#isOn">isOn</a>() || btn-&gt;<a href="qbutton.html#isDown">isDown</a>() )
1145 flags |= Style_Sunken;
1146<a name="x233"></a> if ( btn-&gt;<a href="qpushbutton.html#isDefault">isDefault</a>() )
1147 flags |= Style_Default;
1148<a name="x234"></a> if ( ! btn-&gt;<a href="qpushbutton.html#isFlat">isFlat</a>() &amp;&amp; !(flags &amp; Style_Down) )
1149 flags |= Style_Raised;
1150
1151 int x1, y1, x2, y2;
1152<a name="x237"></a> r.<a href="qrect.html#coords">coords</a>( &amp;x1, &amp;y1, &amp;x2, &amp;y2 );
1153
1154 p-&gt;<a href="qpainter.html#setPen">setPen</a>( cg.<a href="qcolorgroup.html#foreground">foreground</a>() );
1155<a name="x219"></a><a name="x196"></a> p-&gt;<a href="qpainter.html#setBrush">setBrush</a>( QBrush( cg.<a href="qcolorgroup.html#button">button</a>(), NoBrush ) );
1156
1157 <a href="qbrush.html">QBrush</a> fill;
1158 if ( btn-&gt;<a href="qbutton.html#isDown">isDown</a>() )
1159 fill = cg.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Mid );
1160 else if ( btn-&gt;<a href="qbutton.html#isOn">isOn</a>() )
1161<a name="x201"></a> fill = QBrush( cg.<a href="qcolorgroup.html#mid">mid</a>(), Dense4Pattern );
1162 else
1163 fill = cg.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Button );
1164<a name="x202"></a> myCg.<a href="qcolorgroup.html#setBrush">setBrush</a>( QColorGroup::Mid, fill );
1165
1166 if ( btn-&gt;<a href="qpushbutton.html#isDefault">isDefault</a>() ) {
1167 x1 += 2;
1168 y1 += 2;
1169 x2 -= 2;
1170 y2 -= 2;
1171 }
1172
1173 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ButtonCommand, p,
1174 QRect( x1, y1, x2 - x1 + 1, y2 - y1 + 1),
1175 myCg, flags, opt );
1176
1177 if ( btn-&gt;<a href="qpushbutton.html#isDefault">isDefault</a>() ) {
1178 <a href="qpen.html">QPen</a> pen( Qt::black, 4 );
1179<a name="x226"></a> pen.<a href="qpen.html#setCapStyle">setCapStyle</a>( Qt::RoundCap );
1180<a name="x227"></a> pen.<a href="qpen.html#setJoinStyle">setJoinStyle</a>( Qt::RoundJoin );
1181 p-&gt;<a href="qpainter.html#setPen">setPen</a>( pen );
1182 drawroundrect( p, x1 - 1, y1 - 1, x2 - x1 + 3, y2 - y1 + 3, 8 );
1183 }
1184
1185<a name="x235"></a> if ( btn-&gt;<a href="qpushbutton.html#isMenuButton">isMenuButton</a>() ) {
1186 int dx = ( y1 - y2 - 4 ) / 3;
1187
1188 // reset the flags
1189 flags = Style_Default;
1190<a name="x252"></a> if ( btn-&gt;<a href="qwidget.html#isEnabled">isEnabled</a>() )
1191 flags |= Style_Enabled;
1192 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ArrowDown, p,
1193 QRect( x2 - dx, dx, y1, y2 - y1),
1194 myCg, flags, opt );
1195 }
1196
1197<a name="x212"></a> if ( p-&gt;<a href="qpainter.html#brush">brush</a>().style() != NoBrush )
1198 p-&gt;<a href="qpainter.html#setBrush">setBrush</a>( NoBrush );
1199 break;
1200 }
1201 case CE_PushButtonLabel:
1202 {
1203 const <a href="qpushbutton.html">QPushButton</a> *btn;
1204 btn = (const <a href="qpushbutton.html">QPushButton</a>*)widget;
1205 int x, y, w, h;
1206 r.<a href="qrect.html#rect">rect</a>( &amp;x, &amp;y, &amp;w, &amp;h );
1207
1208 int x1, y1, x2, y2;
1209 r.<a href="qrect.html#coords">coords</a>( &amp;x1, &amp;y1, &amp;x2, &amp;y2 );
1210 int dx = 0;
1211 int dy = 0;
1212 if ( btn-&gt;<a href="qpushbutton.html#isMenuButton">isMenuButton</a>() )
1213 dx = ( y2 - y1 ) / 3;
1214 if ( dx || dy )
1215<a name="x223"></a> p-&gt;<a href="qpainter.html#translate">translate</a>( dx, dy );
1216
1217 x += 2;
1218 y += 2;
1219 w -= 4;
1220 h -= 4;
1221 <a href="qstyle.html#drawItem">drawItem</a>( p, QRect( x, y, w, h ),
1222 AlignCenter | ShowPrefix,
1223 cg, btn-&gt;<a href="qwidget.html#isEnabled">isEnabled</a>(),
1224<a name="x191"></a><a name="x190"></a> btn-&gt;<a href="qbutton.html#pixmap">pixmap</a>(), btn-&gt;<a href="qbutton.html#text">text</a>(), -1,
1225<a name="x194"></a> (btn-&gt;<a href="qbutton.html#isDown">isDown</a>() || btn-&gt;<a href="qbutton.html#isOn">isOn</a>()) ? &amp;cg.<a href="qcolorgroup.html#brightText">brightText</a>()
1226<a name="x197"></a> : &amp;cg.<a href="qcolorgroup.html#buttonText">buttonText</a>() );
1227 if ( dx || dy )
1228 p-&gt;<a href="qpainter.html#translate">translate</a>( -dx, -dy );
1229 break;
1230 }
1231 default:
1232 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawControl">drawControl</a>( element, p, widget, r, cg, how, opt );
1233 break;
1234 }
1235}
1236
1237<a name="x205"></a>void NorwegianWoodStyle::<a href="qstyle.html#drawControlMask">drawControlMask</a>( ControlElement element,
1238 <a href="qpainter.html">QPainter</a> *p,
1239 const <a href="qwidget.html">QWidget</a> *widget,
1240 const <a href="qrect.html">QRect</a> &amp;r,
1241 const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1242{
1243 switch( element ) {
1244 case CE_PushButton:
1245 {
1246<a name="x244"></a><a name="x238"></a> int d = QMIN( r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>() ) / 2;
1247 p-&gt;<a href="qpainter.html#setPen">setPen</a>( color1 );
1248 p-&gt;<a href="qpainter.html#setBrush">setBrush</a>( color1 );
1249<a name="x246"></a><a name="x245"></a> drawroundrect( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(), d );
1250 break;
1251 }
1252 default:
1253 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawControlMask">drawControlMask</a>( element, p, widget, r, opt );
1254 break;
1255 }
1256}
1257
1258<a name="x258"></a>void NorwegianWoodStyle::<a href="qstyle.html#drawComplexControl">drawComplexControl</a>( ComplexControl cc,
1259 <a href="qpainter.html">QPainter</a> *p,
1260 const <a href="qwidget.html">QWidget</a> *widget,
1261 const <a href="qrect.html">QRect</a> &amp;r,
1262 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1263 SFlags how,
1264 SCFlags sub,
1265 SCFlags subActive,
1266 const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1267{
1268 switch( cc ) {
1269 case CC_ComboBox:
1270 {
1271 const <a href="qcombobox.html">QComboBox</a> *cmb;
1272 cmb = (const <a href="qcombobox.html">QComboBox</a>*)widget;
1273
1274 int awh, ax, ay, sh, sy, dh, ew;
1275 get_combo_parameters( <a href="qstyle.html#subRect">subRect</a>(SR_PushButtonContents, widget),
1276 ew, awh, ax, ay, sh, dh, sy );
1277 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ButtonCommand, p, r, cg, Style_Raised, opt );
1278 <a href="qstyle.html">QStyle</a> *mstyle = QStyleFactory::<a href="qstylefactory.html#create">create</a>( "Motif" );
1279 if ( mstyle )
1280 mstyle-&gt;<a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ArrowDown, p,
1281 QRect(ax, ay, awh, awh), cg, how, opt );
1282 else
1283 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ArrowDown, p,
1284 QRect(ax, ay, awh, awh), cg, how, opt );
1285
1286 <a href="qpen.html">QPen</a> oldPen = p-&gt;<a href="qpainter.html#pen">pen</a>();
1287 p-&gt;<a href="qpainter.html#setPen">setPen</a>( cg.<a href="qcolorgroup.html#light">light</a>() );
1288<a name="x214"></a> p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( ax, sy, ax + awh - 1, sy );
1289 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( ax, sy, ax, sy + sh - 1 );
1290 p-&gt;<a href="qpainter.html#setPen">setPen</a>( cg.<a href="qcolorgroup.html#dark">dark</a>() );
1291 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( ax + 1, sy + sh - 1, ax + awh - 1, sy + sh - 1 );
1292 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( ax + awh - 1, sy + 1, ax + awh - 1, sy + sh - 1 );
1293 p-&gt;<a href="qpainter.html#setPen">setPen</a>( oldPen );
1294
1295 if ( cmb-&gt;<a href="qcombobox.html#editable">editable</a>() ) {
1296 <a href="qrect.html">QRect</a> r( <a href="qstyle.html#querySubControlMetrics">querySubControlMetrics</a>(CC_ComboBox, widget,
1297 SC_ComboBoxEditField, opt) );
1298 <a href="qpainter.html#qDrawShadePanel">qDrawShadePanel</a>( p, r, cg, TRUE, 1,
1299 &amp;cg.<a href="qcolorgroup.html#brush">brush</a>(QColorGroup::Button) );
1300 }
1301
1302 break;
1303 }
1304 default:
1305 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawComplexControl">drawComplexControl</a>( cc, p, widget, r, cg, how,
1306 sub, subActive, opt );
1307 break;
1308 }
1309}
1310
1311<a name="x204"></a>void NorwegianWoodStyle::<a href="qstyle.html#drawComplexControlMask">drawComplexControlMask</a>( ComplexControl control,
1312 <a href="qpainter.html">QPainter</a> *p,
1313 const <a href="qwidget.html">QWidget</a> *widget,
1314 const <a href="qrect.html">QRect</a> &amp;r,
1315 const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1316{
1317 switch ( control ) {
1318 case CC_ComboBox:
1319 {
1320 int d = QMIN( r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>() ) / 2;
1321 p-&gt;<a href="qpainter.html#setPen">setPen</a>( color1 );
1322 p-&gt;<a href="qpainter.html#setBrush">setBrush</a>( color1 );
1323 drawroundrect( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(), d );
1324 break;
1325 }
1326 default:
1327 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawComplexControlMask">drawComplexControlMask</a>( control, p, widget, r, opt );
1328 break;
1329 }
1330}
1331
1332<a name="x206"></a>QRect NorwegianWoodStyle::<a href="qstyle.html#querySubControlMetrics">querySubControlMetrics</a>( ComplexControl control,
1333 const <a href="qwidget.html">QWidget</a> *widget,
1334 SubControl sc,
1335 const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1336{
1337 <a href="qrect.html">QRect</a> rect;
1338 switch ( control ) {
1339 case CC_ComboBox:
1340 {
1341 switch( sc ) {
1342 case SC_ComboBoxEditField:
1343 {
1344 rect = <a href="qstyle.html#subRect">subRect</a>( SR_PushButtonContents, widget );
1345 int ew = get_combo_extra_width( rect.<a href="qrect.html#height">height</a>(), 0 );
1346<a name="x242"></a> rect.<a href="qrect.html#setRect">setRect</a>( rect.<a href="qrect.html#x">x</a>() + 1, rect.<a href="qrect.html#y">y</a>() + 1,
1347 rect.<a href="qrect.html#width">width</a>() - 2 - ew, rect.<a href="qrect.html#height">height</a>() - 2 );
1348 break;
1349 }
1350 default:
1351 rect = QWindowsStyle::<a href="qstyle.html#querySubControlMetrics">querySubControlMetrics</a>( control, widget,
1352 sc, opt );
1353 break;
1354 }
1355 break;
1356 }
1357 case CC_ScrollBar:
1358 {
1359 const <a href="qscrollbar.html">QScrollBar</a>* sb;
1360 sb = (const <a href="qscrollbar.html">QScrollBar</a>*)widget;
1361 bool horz = sb-&gt;<a href="qscrollbar.html#orientation">orientation</a>() == QScrollBar::Horizontal;
1362 int b = 2;
1363<a name="x257"></a> int w = horz ? sb-&gt;<a href="qwidget.html#height">height</a>() : sb-&gt;<a href="qwidget.html#width">width</a>();
1364
1365 switch ( sc ) {
1366 case SC_ScrollBarAddLine:
1367 rect.<a href="qrect.html#setRect">setRect</a>( b, b, w - 2 * b, w - 2 * b );
1368 if ( horz )
1369<a name="x239"></a> rect.<a href="qrect.html#moveBy">moveBy</a>( sb-&gt;<a href="qwidget.html#width">width</a>() - w, 0 );
1370 else
1371 rect.<a href="qrect.html#moveBy">moveBy</a>( 0, sb-&gt;<a href="qwidget.html#height">height</a>() - w );
1372 break;
1373 case SC_ScrollBarSubLine:
1374 rect.<a href="qrect.html#setRect">setRect</a>( b, b, w - 2 * b, w - 2 * b );
1375 break;
1376 default:
1377 rect = QWindowsStyle::<a href="qstyle.html#querySubControlMetrics">querySubControlMetrics</a>( control, widget,
1378 sc, opt );
1379 break;
1380 }
1381 break;
1382 }
1383 default:
1384 rect = QWindowsStyle::<a href="qstyle.html#querySubControlMetrics">querySubControlMetrics</a>( control, widget,
1385 sc, opt );
1386 break;
1387 }
1388 return rect;
1389}
1390
1391<a name="x262"></a>QRect NorwegianWoodStyle::<a href="qstyle.html#subRect">subRect</a>( SubRect sr, const <a href="qwidget.html">QWidget</a> * widget ) const
1392{
1393 <a href="qrect.html">QRect</a> r;
1394 switch ( sr ) {
1395 case SR_PushButtonContents:
1396 {
1397 const <a href="qpushbutton.html">QPushButton</a> *btn;
1398 btn = (const <a href="qpushbutton.html">QPushButton</a>*)widget;
1399<a name="x254"></a> r = btn-&gt;<a href="qwidget.html#rect">rect</a>();
1400 int d = QMIN( r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>() ) / 2;
1401 int b = buttonthickness( d );
1402
1403 d -= b;
1404 b++;
1405
1406 if ( r.<a href="qrect.html#width">width</a>() &lt; r.<a href="qrect.html#height">height</a>() )
1407 r.<a href="qrect.html#setRect">setRect</a>( r.<a href="qrect.html#x">x</a>() + b, r.<a href="qrect.html#y">y</a>() + d,
1408 r.<a href="qrect.html#width">width</a>() - 2 * b, r.<a href="qrect.html#height">height</a>() - 2 * d );
1409 else
1410 r.<a href="qrect.html#setRect">setRect</a>( r.<a href="qrect.html#x">x</a>() + d, r.<a href="qrect.html#y">y</a>() + b,
1411 r.<a href="qrect.html#width">width</a>() - 2 * d, r.<a href="qrect.html#height">height</a>() - 2 * b );
1412 break;
1413 }
1414 case SR_ComboBoxFocusRect:
1415 {
1416 r = <a href="qstyle.html#subRect">subRect</a>( SR_PushButtonContents, widget );
1417 int ew = get_combo_extra_width( r.<a href="qrect.html#height">height</a>() );
1418 r.<a href="qrect.html#setRect">setRect</a>( r.<a href="qrect.html#x">x</a>() + 1, r.<a href="qrect.html#y">y</a>() + 1, r.<a href="qrect.html#width">width</a>() - 2 - ew,
1419 r.<a href="qrect.html#height">height</a>() - 2 );
1420 break;
1421 }
1422 default:
1423 r = QWindowsStyle::<a href="qstyle.html#subRect">subRect</a>( sr, widget );
1424 break;
1425 }
1426 return r;
1427}
1428
1429static void drawroundrect( <a href="qpainter.html">QPainter</a> *p, QCOORD x, QCOORD y,
1430 QCOORD w, QCOORD h, QCOORD d )
1431{
1432 int rx = (200*d)/w;
1433 int ry = (200*d)/h;
1434<a name="x215"></a> p-&gt;<a href="qpainter.html#drawRoundRect">drawRoundRect</a>( x, y, w, h, rx, ry );
1435}
1436
1437static QRegion roundRectRegion( const <a href="qrect.html">QRect</a>&amp; g, int r )
1438{
1439 <a href="qpointarray.html">QPointArray</a> a;
1440<a name="x241"></a> a.setPoints( 8, g.<a href="qrect.html#x">x</a>()+r, g.<a href="qrect.html#y">y</a>(), g.<a href="qrect.html#right">right</a>()-r, g.<a href="qrect.html#y">y</a>(),
1441<a name="x236"></a> g.<a href="qrect.html#right">right</a>(), g.<a href="qrect.html#y">y</a>()+r, g.<a href="qrect.html#right">right</a>(), g.<a href="qrect.html#bottom">bottom</a>()-r,
1442 g.<a href="qrect.html#right">right</a>()-r, g.<a href="qrect.html#bottom">bottom</a>(), g.<a href="qrect.html#x">x</a>()+r, g.<a href="qrect.html#bottom">bottom</a>(),
1443 g.<a href="qrect.html#x">x</a>(), g.<a href="qrect.html#bottom">bottom</a>()-r, g.<a href="qrect.html#x">x</a>(), g.<a href="qrect.html#y">y</a>()+r );
1444 <a href="qregion.html">QRegion</a> reg( a );
1445 int d = r*2-1;
1446 reg += QRegion( g.<a href="qrect.html#x">x</a>(),g.<a href="qrect.html#y">y</a>(),r*2,r*2, QRegion::Ellipse );
1447 reg += QRegion( g.<a href="qrect.html#right">right</a>()-d,g.<a href="qrect.html#y">y</a>(),r*2,r*2, QRegion::Ellipse );
1448 reg += QRegion( g.<a href="qrect.html#x">x</a>(),g.<a href="qrect.html#bottom">bottom</a>()-d,r*2,r*2, QRegion::Ellipse );
1449 reg += QRegion( g.<a href="qrect.html#right">right</a>()-d,g.<a href="qrect.html#bottom">bottom</a>()-d,r*2,r*2, QRegion::Ellipse );
1450 return reg;
1451}
1452
1453
1454
1455
1456static int get_combo_extra_width( int h, int *return_awh )
1457{
1458 int awh;
1459 if ( h &lt; 8 ) {
1460 awh = 6;
1461 } else if ( h &lt; 14 ) {
1462 awh = h - 2;
1463 } else {
1464 awh = h/2;
1465 }
1466 if ( return_awh )
1467 *return_awh = awh;
1468 return awh*3/2;
1469}
1470
1471
1472static void get_combo_parameters( const <a href="qrect.html">QRect</a> &amp;r,
1473 int &amp;ew, int &amp;awh, int &amp;ax,
1474 int &amp;ay, int &amp;sh, int &amp;dh,
1475 int &amp;sy )
1476{
1477 ew = get_combo_extra_width( r.<a href="qrect.html#height">height</a>(), &amp;awh );
1478
1479 sh = (awh+3)/4;
1480 if ( sh &lt; 3 )
1481 sh = 3;
1482 dh = sh/2 + 1;
1483
1484 ay = r.<a href="qrect.html#y">y</a>() + (r.<a href="qrect.html#height">height</a>()-awh-sh-dh)/2;
1485 if ( ay &lt; 0 ) {
1486 //panic mode
1487 ay = 0;
1488 sy = r.<a href="qrect.html#height">height</a>();
1489 } else {
1490 sy = ay+awh+dh;
1491 }
1492 ax = r.<a href="qrect.html#x">x</a>() + r.<a href="qrect.html#width">width</a>() - ew +(ew-awh)/2;
1493}
1494
1495static inline int buttonthickness( int d )
1496{ return d &gt; 20 ? 5 : ( d &lt; 10 ? 2: 3 ); }
1497
1498void <a name="f226"></a>NorwegianWoodStyle::drawSemicircleButton( <a href="qpainter.html">QPainter</a> *p, const <a href="qrect.html">QRect</a> &amp;r,
1499 int dir, bool sunken,
1500 const <a href="qcolorgroup.html">QColorGroup</a> &amp;g ) const
1501{
1502 int b = <a href="qstyle.html#pixelMetric">pixelMetric</a>( PM_ScrollBarExtent ) &gt; 20 ? 3 : 2;
1503
1504 <a href="qregion.html">QRegion</a> extrn( r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(), QRegion::Ellipse );
1505 <a href="qregion.html">QRegion</a> intern( r.<a href="qrect.html#x">x</a>()+b, r.<a href="qrect.html#y">y</a>()+b, r.<a href="qrect.html#width">width</a>()-2*b, r.<a href="qrect.html#height">height</a>()-2*b, QRegion::Ellipse );
1506 int w2 = r.<a href="qrect.html#width">width</a>()/2;
1507 int h2 = r.<a href="qrect.html#height">height</a>()/2;
1508
1509 int bug = 1; //off-by-one somewhere!!!???
1510
1511 switch( dir ) {
1512 case PointRight:
1513 extrn += QRegion( r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), w2, r.<a href="qrect.html#height">height</a>() );
1514 intern += QRegion( r.<a href="qrect.html#x">x</a>()+b,r.<a href="qrect.html#y">y</a>()+b, w2-2*b, r.<a href="qrect.html#height">height</a>()-2*b );
1515 break;
1516 case PointLeft:
1517 extrn += QRegion( r.<a href="qrect.html#x">x</a>()+w2, r.<a href="qrect.html#y">y</a>(), w2, r.<a href="qrect.html#height">height</a>() );
1518 intern += QRegion( r.<a href="qrect.html#x">x</a>()+w2+b,r.<a href="qrect.html#y">y</a>()+b, w2-2*b, r.<a href="qrect.html#height">height</a>()-2*b );
1519 break;
1520 case PointUp:
1521 extrn += QRegion( r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>()+h2, r.<a href="qrect.html#width">width</a>(), h2 );
1522 intern += QRegion( r.<a href="qrect.html#x">x</a>()+b,r.<a href="qrect.html#y">y</a>()+h2+b, r.<a href="qrect.html#width">width</a>()-2*b-bug, h2-2*b-bug );
1523 break;
1524 case PointDown:
1525 extrn += QRegion( r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), h2 );
1526 intern += QRegion( r.<a href="qrect.html#x">x</a>()+b,r.<a href="qrect.html#y">y</a>()+b, r.<a href="qrect.html#width">width</a>()-2*b-bug, h2-2*b-bug );
1527 break;
1528 }
1529
1530 extrn = extrn - intern;
1531 <a href="qpointarray.html">QPointArray</a> a;
1532<a name="x243"></a> a.setPoints( 3, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#bottom">bottom</a>(), r.<a href="qrect.html#right">right</a>(), r.<a href="qrect.html#top">top</a>() );
1533
1534<a name="x213"></a> <a href="qregion.html">QRegion</a> oldClip = p-&gt;<a href="qpainter.html#clipRegion">clipRegion</a>();
1535<a name="x217"></a> bool bReallyClip = p-&gt;<a href="qpainter.html#hasClipping">hasClipping</a>(); // clip only if we really want.
1536 p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( intern );
1537 p-&gt;<a href="qpainter.html#fillRect">fillRect</a>( r, g.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Button ) );
1538
1539 p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( QRegion(a)&amp;extrn );
1540 p-&gt;<a href="qpainter.html#fillRect">fillRect</a>( r, sunken ? g.<a href="qcolorgroup.html#dark">dark</a>() : g.<a href="qcolorgroup.html#light">light</a>() );
1541
1542 a.setPoints( 3, r.<a href="qrect.html#right">right</a>(), r.<a href="qrect.html#bottom">bottom</a>(), r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#bottom">bottom</a>(),
1543 r.<a href="qrect.html#right">right</a>(), r.<a href="qrect.html#top">top</a>() );
1544 p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( QRegion(a) &amp; extrn );
1545 p-&gt;<a href="qpainter.html#fillRect">fillRect</a>( r, sunken ? g.<a href="qcolorgroup.html#light">light</a>() : g.<a href="qcolorgroup.html#dark">dark</a>() );
1546
1547 p-&gt;<a href="qpainter.html#setClipRegion">setClipRegion</a>( oldClip );
1548 p-&gt;<a href="qpainter.html#setClipping">setClipping</a>( bReallyClip );
1549}
1550
1551#endif
1552</pre>
1553
1554<p> <hr>
1555<p> Header file of the Metal theme:
1556<p> <pre>/****************************************************************************
1557** $Id: themes-example.html 2051 2007-02-21 10:04:20Z chehrlic $
1558**
1559** Definition of the Metal Style for the themes example
1560**
1561** Created : 979899
1562**
1563** Copyright (C) 1997-2007 Trolltech ASA. All rights reserved.
1564**
1565** This file is part of an example program for Qt. This example
1566** program may be used, distributed and modified without limitation.
1567**
1568*****************************************************************************/
1569
1570#ifndef METAL_H
1571#define METAL_H
1572
1573
1574#include &lt;<a href="qpalette-h.html">qpalette.h</a>&gt;
1575
1576#ifndef QT_NO_STYLE_WINDOWS
1577
1578#include &lt;<a href="qwindowsstyle-h.html">qwindowsstyle.h</a>&gt;
1579
1580
1581class MetalStyle : public <a href="qwindowsstyle.html">QWindowsStyle</a>
1582{
1583public:
1584 MetalStyle();
1585 void polish( <a href="qapplication.html">QApplication</a>*);
1586 void unPolish( <a href="qapplication.html">QApplication</a>*);
1587 void polish( <a href="qwidget.html">QWidget</a>* );
1588 void unPolish( <a href="qwidget.html">QWidget</a>* );
1589
1590 void drawPrimitive( PrimitiveElement pe,
1591 <a href="qpainter.html">QPainter</a> *p,
1592 const <a href="qrect.html">QRect</a> &amp;r,
1593 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1594 SFlags flags = Style_Default,
1595 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default) const;
1596
1597 void drawControl( ControlElement element,
1598 <a href="qpainter.html">QPainter</a> *p,
1599 const <a href="qwidget.html">QWidget</a> *widget,
1600 const <a href="qrect.html">QRect</a> &amp;r,
1601 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1602 SFlags how = Style_Default,
1603 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
1604
1605 void drawComplexControl( ComplexControl cc,
1606 <a href="qpainter.html">QPainter</a> *p,
1607 const <a href="qwidget.html">QWidget</a> *widget,
1608 const <a href="qrect.html">QRect</a> &amp;r,
1609 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1610 SFlags how = Style_Default,
1611 SCFlags sub = SC_All,
1612 SCFlags subActive = SC_None,
1613 const <a href="qstyleoption.html">QStyleOption</a>&amp; = QStyleOption::Default ) const;
1614 int pixelMetric( PixelMetric, const <a href="qwidget.html">QWidget</a> * ) const;
1615
1616
1617private:
1618 void drawMetalFrame( <a href="qpainter.html">QPainter</a> *p, int x, int y, int w, int h ) const;
1619 void drawMetalGradient( <a href="qpainter.html">QPainter</a> *p, int x, int y, int w, int h,
1620 bool sunken, bool horz, bool flat=FALSE ) const;
1621 void drawMetalButton( <a href="qpainter.html">QPainter</a> *p, int x, int y, int w, int h,
1622 bool sunken, bool horz, bool flat=FALSE ) const;
1623 <a href="qpalette.html">QPalette</a> oldPalette;
1624};
1625
1626#endif
1627
1628#endif
1629</pre>
1630
1631<p> <hr>
1632<p> Implementation of the Metal theme:
1633<p> <pre>/****************************************************************************
1634** $Id: themes-example.html 2051 2007-02-21 10:04:20Z chehrlic $
1635**
1636** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
1637**
1638** This file is part of an example program for Qt. This example
1639** program may be used, distributed and modified without limitation.
1640**
1641*****************************************************************************/
1642
1643#include "metal.h"
1644
1645#ifndef QT_NO_STYLE_WINDOWS
1646
1647#include "qapplication.h"
1648#include "qcombobox.h"
1649#include "qpainter.h"
1650#include "qdrawutil.h" // for now
1651#include "qpixmap.h" // for now
1652#include "qpalette.h" // for now
1653#include "qwidget.h"
1654#include "qlabel.h"
1655#include "qimage.h"
1656#include "qpushbutton.h"
1657#include "qwidget.h"
1658#include "qrangecontrol.h"
1659#include "qscrollbar.h"
1660#include "qslider.h"
1661#include &lt;limits.h&gt;
1662
1663
1664/////////////////////////////////////////////////////////
1665//#include "stonedark.xpm"
1666#include "stone1.xpm"
1667#include "marble.xpm"
1668///////////////////////////////////////////////////////
1669
1670
1671
1672<a name="f227"></a>MetalStyle::MetalStyle() : <a href="qwindowsstyle.html">QWindowsStyle</a>() { }
1673
1674/*!
1675 Reimplementation from QStyle
1676 */
1677<a name="x314"></a>void MetalStyle::<a href="qstyle.html#polish">polish</a>( <a href="qapplication.html">QApplication</a> *app)
1678{
1679<a name="x265"></a> oldPalette = app-&gt;<a href="qapplication.html#palette">palette</a>();
1680
1681 // we simply create a nice QColorGroup with a couple of fancy
1682 // pixmaps here and apply to it all widgets
1683
1684<a name="x264"></a> <a href="qfont.html">QFont</a> f("times", app-&gt;<a href="qapplication.html#font">font</a>().pointSize() );
1685<a name="x280"></a> f.<a href="qfont.html#setBold">setBold</a>( TRUE );
1686<a name="x281"></a> f.<a href="qfont.html#setItalic">setItalic</a>( TRUE );
1687<a name="x266"></a> app-&gt;<a href="qapplication.html#setFont">setFont</a>( f, TRUE, "QMenuBar");
1688 app-&gt;<a href="qapplication.html#setFont">setFont</a>( f, TRUE, "QPopupMenu");
1689
1690
1691
1692 // QPixmap button( stonedark_xpm );
1693
1694 <a href="qcolor.html">QColor</a> gold("#B9B9A5A54040"); //same as topgrad below
1695<a name="x292"></a> <a href="qpixmap.html">QPixmap</a> button( 1, 1 ); button.<a href="qpixmap.html#fill">fill</a>( gold );
1696
1697 <a href="qpixmap.html">QPixmap</a> background(marble_xpm);
1698 <a href="qpixmap.html">QPixmap</a> dark( 1, 1 ); dark.<a href="qpixmap.html#fill">fill</a>( red.dark() );
1699 <a href="qpixmap.html">QPixmap</a> mid( stone1_xpm );
1700 <a href="qpixmap.html">QPixmap</a> light( stone1_xpm );//1, 1 ); light.<a href="qpixmap.html#fill">fill</a>( green );
1701
1702 <a href="qpalette.html">QPalette</a> op = app-&gt;<a href="qapplication.html#palette">palette</a>();
1703
1704 <a href="qcolor.html">QColor</a> backCol( 227,227,227 );
1705
1706 // QPalette op(white);
1707<a name="x290"></a> <a href="qcolorgroup.html">QColorGroup</a> active (op.<a href="qpalette.html#active">active</a>().foreground(),
1708 QBrush(op.<a href="qpalette.html#active">active</a>().button(),button),
1709 QBrush(op.<a href="qpalette.html#active">active</a>().light(), light),
1710 QBrush(op.<a href="qpalette.html#active">active</a>().dark(), dark),
1711 QBrush(op.<a href="qpalette.html#active">active</a>().mid(), mid),
1712 op.<a href="qpalette.html#active">active</a>().text(),
1713 Qt::white,
1714 op.<a href="qpalette.html#active">active</a>().base(),// QColor(236,182,120),
1715 QBrush(backCol, background)
1716 );
1717<a name="x279"></a> active.<a href="qcolorgroup.html#setColor">setColor</a>( QColorGroup::ButtonText, Qt::white );
1718 active.<a href="qcolorgroup.html#setColor">setColor</a>( QColorGroup::Shadow, Qt::black );
1719<a name="x291"></a> <a href="qcolorgroup.html">QColorGroup</a> disabled (op.<a href="qpalette.html#disabled">disabled</a>().foreground(),
1720 QBrush(op.<a href="qpalette.html#disabled">disabled</a>().button(),button),
1721 QBrush(op.<a href="qpalette.html#disabled">disabled</a>().light(), light),
1722 op.<a href="qpalette.html#disabled">disabled</a>().dark(),
1723 QBrush(op.<a href="qpalette.html#disabled">disabled</a>().mid(), mid),
1724 op.<a href="qpalette.html#disabled">disabled</a>().text(),
1725 Qt::white,
1726 op.<a href="qpalette.html#disabled">disabled</a>().base(),// QColor(236,182,120),
1727 QBrush(backCol, background)
1728 );
1729
1730 <a href="qpalette.html">QPalette</a> newPalette( active, disabled, active );
1731<a name="x267"></a> app-&gt;<a href="qapplication.html#setPalette">setPalette</a>( newPalette, TRUE );
1732}
1733
1734/*!
1735 Reimplementation from QStyle
1736 */
1737<a name="x315"></a>void MetalStyle::<a href="qstyle.html#unPolish">unPolish</a>( <a href="qapplication.html">QApplication</a> *app)
1738{
1739 app-&gt;<a href="qapplication.html#setPalette">setPalette</a>(oldPalette, TRUE);
1740 app-&gt;<a href="qapplication.html#setFont">setFont</a>( app-&gt;<a href="qapplication.html#font">font</a>(), TRUE );
1741}
1742
1743/*!
1744 Reimplementation from QStyle
1745 */
1746void MetalStyle::<a href="qstyle.html#polish">polish</a>( <a href="qwidget.html">QWidget</a>* w)
1747{
1748
1749 // the polish function sets some widgets to transparent mode and
1750 // some to translate background mode in order to get the full
1751 // benefit from the nice pixmaps in the color group.
1752
1753<a name="x282"></a> if (w-&gt;<a href="qobject.html#inherits">inherits</a>("QPushButton")){
1754<a name="x308"></a> w-&gt;<a href="qwidget.html#setBackgroundMode">setBackgroundMode</a>( QWidget::NoBackground );
1755 return;
1756 }
1757
1758<a name="x307"></a> if ( !w-&gt;<a href="qwidget.html#isTopLevel">isTopLevel</a>() ) {
1759<a name="x305"></a> if ( w-&gt;<a href="qwidget.html#backgroundPixmap">backgroundPixmap</a>() )
1760<a name="x309"></a> w-&gt;<a href="qwidget.html#setBackgroundOrigin">setBackgroundOrigin</a>( QWidget::WindowOrigin );
1761 }
1762}
1763
1764void MetalStyle::<a href="qstyle.html#unPolish">unPolish</a>( <a href="qwidget.html">QWidget</a>* w)
1765{
1766
1767 // the polish function sets some widgets to transparent mode and
1768 // some to translate background mode in order to get the full
1769 // benefit from the nice pixmaps in the color group.
1770
1771 if (w-&gt;<a href="qobject.html#inherits">inherits</a>("QPushButton")){
1772 w-&gt;<a href="qwidget.html#setBackgroundMode">setBackgroundMode</a>( QWidget::PaletteButton );
1773 return;
1774 }
1775 if ( !w-&gt;<a href="qwidget.html#isTopLevel">isTopLevel</a>() ) {
1776 if ( w-&gt;<a href="qwidget.html#backgroundPixmap">backgroundPixmap</a>() )
1777 w-&gt;<a href="qwidget.html#setBackgroundOrigin">setBackgroundOrigin</a>( QWidget::WidgetOrigin );
1778 }
1779
1780}
1781
1782<a name="x312"></a>void MetalStyle::<a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PrimitiveElement pe,
1783 <a href="qpainter.html">QPainter</a> *p,
1784 const <a href="qrect.html">QRect</a> &amp;r,
1785 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1786 SFlags flags, const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1787{
1788 switch( pe ) {
1789 case PE_HeaderSection:
1790 if ( flags &amp; Style_Sunken )
1791 flags ^= Style_Sunken | Style_Raised;
1792 // fall through
1793 case PE_ButtonBevel:
1794 case PE_ButtonCommand:
1795<a name="x303"></a><a name="x302"></a><a name="x301"></a><a name="x298"></a> drawMetalButton( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(),
1796 (flags &amp; (Style_Sunken|Style_On|Style_Down)),
1797 TRUE, !(flags &amp; Style_Raised) );
1798 break;
1799 case PE_PanelMenuBar:
1800 drawMetalFrame( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>() );
1801 break;
1802 case PE_ScrollBarAddLine:
1803 drawMetalButton( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(),
1804 flags &amp; Style_Down, !( flags &amp; Style_Horizontal ) );
1805 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( (flags &amp; Style_Horizontal) ? PE_ArrowRight :PE_ArrowDown,
1806 p, r, cg, flags, opt );
1807 break;
1808 case PE_ScrollBarSubLine:
1809 drawMetalButton( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(),
1810 flags &amp; Style_Down, !( flags &amp; Style_Horizontal ) );
1811 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( (flags &amp; Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp,
1812 p, r, cg, flags, opt );
1813 break;
1814
1815
1816 case PE_ScrollBarSlider:
1817 drawMetalButton( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(), FALSE,
1818 flags &amp; Style_Horizontal );
1819 break;
1820 default:
1821 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawPrimitive">drawPrimitive</a>( pe, p, r, cg, flags, opt );
1822 break;
1823 }
1824}
1825
1826<a name="x311"></a>void MetalStyle::<a href="qstyle.html#drawControl">drawControl</a>( ControlElement element,
1827 <a href="qpainter.html">QPainter</a> *p,
1828 const <a href="qwidget.html">QWidget</a> *widget,
1829 const <a href="qrect.html">QRect</a> &amp;r,
1830 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1831 SFlags how,
1832 const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1833{
1834 switch( element ) {
1835 case CE_PushButton:
1836 {
1837 const <a href="qpushbutton.html">QPushButton</a> *btn;
1838 btn = (const <a href="qpushbutton.html">QPushButton</a>*)widget;
1839 int x1, y1, x2, y2;
1840
1841<a name="x297"></a> r.<a href="qrect.html#coords">coords</a>( &amp;x1, &amp;y1, &amp;x2, &amp;y2 );
1842
1843<a name="x288"></a><a name="x277"></a> p-&gt;<a href="qpainter.html#setPen">setPen</a>( cg.<a href="qcolorgroup.html#foreground">foreground</a>() );
1844<a name="x275"></a> p-&gt;<a href="qpainter.html#setBrush">setBrush</a>( QBrush(cg.<a href="qcolorgroup.html#button">button</a>(), NoBrush) );
1845
1846
1847 <a href="qbrush.html">QBrush</a> fill;
1848<a name="x268"></a> if ( btn-&gt;<a href="qbutton.html#isDown">isDown</a>() )
1849<a name="x274"></a> fill = cg.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Mid );
1850<a name="x269"></a> else if ( btn-&gt;<a href="qbutton.html#isOn">isOn</a>() )
1851<a name="x278"></a> fill = QBrush( cg.<a href="qcolorgroup.html#mid">mid</a>(), Dense4Pattern );
1852 else
1853 fill = cg.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Button );
1854
1855<a name="x294"></a> if ( btn-&gt;<a href="qpushbutton.html#isDefault">isDefault</a>() ) {
1856 <a href="qpointarray.html">QPointArray</a> a;
1857<a name="x293"></a> a.setPoints( 9,
1858 x1, y1, x2, y1, x2, y2, x1, y2, x1, y1+1,
1859 x2-1, y1+1, x2-1, y2-1, x1+1, y2-1, x1+1, y1+1 );
1860 p-&gt;<a href="qpainter.html#setPen">setPen</a>( Qt::black );
1861<a name="x285"></a> p-&gt;<a href="qpainter.html#drawPolyline">drawPolyline</a>( a );
1862 x1 += 2;
1863 y1 += 2;
1864 x2 -= 2;
1865 y2 -= 2;
1866 }
1867 SFlags flags = Style_Default;
1868 if ( btn-&gt;<a href="qbutton.html#isOn">isOn</a>() )
1869 flags |= Style_On;
1870 if ( btn-&gt;<a href="qbutton.html#isDown">isDown</a>() )
1871 flags |= Style_Down;
1872<a name="x295"></a> if ( !btn-&gt;<a href="qpushbutton.html#isFlat">isFlat</a>() &amp;&amp; !btn-&gt;<a href="qbutton.html#isDown">isDown</a>() )
1873 flags |= Style_Raised;
1874 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ButtonCommand, p,
1875 QRect( x1, y1, x2 - x1 + 1, y2 - y1 + 1),
1876 cg, flags, opt );
1877
1878<a name="x296"></a> if ( btn-&gt;<a href="qpushbutton.html#isMenuButton">isMenuButton</a>() ) {
1879 flags = Style_Default;
1880<a name="x306"></a> if ( btn-&gt;<a href="qwidget.html#isEnabled">isEnabled</a>() )
1881 flags |= Style_Enabled;
1882
1883 int dx = ( y1 - y2 - 4 ) / 3;
1884 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ArrowDown, p,
1885 QRect(x2 - dx, dx, y1, y2 - y1),
1886 cg, flags, opt );
1887 }
1888<a name="x283"></a> if ( p-&gt;<a href="qpainter.html#brush">brush</a>().style() != NoBrush )
1889 p-&gt;<a href="qpainter.html#setBrush">setBrush</a>( NoBrush );
1890 break;
1891 }
1892 case CE_PushButtonLabel:
1893 {
1894 const <a href="qpushbutton.html">QPushButton</a> *btn;
1895 btn = (const <a href="qpushbutton.html">QPushButton</a>*)widget;
1896 int x, y, w, h;
1897<a name="x300"></a> r.<a href="qrect.html#rect">rect</a>( &amp;x, &amp;y, &amp;w, &amp;h );
1898
1899 int x1, y1, x2, y2;
1900 r.<a href="qrect.html#coords">coords</a>( &amp;x1, &amp;y1, &amp;x2, &amp;y2 );
1901 int dx = 0;
1902 int dy = 0;
1903 if ( btn-&gt;<a href="qpushbutton.html#isMenuButton">isMenuButton</a>() )
1904 dx = ( y2 - y1 ) / 3;
1905 if ( btn-&gt;<a href="qbutton.html#isOn">isOn</a>() || btn-&gt;<a href="qbutton.html#isDown">isDown</a>() ) {
1906 dx--;
1907 dy--;
1908 }
1909 if ( dx || dy )
1910<a name="x289"></a> p-&gt;<a href="qpainter.html#translate">translate</a>( dx, dy );
1911 x += 2;
1912 y += 2;
1913 w -= 4;
1914 h -= 4;
1915 <a href="qstyle.html#drawItem">drawItem</a>( p, QRect( x, y, w, h ),
1916 AlignCenter|ShowPrefix,
1917 cg, btn-&gt;<a href="qwidget.html#isEnabled">isEnabled</a>(),
1918<a name="x271"></a><a name="x270"></a> btn-&gt;<a href="qbutton.html#pixmap">pixmap</a>(), btn-&gt;<a href="qbutton.html#text">text</a>(), -1,
1919<a name="x276"></a><a name="x273"></a> (btn-&gt;<a href="qbutton.html#isDown">isDown</a>() || btn-&gt;<a href="qbutton.html#isOn">isOn</a>())? &amp;cg.<a href="qcolorgroup.html#brightText">brightText</a>() : &amp;cg.<a href="qcolorgroup.html#buttonText">buttonText</a>() );
1920 if ( dx || dy )
1921 p-&gt;<a href="qpainter.html#translate">translate</a>( -dx, -dy );
1922 break;
1923 }
1924 default:
1925 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawControl">drawControl</a>( element, p, widget, r, cg, how, opt );
1926 break;
1927 }
1928}
1929<a name="x310"></a>void MetalStyle::<a href="qstyle.html#drawComplexControl">drawComplexControl</a>( ComplexControl cc,
1930 <a href="qpainter.html">QPainter</a> *p,
1931 const <a href="qwidget.html">QWidget</a> *widget,
1932 const <a href="qrect.html">QRect</a> &amp;r,
1933 const <a href="qcolorgroup.html">QColorGroup</a> &amp;cg,
1934 SFlags how,
1935 SCFlags sub,
1936 SCFlags subActive,
1937 const <a href="qstyleoption.html">QStyleOption</a>&amp; opt ) const
1938{
1939 switch ( cc ) {
1940 case CC_Slider:
1941 {
1942 const <a href="qslider.html">QSlider</a> *slider = ( const <a href="qslider.html">QSlider</a>* ) widget;
1943 <a href="qrect.html">QRect</a> handle = <a href="qstyle.html#querySubControlMetrics">querySubControlMetrics</a>( CC_Slider, widget,
1944 SC_SliderHandle, opt);
1945 if ( sub &amp; SC_SliderGroove )
1946 QWindowsStyle::<a href="qstyle.html#drawComplexControl">drawComplexControl</a>( cc, p, widget, r, cg, how,
1947 SC_SliderGroove, subActive, opt );
1948<a name="x299"></a> if ( (sub &amp; SC_SliderHandle) &amp;&amp; handle.<a href="qrect.html#isValid">isValid</a>() )
1949 drawMetalButton( p, handle.<a href="qrect.html#x">x</a>(), handle.<a href="qrect.html#y">y</a>(), handle.<a href="qrect.html#width">width</a>(),
1950 handle.<a href="qrect.html#height">height</a>(), FALSE,
1951<a name="x304"></a> slider-&gt;<a href="qslider.html#orientation">orientation</a>() == QSlider::Horizontal);
1952 break;
1953 }
1954 case CC_ComboBox:
1955 {
1956 // not exactly correct...
1957 const <a href="qcombobox.html">QComboBox</a> *cmb = ( const <a href="qcombobox.html">QComboBox</a>* ) widget;
1958
1959 <a href="qpainter.html#qDrawWinPanel">qDrawWinPanel</a>( p, r.<a href="qrect.html#x">x</a>(), r.<a href="qrect.html#y">y</a>(), r.<a href="qrect.html#width">width</a>(), r.<a href="qrect.html#height">height</a>(), cg, TRUE,
1960 cmb-&gt;<a href="qwidget.html#isEnabled">isEnabled</a>() ? &amp;cg.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Base ) :
1961 &amp;cg.<a href="qcolorgroup.html#brush">brush</a>( QColorGroup::Background ) );
1962 drawMetalButton( p, r.<a href="qrect.html#x">x</a>() + r.<a href="qrect.html#width">width</a>() - 2 - 16, r.<a href="qrect.html#y">y</a>() + 2, 16, r.<a href="qrect.html#height">height</a>() - 4,
1963 how &amp; Style_Sunken, TRUE );
1964 <a href="qstyle.html#drawPrimitive">drawPrimitive</a>( PE_ArrowDown, p,
1965 QRect( r.<a href="qrect.html#x">x</a>() + r.<a href="qrect.html#width">width</a>() - 2 - 16 + 2,
1966 r.<a href="qrect.html#y">y</a>() + 2 + 2, 16 - 4, r.<a href="qrect.html#height">height</a>() - 4 -4 ),
1967 cg,
1968 cmb-&gt;<a href="qwidget.html#isEnabled">isEnabled</a>() ? Style_Enabled : Style_Default,
1969 opt );
1970 break;
1971 }
1972 default:
1973 <a href="qwindowsstyle.html">QWindowsStyle</a>::<a href="qstyle.html#drawComplexControl">drawComplexControl</a>( cc, p, widget, r, cg, how, sub, subActive,
1974 opt );
1975 break;
1976 }
1977}
1978
1979
1980/*!
1981 Draw a metallic button, sunken if \a sunken is TRUE, horizontal if
1982 /a horz is TRUE.
1983*/
1984
1985void <a name="f228"></a>MetalStyle::drawMetalButton( <a href="qpainter.html">QPainter</a> *p, int x, int y, int w, int h,
1986 bool sunken, bool horz, bool flat ) const
1987{
1988
1989 drawMetalFrame( p, x, y, w, h );
1990 drawMetalGradient( p, x, y, w, h, sunken, horz, flat );
1991}
1992
1993
1994
1995
1996void <a name="f229"></a>MetalStyle::drawMetalFrame( <a href="qpainter.html">QPainter</a> *p, int x, int y, int w, int h ) const
1997{
1998 <a href="qcolor.html">QColor</a> top1("#878769691515");
1999 <a href="qcolor.html">QColor</a> top2("#C6C6B4B44949");
2000
2001 <a href="qcolor.html">QColor</a> bot2("#70705B5B1414");
2002 <a href="qcolor.html">QColor</a> bot1("#56564A4A0E0E"); //first from the bottom
2003
2004
2005 int x2 = x + w - 1;
2006 int y2 = y + h - 1;
2007
2008 //frame:
2009
2010 p-&gt;<a href="qpainter.html#setPen">setPen</a>( top1 );
2011<a name="x284"></a> p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x, y2, x, y );
2012 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x, y, x2-1, y );
2013 p-&gt;<a href="qpainter.html#setPen">setPen</a>( top2 );
2014 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x+1, y2 -1, x+1, y+1 );
2015 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x+1, y+1 , x2-2, y+1 );
2016
2017 p-&gt;<a href="qpainter.html#setPen">setPen</a>( bot1 );
2018 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x+1, y2, x2, y2 );
2019 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x2, y2, x2, y );
2020 p-&gt;<a href="qpainter.html#setPen">setPen</a>( bot2 );
2021 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x+1, y2-1, x2-1, y2-1 );
2022 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x2-1, y2-1, x2-1, y+1 );
2023
2024
2025}
2026
2027
2028void <a name="f230"></a>MetalStyle::drawMetalGradient( <a href="qpainter.html">QPainter</a> *p, int x, int y, int w, int h,
2029 bool sunken, bool horz, bool flat ) const
2030
2031{
2032 <a href="qcolor.html">QColor</a> highlight("#E8E8DDDD6565");
2033 <a href="qcolor.html">QColor</a> subh1("#CECEBDBD5151");
2034 <a href="qcolor.html">QColor</a> subh2("#BFBFACAC4545");
2035
2036 <a href="qcolor.html">QColor</a> topgrad("#B9B9A5A54040");
2037 <a href="qcolor.html">QColor</a> botgrad("#89896C6C1A1A");
2038
2039
2040
2041 if ( flat &amp;&amp; !sunken ) {
2042<a name="x286"></a> p-&gt;<a href="qpainter.html#fillRect">fillRect</a>( x + 2, y + 2, w - 4,h -4, topgrad );
2043 } else {
2044 // highlight:
2045 int i = 0;
2046 int x1 = x + 2;
2047 int y1 = y + 2;
2048 int x2 = x + w - 1;
2049 int y2 = y + h - 1;
2050 if ( horz )
2051 x2 = x2 - 2;
2052 else
2053 y2 = y2 - 2;
2054
2055#define DRAWLINE if (horz) \
2056 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x1, y1+i, x2, y1+i ); \
2057 else \
2058 p-&gt;<a href="qpainter.html#drawLine">drawLine</a>( x1+i, y1, x1+i, y2 ); \
2059 i++;
2060
2061 if ( !sunken ) {
2062 p-&gt;<a href="qpainter.html#setPen">setPen</a>( highlight );
2063 DRAWLINE;
2064 DRAWLINE;
2065 p-&gt;<a href="qpainter.html#setPen">setPen</a>( subh1 );
2066 DRAWLINE;
2067 p-&gt;<a href="qpainter.html#setPen">setPen</a>( subh2 );
2068 DRAWLINE;
2069 }
2070 // gradient:
2071 int ng = (horz ? h : w) - 8; // how many lines for the gradient?
2072
2073 int h1, h2, s1, s2, v1, v2;
2074 if ( !sunken ) {
2075<a name="x272"></a> topgrad.<a href="qcolor.html#hsv">hsv</a>( &amp;h1, &amp;s1, &amp;v1 );
2076 botgrad.<a href="qcolor.html#hsv">hsv</a>( &amp;h2, &amp;s2, &amp;v2 );
2077 } else {
2078 botgrad.<a href="qcolor.html#hsv">hsv</a>( &amp;h1, &amp;s1, &amp;v1 );
2079 topgrad.<a href="qcolor.html#hsv">hsv</a>( &amp;h2, &amp;s2, &amp;v2 );
2080 }
2081
2082 if ( ng &gt; 1 ) {
2083 for ( int j =0; j &lt; ng; j++ ) {
2084 p-&gt;<a href="qpainter.html#setPen">setPen</a>( QColor( h1 + ((h2-h1)*j)/(ng-1),
2085 s1 + ((s2-s1)*j)/(ng-1),
2086 v1 + ((v2-v1)*j)/(ng-1), QColor::Hsv ) );
2087 DRAWLINE;
2088 }
2089 } else if ( ng == 1 ) {
2090 p-&gt;<a href="qpainter.html#setPen">setPen</a>( QColor((h1+h2)/2, (s1+s2)/2, (v1+v2)/2, QColor::Hsv) );
2091 DRAWLINE;
2092 }
2093 if ( sunken ) {
2094 p-&gt;<a href="qpainter.html#setPen">setPen</a>( subh2 );
2095 DRAWLINE;
2096
2097 p-&gt;<a href="qpainter.html#setPen">setPen</a>( subh1 );
2098 DRAWLINE;
2099
2100 p-&gt;<a href="qpainter.html#setPen">setPen</a>( highlight );
2101 DRAWLINE;
2102 DRAWLINE;
2103 }
2104 }
2105}
2106
2107
2108
2109<a name="x313"></a>int MetalStyle::<a href="qstyle.html#pixelMetric">pixelMetric</a>( PixelMetric metric, const <a href="qwidget.html">QWidget</a> *w ) const
2110{
2111 switch ( metric ) {
2112 case PM_MenuBarFrameWidth:
2113 return 2;
2114 default:
2115 return QWindowsStyle::pixelMetric( metric, w );
2116 }
2117}
2118
2119#endif
2120</pre>
2121
2122<p> <hr>
2123<p> Header file of the example:
2124<p> <pre>/****************************************************************************
2125** $Id: themes-example.html 2051 2007-02-21 10:04:20Z chehrlic $
2126**
2127** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
2128**
2129** This file is part of an example program for Qt. This example
2130** program may be used, distributed and modified without limitation.
2131**
2132*****************************************************************************/
2133
2134#ifndef THEMES_H
2135#define THEMES_H
2136
2137#include &lt;<a href="qmainwindow-h.html">qmainwindow.h</a>&gt;
2138#include &lt;<a href="qfont-h.html">qfont.h</a>&gt;
2139
2140class QTabWidget;
2141
2142class Themes: public <a href="qmainwindow.html">QMainWindow</a>
2143{
2144 <a href="metaobjects.html#Q_OBJECT">Q_OBJECT</a>
2145
2146public:
2147 Themes( <a href="qwidget.html">QWidget</a> *parent = 0, const char *name = 0, WFlags f = WType_TopLevel );
2148
2149protected:
2150 <a href="qtabwidget.html">QTabWidget</a> *tabwidget;
2151
2152protected slots:
2153 void makeStyle(const <a href="qstring.html">QString</a> &amp;);
2154 void about();
2155 void aboutQt();
2156
2157private:
2158 <a href="qfont.html">QFont</a> appFont;
2159};
2160
2161
2162#endif
2163</pre>
2164
2165<p> <hr>
2166<p> Implementation of the example:
2167<p> <pre>/****************************************************************************
2168** $Id: themes-example.html 2051 2007-02-21 10:04:20Z chehrlic $
2169**
2170** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
2171**
2172** This file is part of an example program for Qt. This example
2173** program may be used, distributed and modified without limitation.
2174**
2175*****************************************************************************/
2176
2177#include "themes.h"
2178#include "wood.h"
2179#include "metal.h"
2180
2181#include "../buttongroups/buttongroups.h"
2182#include "../lineedits/lineedits.h"
2183#include "../listboxcombo/listboxcombo.h"
2184#include "../checklists/checklists.h"
2185#include "../progressbar/progressbar.h"
2186#include "../rangecontrols/rangecontrols.h"
2187#include "../richtext/richtext.h"
2188
2189#include &lt;<a href="qtabwidget-h.html">qtabwidget.h</a>&gt;
2190#include &lt;<a href="qapplication-h.html">qapplication.h</a>&gt;
2191#include &lt;<a href="qpopupmenu-h.html">qpopupmenu.h</a>&gt;
2192#include &lt;<a href="qmenubar-h.html">qmenubar.h</a>&gt;
2193#include &lt;<a href="qmessagebox-h.html">qmessagebox.h</a>&gt;
2194#include &lt;<a href="qfont-h.html">qfont.h</a>&gt;
2195#include &lt;<a href="qstylefactory-h.html">qstylefactory.h</a>&gt;
2196#include &lt;<a href="qaction-h.html">qaction.h</a>&gt;
2197#include &lt;<a href="qsignalmapper-h.html">qsignalmapper.h</a>&gt;
2198#include &lt;<a href="qdict-h.html">qdict.h</a>&gt;
2199
2200<a name="f231"></a>Themes::Themes( <a href="qwidget.html">QWidget</a> *parent, const char *name, WFlags f )
2201 : <a href="qmainwindow.html">QMainWindow</a>( parent, name, f )
2202{
2203<a name="x321"></a> appFont = QApplication::<a href="qapplication.html#font">font</a>();
2204 tabwidget = new <a href="qtabwidget.html">QTabWidget</a>( this );
2205
2206<a name="x343"></a> tabwidget-&gt;<a href="qtabwidget.html#addTab">addTab</a>( new ButtonsGroups( tabwidget ), "Buttons/Groups" );
2207 <a href="qhbox.html">QHBox</a> *hbox = new <a href="qhbox.html">QHBox</a>( tabwidget );
2208 hbox-&gt;<a href="qframe.html#setMargin">setMargin</a>( 5 );
2209 (void)new LineEdits( hbox );
2210 (void)new ProgressBar( hbox );
2211 tabwidget-&gt;<a href="qtabwidget.html#addTab">addTab</a>( hbox, "Lineedits/Progressbar" );
2212 tabwidget-&gt;<a href="qtabwidget.html#addTab">addTab</a>( new ListBoxCombo( tabwidget ), "Listboxes/Comboboxes" );
2213 tabwidget-&gt;<a href="qtabwidget.html#addTab">addTab</a>( new CheckLists( tabwidget ), "Listviews" );
2214 tabwidget-&gt;<a href="qtabwidget.html#addTab">addTab</a>( new RangeControls( tabwidget ), "Rangecontrols" );
2215 tabwidget-&gt;<a href="qtabwidget.html#addTab">addTab</a>( new MyRichText( tabwidget ), "Fortune" );
2216
2217 <a href="qmainwindow.html#setCentralWidget">setCentralWidget</a>( tabwidget );
2218
2219 <a href="qpopupmenu.html">QPopupMenu</a> *style = new <a href="qpopupmenu.html">QPopupMenu</a>( this );
2220<a name="x333"></a> style-&gt;<a href="qpopupmenu.html#setCheckable">setCheckable</a>( TRUE );
2221 <a href="qmainwindow.html#menuBar">menuBar</a>()-&gt;insertItem( "&amp;Style" , style );
2222
2223 style-&gt;<a href="qpopupmenu.html#setCheckable">setCheckable</a>( TRUE );
2224 <a href="qactiongroup.html">QActionGroup</a> *ag = new <a href="qactiongroup.html">QActionGroup</a>( this, 0 );
2225<a name="x320"></a> ag-&gt;<a href="qactiongroup.html#setExclusive">setExclusive</a>( TRUE );
2226 <a href="qsignalmapper.html">QSignalMapper</a> *styleMapper = new <a href="qsignalmapper.html">QSignalMapper</a>( this );
2227<a name="x335"></a> <a href="qobject.html#connect">connect</a>( styleMapper, SIGNAL( <a href="qsignalmapper.html#mapped">mapped</a>( const <a href="qstring.html">QString</a>&amp; ) ), this, SLOT( makeStyle( const <a href="qstring.html">QString</a>&amp; ) ) );
2228<a name="x342"></a> <a href="qstringlist.html">QStringList</a> list = QStyleFactory::<a href="qstylefactory.html#keys">keys</a>();
2229<a name="x341"></a> list.<a href="qstringlist.html#sort">sort</a>();
2230#ifndef QT_NO_STYLE_WINDOWS
2231<a name="x346"></a><a name="x344"></a> list.<a href="qvaluelist.html#insert">insert</a>(list.<a href="qvaluelist.html#begin">begin</a>(), "Norwegian Wood");
2232 list.<a href="qvaluelist.html#insert">insert</a>(list.<a href="qvaluelist.html#begin">begin</a>(), "Metal");
2233#endif
2234 <a href="qdict.html">QDict</a>&lt;int&gt; stylesDict( 17, FALSE );
2235<a name="x345"></a> for ( QStringList::Iterator it = list.<a href="qvaluelist.html#begin">begin</a>(); it != list.<a href="qvaluelist.html#end">end</a>(); ++it ) {
2236 <a href="qstring.html">QString</a> styleStr = *it;
2237 <a href="qstring.html">QString</a> styleAccel = styleStr;
2238<a name="x338"></a> if ( stylesDict[styleAccel.<a href="qstring.html#left">left</a>(1)] ) {
2239<a name="x339"></a> for ( uint i = 0; i &lt; styleAccel.<a href="qstring.html#length">length</a>(); i++ ) {
2240<a name="x340"></a> if ( !stylesDict[styleAccel.<a href="qstring.html#mid">mid</a>( i, 1 )] ) {
2241<a name="x326"></a> stylesDict.<a href="qdict.html#insert">insert</a>(styleAccel.<a href="qstring.html#mid">mid</a>( i, 1 ), (const int *)1);
2242<a name="x337"></a> styleAccel = styleAccel.<a href="qstring.html#insert">insert</a>( i, '&amp;' );
2243 break;
2244 }
2245 }
2246 } else {
2247 stylesDict.<a href="qdict.html#insert">insert</a>(styleAccel.<a href="qstring.html#left">left</a>(1), (const int *)1);
2248 styleAccel = "&amp;"+styleAccel;
2249 }
2250<a name="x319"></a> <a href="qaction.html">QAction</a> *a = new <a href="qaction.html">QAction</a>( styleStr, QIconSet(), styleAccel, 0, ag, 0, ag-&gt;<a href="qactiongroup.html#isExclusive">isExclusive</a>() );
2251<a name="x334"></a><a name="x316"></a> <a href="qobject.html#connect">connect</a>( a, SIGNAL( <a href="qaction.html#activated">activated</a>() ), styleMapper, SLOT(<a href="qsignalmapper.html#map">map</a>()) );
2252<a name="x336"></a><a name="x317"></a> styleMapper-&gt;<a href="qsignalmapper.html#setMapping">setMapping</a>( a, a-&gt;<a href="qaction.html#text">text</a>() );
2253 }
2254<a name="x318"></a> ag-&gt;<a href="qactiongroup.html#addTo">addTo</a>(style);
2255 style-&gt;<a href="qmenudata.html#insertSeparator">insertSeparator</a>();
2256 style-&gt;<a href="qmenudata.html#insertItem">insertItem</a>("&amp;Quit", qApp, SLOT( <a href="qapplication.html#quit">quit</a>() ), CTRL | Key_Q );
2257
2258 <a href="qpopupmenu.html">QPopupMenu</a> * help = new <a href="qpopupmenu.html">QPopupMenu</a>( this );
2259 <a href="qmainwindow.html#menuBar">menuBar</a>()-&gt;insertSeparator();
2260 <a href="qmainwindow.html#menuBar">menuBar</a>()-&gt;insertItem( "&amp;Help", help );
2261 help-&gt;<a href="qmenudata.html#insertItem">insertItem</a>( "&amp;About", this, SLOT(about()), Key_F1);
2262 help-&gt;<a href="qmenudata.html#insertItem">insertItem</a>( "About &amp;Qt", this, SLOT(aboutQt()));
2263
2264#ifndef QT_NO_STYLE_WINDOWS
2265<a name="x325"></a> qApp-&gt;<a href="qapplication.html#setStyle">setStyle</a>( new NorwegianWoodStyle );
2266#endif
2267}
2268
2269void <a name="f232"></a>Themes::makeStyle(const <a href="qstring.html">QString</a> &amp;style)
2270{
2271 if(style == "Norwegian Wood") {
2272#ifndef QT_NO_STYLE_WINDOWS
2273 qApp-&gt;<a href="qapplication.html#setStyle">setStyle</a>( new NorwegianWoodStyle );
2274#endif
2275 } else if( style == "Metal" ) {
2276#ifndef QT_NO_STYLE_WINDOWS
2277 qApp-&gt;<a href="qapplication.html#setStyle">setStyle</a>( new MetalStyle );
2278#endif
2279 } else {
2280 qApp-&gt;<a href="qapplication.html#setStyle">setStyle</a>(style);
2281 if(style == "Platinum") {
2282 <a href="qpalette.html">QPalette</a> p( QColor( 239, 239, 239 ) );
2283<a name="x324"></a> qApp-&gt;<a href="qapplication.html#setPalette">setPalette</a>( p, TRUE );
2284<a name="x323"></a> qApp-&gt;<a href="qapplication.html#setFont">setFont</a>( appFont, TRUE );
2285 } else if(style == "Windows") {
2286 qApp-&gt;<a href="qapplication.html#setFont">setFont</a>( appFont, TRUE );
2287 } else if(style == "CDE") {
2288 <a href="qpalette.html">QPalette</a> p( QColor( 75, 123, 130 ) );
2289<a name="x332"></a> p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Active, QColorGroup::Base, QColor( 55, 77, 78 ) );
2290 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Inactive, QColorGroup::Base, QColor( 55, 77, 78 ) );
2291 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Disabled, QColorGroup::Base, QColor( 55, 77, 78 ) );
2292 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Active, QColorGroup::Highlight, Qt::white );
2293 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Active, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );
2294 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Inactive, QColorGroup::Highlight, Qt::white );
2295 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Inactive, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );
2296 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Disabled, QColorGroup::Highlight, Qt::white );
2297 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Disabled, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );
2298 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Active, QColorGroup::Foreground, Qt::white );
2299 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Active, QColorGroup::Text, Qt::white );
2300 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Active, QColorGroup::ButtonText, Qt::white );
2301 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Inactive, QColorGroup::Foreground, Qt::white );
2302 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Inactive, QColorGroup::Text, Qt::white );
2303 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Inactive, QColorGroup::ButtonText, Qt::white );
2304 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Disabled, QColorGroup::Foreground, Qt::lightGray );
2305 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Disabled, QColorGroup::Text, Qt::lightGray );
2306 p.<a href="qpalette.html#setColor">setColor</a>( QPalette::Disabled, QColorGroup::ButtonText, Qt::lightGray );
2307 qApp-&gt;<a href="qapplication.html#setPalette">setPalette</a>( p, TRUE );
2308 qApp-&gt;<a href="qapplication.html#setFont">setFont</a>( QFont( "times", appFont.pointSize() ), TRUE );
2309 } else if(style == "Motif" || style == "MotifPlus") {
2310 <a href="qpalette.html">QPalette</a> p( QColor( 192, 192, 192 ) );
2311 qApp-&gt;<a href="qapplication.html#setPalette">setPalette</a>( p, TRUE );
2312 qApp-&gt;<a href="qapplication.html#setFont">setFont</a>( appFont, TRUE );
2313 }
2314 }
2315}
2316
2317void <a name="f233"></a>Themes::about()
2318{
2319<a name="x330"></a> QMessageBox::<a href="qmessagebox.html#about">about</a>( this, "Qt Themes Example",
2320 "&lt;p&gt;This example demonstrates the concept of "
2321 "&lt;b&gt;generalized GUI styles &lt;/b&gt; first introduced "
2322 " with the 2.0 release of Qt.&lt;/p&gt;" );
2323}
2324
2325
2326void <a name="f234"></a>Themes::aboutQt()
2327{
2328<a name="x331"></a> QMessageBox::<a href="qmessagebox.html#aboutQt">aboutQt</a>( this, "Qt Themes Example" );
2329}
2330
2331
2332</pre>
2333
2334<p> <hr>
2335<p> Main:
2336<p> <pre>/****************************************************************************
2337** $Id: themes-example.html 2051 2007-02-21 10:04:20Z chehrlic $
2338**
2339** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
2340**
2341** This file is part of an example program for Qt. This example
2342** program may be used, distributed and modified without limitation.
2343**
2344*****************************************************************************/
2345
2346#include &lt;<a href="qapplication-h.html">qapplication.h</a>&gt;
2347#include &lt;<a href="qwindowsstyle-h.html">qwindowsstyle.h</a>&gt;
2348#include "themes.h"
2349
2350#include "metal.h"
2351
2352int main( int argc, char ** argv )
2353{
2354<a name="x348"></a> QApplication::<a href="qapplication.html#setColorSpec">setColorSpec</a>( QApplication::ManyColor );
2355 <a href="qapplication.html">QApplication</a> a( argc, argv );
2356
2357 Themes themes;
2358 themes.<a href="qwidget.html#setCaption">setCaption</a>( "Qt Example - Themes (QStyle)" );
2359 themes.<a href="qwidget.html#resize">resize</a>( 640, 400 );
2360 a.<a href="qapplication.html#setMainWidget">setMainWidget</a>( &amp;themes );
2361<a name="x350"></a> themes.<a href="qwidget.html#show">show</a>();
2362
2363 return a.<a href="qapplication.html#exec">exec</a>();
2364}
2365</pre>
2366
2367<p>See also <a href="examples.html">Examples</a>.
2368
2369<!-- eof -->
2370<p><address><hr><div align=center>
2371<table width=100% cellspacing=0 border=0><tr>
2372<td>Copyright &copy; 2007
2373<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
2374<td align=right><div align=right>Qt 3.3.8</div>
2375</table></div></address></body>
2376</html>
Note: See TracBrowser for help on using the repository browser.