ImageEditor.st
changeset 2707 6610854318eb
parent 2704 0791984eef02
child 2708 c180af16b1b3
equal deleted inserted replaced
2706:2ab6062e33ab 2707:6610854318eb
    12 "{ Package: 'stx:libtool2' }"
    12 "{ Package: 'stx:libtool2' }"
    13 
    13 
    14 ResourceSpecEditor subclass:#ImageEditor
    14 ResourceSpecEditor subclass:#ImageEditor
    15 	instanceVariableNames:'imageEditView colorMapMode editMode mouseKeyColorMode
    15 	instanceVariableNames:'imageEditView colorMapMode editMode mouseKeyColorMode
    16 		selectedColorIndex postOpenAction imageSeqNr drawingColormap
    16 		selectedColorIndex postOpenAction imageSeqNr drawingColormap
    17 		lastShiftUsedWrap'
    17 		lastShiftUsedWrap lastGrabbedScreenArea'
    18 	classVariableNames:'LastDirectory LastSizeString MaskClipboard LastColormapMode
    18 	classVariableNames:'LastDirectory LastSizeString MaskClipboard LastColormapMode
    19 		DefaultRelativeSizes'
    19 		DefaultRelativeSizes'
    20 	poolDictionaries:''
    20 	poolDictionaries:''
    21 	category:'Interface-UIPainter'
    21 	category:'Interface-UIPainter'
    22 !
    22 !
  2336             label: 'Load from File...'
  2336             label: 'Load from File...'
  2337             itemValue: doLoadFromFile
  2337             itemValue: doLoadFromFile
  2338             translateLabel: true
  2338             translateLabel: true
  2339           )
  2339           )
  2340          (MenuItem
  2340          (MenuItem
  2341             activeHelpKey: fileGrabImageFromScreen
  2341             label: 'Grab'
  2342             label: 'Grab from Screen...'
  2342             translateLabel: true
  2343             itemValue: grabScreenImage
  2343             submenu: 
  2344             translateLabel: true
  2344            (Menu
  2345           )
  2345               (
  2346          (MenuItem
  2346                (MenuItem
  2347             activeHelpKey: fileGrabImageFromWindow
  2347                   activeHelpKey: fileGrabImageFromWindow
  2348             label: 'Grab from Window...'
  2348                   label: 'Grab from Window...'
  2349             itemValue: grabWindowImage
  2349                   itemValue: grabWindowImage
  2350             translateLabel: true
  2350                   translateLabel: true
       
  2351                 )
       
  2352                (MenuItem
       
  2353                   activeHelpKey: fileGrabImageFromScreen
       
  2354                   label: 'Grab from Screen...'
       
  2355                   itemValue: grabScreenImage
       
  2356                   translateLabel: true
       
  2357                 )
       
  2358                (MenuItem
       
  2359                   activeHelpKey: fileGrabImageFromScreen
       
  2360                   enabled: hasLastGrabScreenArea
       
  2361                   label: 'Grab Again from same Screen Area'
       
  2362                   itemValue: grabScreenImageFromLastArea
       
  2363                   translateLabel: true
       
  2364                 )
       
  2365                )
       
  2366               nil
       
  2367               nil
       
  2368             )
  2351           )
  2369           )
  2352          (MenuItem
  2370          (MenuItem
  2353             enabled: imageHasNextImage
  2371             enabled: imageHasNextImage
  2354             label: 'Next in Sequence'
  2372             label: 'Next in Sequence'
  2355             itemValue: nextImageInSequence
  2373             itemValue: nextImageInSequence
  3964     ].
  3982     ].
  3965     self imagePreView setImage:(self image) scroll:false invalidate:true.
  3983     self imagePreView setImage:(self image) scroll:false invalidate:true.
  3966 ! !
  3984 ! !
  3967 
  3985 
  3968 !ImageEditor methodsFor:'queries'!
  3986 !ImageEditor methodsFor:'queries'!
       
  3987 
       
  3988 hasLastGrabScreenArea
       
  3989     ^ [ lastGrabbedScreenArea notNil ]
       
  3990 !
  3969 
  3991 
  3970 hasMask
  3992 hasMask
  3971     ^ colorMapMode value notNil and:[colorMapMode value startsWith:'mask']
  3993     ^ colorMapMode value notNil and:[colorMapMode value startsWith:'mask']
  3972 
  3994 
  3973     "Created: / 18.8.1998 / 17:17:38 / cg"
  3995     "Created: / 18.8.1998 / 17:17:38 / cg"
  5923 !
  5945 !
  5924 
  5946 
  5925 grabScreenImage
  5947 grabScreenImage
  5926     "let user choose an area and grab that are for editing"
  5948     "let user choose an area and grab that are for editing"
  5927 
  5949 
  5928     self grabScreenImageUsing:[ Image fromUser ].
  5950     self grabScreenImageUsing:[ 
       
  5951         |r|
       
  5952 
       
  5953         [Screen current leftButtonPressed] whileTrue:[Delay waitForSeconds:0.05].
       
  5954         r := Rectangle fromUser.
       
  5955         r width == 0 ifTrue:[^ nil].
       
  5956         r height == 0 ifTrue:[^ nil].
       
  5957         lastGrabbedScreenArea := r.
       
  5958         ^ Image fromScreen:r
       
  5959     ].
       
  5960 !
       
  5961 
       
  5962 grabScreenImageFromLastArea
       
  5963     "grab again from the previous area for editing"
       
  5964 
       
  5965     self grabScreenImageUsing:[ 
       
  5966         ^ Image fromScreen:lastGrabbedScreenArea
       
  5967     ].
  5929 !
  5968 !
  5930 
  5969 
  5931 grabScreenImageUsing:aBlock
  5970 grabScreenImageUsing:aBlock
  5932     "let user choose an area and grab that are for editing"
  5971     "let user choose an area and grab that are for editing"
  5933 
  5972