ImageEditView.st
author Claus Gittinger <cg@exept.de>
Wed, 16 Oct 1996 01:57:42 +0200
changeset 255 1dfa8deddaef
parent 251 a6e8eb4d7922
child 256 4684c0a52203
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     1
"
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
     3
	      All Rights Reserved
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     4
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    11
"
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    12
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    13
ImageView subclass:#ImageEditView
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    14
	instanceVariableNames:'magnification colors magnifiedImage colorPanel'
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    15
	classVariableNames:''
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    16
	poolDictionaries:''
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    17
	category:'Views-Misc'
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    18
!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    19
255
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    20
!ImageEditView class methodsFor:'documentation'!
64
claus
parents: 61
diff changeset
    21
claus
parents: 61
diff changeset
    22
copyright
claus
parents: 61
diff changeset
    23
"
claus
parents: 61
diff changeset
    24
 COPYRIGHT (c) 1993 by Claus Gittinger
claus
parents: 61
diff changeset
    25
	      All Rights Reserved
claus
parents: 61
diff changeset
    26
claus
parents: 61
diff changeset
    27
 This software is furnished under a license and may be used
claus
parents: 61
diff changeset
    28
 only in accordance with the terms of that license and with the
claus
parents: 61
diff changeset
    29
 inclusion of the above copyright notice.   This software may not
claus
parents: 61
diff changeset
    30
 be provided or otherwise made available to, or used by, any
claus
parents: 61
diff changeset
    31
 other person.  No title to or ownership of the software is
claus
parents: 61
diff changeset
    32
 hereby transferred.
claus
parents: 61
diff changeset
    33
"
claus
parents: 61
diff changeset
    34
!
claus
parents: 61
diff changeset
    35
claus
parents: 61
diff changeset
    36
documentation
claus
parents: 61
diff changeset
    37
"
claus
parents: 61
diff changeset
    38
    This View will eventually be able to edit bitmap images.
claus
parents: 61
diff changeset
    39
    For now, it is not.
claus
parents: 61
diff changeset
    40
"
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    41
! !
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    42
7
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    43
!ImageEditView methodsFor:'accessing'!
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    44
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    45
image:anImage
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    46
    magnification := 1@1.
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    47
    magnifiedImage := nil.
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    48
    super image:anImage
255
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    49
!
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    50
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    51
magnification:aMagnificationPoint
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    52
    |nPixel savedImage|
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    53
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    54
    magnification ~= aMagnificationPoint ifTrue:[
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    55
        "show wait cursor; although magnification is fast, dithering may take a while"
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    56
        self cursor:Cursor wait.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    57
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    58
        (device visualType == #PseudoColor) ifTrue:[
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    59
            "release kept colors"
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    60
            colors := IdentitySet new.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    61
        ].
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    62
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    63
        magnification := aMagnificationPoint asPoint.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    64
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    65
        "use a magnified image, if its size wont be too big"
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    66
        magnifiedImage := nil.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    67
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    68
        "avoid slow scroll"
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    69
        savedImage := image.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    70
        image := nil.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    71
        self scrollToTopLeft.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    72
        image := savedImage.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    73
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    74
        magnification ~= (1@1) ifTrue:[
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    75
            nPixel := image width * image height * magnification x * magnification y.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    76
            nPixel <= (2000 * 2000) ifTrue:[
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    77
                Transcript showCR:'magnifying ..'; endEntry.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    78
                magnifiedImage := image magnifiedBy:magnification
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    79
            ].
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    80
        ].
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    81
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    82
        self contentsChanged.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    83
        self invalidate.
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    84
        self cursor:Cursor normal
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    85
    ]
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    86
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    87
    "Modified: 5.7.1996 / 17:44:29 / stefan"
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
    88
    "Modified: 11.7.1996 / 21:03:06 / cg"
7
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    89
! !
19b36b78ee01 *** empty log message ***
claus
parents: 5
diff changeset
    90
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    91
!ImageEditView methodsFor:'drawing'!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    92
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
    93
redrawX:x y:y width:w height:h
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
    94
    |area ih iw dotW dotH minX maxX minY maxY color last lastY runW x0 oldClip|
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    95
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    96
    image isNil ifTrue:[^ self].
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
    97
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
    98
"/    area := Rectangle left:x top:y width:w height:h.      
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
    99
"/    oldClip := self clippingRectangleOrNil.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   100
"/    self clippingRectangle:area.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   101
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   102
    (magnification = (1@1)) ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   103
        super redrawX:x y:y width:w height:h.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   104
"/        self clippingRectangle:oldClip.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   105
        ^ self
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   106
    ].
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   107
        
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   108
"/    self clear.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   109
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   110
    magnifiedImage notNil ifTrue:[
203
0ef4bbc2524f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   111
        magnifiedImage := magnifiedImage on:device.
205
96f80d06fe5a oops - care for d1 images colors
Claus Gittinger <cg@exept.de>
parents: 204
diff changeset
   112
204
e419b26888e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   113
        magnifiedImage depth == 1 ifTrue:[
205
96f80d06fe5a oops - care for d1 images colors
Claus Gittinger <cg@exept.de>
parents: 204
diff changeset
   114
            self paint:(magnifiedImage colorFromValue:1)
96f80d06fe5a oops - care for d1 images colors
Claus Gittinger <cg@exept.de>
parents: 204
diff changeset
   115
                    on:(magnifiedImage colorFromValue:0).
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   116
        ] ifFalse:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   117
            self paint:Black on:White.
204
e419b26888e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   118
        ].
e419b26888e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   119
203
0ef4bbc2524f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   120
        self function:#copy.
204
e419b26888e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   121
        self displayOpaqueForm:magnifiedImage x:margin y:margin.
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   122
"/        self clippingRectangle:oldClip.
203
0ef4bbc2524f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   123
        ^ self
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   124
    ].
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   125
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   126
"/    self clear.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   127
    ih := image height.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   128
    iw := image width.
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   129
    dotW := magnification x.
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   130
    dotH := magnification y.
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   131
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   132
    minX := x // dotW.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   133
    minY := y // dotW.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   134
    maxX := (x + w) // dotW + 1.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   135
    maxX > iw ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   136
        maxX := iw
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   137
    ].
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   138
    maxY := (y + h) // dotH + 1.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   139
    maxY > ih ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   140
        maxY := ih
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   141
    ].
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   142
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   143
    lastY := -1.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   144
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   145
    x0 := minX.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   146
    runW := 0.
204
e419b26888e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   147
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   148
    image colorsFromX:minX y:minY toX:maxX-1 y:maxY-1 do:[:x :y :color |
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   149
        y ~~ lastY ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   150
            runW ~~ 0 ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   151
                self fillRectangleX:(x0 * dotW + margin)
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   152
                                  y:(lastY * dotH + margin)
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   153
                              width:runW height:dotH.
203
0ef4bbc2524f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   154
                runW := 0.
0ef4bbc2524f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 197
diff changeset
   155
            ].
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   156
            x0 := x.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   157
            lastY := y.
204
e419b26888e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   158
        ].
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   159
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   160
        color ~~ last ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   161
            runW ~~ 0 ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   162
                self fillRectangleX:(x0 * dotW + margin)
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   163
                                  y:(y * dotH + margin)
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   164
                              width:runW height:dotH.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   165
                runW := 0.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   166
            ].
204
e419b26888e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 203
diff changeset
   167
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   168
            "/ keep colors - otherwise they might get collected & changed
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   169
            colors notNil ifTrue:[colors add:color].
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   170
            self paint:color.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   171
            last := color.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   172
            runW := 0.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   173
            x0 := x.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   174
        ].
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   175
        runW := runW + dotW
191
87e4b26cd344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   176
    ].
87e4b26cd344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   177
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   178
    runW ~~ 0 ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   179
        self fillRectangleX:(x0 * dotW + margin)
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   180
                          y:(lastY * dotH + margin)
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   181
                      width:runW height:dotH.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   182
        runW := 0.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   183
    ].
191
87e4b26cd344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 184
diff changeset
   184
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   185
"/    self clippingRectangle:oldClip
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   186
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   187
    "Modified: 11.7.1996 / 21:13:53 / cg"
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   188
! !
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   189
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   190
!ImageEditView methodsFor:'event handling'!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   191
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   192
buttonMotion:state x:x y:y
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   193
    self showColorAtX:x y:y.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   194
!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   195
167
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   196
buttonMultiPress:button x:x y:y
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   197
    button == 1 ifTrue:[
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   198
        |clr|
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   199
        clr := self getColorAtX:x y:y.
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   200
        clr inspect.
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   201
    ].
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   202
    super buttonMultiPress:button x:x y:y
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   203
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   204
    "Created: 8.5.1996 / 00:18:06 / stefan"
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   205
!
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   206
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   207
buttonPress:button x:x y:y
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   208
    button == 1 ifTrue:[
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   209
	self showColorAtX:x y:y.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   210
	^ self
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   211
    ].
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   212
    super buttonPress:button x:x y:y
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   213
!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   214
167
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   215
getColorAtX:x y:y
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   216
    |pi|
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   217
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   218
    pi := (x @ y) - margin.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   219
    pi := pi // magnification.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   220
    ((0@0 corner:image extent) containsPoint:pi) ifTrue:[
167
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   221
        ^ image at:pi.
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   222
    ].
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   223
    ^ nil
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   224
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   225
    "Created: 8.5.1996 / 00:15:55 / stefan"
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   226
!
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   227
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   228
showColorAtX:x y:y
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   229
    |clr|
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   230
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   231
    clr := self getColorAtX:x y:y.
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   232
    clr notNil ifTrue:[
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   233
        colorPanel notNil ifTrue:[
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   234
            colorPanel setColor:clr.
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   235
        ] ifFalse:[
184
13a2f3677c68 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 167
diff changeset
   236
            Transcript showCR:clr displayString
167
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   237
        ]
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   238
    ]
167
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   239
0d6d90115420 Doubleclick on pixel opens colorInspector.
Stefan Vogel <sv@exept.de>
parents: 161
diff changeset
   240
    "Modified: 8.5.1996 / 00:20:45 / stefan"
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   241
! !
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   242
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   243
!ImageEditView methodsFor:'image processing'!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   244
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   245
blurr
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   246
    self performImageOperation:#blurr withArguments:nil
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   247
!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   248
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   249
flipHorizontal
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   250
    self performImageOperation:#flipHorizontal withArguments:nil
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   251
!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   252
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   253
flipVertical
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   254
    self performImageOperation:#flipVertical withArguments:nil
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   255
!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   256
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   257
performImageOperation:operation withArguments:args
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   258
    |oldMag|
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   259
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   260
    windowGroup withCursor:Cursor wait do:[
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   261
        oldMag := magnification.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   262
        magnifiedImage := nil.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   263
        magnification := 1@1.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   264
        image perform:operation withArguments:args.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   265
        (oldMag isNil or:[oldMag = magnification]) ifTrue:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   266
            self invalidate
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   267
        ] ifFalse:[
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   268
            self magnification:oldMag.
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   269
        ]
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   270
    ]
210
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   271
1a3b06d71a03 faster redraw; care for margins
Claus Gittinger <cg@exept.de>
parents: 208
diff changeset
   272
    "Modified: 11.7.1996 / 21:03:10 / cg"
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   273
! !
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   274
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   275
!ImageEditView methodsFor:'initialization'!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   276
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   277
initialize
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   278
    super initialize.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   279
    magnification := 1@1.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   280
    colors := nil
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   281
!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   282
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   283
initializeMiddleButtonMenu
5
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   284
    |m|
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   285
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   286
    m := (PopUpMenu
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   287
	       labels:(resources array:
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   288
			  #('save as ...'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   289
			    '-'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   290
			    'magnification'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   291
"/                            'colors'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   292
			    'effects'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   293
			   ))
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   294
	    selectors:#(saveAs
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   295
			nil
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   296
			changeMagnification
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   297
"/                        showColors
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   298
			effects
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   299
		       )
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   300
	     receiver:self
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   301
		  for:self).
5
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   302
    self middleButtonMenu:m.
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   303
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   304
    m subMenuAt:#effects put:(
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   305
	PopUpMenu labels:(resources array:#(
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   306
			    'flip - vertical'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   307
			    'flip - horizontal'
11
793044d4bc90 *** empty log message ***
claus
parents: 9
diff changeset
   308
"
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   309
			    '-'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   310
			    'blurr'
11
793044d4bc90 *** empty log message ***
claus
parents: 9
diff changeset
   311
"
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   312
			   ))
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   313
	       selectors:#(
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   314
			    flipVertical
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   315
			    flipHorizontal
11
793044d4bc90 *** empty log message ***
claus
parents: 9
diff changeset
   316
"
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   317
			    nil
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   318
			    blurr
11
793044d4bc90 *** empty log message ***
claus
parents: 9
diff changeset
   319
"
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   320
			   )
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   321
		receiver:self
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   322
		     for:self
5
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   323
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   324
    ).
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   325
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   326
    "
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   327
     ImageEditView openOn:'bitmaps/SBrowser.xbm'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   328
     ImageEditView openOn:'bitmaps/garfield.gif'
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   329
    "
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   330
! !
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   331
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   332
!ImageEditView methodsFor:'menu actions'!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   333
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   334
changeMagnification
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   335
    |b|
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   336
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   337
    b := EnterBox new.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   338
    b title:'magnification (magX @ magY)'.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   339
    b okText:'apply'.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   340
    b abortText:'abort'.
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   341
    b action:[:string | self magnification:(Object readFromString:string)].
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   342
    b initialText:(magnification printString).
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   343
    b showAtPointer
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   344
!
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   345
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   346
saveAs
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   347
    "save contents into a file 
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   348
     - ask user for filename using a fileSelectionBox."
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   349
251
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   350
    |fileName i txt|
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   351
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   352
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   353
    magnifiedImage notNil ifTrue:[
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   354
        i := magnifiedImage.
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   355
        txt := 'save magnified image in:'
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   356
    ] ifFalse:[
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   357
        i := image.
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   358
        txt := 'save image in:'
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   359
    ].
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   360
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   361
    fileName := Dialog
251
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   362
                    requestFileName:(resources string:txt)
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   363
                    default:''
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   364
                    ok:(resources string:'save')
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   365
                    abort:(resources string:'abort')
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   366
                    pattern:'*.tiff'.
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   367
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   368
    fileName notNil ifTrue:[
251
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   369
        i saveOn:fileName
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   370
    ].
251
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   371
a6e8eb4d7922 save the magnified image.
Claus Gittinger <cg@exept.de>
parents: 210
diff changeset
   372
    "Modified: 10.10.1996 / 18:11:00 / cg"
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   373
!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   374
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   375
showColors
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   376
    colorPanel isNil ifTrue:[
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   377
	colorPanel := ColorPanel new
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   378
    ].
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   379
    colorPanel shown ifFalse:[
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   380
	colorPanel realize
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   381
    ]
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   382
! !
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   383
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   384
!ImageEditView methodsFor:'queries'!
5
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   385
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   386
heightOfContents
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   387
    "return the images height"
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   388
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   389
    image isNil ifTrue:[^ 0].
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   390
    ^ (image height * magnification y) rounded
5
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   391
!
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   392
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   393
widthOfContents
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   394
    "return the images width"
5
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   395
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   396
    image isNil ifTrue:[^ 0].
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   397
    ^ (image width * magnification x) rounded
5
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   398
! !
be72e6ba4822 *** empty log message ***
claus
parents: 1
diff changeset
   399
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   400
!ImageEditView methodsFor:'release'!
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   401
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   402
destroy
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   403
    colors := nil.
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   404
    magnifiedImage := nil.
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   405
    colorPanel notNil ifTrue:[
26
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   406
	colorPanel destroy.
ff148983c183 *** empty log message ***
claus
parents: 11
diff changeset
   407
	colorPanel := nil.
1
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   408
    ].
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   409
    super destroy.
c6ca7bfedf31 Initial revision
claus
parents:
diff changeset
   410
! !
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   411
255
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   412
!ImageEditView class methodsFor:'documentation'!
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   413
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   414
version
255
1dfa8deddaef checkin from browser
Claus Gittinger <cg@exept.de>
parents: 251
diff changeset
   415
    ^ '$Header: /cvs/stx/stx/libwidg2/ImageEditView.st,v 1.28 1996-10-15 23:57:42 cg Exp $'
161
5b6e284959a4 examples
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   416
! !