--- a/ImageEditor.st Mon Nov 02 14:29:14 2009 +0100
+++ b/ImageEditor.st Mon Nov 02 15:48:22 2009 +0100
@@ -402,8 +402,11 @@
#editRotate
'Rotate the image.'
-#fileGrabImage
-'Pick an image from the screen.'
+#fileGrabImageFromScreen
+'Pick an image from the screen (specify area).'
+
+#fileGrabImageFromWindow
+'Pick an image from a window on the screen (click on window).'
#fileLoadFromClass
'Select and load an image from a resource method.'
@@ -2335,12 +2338,18 @@
translateLabel: true
)
(MenuItem
- activeHelpKey: fileGrabImage
+ activeHelpKey: fileGrabImageFromScreen
label: 'Grab from Screen...'
itemValue: grabScreenImage
translateLabel: true
)
(MenuItem
+ activeHelpKey: fileGrabImageFromWindow
+ label: 'Grab from Window...'
+ itemValue: grabWindowImage
+ translateLabel: true
+ )
+ (MenuItem
enabled: imageHasNextImage
label: 'Next in Sequence'
itemValue: nextImageInSequence
@@ -5916,6 +5925,12 @@
grabScreenImage
"let user choose an area and grab that are for editing"
+ self grabScreenImageUsing:[ Image fromUser ].
+!
+
+grabScreenImageUsing:aBlock
+ "let user choose an area and grab that are for editing"
+
self checkModified ifFalse:[ ^ self ].
Processor
@@ -5923,7 +5938,7 @@
|image d8image img|
imageSeqNr := nil.
- image := Image fromUser.
+ image := aBlock value.
image isNil ifFalse:[
image depth > 8 ifTrue:[
false ifTrue:[
@@ -5954,6 +5969,18 @@
"Modified: / 16.11.2001 / 16:21:19 / cg"
!
+grabWindowImage
+ "let user choose an area and grab that are for editing"
+
+ self grabScreenImageUsing:[
+ |v|
+
+ (v := Screen current viewFromUser) notNil ifTrue:[
+ Image fromView:(v topView)
+ ].
+ ].
+!
+
nextImageInSequence
"display the next image in the image sequence"
|img seq frame listOfColors|