added: grabWindowImage (menu)
authorClaus Gittinger <cg@exept.de>
Mon, 02 Nov 2009 15:48:22 +0100
changeset 2701 5abe05ebb370
parent 2700 bad11f9b735f
child 2702 96f1dbce3d00
added: grabWindowImage (menu)
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|