--- a/AbstractFileBrowser.st Wed Dec 11 16:29:46 2002 +0100
+++ b/AbstractFileBrowser.st Wed Dec 11 17:15:21 2002 +0100
@@ -1498,8 +1498,8 @@
the MenuEditor may not be able to read the specification."
"
- MenuEditor new openOnClass:FileBrowserV2 andSelector:#toolsMenuSpec
- (Menu new fromLiteralArrayEncoding:(FileBrowserV2 toolsMenuSpec)) startUp
+ MenuEditor new openOnClass:AbstractFileBrowser andSelector:#toolsMenuSpec
+ (Menu new fromLiteralArrayEncoding:(AbstractFileBrowser toolsMenuSpec)) startUp
"
<resource: #menu>
@@ -1509,160 +1509,191 @@
#(
#(#MenuItem
#label: 'Execute Command...'
+ #itemValue: #doExecuteCommand
#translateLabel: true
- #value: #doExecuteCommand
)
#(#MenuItem
+ #enabled: #canDoTerminal
#label: 'Shell Terminal'
+ #itemValue: #openTerminal
#translateLabel: true
#isVisible: #canDoTerminalAndSystemIsUnix
- #value: #openTerminal
- #enabled: #canDoTerminal
)
#(#MenuItem
+ #enabled: #canDoTerminal
#label: 'DOS Terminal'
+ #itemValue: #openTerminal
#translateLabel: true
#isVisible: #canDoTerminalAndSystemIsDOS
- #value: #openTerminal
- #enabled: #canDoTerminal
)
#(#MenuItem
#label: '-'
)
#(#MenuItem
+ #enabled: #hasSelection
#label: 'Changes Browser'
+ #itemValue: #openChangesBrowser
#translateLabel: true
- #value: #openChangesBrowser
- #enabled: #hasSelection
)
#(#MenuItem
+ #enabled: #hasSelection
#label: 'ChangeSet Browser'
+ #itemValue: #openChangeSetBrowser
#translateLabel: true
- #value: #openChangeSetBrowser
- #enabled: #hasSelection
)
#(#MenuItem
+ #enabled: #hasSnapshotSelection
#label: 'Snapshot Image Browser'
+ #itemValue: #openSnapshotImageBrowser
#translateLabel: true
- #value: #openSnapshotImageBrowser
- #enabled: #hasSnapshotSelection
)
#(#MenuItem
+ #enabled: #canCreateNewProject
#label: 'Create Smalltalk Project'
+ #itemValue: #createProjectAndOpenProjectBrowser
#translateLabel: true
- #value: #createProjectAndOpenProjectBrowser
- #enabled: #canCreateNewProject
)
#(#MenuItem
+ #enabled: #canReadAbbrevFile
#label: 'Install Autoloaded'
+ #itemValue: #readAbbrevFile
#translateLabel: true
- #value: #readAbbrevFile
- #enabled: #canReadAbbrevFile
)
#(#MenuItem
+ #enabled: #anySTFilesPresent
#label: 'Install all as Autoloaded'
+ #itemValue: #installAllAsAutoloaded
#translateLabel: true
- #value: #installAllAsAutoloaded
- #enabled: #anySTFilesPresent
)
#(#MenuItem
+ #enabled: #hasSelection
#label: 'Editor'
+ #itemValue: #openEditor
#translateLabel: true
- #value: #openEditor
+ )
+ #(#MenuItem
#enabled: #hasSelection
+ #label: 'HTML Reader'
+ #itemValue: #openHTMLReader
+ #translateLabel: true
)
#(#MenuItem
- #label: 'HTML Reader'
- #translateLabel: true
- #value: #openHTMLReader
- #enabled: #hasSelection
- )
- #(#MenuItem
+ #enabled: #hasASN1AndSelection
#label: 'ASN1 Browser'
+ #itemValue: #openASN1Browser
#translateLabel: true
#isVisible: #hasASN1
- #value: #openASN1Browser
- #enabled: #hasASN1AndSelection
)
#(#MenuItem
+ #enabled: #hasCBrowser
#label: 'C Browser'
+ #itemValue: #openCBrowser
#translateLabel: true
#isVisible: #hasCBrowser
- #value: #openCBrowser
- #enabled: #hasCBrowser
)
#(#MenuItem
+ #enabled: #hasJavaAndSelection
#label: 'Applet Viewer'
+ #itemValue: #openAppletViewer
#translateLabel: true
#isVisible: #hasJava
- #value: #openAppletViewer
- #enabled: #hasJavaAndSelection
)
#(#MenuItem
- #label: 'Image Inspector'
+ #enabled: #hasSelection
+ #label: 'STX Image Inspector'
+ #itemValue: #openImageInspector
#translateLabel: true
- #value: #openImageInspector
- #enabled: #hasSelection
)
#(#MenuItem
- #label: 'Image Preview'
+ #label: 'Image'
#translateLabel: true
- #value: #openImagePreview
- #enabled: #hasSelection
+ #submenu:
+ #(#Menu
+ #(
+ #(#MenuItem
+ #enabled: #hasSelection
+ #label: 'Image Editor'
+ #itemValue: #openImageEditor
+ #translateLabel: true
+ )
+ #(#MenuItem
+ #enabled: #hasSelection
+ #label: 'Image Preview'
+ #itemValue: #openImagePreview
+ #translateLabel: true
+ )
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #enabled: #hasSelection
+ #label: 'Convert to GIF'
+ #itemValue: #convertImageToGIF
+ #translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
)
#(#MenuItem
- #label: 'Image Editor'
- #translateLabel: true
- #value: #openImageEditor
- #enabled: #hasSelection
- )
- #(#MenuItem
+ #enabled: #hasMP3PlayerAndSelection
#label: 'MP3 Player'
+ #itemValue: #openMP3Player
#translateLabel: true
#isVisible: #hasMP3Player
- #value: #openMP3Player
- #enabled: #hasMP3PlayerAndSelection
)
#(#MenuItem
+ #enabled: #hasZipFileSelected
#label: 'ZipFile Tool'
+ #itemValue: #openZipTool
#translateLabel: true
- #value: #openZipTool
- #enabled: #hasZipFileSelected
)
#(#MenuItem
+ #enabled: #currentFilesAreInSameDirectory
#label: 'Slide Show'
+ #itemValue: #openSlideShow
#translateLabel: true
#isVisible: #hasSlideShow
- #value: #openSlideShow
- #enabled: #currentFilesAreInSameDirectory
- )
- #(#MenuItem
- #label: 'File Differences...'
- #translateLabel: true
- #value: #openDiffView
- #enabled: #hasSelection
)
#(#MenuItem
- #label: 'Find Duplicate Files'
+ #label: 'Find'
#translateLabel: true
- #value: #fileFindDuplicates
+ #submenu:
+ #(#Menu
+ #(
+ #(#MenuItem
+ #label: 'Find a File...'
+ #itemValue: #fileFindFile
+ #translateLabel: true
+ )
+ #(#MenuItem
+ #enabled: #hasSelection
+ #label: 'Find All Duplicate Files (Recursive)'
+ #itemValue: #fileFindAllDuplicates
+ #translateLabel: true
+ )
+ #(#MenuItem
+ #label: 'Find Duplicate Files'
+ #itemValue: #fileFindDuplicates
+ #translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
)
#(#MenuItem
- #label: 'Find All Duplicate Files (Recursive)'
+ #enabled: #hasSelection
+ #label: 'File Differences...'
+ #itemValue: #openDiffView
#translateLabel: true
- #value: #fileFindAllDuplicates
- #enabled: #hasSelection
)
#(#MenuItem
- #label: 'Find a File...'
+ #enabled: #hasSelection
+ #label: 'Hex Dump'
+ #itemValue: #fileHexDump
#translateLabel: true
- #value: #fileFindFile
- )
- #(#MenuItem
- #label: 'Hex Dump'
- #translateLabel: true
- #value: #fileHexDump
- #enabled: #hasSelection
)
)
nil
@@ -3408,6 +3439,56 @@
!AbstractFileBrowser methodsFor:'menu actions tools'!
+convertImageToGIF
+ |img tempFileXPM tempFilePPM tempFileGIF|
+
+ [
+ self withActivityIndicationDo:[
+ self currentFileNameHolder value do:[:fileName |
+ fileName isDirectory ifFalse:[
+ self notifyChannel value:('Convert to GIF:', fileName baseName).
+ img := Image fromFile:(fileName pathName).
+ img notNil ifTrue:[
+ tempFileXPM := Filename newTemporary withSuffix:'xpm'.
+ tempFilePPM := tempFileXPM withSuffix:'ppm'.
+ tempFileGIF := tempFileXPM withSuffix:'gif'.
+ [
+ img saveOn:tempFileXPM using:XPMReader.
+
+
+ (OperatingSystem
+ executeCommand:('xpmtoppm %1 > %2'
+ bindWith:tempFileXPM pathName
+ with:tempFilePPM pathName))
+ ifFalse:[
+ self warn:'Cannot convert to ppm format'.
+ ] ifTrue:[
+ (OperatingSystem
+ executeCommand:('ppmtogif %1 > %2'
+ bindWith:tempFilePPM pathName
+ with:tempFileGIF pathName))
+ ifFalse:[
+ self warn:'Cannot convert to gif format'.
+ ] ifTrue:[
+ tempFileGIF moveTo:(fileName withSuffix:'gif').
+ self updateAndSelect:nil.
+ ].
+ ].
+ ] ensure:[
+ tempFileXPM delete.
+ tempFilePPM delete.
+ tempFileGIF delete.
+ ]
+ ] ifFalse:[
+ self warn:'Unknown format/not an image: ' , fileName asString
+ ]
+ ]
+ ].
+ self notifyChannel value:''.
+ ]
+ ] fork.
+!
+
createProjectAndOpenProjectBrowser
|nm f s directory|
@@ -5309,5 +5390,5 @@
!AbstractFileBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.70 2002-12-11 15:29:46 penk Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.71 2002-12-11 16:15:21 penk Exp $'
! !