ImageEditor.st
changeset 3375 d2a64b772792
parent 3374 2cb3e68941a8
child 3376 c508738114fa
equal deleted inserted replaced
3374:2cb3e68941a8 3375:d2a64b772792
    15 
    15 
    16 ResourceSpecEditor subclass:#ImageEditor
    16 ResourceSpecEditor subclass:#ImageEditor
    17 	instanceVariableNames:'imageEditView colorMapMode editMode mouseKeyColorMode
    17 	instanceVariableNames:'imageEditView colorMapMode editMode mouseKeyColorMode
    18 		selectedColorIndex postOpenAction imageSeqNr drawingColormap
    18 		selectedColorIndex postOpenAction imageSeqNr drawingColormap
    19 		lastShiftUsedWrap lastGrabbedScreenArea
    19 		lastShiftUsedWrap lastGrabbedScreenArea
    20 		allowedToChangeImageDimensionAndDepth'
    20 		allowedToChangeImageDimensionAndDepth savedImage'
    21 	classVariableNames:'LastDirectory LastSizeString MaskClipboard LastColormapMode
    21 	classVariableNames:'LastDirectory LastSizeString MaskClipboard LastColormapMode
    22 		DefaultRelativeSizes LastURL'
    22 		DefaultRelativeSizes LastURL'
    23 	poolDictionaries:''
    23 	poolDictionaries:''
    24 	category:'Interface-UIPainter'
    24 	category:'Interface-UIPainter'
    25 !
    25 !
    41 !
    41 !
    42 
    42 
    43 documentation
    43 documentation
    44 "
    44 "
    45     Image Editor allows you to create, design, modify or just inspect images.
    45     Image Editor allows you to create, design, modify or just inspect images.
       
    46     It is also used subclasses as a tool to post-process captured screen images and
       
    47     bitmaps in expecco.
    46 
    48 
    47     [start with:]
    49     [start with:]
    48         ImageEditor open
    50         ImageEditor open
    49         ImageEditor openOnClass:Icon andSelector:#startIcon
    51         ImageEditor openOnClass:Icon andSelector:#startIcon
    50 
    52 
   135 !
   137 !
   136 
   138 
   137 openOnClass:aClass andSelector:aSelector
   139 openOnClass:aClass andSelector:aSelector
   138     "opens an Image Editor on aClass and aSelector"
   140     "opens an Image Editor on aClass and aSelector"
   139 
   141 
   140     self openLoadingImageWith:[:editor | 
   142     self 
   141         editor loadFromClass:aClass theNonMetaclass andSelector:aSelector.
   143         openLoadingImageWith:[:editor | 
   142     ] modal:false.
   144             editor loadFromClass:aClass theNonMetaclass andSelector:aSelector
       
   145         ] 
       
   146         modal:false.
   143 
   147 
   144     "
   148     "
   145      self openOnClass:self andSelector:#leftMouseKeyIcon
   149      self openOnClass:self andSelector:#leftMouseKeyIcon
   146      self openOnClass:self andSelector:nil
   150      self openOnClass:self andSelector:nil
   147     "
   151     "
   150 !
   154 !
   151 
   155 
   152 openOnFile:aFileName
   156 openOnFile:aFileName
   153     "opens an Image Editor on aFileName"
   157     "opens an Image Editor on aFileName"
   154 
   158 
   155     self openLoadingImageWith:[:editor | 
   159     self    
   156         editor loadFromFile:aFileName.
   160         openLoadingImageWith:[:editor | editor loadFromFile:aFileName ] 
   157     ] modal:false.
   161         modal:false.
   158 
   162 
   159     "
   163     "
   160      self openOnFile: '../../goodies/bitmaps/gifImages/back.gif'
   164      self openOnFile: '../../goodies/bitmaps/gifImages/back.gif'
   161     "
   165     "
   162 
   166 
   164 !
   168 !
   165 
   169 
   166 openOnImage:anImage
   170 openOnImage:anImage
   167     "opens an Image Editor on anImage"
   171     "opens an Image Editor on anImage"
   168 
   172 
   169     self openLoadingImageWith:[:editor | 
   173     self 
   170         editor loadFromImage: anImage.
   174         openLoadingImageWith:[:editor | editor loadFromImage: anImage ] 
   171     ] modal:false
   175         modal:false
   172 
   176 
   173     "
   177     "
   174      self openOnImage: Icon startIcon
   178      self openOnImage: Icon startIcon
   175     "
   179     "
   176 
   180 
  3888     postOpenAction := anAction
  3892     postOpenAction := anAction
  3889 !
  3893 !
  3890 
  3894 
  3891 resourceClass:aClass
  3895 resourceClass:aClass
  3892     imageEditView resourceClass:aClass
  3896     imageEditView resourceClass:aClass
       
  3897 !
       
  3898 
       
  3899 savedImage
       
  3900     "if user did a save, return what was saved last.
       
  3901      Otherwise, this returns nil"
       
  3902 
       
  3903     ^ savedImage
  3893 ! !
  3904 ! !
  3894 
  3905 
  3895 !ImageEditor methodsFor:'accessing-behavior'!
  3906 !ImageEditor methodsFor:'accessing-behavior'!
  3896 
  3907 
  3897 allowedToChangeImageDimensionAndDepth
  3908 allowedToChangeImageDimensionAndDepth
  4919         imageEditView clearModified.
  4930         imageEditView clearModified.
  4920     ].
  4931     ].
  4921     ^ true
  4932     ^ true
  4922 
  4933 
  4923     "Modified: / 29.7.1998 / 18:55:24 / cg"
  4934     "Modified: / 29.7.1998 / 18:55:24 / cg"
       
  4935 !
       
  4936 
       
  4937 clearModifiedAndRememberSavedImage
       
  4938     "called after a save-to-file/or whereever operation"
       
  4939     
       
  4940     self clearModified.
       
  4941     savedImage := self image.
  4924 !
  4942 !
  4925 
  4943 
  4926 pointFromString:aString
  4944 pointFromString:aString
  4927     |p s x y|
  4945     |p s x y|
  4928 
  4946 
  7441         imageEditView print
  7459         imageEditView print
  7442     ]
  7460     ]
  7443 !
  7461 !
  7444 
  7462 
  7445 doSaveButtonImageToFileAs
  7463 doSaveButtonImageToFileAs
  7446     "opens a dialog for saving current image to a file"
  7464     "opens a dialog for saving current image to a file.
       
  7465      Saved as a button image (i.e. with a frame around)"
  7447 
  7466 
  7448     imageEditView saveButtonImageToFileAs.
  7467     imageEditView saveButtonImageToFileAs.
  7449     self updateLabelsAndHistory.
  7468     self updateLabelsAndHistory.
  7450 !
  7469 !
  7451 
  7470 
  7452 doSaveImageFile
  7471 doSaveImageFile
  7453     "saves current image to current file"
  7472     "saves current image to current file"
  7454 
  7473 
  7455     imageEditView save.
  7474     imageEditView save.
  7456     self clearModified.
  7475     self clearModifiedAndRememberSavedImage.
  7457 !
  7476 !
  7458 
  7477 
  7459 doSaveImageFileAs
  7478 doSaveImageFileAs
  7460     "opens a dialog for saving an image to a file"
  7479     "opens a dialog for saving an image to a file"
  7461 
  7480 
  7515     ].
  7534     ].
  7516     file notNil ifTrue:[
  7535     file notNil ifTrue:[
  7517         imageEditView saveImageFileAs:file.
  7536         imageEditView saveImageFileAs:file.
  7518         LastDirectory := file asFilename directoryName.
  7537         LastDirectory := file asFilename directoryName.
  7519         self updateLabelsAndHistory.
  7538         self updateLabelsAndHistory.
  7520         self clearModified.
  7539         self clearModifiedAndRememberSavedImage.
  7521     ]
  7540     ]
  7522 
  7541 
  7523     "Modified: / 14-12-2010 / 13:51:47 / cg"
  7542     "Modified: / 14-12-2010 / 13:51:47 / cg"
  7524 !
  7543 !
  7525 
  7544 
  7532 doSaveMethod
  7551 doSaveMethod
  7533     "saves the image in current class and selector"
  7552     "saves the image in current class and selector"
  7534 
  7553 
  7535     imageEditView saveMethod ifTrue:[
  7554     imageEditView saveMethod ifTrue:[
  7536         self updateLabelsAndHistory.
  7555         self updateLabelsAndHistory.
  7537         self clearModified.
  7556         self clearModifiedAndRememberSavedImage.
  7538     ]
  7557     ]
  7539 !
  7558 !
  7540 
  7559 
  7541 doSaveMethodAs
  7560 doSaveMethodAs
  7542     "opens a dialog for saving current image on a class and a selector"
  7561     "opens a dialog for saving current image on a class and a selector"
  7543 
  7562 
  7544     imageEditView saveMethodAs ifTrue:[
  7563     imageEditView saveMethodAs ifTrue:[
  7545         self updateLabelsAndHistory.
  7564         self updateLabelsAndHistory.
  7546         self clearModified.
  7565         self clearModifiedAndRememberSavedImage.
  7547     ]
  7566     ]
  7548 !
  7567 !
  7549 
  7568 
  7550 doShowPixelArrayLiteralString
  7569 doShowPixelArrayLiteralString
  7551     "opens a dialog showing a literal array-like storeString
  7570     "opens a dialog showing a literal array-like storeString