diff -r bb6de5f8fd03 -r 7e4e066ca7f5 ImageEditor.st --- a/ImageEditor.st Mon Nov 12 17:23:41 2007 +0100 +++ b/ImageEditor.st Mon Nov 19 15:53:43 2007 +0100 @@ -1655,306 +1655,14 @@ (MenuItem label: '&File' translateLabel: true - submenu: - (Menu - ( - (MenuItem - activeHelpKey: fileNewImageEditor - label: 'New ImageEditor' - itemValue: doNewImageEditor - translateLabel: true - ) - (MenuItem - activeHelpKey: fileNewImage - label: 'New...' - itemValue: doNewImage - translateLabel: true - ) - (MenuItem - activeHelpKey: fileNewImage - label: 'New from ClipBoard' - itemValue: doNewImageFromClipboard - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: fileLoadFromClass - label: 'Load...' - itemValue: doLoadFromClass - translateLabel: true - ) - (MenuItem - activeHelpKey: fileLoadFromFile - label: 'Load from File...' - itemValue: doLoadFromFile - translateLabel: true - ) - (MenuItem - activeHelpKey: fileGrabImage - label: 'Grab from Screen...' - itemValue: grabScreenImage - translateLabel: true - ) - (MenuItem - enabled: imageHasNextImage - label: 'Next in Sequence' - itemValue: nextImageInSequence - translateLabel: true - isVisible: isStandAlone - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: fileSaveMethod - enabled: imageIsLoadedAndClassDefined - label: 'Save' - itemValue: doSaveMethod - translateLabel: true - ) - (MenuItem - activeHelpKey: fileSaveMethodAs - enabled: imageIsLoaded - label: 'Save As...' - itemValue: doSaveMethodAs - translateLabel: true - ) - (MenuItem - activeHelpKey: fileSaveAs - enabled: imageIsLoaded - label: 'Save to File...' - itemValue: doSaveImageFileAs - translateLabel: true - ) - (MenuItem - activeHelpKey: fileSaveMaskAs - enabled: imageIsLoaded - label: 'Save Mask to File...' - itemValue: doSaveImageMaskFileAs - translateLabel: true - ) - (MenuItem - activeHelpKey: fileSaveButtonImageAs - enabled: imageIsLoaded - label: 'Save as Button to File...' - itemValue: doSaveButtonImageToFileAs - translateLabel: true - ) - (MenuItem - enabled: imageIsLoaded - label: 'Copy to Clipboard' - itemValue: doCopyImageToClipboard - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: fileShowStoreString - enabled: imageIsLoaded - label: 'Show storeString' - itemValue: doShowStoreString - translateLabel: true - ) - (MenuItem - activeHelpKey: fileEditMask - enabled: imageIsLoaded - label: 'Edit Mask' - itemValue: doEditMask - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: filePrint - enabled: imageIsLoaded - label: 'Print' - itemValue: doPrint - translateLabel: true - ) - (MenuItem - label: '-' - isVisible: isStandAlone - ) - (MenuItem - activeHelpKey: fileBrowseClass - enabled: hasClassDefined - label: 'Browse Class' - itemValue: doBrowseClass - translateLabel: true - isVisible: isStandAlone - ) - (MenuItem - label: 'Inspect Image' - itemValue: doInspectImage - translateLabel: true - isVisible: isStandAlone - ) - (MenuItem - label: '-' - isVisible: isStandAlone - ) - (MenuItem - activeHelpKey: fileExit - label: 'Exit' - itemValue: closeRequest - translateLabel: true - isVisible: isStandAlone - ) - ) - nil - nil - ) + submenuChannel: menuFile + keepLinkedMenu: true ) (MenuItem - enabled: imageIsLoaded label: 'Edit' translateLabel: true - submenu: - (Menu - ( - (MenuItem - activeHelpKey: editUndo - enabled: canUndoHolder - label: 'Undo' - itemValue: doUndo - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: editFlipVertical - label: 'Flip - Vertical' - itemValue: doFlipVertical - translateLabel: true - ) - (MenuItem - activeHelpKey: editFlipHorizontal - label: 'Flip - Horizontal' - itemValue: doFlipHorizontal - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: editResize - label: 'Resize...' - itemValue: doResizeImage - translateLabel: true - ) - (MenuItem - activeHelpKey: editMagnifyImage - label: 'Magnify...' - itemValue: doMagnifyImage - translateLabel: true - ) - (MenuItem - activeHelpKey: editMagnifyImage - label: 'Magnify By...' - itemValue: doMagnifyImageBy - translateLabel: true - ) - (MenuItem - activeHelpKey: editRotate - label: 'Rotate...' - itemValue: doRotateImage - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Invert' - itemValue: doNegativeImage - translateLabel: true - ) - (MenuItem - label: 'Brighten' - itemValue: doBrightenImage - translateLabel: true - ) - (MenuItem - label: 'Darken' - itemValue: doDarkenImage - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - label: 'Crop' - translateLabel: true - submenu: - (Menu - ( - (MenuItem - activeHelpKey: cropManual - label: 'Manual...' - itemValue: doCropManual - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: cropAll - label: 'All' - itemValue: doCropAll - translateLabel: true - ) - (MenuItem - label: '-' - ) - (MenuItem - activeHelpKey: cropLeft - label: 'Left' - itemValue: doCropLeft - translateLabel: true - ) - (MenuItem - activeHelpKey: cropRight - label: 'Right' - itemValue: doCropRight - translateLabel: true - ) - (MenuItem - activeHelpKey: cropTop - label: 'Top' - itemValue: doCropTop - translateLabel: true - ) - (MenuItem - activeHelpKey: cropBottom - label: 'Bottom' - itemValue: doCropBottom - translateLabel: true - ) - ) - nil - nil - ) - ) - (MenuItem - activeHelpKey: uncropManual - label: 'Uncrop (Add Border)...' - itemValue: doUnCropManual - translateLabel: true - ) - (MenuItem - activeHelpKey: shiftManual - label: 'Shift...' - itemValue: doShiftManual - translateLabel: true - ) - ) - nil - nil - ) + submenuChannel: menuEdit + keepLinkedMenu: true ) (MenuItem enabled: imageIsLoaded @@ -2293,6 +2001,351 @@ ) ! +menuEdit + "This resource specification was automatically generated + by the MenuEditor of ST/X." + + "Do not manually edit this!! If it is corrupted, + the MenuEditor may not be able to read the specification." + + " + MenuEditor new openOnClass:ImageEditor andSelector:#menuEdit + (Menu new fromLiteralArrayEncoding:(ImageEditor menuEdit)) startUp + " + + + + ^ + #(Menu + ( + (MenuItem + activeHelpKey: editUndo + enabled: canUndoHolder + label: 'Undo' + itemValue: doUndo + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: editResize + label: 'Resize...' + itemValue: doResizeImage + translateLabel: true + ) + (MenuItem + activeHelpKey: editMagnifyImage + label: 'Magnify...' + itemValue: doMagnifyImage + translateLabel: true + ) + (MenuItem + activeHelpKey: editMagnifyImage + label: 'Magnify By...' + itemValue: doMagnifyImageBy + translateLabel: true + ) + (MenuItem + activeHelpKey: editRotate + label: 'Rotate...' + itemValue: doRotateImage + translateLabel: true + ) + (MenuItem + label: 'Flip' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + activeHelpKey: editFlipVertical + label: 'Flip - Vertical' + itemValue: doFlipVertical + translateLabel: true + ) + (MenuItem + activeHelpKey: editFlipHorizontal + label: 'Flip - Horizontal' + itemValue: doFlipHorizontal + translateLabel: true + ) + ) + nil + nil + ) + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Invert' + itemValue: doNegativeImage + translateLabel: true + ) + (MenuItem + label: 'Brighten' + itemValue: doBrightenImage + translateLabel: true + ) + (MenuItem + label: 'Darken' + itemValue: doDarkenImage + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Crop' + translateLabel: true + submenu: + (Menu + ( + (MenuItem + activeHelpKey: cropManual + label: 'Manual...' + itemValue: doCropManual + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: cropAll + label: 'All' + itemValue: doCropAll + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: cropLeft + label: 'Left' + itemValue: doCropLeft + translateLabel: true + ) + (MenuItem + activeHelpKey: cropRight + label: 'Right' + itemValue: doCropRight + translateLabel: true + ) + (MenuItem + activeHelpKey: cropTop + label: 'Top' + itemValue: doCropTop + translateLabel: true + ) + (MenuItem + activeHelpKey: cropBottom + label: 'Bottom' + itemValue: doCropBottom + translateLabel: true + ) + ) + nil + nil + ) + ) + (MenuItem + activeHelpKey: uncropManual + label: 'Uncrop (Add Border)...' + itemValue: doUnCropManual + translateLabel: true + ) + (MenuItem + activeHelpKey: shiftManual + label: 'Shift...' + itemValue: doShiftManual + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + label: 'Text...' + itemValue: doInsertTextFromUser + translateLabel: true + ) + ) + nil + nil + ) + + "Modified: / 11-11-2007 / 12:19:32 / cg" +! + +menuFile + "This resource specification was automatically generated + by the MenuEditor of ST/X." + + "Do not manually edit this!! If it is corrupted, + the MenuEditor may not be able to read the specification." + + " + MenuEditor new openOnClass:ImageEditor andSelector:#menuFile + (Menu new fromLiteralArrayEncoding:(ImageEditor menuFile)) startUp + " + + + + ^ + #(Menu + ( + (MenuItem + activeHelpKey: fileNewImageEditor + label: 'New ImageEditor' + itemValue: doNewImageEditor + translateLabel: true + ) + (MenuItem + activeHelpKey: fileNewImage + label: 'New...' + itemValue: doNewImage + translateLabel: true + ) + (MenuItem + activeHelpKey: fileNewImage + label: 'New from ClipBoard' + itemValue: doNewImageFromClipboard + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: fileLoadFromClass + label: 'Load...' + itemValue: doLoadFromClass + translateLabel: true + ) + (MenuItem + activeHelpKey: fileLoadFromFile + label: 'Load from File...' + itemValue: doLoadFromFile + translateLabel: true + ) + (MenuItem + activeHelpKey: fileGrabImage + label: 'Grab from Screen...' + itemValue: grabScreenImage + translateLabel: true + ) + (MenuItem + enabled: imageHasNextImage + label: 'Next in Sequence' + itemValue: nextImageInSequence + translateLabel: true + isVisible: isStandAlone + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: fileSaveMethod + enabled: imageIsLoadedAndClassDefined + label: 'Save' + itemValue: doSaveMethod + translateLabel: true + ) + (MenuItem + activeHelpKey: fileSaveMethodAs + enabled: imageIsLoaded + label: 'Save As...' + itemValue: doSaveMethodAs + translateLabel: true + ) + (MenuItem + activeHelpKey: fileSaveAs + enabled: imageIsLoaded + label: 'Save to File...' + itemValue: doSaveImageFileAs + translateLabel: true + ) + (MenuItem + activeHelpKey: fileSaveMaskAs + enabled: imageIsLoaded + label: 'Save Mask to File...' + itemValue: doSaveImageMaskFileAs + translateLabel: true + ) + (MenuItem + activeHelpKey: fileSaveButtonImageAs + enabled: imageIsLoaded + label: 'Save as Button to File...' + itemValue: doSaveButtonImageToFileAs + translateLabel: true + ) + (MenuItem + enabled: imageIsLoaded + label: 'Copy to Clipboard' + itemValue: doCopyImageToClipboard + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: fileShowStoreString + enabled: imageIsLoaded + label: 'Show storeString' + itemValue: doShowStoreString + translateLabel: true + ) + (MenuItem + activeHelpKey: fileEditMask + enabled: imageIsLoaded + label: 'Edit Mask' + itemValue: doEditMask + translateLabel: true + ) + (MenuItem + label: '-' + ) + (MenuItem + activeHelpKey: filePrint + enabled: imageIsLoaded + label: 'Print' + itemValue: doPrint + translateLabel: true + ) + (MenuItem + label: '-' + isVisible: isStandAlone + ) + (MenuItem + activeHelpKey: fileBrowseClass + enabled: hasClassDefined + label: 'Browse Class' + itemValue: doBrowseClass + translateLabel: true + isVisible: isStandAlone + ) + (MenuItem + label: 'Inspect Image' + itemValue: doInspectImage + translateLabel: true + isVisible: isStandAlone + ) + (MenuItem + label: '-' + isVisible: isStandAlone + ) + (MenuItem + activeHelpKey: fileExit + label: 'Exit' + itemValue: closeRequest + translateLabel: true + isVisible: isStandAlone + ) + ) + nil + nil + ) +! + menuMouseButtonColors "This resource specification was automatically generated by the MenuEditor of ST/X." @@ -4962,6 +5015,35 @@ imageEditView flipVertical ! +doInsertTextFromUser + |text tempForm tempImage maskImage font w h| + + text := Dialog request:'Text to be inserted:'. + + font := Font family:'arial' size:20. + font := font onDevice:Screen current. + w := font widthOf:text. + h := font heightOf:text. + + tempForm := Form extent:(w@h) depth:1 onDevice:(Screen current). + tempForm clear. + tempForm font:font. + tempForm paint:(Color colorId:1). + tempForm displayString:text at:(0@font ascent). + + tempImage := tempForm asImage. + maskImage := tempForm asImage. + tempImage + photometric:#palette; + colorMap:(Array with:Color white with:imageEditView selectedColor); + mask:maskImage. + + ImageEditView copyImageToClipboard:tempImage. + self editMode value:#paste. + + "Modified: / 11-11-2007 / 12:32:55 / cg" +! + doInspectImage "opens a System Browser on the resourceClass and the resourceSelector" @@ -5093,11 +5175,13 @@ box abortText:(resources string:'Cancel'). box initialText: '0'. box showAtPointer. - (box accepted and: [(rotation := Object readFromString: box contents onError:nil) notNil]) + (box accepted and: [(rotation := Number readFromString: box contents onError:nil) notNil]) ifTrue:[ imageEditView rotateImageBy:rotation. self updateInfoLabel. ]. + + "Modified: / 11-11-2007 / 13:21:11 / cg" ! doShiftManual