MacOSXIconReader.st
author Claus Gittinger <cg@exept.de>
Mon, 06 May 2013 20:25:02 +0200
changeset 3133 15c6915a53dc
parent 3132 32f94ccd6bf0
child 3134 e5600800caff
permissions -rw-r--r--
class: MacOSXIconReader added: #colormap4 #colormap8 comment/format in: #documentation changed: #fromStream: #read_ics8_from: #read_ics__from:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2013 by Claus Gittinger
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libview2' }"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
ImageReader subclass:#MacOSXIconReader
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	instanceVariableNames:'image'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'Graphics-Images-Readers'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!MacOSXIconReader class methodsFor:'documentation'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
copyright
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
 COPYRIGHT (c) 2013 by Claus Gittinger
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
              All Rights Reserved
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
 This software is furnished under a license and may be used
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 only in accordance with the terms of that license and with the
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 be provided or otherwise made available to, or used by, any
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 other person.  No title to or ownership of the software is
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 hereby transferred.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
documentation
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    Reader for mac osx icon files.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    These files are actually bundles of a sequence of icons (in possibly different resolutions,
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    colors and sizes).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    When such a file is read, I return the first image as usual, 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    and all images as an imagesequence.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    46
    Only a subset of the supported image formats are supported by the writer
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    47
    (i.e. JPEG and PNG based image encodings only). 
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    48
    This means, that only 10.8-and later icon files are really generated.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    49
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    50
    caveat:
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
    51
        only a subset of the possibly formats are supported when reading.
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    [See also:]
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
        Image Form Icon
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        GIFReader JPEGReader PNGReader TIFFReader WindowsIconReader
3132
32f94ccd6bf0 class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3121
diff changeset
    56
        http://en.wikipedia.org/wiki/Apple_Icon_Image_format
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!MacOSXIconReader class methodsFor:'initialization'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
initialize
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    "install myself in the Image classes fileFormat table
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
     for the `.icns' extension."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
    "/ MIMETypes defineImageType:'image/x-icns' suffix:'icns'  reader:self.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    MIMETypes defineImageType:nil          suffix:'icns' reader:self.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
!MacOSXIconReader class methodsFor:'testing'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
canRepresent:anImage
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    "return true, if anImage can be represented in my file format.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
     Assuming that we store in PNG format, delegate that decision."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    ^ PNGReader canRepresent:anImage
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
isValidImageFile:aFileName
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    "return true, if aFileName is an apple osx icon file"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    |id inStream|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    inStream := self streamReadingFile:aFileName.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    inStream isNil ifTrue:[^ false].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    inStream text.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    id := String new:4.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    inStream nextBytes:4 into:id.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    inStream close.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    ^ (id = 'icns')
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!MacOSXIconReader methodsFor:'image reading'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
fromStream:aStream
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    "read a stream containing an icon image (or a collection of images).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
     Leave image description in instance variables."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    |sizeRemaining id img firstImage frame imageCount chunkType numChunkBytes chunkData|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    inStream := aStream.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    aStream text.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    "icon-files are always msb"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    byteOrder := #msb.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    id := aStream nextBytes:4.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    id size ~~ 4 ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
        ^ self fileFormatError:'not an icns file (short read)'.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    id := id asString.
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   115
    sizeRemaining := aStream nextUnsignedLongMSB:true.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   116
    sizeRemaining := sizeRemaining - 4 - 4. "/ file magic and size are included in count
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    (id ~= 'icns') ifTrue:[
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   119
        chunkData := aStream next:sizeRemaining.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   120
        image := self readSingleIcon:chunkType from:chunkData.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   121
        ^ self
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    imageCount := 0.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    [ sizeRemaining > 0 ] whileTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
        chunkType := aStream nextBytes:4.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
        chunkType size ~~ 4 ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
            ^ self fileFormatError:'not an icns file (short read on icon type)'.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
        ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
        chunkType := chunkType asString.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
        numChunkBytes := aStream nextUnsignedLongMSB:true.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
        numChunkBytes := numChunkBytes - 4 - 4. "/ type and size are included in count
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
        chunkData := aStream next:numChunkBytes.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
        sizeRemaining := sizeRemaining - 4 - numChunkBytes.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
        img := self readSingleIcon:chunkType from:chunkData.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
        imageCount == 0 ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
            firstImage := image := img.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
        ] ifFalse:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
            imageCount == 1 ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
                imageSequence := ImageSequence new.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
                img imageSequence:imageSequence.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
                "/ add frame for first image.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
                frame := ImageFrame new image:firstImage.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
                imageSequence add:frame.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
            ].  
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   150
            img notNil ifTrue:[
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   151
                "/ unsupported images are skipped...
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   152
                img imageSequence:imageSequence.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   153
            ].
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
            "/ add frame for this image.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
            frame := ImageFrame new image:img.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
            imageSequence add:frame.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
        ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
        imageCount := imageCount + 1.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
     Image fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
readSingleIcon:iconType from:iconBytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    "read a single image from the inputStream."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
    ^ self 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
        perform:('read_',(iconType copyReplaceAll:$# with:$_),'_from:') asSymbol 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
        with:iconBytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
        ifNotUnderstood:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
            self breakPoint:#cg.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
            ('MacOSXIconReader: unsupported icon format: ',iconType) infoPrintCR.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
            ^ self fileFormatError:'unsupported icon format: ',iconType
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
        ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
!MacOSXIconReader methodsFor:'image writing'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
save:anImage onStream:aStream
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    "save an icon to aStream."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
    self saveAll:(Array with:anImage) onStream:aStream.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
     self 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
        save:(Image fromScreen:(0@0 corner:16@16))
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
        onFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
saveAll:aCollectionOfImages onStream:aStream
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
    "save a number of images to aStream."
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    |tempFile tempFileStream|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    (aCollectionOfImages conform:
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
        [:eachImage |
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
            (eachImage width = eachImage height)
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
            and:[ (#(16 32 128 256 512 1024) includes:eachImage width)]
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
        ]
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    ) ifFalse:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
        ^ self fileFormatError:'unsupported image size (must be square and width 16, 32, 128, 512 or 1024)'.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    tempFile := Filename newTemporary asAutoDeletedFilename.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    tempFileStream := tempFile writeStream.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    tempFileStream binary.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
    aCollectionOfImages do:[:eachImage |
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
        |typeCode s data|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
        s := WriteStream on:(ByteArray new:1024).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
        PNGReader save:eachImage onStream:s.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
        data := s contents.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
        self assert:data notEmptyOrNil.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
        typeCode := #(16 32 128 256 512 1024) 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
                    map: #('ipc4' 'ipc5' 'ic07' 'ic08' 'ic09' 'ic10')
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
                    at:eachImage width ifAbsent:[self error]. 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
        tempFileStream nextPutBytes:typeCode.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
        tempFileStream nextPutLong:(data size + 4 + 4) MSB:true.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
        tempFileStream nextPutAll:data.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    tempFileStream close.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    aStream binary.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
    aStream nextPutBytes:'icns'.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    aStream nextPutLong:(tempFile fileSize + 4 + 4) MSB:true.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    aStream nextPutAll:(tempFile binaryContentsOfEntireFile).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    tempFile delete.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
     self 
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
        save:(Image fromScreen:(0@0 corner:16@16))
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
        onFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
!MacOSXIconReader methodsFor:'private'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   250
colormap4
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   251
    ^ #(
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   252
           (16rFF 16rFF 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   253
           (16rFC 16rF3 16r05)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   254
           (16rFF 16r64 16r02)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   255
           (16rDD 16r08 16r06)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   256
           (16rF2 16r08 16r84)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   257
           (16r46 16r00 16rA5)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   258
           (16r00 16r00 16rD4)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   259
           (16r02 16rAB 16rEA)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   260
           (16r1F 16rB7 16r14)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   261
           (16r00 16r64 16r11)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   262
           (16r56 16r2C 16r05)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   263
           (16r90 16r71 16r3A)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   264
           (16rC0 16rC0 16rC0)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   265
           (16r80 16r80 16r80)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   266
           (16r40 16r40 16r40)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   267
           (16r00 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   268
    )
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   269
!
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   270
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   271
colormap8
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   272
    ^ #(
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   273
           (16rFF 16rFF 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   274
           (16rFF 16rFF 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   275
           (16rFF 16rFF 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   276
           (16rFF 16rFF 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   277
           (16rFF 16rFF 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   278
           (16rFF 16rFF 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   279
           (16rFF 16rCC 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   280
           (16rFF 16rCC 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   281
           (16rFF 16rCC 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   282
           (16rFF 16rCC 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   283
           (16rFF 16rCC 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   284
           (16rFF 16rCC 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   285
           (16rFF 16r99 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   286
           (16rFF 16r99 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   287
           (16rFF 16r99 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   288
           (16rFF 16r99 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   289
           (16rFF 16r99 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   290
           (16rFF 16r99 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   291
           (16rFF 16r66 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   292
           (16rFF 16r66 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   293
           (16rFF 16r66 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   294
           (16rFF 16r66 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   295
           (16rFF 16r66 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   296
           (16rFF 16r66 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   297
           (16rFF 16r33 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   298
           (16rFF 16r33 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   299
           (16rFF 16r33 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   300
           (16rFF 16r33 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   301
           (16rFF 16r33 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   302
           (16rFF 16r33 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   303
           (16rFF 16r00 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   304
           (16rFF 16r00 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   305
           (16rFF 16r00 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   306
           (16rFF 16r00 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   307
           (16rFF 16r00 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   308
           (16rFF 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   309
           (16rCC 16rFF 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   310
           (16rCC 16rFF 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   311
           (16rCC 16rFF 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   312
           (16rCC 16rFF 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   313
           (16rCC 16rFF 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   314
           (16rCC 16rFF 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   315
           (16rCC 16rCC 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   316
           (16rCC 16rCC 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   317
           (16rCC 16rCC 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   318
           (16rCC 16rCC 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   319
           (16rCC 16rCC 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   320
           (16rCC 16rCC 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   321
           (16rCC 16r99 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   322
           (16rCC 16r99 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   323
           (16rCC 16r99 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   324
           (16rCC 16r99 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   325
           (16rCC 16r99 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   326
           (16rCC 16r99 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   327
           (16rCC 16r66 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   328
           (16rCC 16r66 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   329
           (16rCC 16r66 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   330
           (16rCC 16r66 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   331
           (16rCC 16r66 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   332
           (16rCC 16r66 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   333
           (16rCC 16r33 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   334
           (16rCC 16r33 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   335
           (16rCC 16r33 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   336
           (16rCC 16r33 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   337
           (16rCC 16r33 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   338
           (16rCC 16r33 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   339
           (16rCC 16r00 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   340
           (16rCC 16r00 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   341
           (16rCC 16r00 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   342
           (16rCC 16r00 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   343
           (16rCC 16r00 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   344
           (16rCC 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   345
           (16r99 16rFF 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   346
           (16r99 16rFF 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   347
           (16r99 16rFF 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   348
           (16r99 16rFF 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   349
           (16r99 16rFF 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   350
           (16r99 16rFF 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   351
           (16r99 16rCC 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   352
           (16r99 16rCC 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   353
           (16r99 16rCC 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   354
           (16r99 16rCC 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   355
           (16r99 16rCC 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   356
           (16r99 16rCC 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   357
           (16r99 16r99 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   358
           (16r99 16r99 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   359
           (16r99 16r99 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   360
           (16r99 16r99 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   361
           (16r99 16r99 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   362
           (16r99 16r99 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   363
           (16r99 16r66 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   364
           (16r99 16r66 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   365
           (16r99 16r66 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   366
           (16r99 16r66 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   367
           (16r99 16r66 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   368
           (16r99 16r66 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   369
           (16r99 16r33 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   370
           (16r99 16r33 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   371
           (16r99 16r33 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   372
           (16r99 16r33 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   373
           (16r99 16r33 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   374
           (16r99 16r33 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   375
           (16r99 16r00 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   376
           (16r99 16r00 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   377
           (16r99 16r00 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   378
           (16r99 16r00 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   379
           (16r99 16r00 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   380
           (16r99 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   381
           (16r66 16rFF 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   382
           (16r66 16rFF 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   383
           (16r66 16rFF 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   384
           (16r66 16rFF 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   385
           (16r66 16rFF 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   386
           (16r66 16rFF 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   387
           (16r66 16rCC 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   388
           (16r66 16rCC 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   389
           (16r66 16rCC 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   390
           (16r66 16rCC 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   391
           (16r66 16rCC 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   392
           (16r66 16rCC 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   393
           (16r66 16r99 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   394
           (16r66 16r99 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   395
           (16r66 16r99 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   396
           (16r66 16r99 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   397
           (16r66 16r99 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   398
           (16r66 16r99 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   399
           (16r66 16r66 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   400
           (16r66 16r66 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   401
           (16r66 16r66 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   402
           (16r66 16r66 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   403
           (16r66 16r66 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   404
           (16r66 16r66 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   405
           (16r66 16r33 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   406
           (16r66 16r33 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   407
           (16r66 16r33 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   408
           (16r66 16r33 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   409
           (16r66 16r33 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   410
           (16r66 16r33 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   411
           (16r66 16r00 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   412
           (16r66 16r00 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   413
           (16r66 16r00 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   414
           (16r66 16r00 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   415
           (16r66 16r00 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   416
           (16r66 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   417
           (16r33 16rFF 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   418
           (16r33 16rFF 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   419
           (16r33 16rFF 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   420
           (16r33 16rFF 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   421
           (16r33 16rFF 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   422
           (16r33 16rFF 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   423
           (16r33 16rCC 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   424
           (16r33 16rCC 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   425
           (16r33 16rCC 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   426
           (16r33 16rCC 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   427
           (16r33 16rCC 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   428
           (16r33 16rCC 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   429
           (16r33 16r99 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   430
           (16r33 16r99 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   431
           (16r33 16r99 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   432
           (16r33 16r99 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   433
           (16r33 16r99 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   434
           (16r33 16r99 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   435
           (16r33 16r66 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   436
           (16r33 16r66 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   437
           (16r33 16r66 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   438
           (16r33 16r66 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   439
           (16r33 16r66 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   440
           (16r33 16r66 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   441
           (16r33 16r33 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   442
           (16r33 16r33 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   443
           (16r33 16r33 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   444
           (16r33 16r33 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   445
           (16r33 16r33 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   446
           (16r33 16r33 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   447
           (16r33 16r00 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   448
           (16r33 16r00 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   449
           (16r33 16r00 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   450
           (16r33 16r00 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   451
           (16r33 16r00 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   452
           (16r33 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   453
           (16r00 16rFF 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   454
           (16r00 16rFF 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   455
           (16r00 16rFF 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   456
           (16r00 16rFF 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   457
           (16r00 16rFF 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   458
           (16r00 16rFF 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   459
           (16r00 16rCC 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   460
           (16r00 16rCC 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   461
           (16r00 16rCC 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   462
           (16r00 16rCC 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   463
           (16r00 16rCC 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   464
           (16r00 16rCC 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   465
           (16r00 16r99 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   466
           (16r00 16r99 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   467
           (16r00 16r99 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   468
           (16r00 16r99 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   469
           (16r00 16r99 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   470
           (16r00 16r99 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   471
           (16r00 16r66 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   472
           (16r00 16r66 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   473
           (16r00 16r66 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   474
           (16r00 16r66 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   475
           (16r00 16r66 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   476
           (16r00 16r66 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   477
           (16r00 16r33 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   478
           (16r00 16r33 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   479
           (16r00 16r33 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   480
           (16r00 16r33 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   481
           (16r00 16r33 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   482
           (16r00 16r33 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   483
           (16r00 16r00 16rFF)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   484
           (16r00 16r00 16rCC)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   485
           (16r00 16r00 16r99)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   486
           (16r00 16r00 16r66)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   487
           (16r00 16r00 16r33)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   488
           (16rEE 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   489
           (16rDD 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   490
           (16rBB 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   491
           (16rAA 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   492
           (16r88 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   493
           (16r77 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   494
           (16r55 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   495
           (16r44 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   496
           (16r22 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   497
           (16r11 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   498
           (16r00 16rEE 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   499
           (16r00 16rDD 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   500
           (16r00 16rBB 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   501
           (16r00 16rAA 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   502
           (16r00 16r88 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   503
           (16r00 16r77 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   504
           (16r00 16r55 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   505
           (16r00 16r44 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   506
           (16r00 16r22 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   507
           (16r00 16r11 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   508
           (16r00 16r00 16rEE)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   509
           (16r00 16r00 16rDD)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   510
           (16r00 16r00 16rBB)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   511
           (16r00 16r00 16rAA)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   512
           (16r00 16r00 16r88)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   513
           (16r00 16r00 16r77)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   514
           (16r00 16r00 16r55)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   515
           (16r00 16r00 16r44)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   516
           (16r00 16r00 16r22)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   517
           (16r00 16r00 16r11)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   518
           (16rEE 16rEE 16rEE)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   519
           (16rDD 16rDD 16rDD)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   520
           (16rBB 16rBB 16rBB)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   521
           (16rAA 16rAA 16rAA)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   522
           (16r88 16r88 16r88)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   523
           (16r77 16r77 16r77)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   524
           (16r55 16r55 16r55)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   525
           (16r44 16r44 16r44)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   526
           (16r22 16r22 16r22)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   527
           (16r11 16r11 16r11)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   528
           (16r00 16r00 16r00)
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   529
    )
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   530
!
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   531
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
makeImage
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   533
    "image is already made"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   534
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   535
    ^ image
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
!MacOSXIconReader methodsFor:'private reading'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   540
readPNGOrJPEGFrom:bytes expectedSize:expectedSizeOrNil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   541
    "read a PNG or JPEG image.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   542
     Helper for ipc4, ipc5, ic07, ic09, ic10 formats"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   543
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
    |img|
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   545
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   546
    img := PNGReader fromStream:(bytes readStream).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   547
    img isNil ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
        img := JPEGReader fromStream:(bytes readStream).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   549
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   550
    expectedSizeOrNil notNil ifTrue:[
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
        self assert:(img width = expectedSizeOrNil).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   552
        self assert:(img height = expectedSizeOrNil).
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   553
    ].
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   554
    ^ img
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   555
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   556
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
read_ICN__from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   558
    "read an ICN# format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   560
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   562
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
read_ic07_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
    "read an ic07 (PNG or JPEG, 128) format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
    ^ self readPNGOrJPEGFrom:bytes expectedSize:128.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   572
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   573
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   577
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   578
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   579
read_ic08_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   580
    "read an ic08 (PNG or JPEG, 256) format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
    ^ self readPNGOrJPEGFrom:bytes expectedSize:256.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   584
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   587
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   590
read_ic09_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   591
    "read an ic09 (PNG or JPEG, 512) format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   592
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   593
    ^ self readPNGOrJPEGFrom:bytes expectedSize:512.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   594
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   595
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   596
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   597
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   600
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   601
read_ic10_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   602
    "read an ic10 (PNG or JPEG, 1024) format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   603
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   604
    ^ self readPNGOrJPEGFrom:bytes expectedSize:1024.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   605
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   606
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   607
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   608
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   609
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   610
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   611
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   612
read_icl8_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   613
    "read an icl8 format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   615
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   616
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   617
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   618
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   619
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   620
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   621
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   623
read_ics8_from:bytes
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   624
    "read an ics8 format icon.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   625
     ics8 is 256 bytes, 16x16x8bit"
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   626
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   627
    |pixelData img|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   629
    pixelData := (ByteArray new:256) replaceBytesWith:bytes; yourself.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   630
    img := Depth8Image width:16 height:16 fromArray:pixelData.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   631
    img photometric:#palette.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   632
    img colorMap:(self colormap8 collect:[:triple | Color redByte:triple first greenByte:triple second blueByte:triple third]).
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   633
    ^ img
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   638
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   639
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   640
read_ics__from:bytes
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   641
    "read an ics# format icon.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   642
     ics# is 64 bytes, 16x16x1 monochrome + mask"
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   643
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   644
    |pixelData maskData img|
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   646
    pixelData := (ByteArray new:32) replaceBytesFrom:1 to:32 with:bytes startingAt:1; yourself.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   647
    maskData := (ByteArray new:32) replaceBytesFrom:1 to:32 with:bytes startingAt:32+1; yourself.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   648
    img := Depth1Image width:16 height:16 fromArray:pixelData.
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   649
    img mask:(Depth1Image width:16 height:16 fromArray:maskData).
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   650
    ^ img
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   651
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   652
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   653
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   655
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   656
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
read_il32_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   658
    "read an il32 format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   659
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   668
read_ipc4_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
    "read an ipc4 (PNG or JPEG, 16x16) format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
    ^ self readPNGOrJPEGFrom:bytes expectedSize:16.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   673
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
read_ipc5_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
    "read an ipc5 (PNG or JPEG, 32) format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
    ^ self readPNGOrJPEGFrom:bytes expectedSize:32.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
     self fromFile:'test.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
read_is32_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
    "read an is32 format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   695
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   698
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   699
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   701
read_it32_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   702
    "read an it32 format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   705
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   709
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   710
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   711
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   712
read_l8mk_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   713
    "read an l8mk format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   714
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   715
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   716
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   717
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   718
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   719
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   721
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   722
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   723
read_s8mk_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   724
    "read an s8mk format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   725
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   726
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   727
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   728
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   729
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   730
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   731
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   732
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   733
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   734
read_t8mk_from:bytes
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
    "read an t8mk format icon"
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   737
self halt.
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   738
    ^ nil
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   739
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   740
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   741
     self fromFile:'/Applications/TextEdit.app/Contents/Resources/txt.icns'
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   742
    "
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   743
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   744
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   745
!MacOSXIconReader class methodsFor:'documentation'!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   747
version
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   748
    ^ '$Header: /cvs/stx/stx/libview2/MacOSXIconReader.st,v 1.3 2013-05-06 18:25:02 cg Exp $'
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   749
!
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   750
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   751
version_CVS
3133
15c6915a53dc class: MacOSXIconReader
Claus Gittinger <cg@exept.de>
parents: 3132
diff changeset
   752
    ^ '$Header: /cvs/stx/stx/libview2/MacOSXIconReader.st,v 1.3 2013-05-06 18:25:02 cg Exp $'
3121
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   753
! !
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   754
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   755
98e10307cc6a initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   756
MacOSXIconReader initialize!