1{
2    This file is part of the Free Pascal run time library.
3    Copyright (c) 2003 by the Free Pascal development team
4
5    Bitmaps for toolbar buttons.
6
7    See the file COPYING.FPC, included in this distribution,
8    for details about the copyright.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
14 **********************************************************************}
15
16{$mode objfpc}
17{$h+}
18Unit bitmapdata;
19
20Interface
21
22  uses fpgtk,SysUtils;
23
24Const
25  BitmapFileNames : Array[1..10] of AnsiString = (
26  'clear',
27  'pause',
28  'run',
29  'close',
30  'save',
31  'connect',
32  'disconnect',
33  'info',
34  'warning',
35  'error'
36  );
37
38{ Auto bitmap data }
39  BitmapDataclear : Array[0..30-6] of AnsiString = ( // clear.xpm
40    '16 16 8 1',
41    '  c black',
42    '. c #830000',
43    'X c red',
44    'o c #838100',
45    'O c #ff8100',
46    '+ c #ffd200',
47    '@ c yellow',
48    '# c white',
49    { pixels }
50    '############## @',
51    '############# @@',
52    '### ######## @@@',
53    '########### @@@O',
54    '#### ##### @ @+o',
55    '######### @ @ o ',
56    '##  # ## X @ o #',
57    '#  # ## XXX o ##',
58    '#  ### XXXX. ###',
59    '#### # XXX. ####',
60    '##  # # X. #####',
61    '#  ##  #  ######',
62    '  ###  #########',
63    '  ##   ## ######',
64    '        ### ####',
65    '#    #   #######'
66  );
67
68  BitmapDatapause : Array[0..33-6] of AnsiString = ( // pause.xpm
69    '16 16 11 1',
70    '  c black',
71    '. c #7b7d7b',
72    'X c #008100',
73    'o c #00ba00',
74    'O c green',
75    '+ c #ee7dee',
76    '@ c #bdbebd',
77    '# c #eeb6ee',
78    '$ c #ffbeff',
79    '% c #fff6ff',
80    '& c white',
81    { pixels }
82    '&&&&&     &&&&&&',
83    '&&&  &&&@%  &&&&',
84    '&& &%.   .%$ &&&',
85    '& &% &O&O& %@ &&',
86    '& % &     & % &&',
87    ' &.&  &&O  &.% &',
88    ' & O &OOoO O @ &',
89    ' & & OOOOX & . &',
90    ' $ O OoOoX O . &',
91    ' %.&  OXX  &.+ &',
92    '& % &     & # &&',
93    '& @% &O&O& +. &&',
94    '&& @%.   .#. &&&',
95    '&&&  %@..+  &&&&',
96    '&&&&&     &&&&&&',
97    '&&&&&&&&&&&&&&&&'
98  );
99
100  BitmapDatarun : Array[0..32-6] of AnsiString = ( // run.xpm
101    '16 16 10 1',
102    '  c black',
103    '. c #7b7d7b',
104    'X c #008100',
105    'o c #00ba00',
106    'O c #ee7dee',
107    '+ c #bdbebd',
108    '@ c #eeb6ee',
109    '# c #ffbeff',
110    '$ c #fff6ff',
111    '% c white',
112    { pixels }
113    '%%%%%     %%%%%%',
114    '%%%  %%%+$  %%%%',
115    '%% %$.   .$# %%%',
116    '% %$       $+ %%',
117    '% $         $ %%',
118    ' %.   +$X   .$ %',
119    ' %   +oXoX   + %',
120    ' %   XXXXX   . %',
121    ' #   XoXoX   . %',
122    ' $.   XXX   .O %',
123    '% $         @ %%',
124    '% +$       O. %%',
125    '%% +$.   .@. %%%',
126    '%%%  $+..O  %%%%',
127    '%%%%%     %%%%%%',
128    '%%%%%%%%%%%%%%%%'
129  );
130
131  BitmapDataclose : Array[0..29-6] of AnsiString = ( // close.xpm
132    '16 16 7 1',
133    '  c black',
134    '. c #7b7d7b',
135    'X c #8b7d8b',
136    'o c #8b858b',
137    'O c #bdbebd',
138    '+ c #cdc6cd',
139    '@ c white',
140    { pixels }
141    '@@@@@     @@@@@@',
142    '@@@@@ ... @@@@@@',
143    '@@           @@@',
144    '@@ @O+OX...X @@@',
145    '@@           @@@',
146    '@@@ . . . . @@@@',
147    '@@@ @ + o o @@@@',
148    '@@  @ O O .  @@@',
149    '@ @ @ + o o @ @@',
150    '@@@ @ O O . @@@@',
151    '@@@ @ + o o @@@@',
152    '@@@ @ O O . @@@@',
153    '@@@ @ + o o @@@@',
154    '@@@ @ O O . @@@@',
155    '@@@ @.o.o.o @@@@',
156    '@@@         @@@@'
157  );
158
159  BitmapDatasave : Array[0..30-6] of AnsiString = ( // save.xpm
160    '16 16 8 1',
161    '  c black',
162    '. c #7b7d7b',
163    'X c blue',
164    'o c red',
165    'O c #bdbebd',
166    '+ c #ffbeff',
167    '@ c #ffceff',
168    '# c white',
169    { pixels }
170    '      ##########',
171    ' ####  #ooooo###',
172    ' # +# # ##@ooo##',
173    ' #### ## ##ooo##',
174    ' #  #     #ooo##',
175    ' ########ooooooo',
176    ' #    # # ooooo#',
177    ' ######## #ooo##',
178    ' #  #  O XXXoXX ',
179    ' ####### ###### ',
180    ' ####### ###### ',
181    '                ',
182    '########        ',
183    '########  O#O#  ',
184    '########  # #O  ',
185    '########  . ..  '
186  );
187
188  BitmapDataconnect : Array[0..28-6] of AnsiString = ( // connect.xpm
189    '16 16 6 1',
190    '  c black',
191    '. c #7b7d7b',
192    'X c none',
193    'o c yellow',
194    'O c #bdbebd',
195    '+ c white',
196    { pixels }
197    'XXXXXXXoXXXXXXXX',
198    'XXXXXXXoXXXXXXXX',
199    'XXoXXoooooXXoXXX',
200    'XXXoooooooooXXXX',
201    'XXXooo   oooXXXX',
202    'XXooo +o+ oooXXX',
203    'XXoo +o+o+ ooXXX',
204    'oooo o+.+o ooooX',
205    'XXoo +o.o+ ooXXX',
206    'XXooo +.+ oooXXX',
207    'XXXooo + oooXXXX',
208    'XXXooo o oooXXXX',
209    'XXoXXo   oXXoXXX',
210    'XXXXXX O XXXXXXX',
211    'XXXXXX   XXXXXXX',
212    'XXXXXXX XXXXXXXX'
213  );
214
215  BitmapDatadisconnect : Array[0..27-6] of AnsiString = ( // disconnect.xpm
216    '16 16 5 1',
217    '  c black',
218    '. c #7b7d7b',
219    'X c none',
220    'o c #bdbebd',
221    'O c white',
222    { pixels }
223    'XXXXXXXXXXXXXXXX',
224    'XXXXXXXXXXXXXXXX',
225    'XXXXXXXXXXXXXXXX',
226    'XXXXXXXXXXXXXXXX',
227    'XXXXXX   XXXXXXX',
228    'XXXXX OOO XXXXXX',
229    'XXXX OOOOO XXXXX',
230    'XXXX OO.OO XXXXX',
231    'XXXX OO.OO XXXXX',
232    'XXXXX O.O XXXXXX',
233    'XXXXXX O XXXXXXX',
234    'XXXXXX O XXXXXXX',
235    'XXXXXX   XXXXXXX',
236    'XXXXXX o XXXXXXX',
237    'XXXXXX   XXXXXXX',
238    'XXXXXXX XXXXXXXX'
239  );
240
241  BitmapDatainfo : Array[0..31-6] of AnsiString = ( // info.xpm
242    '16 16 9 1',
243    '  c black',
244    '. c #000083',
245    'X c #080083',
246    'o c #0800c5',
247    'O c blue',
248    '+ c #0800ff',
249    '@ c #cdc2ff',
250    '# c #ffc2ff',
251    '$ c white',
252    { pixels }
253    '$$$$$$$$$$$$$$$$',
254    '$$$$$+.X.+.$$$$$',
255    '$$$.+@$#$@$  $$$',
256    '$$.$@$@OO$@$o $$',
257    '$$+@$#$.O#$@$ +$',
258    '$+@$@$@$@$@$@+ $',
259    '$.$#$@+OO@$#$@ $',
260    '$X@$@$@+O$@$@$ $',
261    '$.+@$#$.O#$@$O $',
262    '$$.$@$OOOO@$o .$',
263    '$$$ +@$#$@$O .+$',
264    '$$$$  o$@+  .X$$',
265    '$$$$$$  $ +.$$$$',
266    '$$$$$$$ @ .$$$$$',
267    '$$$$$$$$  +$$$$$',
268    '$$$$$$$$$$$$$$$$'
269  );
270
271  BitmapDatawarning : Array[0..30-6] of AnsiString = ( // warning.xpm
272    '16 16 8 1',
273    '  c black',
274    '. c #080000',
275    'X c #000083',
276    'o c #0800ff',
277    'O c #cdc200',
278    '+ c #ffc200',
279    '@ c yellow',
280    '# c white',
281    { pixels }
282    '################',
283    '#######.  ######',
284    '######.+@ o#####',
285    '#####.O@O@ #####',
286    '##### @ @+ X####',
287    '#### @   @O ####',
288    '####.O   O@ o###',
289    '###.O@   @O@ ###',
290    '##.O@+. .+@O X##',
291    '## @O@O O@O@O ##',
292    '# @+@O@+@O@+@ o#',
293    '#.O@O@X X@O@O@ #',
294    '# @O@+@O@+@O@+ #',
295    '##            X#',
296    '###XoXoXoXoXoXo#',
297    '################'
298  );
299
300  BitmapDataerror : Array[0..33-6] of AnsiString = ( // error.xpm
301    '16 16 11 1',
302    '  c black',
303    '. c #000083',
304    'X c #080083',
305    'o c #0000c5',
306    'O c #0800c5',
307    '+ c blue',
308    '@ c #0800ff',
309    '# c #c50000',
310    '$ c red',
311    '% c #cdc2ff',
312    '& c white',
313    { pixels }
314    '&&&&&&&&&&&&&&&&',
315    '&&&&&@    &&&&&&',
316    '&&&. #$$$# .&&&&',
317    '&&.$#$#$#$#$.&&&',
318    '&& #@+$#$+@# .&&',
319    '&@#$O&O$O&O$# &&',
320    '& $$$o&+&o$$$ @&',
321    '& #$#$O&%$#$# .&',
322    '& $#$+&%&+$#$ @&',
323    '& #$O&O$O&O$# .&',
324    '&& $@o$$$o&$ .@&',
325    '&&.$#$#$#$#$ X&&',
326    '&&&. $$#$$  @+&&',
327    '&&&&.     .XO&&&',
328    '&&&&&&@.@.@&&&&&',
329    '&&&&&&&&&&&&&&&&'
330  );
331
332Function PixmapFromFile (FN : String) :TFPGtkPixmap;
333
334Implementation
335
336Function PixmapFromFile (FN : String) :TFPGtkPixmap;
337
338Var
339  I : integer;
340
341begin
342  Result:=TFPGtkPixmap.CReate;
343  If FileExists ('bitmaps'+directoryseparator+FN+'.xpm') then
344    Result.LoadFromFile('bitmaps'+directoryseparator+FN+'.xpm')
345  else
346    begin
347    I:=10;
348    While (I>0) and (FN<>BitmapFileNames[i]) do
349      Dec(i);
350    With Result do
351      Case I of
352        1  : LoadFromArray(BitmapDataclear);
353        2  : LoadFromArray(BitmapDatapause);
354        3  : LoadFromArray(BitmapDatarun);
355        4  : LoadFromArray(BitmapDataclose);
356        5  : LoadFromArray(BitmapDatasave);
357        6  : LoadFromArray(BitmapDataconnect);
358        7  : LoadFromArray(BitmapDatadisconnect);
359        8  : LoadFromArray(BitmapDatainfo);
360        9  : LoadFromArray(BitmapDatawarning);
361        10 : LoadFromArray(BitmapDataerror);
362      end;
363    end;
364end;
365
366end.
367