--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MIMETypeIconLibrary.st Mon Dec 01 15:04:07 2003 +0100
@@ -0,0 +1,209 @@
+"{ Package: 'stx:libview' }"
+
+Object subclass:#MimeTypeIconLibrary
+ instanceVariableNames:''
+ classVariableNames:'Icons MatchedIcons DefaultIcons'
+ poolDictionaries:''
+ category:'Interface-Smalltalk'
+!
+
+
+!MimeTypeIconLibrary class methodsFor:'initialization'!
+
+icons
+ DefaultIcons isNil ifTrue:[
+ self initializeIcons
+ ].
+ ^ Icons
+!
+
+initialize
+!
+
+initializeFileTypeIcons
+ |resources|
+
+ resources := ResourcePack for:self.
+
+ #(
+ "/ internal-type to icon mappings.
+ (#directory 'ICON_DIRECTORY' 'tiny_yellow_dir.xpm' )
+ (#directoryOpen 'ICON_DIRECTORY_OPEN' 'tiny_yellow_dir_open.xpm' )
+ (#directoryLocked 'ICON_DIRECTORY_LOCKED' 'tiny_yellow_dir_locked.xpm' )
+ (#directoryLink 'ICON_DIRECTORY_LINK' 'tiny_yellow_dir_link.xpm' )
+ (#directoryNetwork 'ICON_DIRECTORY_NETWORK' 'tiny_yellow_dir_network.xpm' )
+ (#file 'ICON_FILE' 'tiny_file_plain.xpm' )
+ (#fileLink 'ICON_FILE_LINK' 'tiny_file_link.xpm' )
+ (#fileLocked 'ICON_FILE_LOCKED' 'tiny_file_lock.xpm' )
+ (#imageFile 'ICON_IMAGE_FILE' 'tiny_file_pix.xpm' )
+ (#textFile 'ICON_TEXT_FILE' 'tiny_file_text.xpm' )
+ (#executableFile 'ICON_EXECUTABLEFILE' 'tiny_file_exec.xpm' )
+ (#deviceFile 'ICON_DEVICE_FILE' 'tiny_file_device.xpm' )
+ (#binaryFile 'ICON_BINARY_FILE' 'tiny_file_binary.xpm' )
+ (#specialFile 'ICON_SPECIALFILE' 'tiny_file_special.xpm' )
+
+ (#addOnLocked 'ICON_ADDON_LOCKED' 'tiny_addOn_lock.xpm' )
+ (#addOnLinked 'ICON_ADDON_LINKED' 'tiny_addOn_link.xpm' )
+
+ (#directoryGray 'ICON_DIRECTORY_GRAY' 'tiny_yellow_dir_gray.xpm' )
+ (#directoryOpenGray 'ICON_DIRECTORY_OPEN_GRAY' 'tiny_yellow_dir_open_gray.xpm' )
+ ) do:[:entry |
+ |key resource defaultName nm img|
+
+ key := entry at:1.
+ resource := entry at:2.
+ defaultName := entry at:3.
+
+ resource notNil ifTrue:[
+ nm := resources at:resource default:nil.
+ ].
+ nm isNil ifTrue:[
+ nm := 'xpmBitmaps/document_images/' , defaultName
+ ].
+ Icons at:key put:(Smalltalk imageFromFileNamed:nm forClass:self).
+ ]
+
+ "
+ self initializeFileTypeIcons
+ "
+!
+
+initializeIcons
+ Icons := Dictionary new.
+ MatchedIcons := OrderedCollection new.
+ self initializeFileTypeIcons.
+ self initializeMimeTypeIcons.
+
+ "
+ self initializeIcons
+ "
+
+ "Modified: / 1.8.1998 / 17:39:27 / cg"
+!
+
+initializeMimeTypeIcons
+ #(
+ "/ mime-type to icon mappings.
+"/ 'image/jpeg' 'tiny_file_pix.xpm'
+"/ 'image/gif' 'tiny_file_pix.xpm'
+"/ 'image/tiff' 'tiny_file_pix.xpm'
+"/ 'image/x-xbitmap' 'tiny_file_pix.xpm'
+"/ 'image/x-xpixmap' 'tiny_file_pix.xpm'
+"/ 'image/x-png' 'tiny_file_pix.xpm'
+"/ 'image/x-photo-cd' 'tiny_file_pix.xpm'
+"/ 'image/x-MS-bmp' 'tiny_file_pix.xpm'
+"/ 'image/x-rgb' 'tiny_file_pix.xpm'
+"/ 'image/x-portable-pixmap' 'tiny_file_pix.xpm'
+"/ 'image/x-portable-graymap' 'tiny_file_pix.xpm'
+"/ 'image/x-portable-bitmap' 'tiny_file_pix.xpm'
+"/ 'image/x-portable-anymap' 'tiny_file_pix.xpm'
+"/ 'image/x-xwindowdump' 'tiny_file_pix.xpm'
+"/ 'image/x-cmu-raster' 'tiny_file_pix.xpm'
+"/ 'image/x-targa' 'tiny_file_pix.xpm'
+ 'image/*' 'tiny_file_pix.xpm'
+
+ "/ misc text ...
+
+ 'text/html' 'tiny_file_html.xpm'
+"/ 'text/plain' 'tiny_file_text.xpm'
+ 'text/*' 'tiny_file_text.xpm'
+
+ 'application/postscript' 'tiny_file_postscript.xpm'
+ 'application/pdf' 'tiny_file_pdf.xpm'
+ 'application/rtf' 'tiny_file_rtf.xpm'
+
+ "/ video formats ...
+
+"/ 'video/x-sgi-movie' 'tiny_file_movie.xpm'
+"/ 'video/x-msvideo' 'tiny_file_movie.xpm'
+"/ 'video/quicktime' 'tiny_file_movie.xpm'
+"/ 'video/x-mpeg2' 'tiny_file_movie.xpm'
+"/ 'video/mpeg' 'tiny_file_movie.xpm'
+ 'video/*' 'tiny_file_movie2.xpm'
+ 'application/vnd.rn-realmedia' 'tiny_file_movie2.xpm'
+
+ "/ audio formats ...
+
+"/ 'audio/x-pn-realaudio' 'tiny_file_sound.xpm'
+"/ 'audio/x-mpeg' 'tiny_file_sound.xpm'
+"/ 'audio/x-mp3' 'tiny_file_sound.xpm'
+"/ 'audio/x-wav' 'tiny_file_sound.xpm'
+"/ 'audio/x-aiff' 'tiny_file_sound.xpm'
+"/ 'audio/basic' 'tiny_file_sound.xpm'
+"/ 'audio/x-shockwave-flash' 'tiny_file_sound.xpm'
+ 'audio/*' 'tiny_file_sound.xpm'
+
+ "/ misc stuff
+ 'application/winword' 'tiny_file_text.xpm'
+
+ "/ binary formats
+ 'application/binary' 'tiny_file_binary.xpm'
+ 'application/library' 'tiny_file_binary.xpm'
+ 'application/shared-library' 'tiny_file_binary.xpm'
+
+ "/ progr. languages
+ 'application/x-smalltalk-source' 'tiny_file_st.xpm'
+ 'application/x-smalltalk-source-sif' 'tiny_file_text.xpm'
+ 'application/x-c-source' 'tiny_file_text.xpm'
+ 'application/x-c-header' 'tiny_file_text.xpm'
+ 'application/x-cpp-source' 'tiny_file_text.xpm'
+ 'application/x-javascript' 'tiny_file_text.xpm'
+ 'application/x-java-source' 'tiny_file_java.xpm'
+
+ 'application/x-sh' 'tiny_file_text.xpm'
+ 'application/x-csh' 'tiny_file_text.xpm'
+ 'application/x-tcl' 'tiny_file_text.xpm'
+ 'application/x-perl' 'tiny_file_text.xpm'
+ 'application/x-make' 'tiny_file_text.xpm'
+ 'application/x-batch-script' 'tiny_file_text.xpm'
+ 'application/x-asn1-source' 'tiny_file_text.xpm'
+
+ "/ compressors / archivers
+ 'application/x-tar' 'tiny_file_archive.xpm'
+ 'application/x-gtar' 'tiny_file_archive.xpm'
+ 'application/x-tar-compressed' 'tiny_file_compressed_archive.xpm'
+ 'application/x-zip-compressed' 'tiny_file_compressed_archive.xpm'
+ 'application/x-gzip-compressed' 'tiny_file_compressed_archive.xpm'
+ 'application/x-cpio' 'tiny_file_archive.xpm'
+ 'application/x-shar' 'tiny_file_archive.xpm'
+ 'application/java-archive' 'tiny_file_archive.xpm'
+
+ '*' 'tiny_file_plain.xpm'
+ ) pairWiseDo:[:mimeTypePattern :fileName |
+ | nm |
+
+ nm := 'xpmBitmaps/document_images/' , fileName.
+ mimeTypePattern includesMatchCharacters ifTrue:[
+ MatchedIcons add:(mimeTypePattern-> (Smalltalk imageFromFileNamed:nm forClass:self)).
+ ] ifFalse:[
+ Icons at:mimeTypePattern put:(Smalltalk imageFromFileNamed:nm forClass:self).
+ ]
+ ]
+
+ "
+ self initializeIcons
+ "
+! !
+
+!MimeTypeIconLibrary class methodsFor:'accessing'!
+
+matchedIcons
+ MatchedIcons isNil ifTrue:[
+ MatchedIcons := OrderedCollection new.
+ ].
+ ^ MatchedIcons
+! !
+
+!MimeTypeIconLibrary class methodsFor:'default'!
+
+defaultIcons
+ ^ DefaultIcons
+! !
+
+!MimeTypeIconLibrary class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libview2/MIMETypeIconLibrary.st,v 1.1 2003-12-01 14:04:07 penk Exp $'
+! !
+
+MimeTypeIconLibrary initialize!