diff -r bad11f9b735f -r 5abe05ebb370 ImageEditor.st --- 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|