MIMETypeIconLibrary.st
author Claus Gittinger <cg@exept.de>
Tue, 18 Nov 2014 15:29:32 +0100
changeset 3386 c6213cfcf318
parent 3342 cc75334b07bc
child 3397 68901dc6d90b
permissions -rw-r--r--
class: SimpleView

"
 COPYRIGHT (c) 2004 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
"{ Package: 'stx:libview2' }"

Object subclass:#MIMETypeIconLibrary
	instanceVariableNames:''
	classVariableNames:'Icons MatchedIcons'
	poolDictionaries:''
	category:'Interface-Smalltalk'
!

!MIMETypeIconLibrary class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 2004 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"
! !

!MIMETypeIconLibrary class methodsFor:'initialization'!

initialize
    "/ now done lazily, when the first icon is asked for
    "/ self initializeIcons
!

initializeIcons
    |icons matchedIcons defaults resources addMapping fileNameToImageMap|

    icons := Dictionary new.
    matchedIcons := OrderedCollection new.
    fileNameToImageMap := Dictionary new.

    defaults := #(
        "/ internal-type to icon mappings.
        directory             directory         
        directoryOpen         directoryOpen       
        directoryLocked       directoryLocked     
        directoryLink         directoryLink     
        directoryNetwork      directoryNetwork 
        file                  file           
        fileLink              fileLink             
        fileLocked            fileLocked       

        executableFile        executableFile             
        deviceFile            deviceFile           
        binaryFile            binaryFile          
        specialFile           specialFile       

        addOnLocked           addOnLocked            
        addOnLinked           addOnLinked            

        directoryGray         directoryGray       
        directoryOpenGray     directoryOpenGray

        "/ these are soon obsolete
        imageFile             imageFile              
        textFile              text             

        "/ mime-type to icon mappings.
        'image/*'                                       imageFile

        "/ misc text ...

        'text/html'                                     textHtml
"/        'text/plain'                                    text
        'text/*'                                        text

        'application/postscript'                        applicationPostscript
        'application/pdf'                               applicationPdf
        'application/rtf'                               applicationRtf     

        "/ video formats ...

"/        'video/x-sgi-movie'                             video
"/        'video/x-msvideo'                               video
"/        'video/quicktime'                               video
"/        'video/x-mpeg2'                                 video
"/        'video/mpeg'                                    video
        'video/*'                                       video
"/        'application/vnd.rn-realmedia'                  video

        "/ audio formats ...

"/        'audio/x-pn-realaudio'                          audio
"/        'audio/x-mpeg'                                  audio
"/        'audio/x-mp3'                                   audio
"/        'audio/x-wav'                                   audio
"/        'audio/x-aiff'                                  audio
"/        'audio/basic'                                   audio
"/        'audio/x-shockwave-flash'                       audio
        'audio/*'                                       audio

        "/ misc stuff
        'application/winword'                           text
        'application/x-waltop-digital-notepad'          digitalNotepad

        "/ binary formats
        'application/binary'                            binaryFile
        'application/library'                           binaryFile
        'application/shared-library'                    binaryFile

        "/ progr. languages
        'application/x-smalltalk-source'                smalltalkSource
        'application/x-smalltalk-source-sif'            text
        'application/x-c-source'                        text
        'application/x-c-header'                        text
        'application/x-cpp-source'                      text
        'application/x-javascript'                      text
        'application/x-java-source'                     javaSource

        'application/x-sh'                              text
        'application/x-csh'                             text
        'application/x-tcl'                             text
        'application/x-perl'                            text
        'application/x-make'                            text
        'application/x-batch-script'                    text
        'application/x-asn1-source'                     text

        "/ compressors / archivers
        'application/x-tar'                             fileArchive
        'application/x-gtar'                            fileArchive
        'application/x-tar-compressed'                  compressedArchive
        'application/x-zip-compressed'                  compressedArchive
        'application/x-gzip-compressed'                 compressedArchive
        'application/x-cpio'                            fileArchive
        'application/x-shar'                            fileArchive
        'application/java-archive'                      fileArchive

        'application/x-expecco-testsuite'               expeccoSuite
        'application/x-expecco-logfile'                 expeccoLogfile

        '*'                                             text
     ).

    addMapping := [:key :baseNameOrName |
        |fileName image|

        baseNameOrName notNil ifTrue:[
            baseNameOrName isSymbol ifTrue:[
                image := self perform:baseNameOrName.
            ] ifFalse:[
                image := fileNameToImageMap at:baseNameOrName ifAbsent:nil.
                image isNil ifTrue:[
                    image := Smalltalk imageFromFileNamed:baseNameOrName forClass:self.
                    image isNil ifTrue:[
                        fileName := 'bitmaps/xpmBitmaps/document_images/' , baseNameOrName.
                        image := Smalltalk imageFromFileNamed:fileName forClass:self.
                    ].
                ].
                fileNameToImageMap at:baseNameOrName put:image.
            ].
            image notNil ifTrue:[
                key includesMatchCharacters ifTrue:[
                    matchedIcons add:(key -> image).
                ] ifFalse:[    
                    icons at:key put:image.
                ].
            ].
        ]
    ].

    resources := self classResources.

    "all mappings from the resource file"
    resources keysAndValuesDo:addMapping.

    "missing mappings from above defaults"
    defaults pairWiseDo:[:key :baseName |
        (resources includesKey:key) ifFalse:[
            addMapping value:key value:baseName
        ].
    ].

    Icons := icons.
    MatchedIcons := matchedIcons.

    "
     self initializeIcons
    "
! !

!MIMETypeIconLibrary class methodsFor:'accessing'!

addOnIconsFor:aFilename to:anIcon
    "given a fileName, return an appropriate icon, especially an overlaid icon if linked or locked"

    |addOnIcon addIcns isDirectory isReadable|

    aFilename isNil ifTrue:[^ anIcon ].
    anIcon isNil ifTrue:[^ anIcon ].

    addIcns := OrderedCollection new.
    aFilename isSymbolicLink ifTrue:[
        addOnIcon := self iconForKeyMatching:#addOnLinked.
        addOnIcon notNil ifTrue:[ addIcns add:addOnIcon ].
    ].
    isDirectory := aFilename isDirectory.
    isReadable := aFilename isReadable.
    ((isReadable not and:[isDirectory not]) or:[(isDirectory) and:[(isReadable not) or:[aFilename isExecutable not]]]) ifTrue:[
        addOnIcon := self iconForKeyMatching:#addOnLocked.
        addOnIcon notNil ifTrue:[ addIcns add:addOnIcon ].
    ].
    addIcns notEmpty ifTrue:[
        addIcns addFirst:anIcon.
        ^ MultiImage images:addIcns.
    ].
    ^ anIcon
!

fileTypeIconKeyFor:aFilename
    |info|

    info := aFilename linkInfo.
    info isNil ifTrue:[
        ^ nil.
    ].
    info isSymbolicLink ifTrue:[
        ^ #symbolicLink.
    ].
    info isDirectory ifTrue:[
        ^ #directory.
    ].
    info isSpecialFile ifTrue:[
        ^ #specialFile.
    ].
    aFilename isExecutableProgram ifTrue:[
        ^ #executableFile
    ].
    ^ #file.

    "
     self fileTypeIconKeyFor:'/foo/bar' asFilename 
     self fileTypeIconKeyFor:'/tmp' asFilename 
     self fileTypeIconKeyFor:'/dev/null' asFilename 
     self fileTypeIconKeyFor:'Makefile' asFilename 
     self fileTypeIconKeyFor:'/usr/bin/make' asFilename 
    "
!

iconForFile:aFilename
    "given a fileName, return an appropriate icon"

    |icn|

    icn := self iconForKeyMatching:(self iconKeyForFile:aFilename).
    ^ self addOnIconsFor:aFilename to:icn.
!

iconForKey:mimeTypeOrKey
    ^ self icons at:mimeTypeOrKey ifAbsent:nil.
!

iconForKeyMatching:mimeTypeOrKey
    |icn assoc|

    icn := self iconForKey:mimeTypeOrKey.
    icn notNil ifTrue:[^icn].
    assoc := self iconForMatchKey:mimeTypeOrKey.
    assoc notNil ifTrue:[^ assoc value].
    ^ nil.
!

iconForLinkedDirectory
    "answer the icon used for linked directories"

    ^ self directoryLink.

"/    |dirIcon linkIcon|
"/
"/    dirIcon  := self iconForKeyMatching:#directory.
"/    linkIcon := self iconForKeyMatching:#addOnLinked.
"/
"/    linkIcon notNil ifTrue:[
"/        ^ MultiImage images:(Array with:dirIcon with:linkIcon).
"/    ].
"/    ^ dirIcon

    "
      self iconForLinkedDirectory
    "
!

iconForMatchKey:matchKey
    ^ self matchedIcons detect:[:assoc | assoc key match:matchKey] ifNone:nil.
!

iconKeyForFile:aFilenameArg
    "given a fileName, return an appropriate icon"

    |aFilename fileType mimeType suffix|

    aFilename := aFilenameArg.

    aFilenameArg isFilename ifTrue:[
        fileType := self fileTypeIconKeyFor:aFilename.
    ] ifFalse:[
        fileType := #file
    ].

    (fileType ~~ #directory) ifTrue:[
        suffix := aFilename suffix.
        (suffix = 'bak' or:[suffix = 'sav']) ifTrue:[
            aFilename := aFilename withoutSuffix.
        ].
        mimeType := MIMETypes mimeTypeForFilename:aFilename.
    ].

    ^ mimeType ? fileType.
!

iconKeyForRemoteDirectory:aFilenameArg
    "given a fileName, return an appropriate icon"

    ^ #directoryNetwork
!

icons
    Icons isNil ifTrue:[
        self initializeIcons
    ].
    ^ Icons
!

matchedIcons
    MatchedIcons isNil ifTrue:[
        self initializeIcons
    ].
    ^ MatchedIcons
! !

!MIMETypeIconLibrary class methodsFor:'image specs'!

addOnLinked
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self addOnLinked inspect
     ImageEditor openOnClass:self andSelector:#addOnLinked
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary addOnLinked'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@A<@@X@@  CC@G>@@0@B@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@?@C>@O<XA10G? O?@_8@G@@X@@@@@@@@@@@b') ; yourself); yourself]
!

addOnLocked
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self addOnLocked inspect
     ImageEditor openOnClass:self andSelector:#addOnLocked
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary addOnLocked'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@A A#@LFA LL@Y @<@A @O@A&@LLA XL@1 A @@@@@b') ; colorMapFromArray:#[0 0 0 255 0 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@A A#@LFA LL@Y @<@A @O@A&@LLA XL@1 A @@@@@b') ; yourself); yourself]
!

applicationBinary
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self applicationBinary inspect
     ImageEditor openOnClass:self andSelector:#applicationBinary
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary applicationBinary'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4AQXET@T_A?<EEPUUAQTG?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

applicationJavaArchive
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self applicationJavaArchive inspect
     ImageEditor openOnClass:self andSelector:#applicationJavaArchive
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary applicationJavaArchive'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A @F?([>1/8F?>[?9/? ?>C?8@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?>O?<??;?????????????G?<_?0@@@@@b') ; yourself); yourself]
!

applicationLibrary
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self applicationLibrary inspect
     ImageEditor openOnClass:self andSelector:#applicationLibrary
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary applicationLibrary'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4AQXET@T_A?<EEPUUAQTG?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:' @@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

applicationPdf
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self applicationPdf inspect
     ImageEditor openOnClass:self andSelector:#applicationPdf
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary applicationPdf'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A?XD\@U?AE$E60TQA5,GF0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

applicationPostscript
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self applicationPostscript inspect
     ImageEditor openOnClass:self andSelector:#applicationPostscript
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary applicationPostscript'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A?XD\@U?AFLE;0W#A?,G00@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

applicationRtf
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self applicationRtf inspect
     ImageEditor openOnClass:self andSelector:#applicationRtf
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary applicationRtf'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A?XD<@W?A[$E.0TQA;,G&0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

applicationSharedLibrary
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self applicationSharedLibrary inspect
     ImageEditor openOnClass:self andSelector:#applicationSharedLibrary
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary applicationSharedLibrary'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4AQXET@T_A?<EEPUUAQTG?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:' @@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

audio
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self audio inspect
     ImageEditor openOnClass:self andSelector:#audio
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary audio'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A7XG\@]/AF<D;0^OA9<G?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

binaryFile
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self binaryFile inspect
     ImageEditor openOnClass:self andSelector:#binaryFile
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary binaryFile'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4AQXET@T_A?<EEPUUAQTG?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

compressedArchive
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self compressedArchive inspect
     ImageEditor openOnClass:self andSelector:#compressedArchive
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary compressedArchive'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@J @@@B(@@@B* @@@J @@@@ @@UUQ@@E@@@@AQUUD@TUUQPEEUT@@AUUUP@@H@@@@J @@@J*@@@@*@@@@J @@@a') ; colorMapFromArray:#[0 0 0 255 255 255 0 0 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@\@A0@O @\C?0O? ??#??O?>?????1??@\@C8@G@@\@b') ; yourself); yourself]
!

deviceFile
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self deviceFile inspect
     ImageEditor openOnClass:self andSelector:#deviceFile
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary deviceFile'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_?!!?>D2(UZ!!T*EV(SM!!?>G?8@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?<??3??O?<??3??O?<??3??O?<??0@@@@@@@@b') ; yourself); yourself]
!

digitalNotepad
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self digitalNotepad inspect
     ImageEditor openOnClass:self andSelector:#digitalNotepad
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary digitalNotepad'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4AAXE4@W\A] DDP_3AA\G?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@??G?>;??O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

directory
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self directory inspect
     ImageEditor openOnClass:self andSelector:#directory
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary directory'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@<@@@@_?!!?>G?8_?!!?>G?8@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@O@A>@O?<??3??O?<??3??O?<??0@@@@@@@@b') ; yourself); yourself]
!

directoryGray
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self directoryGray inspect
     ImageEditor openOnClass:self andSelector:#directoryGray
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary directoryGray'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@<@@@@UU@**EUPJ*!!UTB*(@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@O@A>@O?<??3??O?<??3??O?<??0@@@@@@@@b') ; yourself); yourself]
!

directoryLink
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self directoryLink inspect
     ImageEditor openOnClass:self andSelector:#directoryLink
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary directoryLink'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@J(@@@B* @@DB(UPAUJ B@UR**(EUJ**AUT@B@UUUU@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 0 255 0 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@O @?@O?<??3??/???????/?<??0@@@@@@@@b') ; yourself); yourself]
!

directoryLocked
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self directoryLocked inspect
     ImageEditor openOnClass:self andSelector:#directoryLocked
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary directoryLocked'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@B @@B J@@B @)PB @B B @EZV%PAU*%T@UV%U@EV*UPAV%)T@V%V%@B @J@B @@(B @@B @@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 0 255 0 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@L@L_A!!>LO?<??3??O?<??3??O?<??1 FL@L@@@b') ; yourself); yourself]
!

directoryNetwork
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self directoryNetwork inspect
     ImageEditor openOnClass:self andSelector:#directoryNetwork
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary directoryNetwork'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@UP@@@@@@@@EUUUPAUUUT@UUUU@EUUUPAUJET@UR!!U@@@(@@@@J@@@@B @B*****@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 0 255 0 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@A8@O0A??''?>_?9??''?>_?9??''?>@<C???????<b') ; yourself); yourself]
!

directoryOpen
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self directoryOpen inspect
     ImageEditor openOnClass:self andSelector:#directoryOpen
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary directoryOpen'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@* @@@**@@@J*** B@@@@@!!UUUPAUUUT@UUUT@UUUU@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 0 179 179 179]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@O@A>@O?<??3???????;??/?<??0@@@@@@@@b') ; yourself); yourself]
!

directoryOpenGray
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self directoryOpenGray inspect
     ImageEditor openOnClass:self andSelector:#directoryOpenGray
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary directoryOpenGray'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@"@@@@"H@@@BH"H B@@@@@ QDQ@@QDQD@QDQD@QDQD@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 0 178 178 178]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@O@A>@O?<??3???????;??/?<??0@@@@@@@@b') ; yourself); yourself]
!

executableFile
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self executableFile inspect
     ImageEditor openOnClass:self andSelector:#executableFile
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary executableFile'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@J**(@B***@@@@@@@EUUT@AUUU@@UUUP@EUUT@AUUU@@UUUP@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255 174 218 230]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?0??C?<O?0??C?<O?0??C?<O?0??@@@@@@@@@b') ; yourself); yourself]
!

expeccoLogfile
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self expeccoLogfile inspect
     ImageEditor openOnClass:self andSelector:#expeccoLogfile
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary expeccoLogfile'
        ifAbsentPut:[(Depth8Image new) width:16; height:16; bits:(ByteArray fromPackedString:'
F#@0LC@0LC@0LC@-F!!(ZF!!(0N3,;N3,;N3,;NR4ZF!!(ZLC,;K2</K2</K2<9KQ(ZF#@;JR0;N3,;N3,;N3\@F!!(0N2P&KC,/K2</K3(7@A(ZLC,1GRL,N3,;
N#T(H@@ZF#@;M!!$VH"08L2(RE00@F!!(0N3X''C!!D_IQTIC00,@A(ZLC,;K!!@KA0(KBA ,M0@ZF#@;K3PTA XFAAL,N3\@F!!(0N3,6G@TECQ,,N3,7@A(ZLC,/
N2,C@"D,N2<;M0@ZF#@;N3,2@Q8,N3,;N3\@F!!(0N2</N20,N2</K3,7@A(ZLC,;N3,;N3,;N3,;M0@ZF"4-KR4-KR4-KR4-KR4@F @@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 0 129 0 0 174 0 0 182 0 0 206 0 0 209 0 0 222 0 0 223 0 0 225 0 0 226 0 0 228 0 0 234 0 1 191 1 1 194 1 1 235 1 1 242 1 2 209 2 2 216 2 5 199 5 6 156 6 14 179 14 14 195 14 17 226 17 18 232 18 19 167 19 26 194 26 27 202 27 28 148 28 32 147 32 35 191 35 39 137 39 45 167 45 45 202 45 47 141 47 49 178 49 50 181 50 54 175 54 55 163 55 55 177 55 56 184 56 60 183 60 71 185 71 71 187 71 75 147 75 84 146 84 85 85 85 110 178 110 112 204 224 134 134 134 136 206 136 141 185 141 155 207 155 157 198 157 161 216 161 187 223 187 204 204 204 229 242 229 231 231 214 241 250 241 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'_?A?>G?<_?9??''?>_?9??''?>_?9??''?>_?9??''?>_?8b') ; yourself); yourself]
!

expeccoSuite
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self expeccoSuite inspect
     ImageEditor openOnClass:self andSelector:#expeccoSuite
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary expeccoSuite'
        ifAbsentPut:[(Depth8Image new) width:16; height:16; bits:(ByteArray fromPackedString:'
@B8.K"8.K"8.K"8,@@@@@@@.NS$9NS$9NS$9M20@@@@@K#$9NS$9NS$9NS$7K@@@@B89JB,9NS$9NS$9NST@@@@.NRL%J3$9NS$9NS 5@@@@K#$/GBH+NS$9
NCL''G0@@@B89MA$VHR,6LR$RE00@@@@.NSP&C!!D^IATIC00+@@@@K#$9KQ@KA0(KBA +MP@@@B89NSHTA XFAAL+NST@@@@.NS$4F0TECQ(+NS$5@@@@K#$9
NR(C@"@+NS$9MP@@@B89NS$0@Q4+NS$9NST@@@@.NS$9NR,+NS$9NS$5@@@@K#$9NS$9NS$9NS$9MP@@@B0,KB0,KB0,KB0,KB0@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 0 129 0 0 174 0 0 182 0 0 206 0 0 209 0 0 222 0 0 223 0 0 225 0 0 226 0 0 228 0 0 234 0 1 191 1 1 194 1 1 235 1 1 242 1 2 209 2 2 216 2 5 199 5 6 156 6 14 179 14 14 195 14 17 226 17 18 232 18 19 167 19 26 194 26 28 148 28 32 147 32 35 191 35 39 137 39 45 167 45 45 202 45 47 141 47 49 178 49 50 181 50 54 175 54 55 163 55 55 177 55 56 184 56 60 183 60 71 185 71 71 187 71 75 147 75 84 146 84 85 85 85 110 178 110 134 134 134 136 206 136 141 185 141 155 207 155 157 198 157 161 216 161 187 223 187 204 204 204 229 242 229 231 231 214 241 250 241 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'_?A?>G?<_?9??''?>_?9??''?>_?9??''?>_?9??''?>_?8b') ; yourself); yourself]
!

file
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self file inspect
     ImageEditor openOnClass:self andSelector:#file
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary file'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A?XG<@_?A?<G?0_?A?<G?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

fileArchive
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self fileArchive inspect
     ImageEditor openOnClass:self andSelector:#fileArchive
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary fileArchive'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A @F?([>1/8F?>[?9/? ?>C?8@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?>O?<??;?????????????G?<_?0@@@@@b') ; yourself); yourself]
!

fileLink
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self fileLink inspect
     ImageEditor openOnClass:self andSelector:#fileLink
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary fileLink'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@*H@AUR" @UUH@@@ER(@@(U@D@JEUUPB(UUT@* @D@J** @@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@G? _?C?>O?<_?1??G?>_?9??G?<_?0@@@@@@@@b') ; yourself); yourself]
!

fileLocked
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self fileLocked inspect
     ImageEditor openOnClass:self andSelector:#fileLocked
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary fileLocked'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@B @@B JUTR A)UF @V%R @EZV%@AU*%P@UV%T@EV*U@AV%)P@V%V$@B @J@B @@(B @@B @@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255 255 0 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?L??#?<O?8??#?>O?8??#?>O?8??!! FL@L@@@b') ; yourself); yourself]
!

imageFile
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self imageFile inspect
     ImageEditor openOnClass:self andSelector:#imageFile
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary imageFile'
        ifAbsentPut:[(Depth4Image new) width:16; height:16; bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQDQDQDQ@@@QDQADQQD@@ADQADQDTP@@DQDPQDTQ@@@QDQDIDQD@@ADQDP$QDP@@CMCL2L4Q@@@L3
L3L3L3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 0 205 0 133 62 38 0 139 0 173 216 230]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@??3??O?<??3??O?<??3??O?<??0@@@@@@@@b') ; yourself); yourself]
!

javaSource
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self javaSource inspect
     ImageEditor openOnClass:self andSelector:#javaSource
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary javaSource'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@EUTP@AUUE@@V)P@@FJ%U@A(*PP@Z"%D@E*IQ@AV)PP@UUUT@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255 198 129 64]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

smalltalkSource
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self smalltalkSource inspect
     ImageEditor openOnClass:self andSelector:#smalltalkSource
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary smalltalkSource'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4A?XG<@Y?A^<F10]/AN<G?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

specialFile
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self specialFile inspect
     ImageEditor openOnClass:self andSelector:#specialFile
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary specialFile'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@G?@<^C18OG <^C18O? <^C18G?@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@C?8_?1??G?<_?1??G?<_?1??G?<_?0?>@@@@@@b') ; yourself); yourself]
!

text
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self text inspect
     ImageEditor openOnClass:self andSelector:#text
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary text'
        ifAbsentPut:[(Depth1Image new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@@@@_4AAXG<@P_A?<D@P_?A@DG?0@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 255 255 255]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@@@@O?@?>C?<O?8??#?>O?8??#?>O?8?? @@@@@@@@b') ; yourself); yourself]
!

textHtml
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self textHtml inspect
     ImageEditor openOnClass:self andSelector:#textHtml
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary textHtml'
        ifAbsentPut:[(Depth4Image new) width:16; height:16; bits:(ByteArray fromPackedString:'
@@@@@@@@@@@@@@@@@@@@@@H"H"HB@@@@@"H"H H @@@BH"H"@@@@@@H#L3LBH @@@%TVL6X"@@@FY!!X1E H@@@Y&T3DV@@@@L1DSM!!M @@@CDVL6XS@@@@LQ
L1Y!!L@@@@3D3DVD0@@@@L3L3E@@@@@@@L3L@@@@@@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 160 160 0 255 255 255 10 110 230 0 128 128 128 128 128 128 128 0]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'@@C?0O? ??C?>O?8??#?>O?(??#?>O?8_?A?8C?@C0@b') ; yourself); yourself]
!

video
    "This resource specification was automatically generated
     by the ImageEditor of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the ImageEditor may not be able to read the specification."

    "
     self video inspect
     ImageEditor openOnClass:self andSelector:#video
     Icon flushCachedIcons
    "

    <resource: #image>

    ^Icon
        constantNamed:'MIMETypeIconLibrary video'
        ifAbsentPut:[(Depth2Image new) width:16; height:16; bits:(ByteArray fromPackedString:'B***(@X@@Y@JJ*& A"*)$@(**Z@FJ*&PB%UU(@Z**)@J@@F A"*)$@(**Z@FJ*&PB"*)(@YUUY@J*** @@@@@@@a') ; colorMapFromArray:#[0 0 0 255 255 255 125 125 125]; mask:((ImageMask new) width:16; height:16; bits:(ByteArray fromPackedString:'_?9??''?>_?9??''?>_?9??''?>_?9??''?>_?9??''?>@@@b') ; yourself); yourself]
! !

!MIMETypeIconLibrary class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libview2/MIMETypeIconLibrary.st,v 1.20 2014-05-23 18:58:21 stefan Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/libview2/MIMETypeIconLibrary.st,v 1.20 2014-05-23 18:58:21 stefan Exp $'
! !


MIMETypeIconLibrary initialize!