summaryrefslogtreecommitdiffstats
path: root/perl-install/pixmaps/eth_card_mini.png
blob: 44f5161682415719cb4988e3f9955fd44139ac70 (plain)
ofshex dumpascii
0000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 34 00 00 00 34 08 06 00 00 00 c5 78 1b .PNG........IHDR...4...4......x.
0020 eb 00 00 00 06 62 4b 47 44 00 ff 00 ff 00 ff a0 bd a7 93 00 00 00 09 70 48 59 73 00 00 0b 12 00 .....bKGD..............pHYs.....
0040 00 0b 12 01 d2 dd 7e fc 00 00 00 07 74 49 4d 45 07 d2 09 04 0f 0a 2f 4b 32 70 4c 00 00 0a 25 49 ......~.....tIME....../K2pL...%I
0060 44 41 54 78 9c ed 9a 5b 4f 5b 57 16 c7 7f e7 f8 02 b1 31 e6 60 1c 43 6b 0a 38 18 48 32 99 90 90 DATx...[O[W.......1.`.Ck.8.H2...
0080 86 3c a4 89 d2 4e 35 22 4a d5 4f 50 4d ab 8e f8 00 d5 48 7d 9c 97 be 75 3e 40 55 b5 2f c9 cb 54 .<...N5"J.OPM.....H}...u>@U./..T
00a0 7d 68 5f d2 4e fa 50 a5 ca 65 66 48 13 a1 5c 48 84 0d 0e 17 83 8d f1 f5 1c 1f df bd e7 01 38 b1 }h_.N.P..efH..\H..............8.
00c0 b9 34 e1 92 34 53 f5 2f 59 e8 1c ce 5e ff fd 5f 7b ed b5 d7 de e7 48 a3 a3 a3 fc 3f e0 f3 cf 3f .4..4S./Y...^.._{.....H....?...?
00e0 af bb de b7 6f 9f 78 e5 95 57 d0 34 4d 7a f7 dd 77 8d fb e6 5f bb 63 a3 a3 a3 4c 4c 4c 88 eb d7 ....o.x..W.4Mz..w..._.c...LLL...
0100 af 33 38 38 88 2c cb 54 2a 15 1a 1b 1b b1 5a ad 94 cb 65 9c 2d 2d 9c 3f 7f 9e 62 b1 88 a2 28 14 .388.,.T*.....Z...e.--.?..b...(.
0120 8b 45 ca e5 32 a5 72 89 c0 64 40 00 d2 9a 3d e9 45 8e d0 d1 a3 47 45 56 d7 39 74 f0 20 f9 7c 8e .E..2.r..d@...=.E....GEV.9t...|.
0140 4c 26 83 ae eb 28 4a 2b 2d 2d 2d 64 32 19 b2 d9 ac f1 d3 75 1d 5d d7 c9 e7 f3 2c 2f 2f 93 48 24 L&...(J+---d2......u.]....,//.H$
0160 28 97 4a 34 3b 9d 54 ab 55 54 55 45 d3 34 86 86 86 0c 41 2f 6c 84 14 45 11 af bd f6 1a 17 2e 5c (.J4;.T.UTUE.4....A/l..E.......\
0180 a0 50 c8 91 4a a5 49 a7 d3 64 32 2a 57 af 5e 65 6a 6a 0a 5d d7 0d ef 2f 2f 2f 13 8b c5 68 6c 6c .P..J.I..d2*W.^ejj.]...///...hll
01a0 64 7e 7e 1e 97 cb 45 b5 5a a5 54 2e b3 b0 b0 40 2c 16 63 78 78 98 7c 3e 5f c7 f3 c2 04 4d 4e 4e d~~...E.Z.T....@,.cxx.|>_....MNN
01c0 4a 1f 7d f4 91 b8 f5 f3 cf e8 d9 2c 5f 7d f5 15 ba ae 53 2e 97 f0 78 da 89 44 22 2c 2d 2d 31 3b J.}........,_}....S...x..D",--1;
01e0 3b 4b a1 50 c0 62 b1 60 b1 58 8c f6 e1 70 b8 ce 9e cd 66 63 76 76 76 83 20 f9 85 a8 01 6e dc b8 ;K.P.b.`.X...p....fcvvv......n..
0200 81 cb e5 22 99 4c 92 c9 64 38 79 f2 24 5f 7c f1 05 ef ff e5 7d 9c 4e 27 d9 6c 96 58 2c 86 c9 64 ...".L..d8y.$_|.....}.N'.l.X,..d
0220 c2 66 b3 d5 89 d9 0a b2 bc b1 fb 4f 1d a1 f5 93 18 10 00 9d 9d 9d d8 ec 76 4a c5 22 6d 6e 37 08 .f.........O............vJ."mn7.
0240 81 aa aa 28 8a 42 b9 5c 26 9d 4e 73 f6 ec 59 23 b6 4d 26 13 f1 78 1c 21 04 9d 9d 9d 5c bb 76 8d ...(.B.\&.Ns..Y#.M&..x.!....\.v.
0260 7b f7 ee 31 f1 f0 21 c1 a9 29 16 17 17 29 16 8b 4f 15 51 8b fd fb f7 73 f7 ee 5d ca e5 b2 30 9b {..1..!..)...)..O.Q....s..]...0.
0280 cd 92 21 c8 6c 36 0b 87 c3 c1 c4 c4 04 95 4a 85 ae ae 2e 4c b2 8c aa 69 7c fc f1 c7 34 35 35 91 ..!.l6........J....L...i|...455.
02a0 c9 64 28 e4 f3 74 f7 f8 c8 ea 59 34 55 43 d7 b3 e4 f3 79 0a 85 02 c5 62 91 62 b1 88 ae eb 24 12 .d(..t....Y4UC....y....b.b....$.
02c0 09 14 45 e1 a7 9f 7e e2 ec d9 b3 00 bc f3 ce 3b 8c 8d 8d 61 32 9b f1 fb 7b 99 99 99 e1 fe fd fb ..E...~........;...a2...{.......
02e0 04 83 41 e6 66 67 c9 66 b3 db 12 03 10 8b c5 50 14 85 e9 e9 69 fa fa fa 30 04 8d 8c 8c d0 d0 d0 ..A.fg.f.......P....i...0.......
0300 c0 27 9f 7c 42 3a 9d 26 9d 4e a1 aa 19 34 6d 25 cb 68 9a 46 36 9b e5 d6 d8 18 0f 1f 3e a4 52 ad .'.|B:.&.N...4m%.h.F6.......>.R.
0320 20 aa 55 ca e5 32 42 08 66 67 67 b1 db ed 24 93 49 64 59 66 70 70 90 db b7 6f d3 da da 5a 97 52 ..U..2B.fgg...$.IdYfpp...o...Z.R
0340 d7 20 49 12 a5 62 91 c9 c0 24 a1 50 88 44 22 41 b5 5a dd b6 20 58 99 4b 92 f4 84 a2 2e e4 2a 95 ..I..b...$.P.D"A.Z...X.K......*.
0360 0a 37 6e 5c 67 66 66 86 54 2a cd d4 d4 14 aa aa 92 4e a7 49 a5 52 f4 f6 f6 32 3f 3f 6f 78 a7 50 .7n\gff.T*.......N.I.R...2??ox.P
0380 28 20 cb 32 8d 8d 8d c4 62 31 c3 ce 83 07 0f 70 bb dd 94 4a a5 3a f2 64 32 49 6b 6b 2b 12 d0 ec (..2....b1.....p...J.:.d2Ikk+...
03a0 74 32 3d 35 4d 24 12 d9 f0 dc b3 a2 50 28 d0 d6 d6 56 17 aa 32 b0 92 6d 2a 15 aa d5 2a df 7d f7 t2=5M$......P(...V..2..m*...*.}.
03c0 3d 47 8e fc 91 de de 5e 4e 9f 3e 4d 57 77 f7 4a e3 7c 9e bb 77 ef 92 48 24 48 24 12 c6 e4 6d 6c =G.....^N.>MWw.J.|..w..H$H$...ml
03e0 6c dc 40 b4 26 4e 53 d5 ba fb 06 b1 24 e1 72 b9 08 04 02 e8 ba be 23 31 b5 3c b5 0e 91 01 54 55 l.@.&NS.....$.r.......#1.<....TU
0400 45 08 b1 ca 25 71 f0 e0 41 dc 6d 6d 2c 2e 2e 12 9a 9e 26 1e 8f 53 d9 46 48 14 0a 05 ec 76 3b 16 E...%q..A.mm,.....&..S.FH....v;.
0420 ab b5 ee 7e 32 99 44 08 81 24 49 f4 f5 f9 59 58 58 30 78 77 83 5a 1b 32 40 3e 9f 47 54 ab c8 b2 ...~2.D..$I...YXX0xw.Z.2@>.GT...
0440 cc 91 23 47 f8 fa eb af 79 f8 e8 11 c1 e0 4a f6 29 14 0a db 22 90 65 19 49 92 ea 62 1b 60 69 69 ..#G....y.....J.)...".e.I..b.`ii
0460 09 c0 b8 bf d9 e8 6e 17 6e b7 bb 9e 1b 60 66 66 c6 f0 9c c5 62 61 76 76 76 35 fb cc a0 69 da b6 ......n.n....`ff....bavvv5...i..
0480 49 1a 1b 1b 99 9b 9b db 34 0d 1f 38 70 80 c0 64 80 a6 26 07 ed ed ed 3b 94 51 8f 5a c7 d5 ad 4c I.......4..8p..d..&....;.Q.Z...L
04a0 26 93 09 b3 c5 4c 34 1a 25 14 0a 11 df 45 f6 b1 db ed 1b 46 e8 d2 a5 4b d2 c0 c0 00 c1 a9 29 2c &....L4.%....E.....F...K......),
04c0 96 bd 2b 52 6a fb 28 03 5c bd 7a 55 1a 19 19 e1 5f df 7f 4f 73 73 33 a9 54 6a 57 d9 07 56 04 ad ..+Rj.(.\.zU...._..Oss3.TjW..V..
04e0 47 b9 5c 36 44 f6 f4 f4 b0 6f df be 1d db 87 95 d0 ce e5 72 75 fd 34 03 84 42 a1 0d de dc c9 42 G.\6D....o.........ru.4..B.....B
0500 57 8b f9 f9 f9 0d 36 15 45 61 72 72 12 49 5a 11 54 9b ea 77 82 6a b5 ba c1 29 f2 1a 51 20 10 40 W.....6.Earr.IZ.T..w.j...)..Q..@
0520 08 c1 db 7f 7a db 98 53 7b 8d 73 e7 ce 11 08 04 00 09 21 04 7e bf 7f c7 b6 f2 f9 3c fd fd fd a4 ....z..S{.s.......!.~......<....
0540 52 a9 ba 9a 4e ae 25 12 ac a4 c0 bd c8 3e 5e af 77 6d 1d aa f3 4c a9 54 42 92 24 aa d5 2a ad ad R...N.%......>^.wm...L.TB.$..*..
0560 2b 75 df b3 42 d7 75 3a 3a 3a 50 14 85 c3 87 0f a3 69 1a b9 5c 0e 6b cd f2 b0 a1 5c 15 42 e0 f3 +u..B.u:::P......i..\.k....\.B..
0580 f9 76 ae 64 15 36 9b 8d d2 26 9d 8d c7 e3 06 4f 7f ff c0 2f 86 b6 ae eb b4 b6 b6 a2 28 0a 1d 1d .v.d.6...&.....O.../........(...
05a0 1d bc fe fa eb 54 2b 15 dc 6e 37 42 08 4c 66 13 9a aa d2 d6 d6 66 b4 31 52 4d 34 1a 65 ff fe fd .....T+..n7B.Lf......f.1RM4.e...
05c0 08 21 68 6e 76 50 a9 54 30 99 4c bb 16 b6 19 64 59 46 08 41 43 43 03 1e 8f 87 5c 2e 47 b5 5a a5 .!hnvP.T0.L....dYF.ACC....\.G.Z.
05e0 50 28 e0 f5 7a d1 75 1d 8f c7 43 67 67 27 aa aa 62 b7 db 11 02 0a 85 3c 16 ab 95 68 34 8a cd 66 P(..z.u...Cgg'..b......<...h4..f
0600 c3 fb aa 17 87 c3 51 67 7b d3 dc 39 30 70 90 cb 97 bf db f0 f0 5e 20 1c 0e 33 32 72 9e 3b 77 ee ......Qg{..90p.......^...32r.;w.
0620 60 b7 db 38 74 e8 10 81 40 00 bf df 8f d7 eb a5 58 2c d2 d5 d5 65 6c bf 85 10 ab 6b 5a 09 9b 6d `..8t...@.......X,...el....kZ..m
0640 1f 3d 3d 3d 9b 99 dd b8 05 0f 87 c3 78 3c 9e 95 9b 66 f3 ae e6 51 a5 52 41 d3 b4 4d d3 b2 a6 69 .===........x<...f...Q.RA..M...i
0660 b8 dd 6d a8 6a 86 e1 e1 61 24 49 e2 83 0f 3e 30 ce 07 1e 3d 7a c4 f8 f8 38 91 48 84 68 34 4a b1 ..m.j...a$I...>0...=z...8.H.h4J.
0680 58 5c 29 a3 2c 16 5c ae d6 4d 45 d4 c2 10 a4 69 1a 3d 3d 3d 04 83 41 ec 76 3b 1e 8f 87 44 22 b1 X\).,.\..ME....i.===..A.v;...D".
06a0 2d 11 00 1d 1d 1d 58 ad 56 54 55 dd d4 29 df 7c f3 0d 1f 7e f8 21 b2 6c 32 78 c7 c7 c7 49 a7 52 -.....X.VTU..).|...~.!.l2x...I.R
06c0 2c c7 e3 c8 b2 6c 6c 4b 2c 16 0b aa aa e2 7d f5 55 b2 ba 4e 30 18 24 1e 8f 63 b3 d9 a4 b5 7d d6 ,....llK,.....}.U..N0.$..c....}.
06e0 7a 18 49 21 9d 4e 33 30 30 c0 e3 c7 8f 31 9b cd 34 37 37 3f 55 44 ed a4 ed ee ee a6 b7 d7 bf 32 z.I!.N300....1..477?UD.........2
0700 59 4d 26 1a 1a ac 86 c8 5a 9c 3b 77 8e 1f 7e b8 82 aa 66 b8 78 f1 12 76 7b 13 bd bd bd f4 f5 f5 YM&.....Z.;w..~...f.x..v{.......
0720 d1 d3 d3 63 38 41 55 55 2a 95 0a 5e af 17 55 55 49 c4 e3 a4 d3 e9 b5 d1 df 72 4d 31 46 e8 db 6f ...c8AUU*..^..UUI........rM1F..o
0740 bf 95 3e fb ec 33 21 49 12 67 ce bc c1 a7 9f 7e 4a 75 b5 60 ad 15 e0 f5 7a 11 42 d0 d4 d4 44 47 ..>..3!I.g.....~Ju.`....z.B...DG
0760 47 07 a9 54 ca 08 ad 62 b1 48 2c b6 44 b1 58 c4 6a b5 32 3c 3c bc 81 30 14 0a 49 9d 9d 5e a1 69 G..T...b.H,.D.X.j.2<<..0..I..^.i
0780 59 de 7a eb 4d 9c 0e 27 ff bd 35 46 24 12 41 cf 66 c9 ae 1e 5b 39 1c 0e ca e5 32 e1 70 98 5c 2e Y.z.M..'..5F$.A.f...[9....2.p.\.
07a0 47 5b 5b 1b ad 2e d7 5a 85 b1 69 b8 d5 09 5a 2b 4b d6 d6 88 be be 3e 6e df be 8d cf e7 43 d7 75 G[[....Z..i...Z+K.....>n.....C.u
07c0 dc 6e 37 3e 9f 8f 5c 2e 4f 4b 8b 13 21 20 9f cf a1 aa 2a 91 68 04 8b d9 42 a9 54 e2 d8 b1 63 eb .n7>..\.OK..!.....*.h...B.T...c.
07e0 39 ea c8 7d 3e 1f f3 f3 61 29 12 89 88 3b 77 ee d0 df df cf 9b e7 de a2 5a 11 dc 8b de 65 6e 6e 9..}>...a)...;w.........Z....enn
0800 8e f9 f9 79 63 1e fb 7c 3e ba ba ba b6 ea ff d6 82 4e 9d 3a c5 ad 5b b7 30 99 4c 08 21 38 7d fa ...yc..|>........N.:..[.0.L.!8}.
0820 34 27 4e 9c 40 08 41 6f 6f af 71 f8 37 39 39 c9 a3 47 8f 48 26 93 e4 72 39 4c 26 13 47 8f 1e dd 4'N.@.Aoo.q.799..G.H&..r9L&.G...
0840 cc f6 96 5e 04 68 6f 6f 97 d2 e9 b4 b8 72 e5 0a 97 2f 5f c6 6a b5 e2 3c 9a 24 3c 67 61 68 68 68 ...^.hoo.....r.../_.j..<.$<gahhh
0860 ab 3a ef 17 6d d6 09 f2 7a bd 2c 2d 2d 19 21 76 e6 cc 1b a8 aa c6 cd 9b 37 19 1f 1f 27 1e 8f 1b .:..m...z.,--.!v........7...'...
0880 05 ab aa aa a8 aa 6a ec 5a af 5d bb b6 9a 85 5c f8 fd fe a7 92 ae c1 e9 74 4a c7 8f 1f 17 8f 1f ......j.Z.]....\........tJ......
08a0 3f 26 1c 0e 73 fc ef 01 16 fe 7c b8 56 cc 33 db da 20 e8 cb 2f bf e4 c0 81 03 d8 6c 36 d2 e9 14 ?&..s.....|.V.3...../......l6...
08c0 f3 f3 61 5a 5a 9c 1c 1c 18 60 61 71 11 93 c9 44 55 08 62 ab 9b b4 42 a1 40 47 7b 07 62 b5 b2 d1 ..aZZ....`aq...DU.b...B.@G{.b...
08e0 34 8d c5 c5 c5 9d d4 67 52 77 77 37 a1 50 48 98 64 63 2b b0 6d 21 1b 04 ad d4 43 02 b3 d9 c4 b1 4......gRww7.PH.dc+.m!....C.....
0900 63 c7 70 36 37 33 35 1d e2 de bd 7b a4 d2 29 e3 e8 76 2d 73 b5 b5 b5 11 89 46 d0 34 0d 59 96 b1 c.p6735....{..)..v-s.....F.4.Y..
0920 db ed cf 94 19 b7 42 26 93 41 96 d8 34 33 ee 48 d0 7b ef bd c7 d4 d4 b4 a4 69 9a b8 79 f3 df 9c ......B&.A..43.H.{.......i..y...
0940 3a 35 cc 89 a1 21 92 89 24 89 64 8a 07 13 f7 49 26 93 44 a3 51 96 97 97 b1 d9 6c 28 8a 82 df ef :5...!..$.d....I&.D.Q.....l(....
0960 37 16 e4 dd 40 55 55 90 d8 f1 86 72 83 a0 35 34 35 35 49 c9 64 52 5c bc 78 09 8f c7 43 7b 7b 3b 7...@UU....r..5455I.dR\.x...C{{;
0980 c1 60 90 6c 39 49 32 1b a5 db f5 07 06 07 07 b7 b2 b7 e3 50 11 42 ec bc 71 0d 36 ad e5 14 45 91 .`.l9I2............P.B..q.6...E.
09a0 14 45 11 63 ff 19 a3 54 2a e1 72 b9 48 2b 3f e2 00 ba b9 50 fb e8 5e f4 61 4f f1 4b 1b 7b e9 e4 .E.c...T*.r.H+?....P..^.aO.K.{..
09c0 a9 93 b0 6e 3f b3 f6 bf e7 d3 9d dd e3 59 de 3e 48 bc c4 02 d6 e3 85 bd 4e 79 51 f8 5d d0 cb 8e ...n?........Y.>H.......NyQ.]...
09e0 97 4a d0 5e 1c 34 bd 5c 82 76 57 24 00 2f 99 a0 ca ce 0f 6a 0d 48 6c be ce 6c c0 d0 ea e7 0c e9 .J.^.4.\.vW$./.....j.Hl..l......
0a00 1f 7b 59 5e 5e 26 95 4a ed 9e bd 06 b2 2c f3 d7 89 2a ff 3c d9 8c c3 e1 20 91 48 90 cb e5 9e a9 .{Y^^&.J.....,...*.<......H.....
0a20 ed e8 e8 e8 93 0f 2f 86 46 11 27 fe b6 3a dc 6b 65 94 e0 89 cc ea ba eb b5 55 49 ae b9 de 29 44 ....../.F.'..:.ke........UI...)D
0a40 cd df da 12 4e ae b1 bb de be f4 e4 27 99 e0 e7 7f c0 10 35 82 b6 f9 25 49 ad ac e7 81 da 68 d9 ....N.......'......5...%I.....h.
0a60 11 c7 4b 35 87 f6 02 db 7d 49 f3 bc 4b a0 5d db 97 9e c7 5b 86 5f 13 bf b9 90 fb 5d d0 cb 8e df ..K5....}I..K.]....[._.....]....
0a80 9c a0 ff 01 50 20 f9 2d fb 41 c3 80 00 00 00 00 49 45 4e 44 ae 42 60 82 ....P..-.A......IEND.B`.
57 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064
package my_gtk; # $Id$

use diagnostics;
use strict;
use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK $border);

@ISA = qw(Exporter);
%EXPORT_TAGS = (
    helpers => [ qw(create_okcancel createScrolledWindow create_menu create_notebook create_packtable create_hbox create_vbox create_adjustment create_box_with_title create_treeitem) ],
    wrappers => [ qw(gtksignal_connect gtkradio gtkpack gtkpack_ gtkpack__ gtkpack2 gtkpack3 gtkpack2_ gtkpack2__ gtkpowerpack gtkset_editable gtksetstyle gtkset_tip gtkappenditems gtkappend gtkset_shadow_type gtkset_layout gtkset_relief gtkadd gtkput gtktext_insert gtkset_usize gtksize gtkset_justify gtkset_active gtkset_sensitive gtkset_modal gtkset_border_width gtkmove gtkresize gtkshow gtkhide gtkdestroy gtkcolor gtkset_mousecursor gtkset_mousecursor_normal gtkset_mousecursor_wait gtkset_background gtkset_default_fontset gtkctree_children gtkxpm gtkpng create_pix_text get_text_coord fill_tiled gtkicons_labels_widget write_on_pixmap gtkcreate_xpm gtkcreate_png gtkbuttonset) ],
    ask => [ qw(ask_warn ask_okcancel ask_yesorno ask_from_entry) ],
);
$EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ];
@EXPORT_OK = map { @$_ } values %EXPORT_TAGS;

use Gtk;
use Gtk::Gdk::ImlibImage;
use c;
use log;
use common;

my $forgetTime = 1000; #- in milli-seconds
$border = 5;

#-###############################################################################
#- OO stuff
#-###############################################################################
sub new {
    my ($type, $title, %opts) = @_;

    Gtk->init;
    Gtk::Gdk::ImlibImage->init;
    Gtk->set_locale;
    my $o = bless { %opts }, $type;
    $o->_create_window($title);
    while (my $e = shift @tempory::objects) { $e->destroy }
    foreach (@interactive::objects) {
	$_->{rwindow}->set_modal(0) if $_->{rwindow}->can('set_modal');
    }
    push @interactive::objects, $o if !$opts{no_interactive_objects};
    $o->{rwindow}->set_position('center_always') if $::isStandalone;
    $o->{rwindow}->set_modal(1) if $my_gtk::grab || $o->{grab};
    
    if ($::isWizard && !$my_gtk::pop_it) {
	#- my $rc = "/etc/gtk/wizard.rc";
	#- -r $rc or $rc = dirname(__FILE__) . "/wizard.rc";
	#- Gtk::Rc->parse($rc);
	$o->{window} = new Gtk::VBox(0,0);
	$o->{window}->set_border_width($::Wizard_splash ? 0 : 10);
	$o->{rwindow} = $o->{window};
	if (!defined($::WizardWindow)) {
	    $::WizardWindow = new Gtk::Window;
	    $::WizardWindow->set_position('center_always');
	    $::WizardWindow->signal_connect(delete_event => sub { die 'wizcancel'});
	    $::WizardTable = new Gtk::Table(2, 2, 0);
	    $::WizardWindow->add($::WizardTable);
	    my $draw1 = new Gtk::DrawingArea;
	    $draw1->set_usize(540,100);
	    my $draw2 = new Gtk::DrawingArea;
	    $draw2->set_usize(100,300);
	    my ($im_up, $mask_up) = gtkcreate_png($::Wizard_pix_up || "wiz_default_up.png");
	    my ($y1, $x1) = $im_up->get_size;
	    my ($im_left, $mask_left) = gtkcreate_png($::Wizard_pix_left || "wiz_default_left.png");
	    my ($y2, $x2) = $im_left->get_size;
	    my $style= new Gtk::Style;
	    $style->font(Gtk::Gdk::Font->fontset_load("-adobe-times-bold-r-normal-*-25-*-100-100-p-*-iso8859-*"));
	    my $w = $style->font->string_width($::Wizard_title);
	    $draw1->signal_connect(expose_event => sub {
				       my $i;
				       for ($i=0;$i<(540/$y1);$i++) {
					   $draw1->window->draw_pixmap ($draw1->style->bg_gc('normal'),
									$im_up, 0, 0, 0, $y1*$i,
									$x1 , $y1 );
					   $draw1->window->draw_string(
								       $style->font,
								       $draw1->style->white_gc,
								       140+(380-$w)/2, 62,
								       ($::Wizard_title) );
				       }
				   });
	    $draw2->signal_connect(expose_event => sub {
				       my $i;
				       for ($i=0;$i<(300/$y2);$i++) {
					   $draw2->window->draw_pixmap ($draw2->style->bg_gc('normal'),
									$im_left, 0, 0, 0, $y2*$i,
									$x2 , $y2 );
				       }
				   });
	    $::WizardTable->attach($draw1, 0, 2, 0, 1, 'fill', 'fill', 0, 0);
	    #- $::WizardTable->attach($draw2, 0, 1, 1, 2, 'fill', 'fill', 0, 0);
	    $::WizardTable->set_usize(540,400);
	    $::WizardWindow->show_all;
	    flush();
	}
	$::WizardTable->attach($o->{window}, 0, 2, 1, 2, [-fill, -expand], [-fill, -expand], 0, 0);
    }

    $::isEmbedded && !$my_gtk::pop_it && !eval { $::Plug->child } or return $o;
    $o->{window} = new Gtk::HBox(0,0);
    $o->{rwindow} = $o->{window};
    $::Plug ||= new Gtk::Plug ($::XID);
    $::Plug->show;
    flush();
    $::Plug->add($o->{window});
    $::CCPID and kill "USR2", $::CCPID;
    $o;
}
sub main {
    my ($o, $completed, $canceled) = @_;
    gtkset_mousecursor_normal();
    my $timeout = Gtk->timeout_add(1000, sub { gtkset_mousecursor_normal(); 1 });
    my $b = before_leaving { Gtk->timeout_remove($timeout) };
    $o->{rwindow}->window->set_events(['key_press_mask', 'key_release_mask', 'exposure_mask']) if $o->{rwindow}->window;
    $o->show;

    do {
	local $::setstep = 1;
	Gtk->main;
    } while ($o->{retval} ? $completed && !$completed->() : $canceled && !$canceled->());
    $o->destroy;
    $o->{retval}
}
sub show($) {
    my ($o) = @_;
    $o->{window}->show;
    $o->{rwindow}->show;
}
sub destroy($) {
    my ($o) = @_;
    $o->{rwindow}->destroy;
    gtkset_mousecursor_wait();
    flush();
}
sub DESTROY { goto &destroy }
sub sync {
    my ($o) = @_;
    show($o);
    flush();
}
sub flush {
    Gtk->main_iteration while Gtk->events_pending;
}

sub gtkshow($)         { $_[0]->show; $_[0] }
sub gtkhide($)         { $_[0]->hide; $_[0] }
sub gtkdestroy($)      { $_[0] and $_[0]->destroy }
sub gtkset_usize($$$)  { $_[0]->set_usize($_[1],$_[2]); $_[0] }
sub gtksize($$$)       { $_[0]->size($_[1],$_[2]); $_[0] }
sub gtkset_justify($$) { $_[0]->set_justify($_[1]); $_[0] }
sub gtkset_active($$)  { $_[0]->set_active($_[1]); $_[0] }
sub gtkset_modal       { $_[0]->set_modal($_[1]); $_[0] }
sub gtkset_sensitive   { $_[0]->set_sensitive($_[1]); $_[0] }
sub gtkset_border_width{ $_[0]->set_border_width($_[1]); $_[0] }
sub gtkmove { $_[0]->window->move($_[1], $_[2]); $_[0] }
sub gtkresize { $_[0]->window->resize($_[1], $_[2]); $_[0] }

sub gtksignal_connect($@) {
    my $w = shift;
    $w->signal_connect(@_);
    $w
}

sub gtkradio {
    my $def = shift;
    my $radio;
    map { $radio = new Gtk::RadioButton($_, $radio ? $radio : ());
	  $radio->set_active($_ eq $def); $radio } @_;
}

sub gtkpack_($@) { gtkpowerpack('arg', 1, @_) }
sub gtkpack($@) { gtkpowerpack(1, 1, @_) }
sub gtkpack__($@) { gtkpowerpack(0, 1, @_) }
sub gtkpack2_($@) { gtkpowerpack('arg', 0, @_) }
sub gtkpack2($@) { gtkpowerpack(1, 0, @_) }
sub gtkpack2__($@) { gtkpowerpack(0, 0, @_) }
sub gtkpack3 { gtkpowerpack($a?1:0, 0, @_) }

sub gtkpowerpack {
    #- Get Default Attributes (if any). 2 syntaxes allowed :
    #- gtkpowerpack( {expand => 1, fill => 0}, $box...) : the attributes are picked from a specified hash ref
    #- gtkpowerpack(1,0,1, $box, ...) : the attributes are picked from the non-ref list, in the order (expand, fill, padding, pack_end).
    my $RefDefaultAttrs;
    if (ref($_[0]) eq 'HASH') {
	$RefDefaultAttrs = shift;
    } elsif (!ref($_[0])) {
	my %tmp;
	foreach my $i ("expand", "fill", "padding", "pack_end") {
	    !ref($_[0]) ? $tmp{$i} = shift : last
	}
	$RefDefaultAttrs = \%tmp;
    }
    my $box = shift;

    while (@_) {
	#- Get attributes (if specified). 4 syntaxes allowed (default values are undef ie. false...) :
	#- gtkpowerpack({defaultattrs}, $box, $widget1, $widget2, ...) : the attrs are picked from the default ones (if they exist)
	#- gtkpowerpack($box, {fill=>1, expand=>0, ...}, $widget1, ...) : the attributes are picked from a specified hash ref
	#- gtkpowerpack($box, [1,0,1], $widget1, ...) : the attributes are picked from the array ref, in the order (expand, fill, padding, pack_end).
	#- gtkpowerpack({attr=>'arg'}, $box, 1, $widget1, 0, $widget2, etc...) : the 'arg' value will tell gtkpowerpack to always read the attr value directly in the arg list (avoiding confusion between value 0 and Gtk::Label("0"). That can simplify some writings but this arg(s) MUST then be present...
	my %attr;
	my $RefAttrs = shift if (ref($_[0]) eq 'HASH' or ref($_[0]) eq 'ARRAY');
	foreach my $i ("expand", "fill", "padding", "pack_end") {
	    if (defined($RefDefaultAttrs->{$i}) and $RefDefaultAttrs->{$i} eq 'arg') {
		if (!ref ($_[0])) {
		    $attr{$i} = shift;
		    shift @$RefAttrs if (ref($RefAttrs) eq 'ARRAY')
		} else {
		    die "error in packing definition\n"
		}
	    } elsif (ref($RefAttrs) eq 'HASH' and defined($RefAttrs->{$i})) {
		$attr{$i} = $RefAttrs->{$i}
	    } elsif (ref($RefAttrs) eq 'ARRAY') {
		$attr{$i} = shift @$RefAttrs
	    } elsif (defined($RefDefaultAttrs->{$i})) {
		$attr{$i} = int $RefDefaultAttrs->{$i}
	    } else {
		$attr{$i} = 0
	    }
	}

	#- Get and pack the widget (create it if necessary when it is a label...)
	my $widget = ref($_[0]) ? shift : new Gtk::Label(shift);
	if (! $attr{pack_end}) {
	    $box->pack_start($widget, $attr{expand}, $attr{fill}, $attr{padding});
	} else {
	    $box->pack_end($widget, $attr{expand}, $attr{fill}, $attr{padding});
	}
	$widget->show;
    }
    $box
}

sub gtkset_editable {
    my ($w, $e) = @_;
    $w->set_editable($e);
    $w;
}

sub gtksetstyle {
    my ($w, $s) = @_;
    $w->set_style($s);
    $w;
}

sub gtkset_tip {
    my ($tips, $w, $tip) = @_;
    $tips->set_tip($w, $tip) if $tip;
    $w;
}

sub gtkappenditems {
    my $w = shift;
    map {gtkshow($_) } @_;
    $w->append_items(@_);
    $w
}

sub gtkappend($@) {
    my $w = shift;
    foreach (@_) {
	my $l = $_;
	ref $l or $l = new Gtk::Label($l);
	$w->append($l);
	$l->show;
    }
    $w
}

sub gtkset_shadow_type {
    $_[0]->set_shadow_type($_[1]);
    $_[0];
}

sub gtkset_layout {
    $_[0]->set_layout($_[1]);
    $_[0];
}

sub gtkset_relief {
    $_[0]->set_relief($_[1]);
    $_[0];
}

sub gtkadd($@) {
    my $w = shift;
    foreach (@_) {
	my $l = $_;
	ref $l or $l = new Gtk::Label($l);
	$w->add($l);
	$l->show;
    }
    $w
}
sub gtkput {
    my ($w, $w2, $x, $y) = @_;
    $w->put($w2, $x, $y);
    $w2->show;
    $w
}

sub gtktext_insert {
    my ($w, $t) = @_;
    $w->freeze;
    $w->backward_delete($w->get_length);
    $w->insert(undef, undef, undef, $t); 
    #- DEPRECATED? needs \n otherwise in case of one line text the beginning is not shown (even with the vadj->set_value)
    $w->set_word_wrap(1);
#-    $w->vadj->set_value(0);
    $w->thaw;
    $w;
}

sub gtkroot {
    Gtk->init;
    Gtk->set_locale;
    Gtk::Gdk::Window->new_foreign(Gtk::Gdk->ROOT_WINDOW);
}

sub gtkcolor {
    my ($r, $g, $b) = @_;

    my $color = bless { red => $r, green => $g, blue => $b }, 'Gtk::Gdk::Color';
    gtkroot()->get_colormap->color_alloc($color);
}

sub gtkset_mousecursor {
    my ($type, $w) = @_;
    ($w || gtkroot())->set_cursor(Gtk::Gdk::Cursor->new($type));
}
sub gtkset_mousecursor_normal { gtkset_mousecursor(68, @_) }
sub gtkset_mousecursor_wait   { gtkset_mousecursor(150, @_) }

sub gtkset_background {
    my ($r, $g, $b) = @_;

    my $root = gtkroot();
    my $gc = Gtk::Gdk::GC->new($root);

    my $color = gtkcolor($r, $g, $b);
    $gc->set_foreground($color);
    $root->set_background($color);

    my ($h, $w) = $root->get_size;
    $root->draw_rectangle($gc, 1, 0, 0, $w, $h);
}

sub gtkset_default_fontset {
    my ($fontset) = @_;

    my $style = Gtk::Widget->get_default_style;
    my $f = Gtk::Gdk::Font->fontset_load($fontset) or die '';
    $style->font($f);
    Gtk::Widget->set_default_style($style);
}

sub gtkctree_children {
    my ($node) = @_;
    my @l;
    $node or return;
    for (my $p = $node->row->children; $p; $p = $p->row->sibling) {
	push @l, $p;
    }
    @l;
}

sub gtkcreate_xpm {
    my ($w, $f) = @_;
    $f =~ m|.xpm$| or $f="$f.xpm";
    if ( $f !~ /\//) { -e "$_/$f" and $f="$_/$f", last foreach $ENV{SHARE_PATH}, "$ENV{SHARE_PATH}/libDrakX/pixmaps", "pixmaps" }
    my @l = Gtk::Gdk::Pixmap->create_from_xpm($w->window, $w->style->bg('normal'), $f) or die "gtkcreate_xpm: missing pixmap file $f";
    @l;
}
sub gtkcreate_png {
    my ($f) = @_;
    $f =~ m|.png$| or $f="$f.png";
    if ( $f !~ /\//) { -e "$_/$f" and $f="$_/$f", last foreach $ENV{SHARE_PATH}, "$ENV{SHARE_PATH}/icons", "$ENV{SHARE_PATH}/libDrakX/pixmaps", "pixmaps" }
    my $im = Gtk::Gdk::ImlibImage->load_image($f) or die "gtkcreate_png: missing png file $f";
    $im->render($im->rgb_width, $im->rgb_height);
    ($im->move_image(), $im->move_mask);
}
sub gtkbuttonset {