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