MIMETypeIconLibrary.st
author Claus Gittinger <cg@exept.de>
Mon, 01 Dec 2003 18:23:06 +0100
changeset 1863 15710a9d0dde
parent 1862 9b48ee153f4b
child 1865 b94668a9243f
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1863
15710a9d0dde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1862
diff changeset
     1
"{ Package: 'stx:libview2' }"
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
     2
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
     3
Object subclass:#MimeTypeIconLibrary
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
     4
	instanceVariableNames:''
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
     5
	classVariableNames:'Icons MatchedIcons'
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
     6
	poolDictionaries:''
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
     7
	category:'Interface-Smalltalk'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
     8
!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
     9
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    10
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    11
!MimeTypeIconLibrary class methodsFor:'initialization'!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    12
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    13
initialize
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
    14
    self initializeIcons
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    15
!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    16
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    17
initializeFileTypeIcons
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    18
    |resources|
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    19
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    20
    resources := ResourcePack for:self.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    21
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    22
    #(
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    23
        "/ internal-type to icon mappings.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    24
        (#directory             'ICON_DIRECTORY'            'tiny_yellow_dir.xpm'            )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    25
        (#directoryOpen         'ICON_DIRECTORY_OPEN'       'tiny_yellow_dir_open.xpm'       )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    26
        (#directoryLocked       'ICON_DIRECTORY_LOCKED'     'tiny_yellow_dir_locked.xpm'     )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    27
        (#directoryLink         'ICON_DIRECTORY_LINK'       'tiny_yellow_dir_link.xpm'       )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    28
        (#directoryNetwork      'ICON_DIRECTORY_NETWORK'    'tiny_yellow_dir_network.xpm'    )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    29
        (#file                  'ICON_FILE'                 'tiny_file_plain.xpm'            )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    30
        (#fileLink              'ICON_FILE_LINK'            'tiny_file_link.xpm'             )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    31
        (#fileLocked            'ICON_FILE_LOCKED'          'tiny_file_lock.xpm'             )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    32
        (#imageFile             'ICON_IMAGE_FILE'           'tiny_file_pix.xpm'              )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    33
        (#textFile              'ICON_TEXT_FILE'            'tiny_file_text.xpm'             )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    34
        (#executableFile        'ICON_EXECUTABLEFILE'       'tiny_file_exec.xpm'             )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    35
        (#deviceFile            'ICON_DEVICE_FILE'          'tiny_file_device.xpm'           )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    36
        (#binaryFile            'ICON_BINARY_FILE'          'tiny_file_binary.xpm'           )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    37
        (#specialFile           'ICON_SPECIALFILE'          'tiny_file_special.xpm'          )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    38
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    39
        (#addOnLocked           'ICON_ADDON_LOCKED'         'tiny_addOn_lock.xpm'            )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    40
        (#addOnLinked           'ICON_ADDON_LINKED'         'tiny_addOn_link.xpm'            )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    41
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    42
        (#directoryGray         'ICON_DIRECTORY_GRAY'       'tiny_yellow_dir_gray.xpm'       )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    43
        (#directoryOpenGray     'ICON_DIRECTORY_OPEN_GRAY'  'tiny_yellow_dir_open_gray.xpm'  )
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    44
     ) do:[:entry |
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    45
        |key resource defaultName nm img|
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    46
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    47
        key := entry at:1.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    48
        resource := entry at:2.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    49
        defaultName := entry at:3.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    50
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    51
        resource notNil ifTrue:[
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    52
            nm := resources at:resource default:nil.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    53
        ].
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    54
        nm isNil ifTrue:[
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    55
            nm := 'xpmBitmaps/document_images/' , defaultName
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    56
        ].
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    57
        Icons at:key put:(Smalltalk imageFromFileNamed:nm forClass:self).
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    58
    ]
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    59
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    60
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    61
     self initializeFileTypeIcons
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    62
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    63
!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    64
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    65
initializeIcons
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    66
    Icons := Dictionary new.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    67
    MatchedIcons := OrderedCollection new.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    68
    self initializeFileTypeIcons.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    69
    self initializeMimeTypeIcons.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    70
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    71
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    72
     self initializeIcons
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    73
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    74
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    75
    "Modified: / 1.8.1998 / 17:39:27 / cg"
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    76
!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    77
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    78
initializeMimeTypeIcons
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    79
    #(
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    80
        "/ mime-type to icon mappings.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    81
"/        'image/jpeg'                                    'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    82
"/        'image/gif'                                     'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    83
"/        'image/tiff'                                    'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    84
"/        'image/x-xbitmap'                               'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    85
"/        'image/x-xpixmap'                               'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    86
"/        'image/x-png'                                   'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    87
"/        'image/x-photo-cd'                              'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    88
"/        'image/x-MS-bmp'                                'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    89
"/        'image/x-rgb'                                   'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    90
"/        'image/x-portable-pixmap'                       'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    91
"/        'image/x-portable-graymap'                      'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    92
"/        'image/x-portable-bitmap'                       'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    93
"/        'image/x-portable-anymap'                       'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    94
"/        'image/x-xwindowdump'                           'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    95
"/        'image/x-cmu-raster'                            'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    96
"/        'image/x-targa'                                 'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    97
        'image/*'                                       'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    98
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    99
        "/ misc text ...
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   100
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   101
        'text/html'                                     'tiny_file_html.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   102
"/        'text/plain'                                    'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   103
        'text/*'                                        'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   104
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   105
        'application/postscript'                        'tiny_file_postscript.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   106
        'application/pdf'                               'tiny_file_pdf.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   107
        'application/rtf'                               'tiny_file_rtf.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   108
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   109
        "/ video formats ...
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   110
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   111
"/        'video/x-sgi-movie'                             'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   112
"/        'video/x-msvideo'                               'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   113
"/        'video/quicktime'                               'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   114
"/        'video/x-mpeg2'                                 'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   115
"/        'video/mpeg'                                    'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   116
        'video/*'                                       'tiny_file_movie2.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   117
        'application/vnd.rn-realmedia'                  'tiny_file_movie2.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   118
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   119
        "/ audio formats ...
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   120
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   121
"/        'audio/x-pn-realaudio'                          'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   122
"/        'audio/x-mpeg'                                  'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   123
"/        'audio/x-mp3'                                   'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   124
"/        'audio/x-wav'                                   'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   125
"/        'audio/x-aiff'                                  'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   126
"/        'audio/basic'                                   'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   127
"/        'audio/x-shockwave-flash'                       'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   128
        'audio/*'                                       'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   129
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   130
        "/ misc stuff
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   131
        'application/winword'                           'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   132
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   133
        "/ binary formats
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   134
        'application/binary'                            'tiny_file_binary.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   135
        'application/library'                           'tiny_file_binary.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   136
        'application/shared-library'                    'tiny_file_binary.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   137
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   138
        "/ progr. languages
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   139
        'application/x-smalltalk-source'                'tiny_file_st.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   140
        'application/x-smalltalk-source-sif'            'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   141
        'application/x-c-source'                        'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   142
        'application/x-c-header'                        'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   143
        'application/x-cpp-source'                      'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   144
        'application/x-javascript'                      'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   145
        'application/x-java-source'                     'tiny_file_java.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   146
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   147
        'application/x-sh'                              'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   148
        'application/x-csh'                             'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   149
        'application/x-tcl'                             'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   150
        'application/x-perl'                            'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   151
        'application/x-make'                            'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   152
        'application/x-batch-script'                    'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   153
        'application/x-asn1-source'                     'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   154
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   155
        "/ compressors / archivers
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   156
        'application/x-tar'                           'tiny_file_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   157
        'application/x-gtar'                          'tiny_file_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   158
        'application/x-tar-compressed'                'tiny_file_compressed_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   159
        'application/x-zip-compressed'                'tiny_file_compressed_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   160
        'application/x-gzip-compressed'               'tiny_file_compressed_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   161
        'application/x-cpio'                          'tiny_file_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   162
        'application/x-shar'                          'tiny_file_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   163
        'application/java-archive'                    'tiny_file_archive.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   164
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   165
        '*'                                           'tiny_file_plain.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   166
     ) pairWiseDo:[:mimeTypePattern :fileName |
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   167
        | nm |
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   168
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   169
        nm := 'xpmBitmaps/document_images/' , fileName.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   170
        mimeTypePattern includesMatchCharacters ifTrue:[
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   171
            MatchedIcons add:(mimeTypePattern-> (Smalltalk imageFromFileNamed:nm forClass:self)).
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   172
        ] ifFalse:[    
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   173
            Icons at:mimeTypePattern put:(Smalltalk imageFromFileNamed:nm forClass:self).
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   174
        ]
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   175
    ]
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   176
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   177
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   178
     self initializeIcons
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   179
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   180
! !
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   181
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   182
!MimeTypeIconLibrary class methodsFor:'accessing'!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   183
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   184
fileTypeIconKeyFor:aFilename
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   185
    aFilename isSymbolicLink ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   186
        ^ #symbolicLink.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   187
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   188
    aFilename isDirectory ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   189
        ^ #directory.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   190
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   191
    aFilename isSpecialFile ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   192
        ^ #specialFile.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   193
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   194
    aFilename isExecutableProgram ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   195
        ^ #executableFile
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   196
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   197
    ^ #file.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   198
!
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   199
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   200
iconForKey:mimeTypeOrKey
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   201
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   202
    ^ Icons at:mimeTypeOrKey ifAbsent:nil.
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   203
!
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   204
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   205
iconForKeyMatching:mimeTypeOrKey
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   206
1861
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   207
    |icn assoc|
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   208
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   209
    icn := self iconForKey:mimeTypeOrKey.
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   210
    icn notNil ifTrue:[^icn].
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   211
    assoc := self  iconForMatchKey:mimeTypeOrKey.
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   212
    assoc notNil ifTrue:[^ assoc value].
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   213
    ^ nil.
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   214
!
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   215
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   216
iconForMatchKey:matchKey
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   217
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   218
    ^ MatchedIcons detect:[:assoc | assoc key match:matchKey] ifNone:nil.
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   219
!
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   220
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   221
iconKeyForFile:aFilenameArg
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   222
    "given a fileName, return an appropriate icon"
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   223
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   224
    |aFilename fileType mimeType suffix|
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   225
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   226
    aFilename := aFilenameArg.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   227
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   228
    aFilenameArg isFilename ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   229
        fileType := self fileTypeIconKeyFor:aFilename.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   230
    ] ifFalse:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   231
        fileType := #file
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   232
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   233
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   234
    (fileType == #directory) ifFalse:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   235
        suffix := aFilename suffix.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   236
        (suffix = 'bak' or:[suffix = 'sav']) ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   237
            aFilename := aFilename withoutSuffix.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   238
        ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   239
        mimeType := MIMETypes mimeTypeForFilename:aFilename.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   240
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   241
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   242
    ^ (mimeType ? fileType).
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   243
!
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   244
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   245
iconKeyForRemoteDirectory:aFilenameArg
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   246
    "given a fileName, return an appropriate icon"
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   247
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   248
    ^ #directoryNetwork
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   249
! !
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   250
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   251
!MimeTypeIconLibrary class methodsFor:'documentation'!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   252
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   253
version
1863
15710a9d0dde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1862
diff changeset
   254
    ^ '$Header: /cvs/stx/stx/libview2/MIMETypeIconLibrary.st,v 1.5 2003-12-01 17:22:55 cg Exp $'
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   255
! !
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   256
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   257
MimeTypeIconLibrary initialize!