class: ImageEditor
added: #doNewMaskFromClipboard
changed:
#localHelpTexts
#menuFile
--- a/ImageEditor.st Wed Mar 25 15:20:01 2015 +0100
+++ b/ImageEditor.st Thu Mar 26 10:39:11 2015 +0100
@@ -473,6 +473,12 @@
#fileNewImage
'Create a new image'
+#fileNewImageFromClipboard
+'Create a new image and initialize it from the clipboard'
+
+#fileNewMaskFromClipboard
+'Paste the image in the clipboard as a mask. Must be a depth-1 image'
+
#filePrint
'Print the image on a postscript printer'
@@ -2811,11 +2817,16 @@
itemValue: doNewImage
)
(MenuItem
- activeHelpKey: fileNewImage
+ activeHelpKey: fileNewImageFromClipboard
label: 'New from ClipBoard'
itemValue: doNewImageFromClipboard
)
(MenuItem
+ activeHelpKey: fileNewMaskFromClipboard
+ label: 'Mask from ClipBoard'
+ itemValue: doNewMaskFromClipboard
+ )
+ (MenuItem
label: '-'
)
(MenuItem
@@ -7003,6 +7014,34 @@
]
!
+doNewMaskFromClipboard
+ |mask image newImage|
+
+ self checkModified ifFalse:[ ^ self ].
+
+ mask := imageEditView clipBoard.
+ mask isImageOrForm ifFalse:[
+ mask := Image readFrom:(mask asString) onError:nil.
+ mask isNil ifTrue:[
+ Dialog warn:'Clipboard does not contain an image I can use/understand'.
+ ^ self.
+ ].
+ ].
+ (image:= imageEditView image) isNil ifTrue:[
+ image := mask.
+ ].
+ mask extent ~= image extent ifTrue:[
+ mask := imageEditView resizedImage:mask to:image extent.
+ ].
+ newImage := image copy.
+ newImage mask:mask.
+ imageEditView newImageWithUndo:newImage.
+ self updateAfterImageChange.
+"/ self updateColorsFromImage:image.
+"/ self findColorMapMode.
+"/ self updateLabelsAndHistory.
+!
+
grabScreenImage
"let user choose an area and grab that are for editing"