ImageInspectorView.st
author Claus Gittinger <cg@exept.de>
Mon, 20 Jan 2020 21:02:47 +0100
changeset 19422 c6ca1c3e0fd7
parent 18163 146b866d952d
permissions -rw-r--r--
#REFACTORING by exept class: MultiViewToolApplication added: #askForFile:default:forSave:thenDo: changed: #askForFile:default:thenDo: #askForFile:thenDo: #menuSaveAllAs #menuSaveAs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18161
0fe8f8711387 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18020
diff changeset
     1
"{ Encoding: utf8 }"
0fe8f8711387 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18020
diff changeset
     2
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
     3
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
     4
 COPYRIGHT (c) 1993 by Claus Gittinger
45
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
     5
	      All Rights Reserved
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
     6
205d53e91c52 Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
205d53e91c52 Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
205d53e91c52 Initial revision
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
205d53e91c52 Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
205d53e91c52 Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
205d53e91c52 Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
205d53e91c52 Initial revision
claus
parents:
diff changeset
    13
"
2831
0be3af401639 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2271
diff changeset
    14
"{ Package: 'stx:libtool' }"
0be3af401639 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2271
diff changeset
    15
17648
7c379ff8a354 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14795
diff changeset
    16
"{ NameSpace: Smalltalk }"
7c379ff8a354 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14795
diff changeset
    17
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    18
InspectorView subclass:#ImageInspectorView
516
f007fd40377a examples
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
    19
	instanceVariableNames:'imageView'
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
    20
	classVariableNames:'LastRatio LastExtent'
516
f007fd40377a examples
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
    21
	poolDictionaries:''
f007fd40377a examples
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
    22
	category:'Interface-Inspector'
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    23
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    24
1011
1022e80a1c60 eliminated references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
    25
!ImageInspectorView class methodsFor:'documentation'!
110
claus
parents: 107
diff changeset
    26
claus
parents: 107
diff changeset
    27
copyright
claus
parents: 107
diff changeset
    28
"
claus
parents: 107
diff changeset
    29
 COPYRIGHT (c) 1993 by Claus Gittinger
claus
parents: 107
diff changeset
    30
	      All Rights Reserved
claus
parents: 107
diff changeset
    31
claus
parents: 107
diff changeset
    32
 This software is furnished under a license and may be used
claus
parents: 107
diff changeset
    33
 only in accordance with the terms of that license and with the
claus
parents: 107
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
claus
parents: 107
diff changeset
    35
 be provided or otherwise made available to, or used by, any
claus
parents: 107
diff changeset
    36
 other person.  No title to or ownership of the software is
claus
parents: 107
diff changeset
    37
 hereby transferred.
claus
parents: 107
diff changeset
    38
"
claus
parents: 107
diff changeset
    39
!
claus
parents: 107
diff changeset
    40
128
claus
parents: 111
diff changeset
    41
documentation
claus
parents: 111
diff changeset
    42
"
claus
parents: 111
diff changeset
    43
    this class allows better inspection of images,
claus
parents: 111
diff changeset
    44
    by adding another subView, which displays the image.
claus
parents: 111
diff changeset
    45
"
110
claus
parents: 107
diff changeset
    46
! !
claus
parents: 107
diff changeset
    47
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
    48
!ImageInspectorView class methodsFor:'defaults'!
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
    49
7868
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    50
defaultTopViewExtent
13766
d2f4defdd705 Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13297
diff changeset
    51
    |def|
d2f4defdd705 Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13297
diff changeset
    52
d2f4defdd705 Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13297
diff changeset
    53
    def := LastExtent ? self defaultExtent.
d2f4defdd705 Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13297
diff changeset
    54
    ^ def min:(Screen current usableExtent)
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
    55
7868
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    56
    "Created: / 23-10-2007 / 18:58:18 / cg"
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    57
!
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    58
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    59
rememberLastExtent:anExtent
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    60
    LastExtent := anExtent
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    61
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
    62
    "Created: / 23-10-2007 / 19:09:34 / cg"
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
    63
! !
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
    64
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    65
!ImageInspectorView class methodsFor:'menu specs'!
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    66
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    67
imageMenu
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    68
    "This resource specification was automatically generated
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    69
     by the MenuEditor of ST/X."
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    70
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    71
    "Do not manually edit this!! If it is corrupted,
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    72
     the MenuEditor may not be able to read the specification."
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    73
14420
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
    74
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    75
    "
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    76
     MenuEditor new openOnClass:ImageInspectorView andSelector:#imageMenu
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    77
     (Menu new fromLiteralArrayEncoding:(ImageInspectorView imageMenu)) startUp
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    78
    "
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    79
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    80
    <resource: #menu>
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    81
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    82
    ^ 
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    83
     #(Menu
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    84
        (
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    85
         (MenuItem
14420
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
    86
            enabled: hasImage
8038
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
    87
            label: 'Edit'
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
    88
            itemValue: menuEdit
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
    89
          )
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
    90
         (MenuItem
14420
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
    91
            enabled: filenameOfImageKnown
13297
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
    92
            label: 'File Browser'
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
    93
            itemValue: menuFileBrowser
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
    94
          )
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
    95
         (MenuItem
8038
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
    96
            label: '-'
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
    97
          )
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
    98
         (MenuItem
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
    99
            label: 'Magnification...'
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   100
            itemValue: menuMagnification
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   101
          )
8672
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   102
         (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   103
            label: 'Background'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   104
            submenu: 
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   105
           (Menu
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   106
              (
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   107
               (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   108
                  label: 'White'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   109
                  itemValue: menuSetBackgroundColor:
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   110
                  argument: white
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   111
                )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   112
               (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   113
                  label: 'Grey'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   114
                  itemValue: menuSetBackgroundColor:
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   115
                  argument: grey
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   116
                )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   117
               (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   118
                  label: 'Black'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   119
                  itemValue: menuSetBackgroundColor:
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   120
                  argument: black
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   121
                )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   122
               (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   123
                  label: '-'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   124
                )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   125
               (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   126
                  label: 'Red'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   127
                  itemValue: menuSetBackgroundColor:
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   128
                  argument: red
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   129
                )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   130
               (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   131
                  label: 'Green'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   132
                  itemValue: menuSetBackgroundColor:
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   133
                  argument: green
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   134
                )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   135
               (MenuItem
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   136
                  label: 'Blue'
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   137
                  itemValue: menuSetBackgroundColor:
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   138
                  argument: blue
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   139
                )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   140
               )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   141
              nil
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   142
              nil
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   143
            )
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   144
          )
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   145
         )
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   146
        nil
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   147
        nil
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   148
      )
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   149
! !
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   150
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   151
!ImageInspectorView methodsFor:'accessing'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   152
205d53e91c52 Initial revision
claus
parents:
diff changeset
   153
inspect:anObject
8451
f81ab0ad5809 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8038
diff changeset
   154
    "set the object to be inspected"
f81ab0ad5809 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8038
diff changeset
   155
14617
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   156
    |scrollToBottom prevViewOrigin prevImageSize|
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   157
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   158
    prevViewOrigin := imageView viewOrigin.
14661
4c4fc6cda8cd class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14617
diff changeset
   159
    imageView image notNil ifTrue:[
4c4fc6cda8cd class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14617
diff changeset
   160
        prevImageSize := imageView image extent.
4c4fc6cda8cd class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14617
diff changeset
   161
    ].
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   162
    super inspect:anObject.
14350
bb47c314b586 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14349
diff changeset
   163
"/    imageView image:anObject.
bb47c314b586 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14349
diff changeset
   164
14617
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   165
    scrollToBottom := false.
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   166
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   167
"/    scrollToBottom :=
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   168
"/        anObject notNil
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   169
"/        and:[imageView image notNil 
fad83ee04023 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14420
diff changeset
   170
"/        and:[ imageView viewOrigin y + imageView image height >= imageView height ]].
14349
1639a85ef84a class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13766
diff changeset
   171
14350
bb47c314b586 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14349
diff changeset
   172
    imageView image:anObject scroll:scrollToBottom not invalidate:false.
14349
1639a85ef84a class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13766
diff changeset
   173
    scrollToBottom ifTrue:[
14350
bb47c314b586 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14349
diff changeset
   174
        imageView 
14351
691c1569babc class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14350
diff changeset
   175
            scrollTo:(0 @ ((anObject height - imageView height) max:0))
14350
bb47c314b586 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14349
diff changeset
   176
            redraw:false.
14349
1639a85ef84a class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13766
diff changeset
   177
    ].
14350
bb47c314b586 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 14349
diff changeset
   178
    imageView invalidate.
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   179
45
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   180
    "
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   181
     ImageInspectorView inspect:(Image fromScreen:(0@0 corner:800@800))
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   182
    "
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   183
! !
205d53e91c52 Initial revision
claus
parents:
diff changeset
   184
205d53e91c52 Initial revision
claus
parents:
diff changeset
   185
!ImageInspectorView methodsFor:'initialization'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   186
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   187
destroy
2236
257f587ad7dc migrate instvars 'inspectedObject' to 'object'
Claus Gittinger <cg@exept.de>
parents: 1963
diff changeset
   188
    |imageViewsSuperView|
257f587ad7dc migrate instvars 'inspectedObject' to 'object'
Claus Gittinger <cg@exept.de>
parents: 1963
diff changeset
   189
257f587ad7dc migrate instvars 'inspectedObject' to 'object'
Claus Gittinger <cg@exept.de>
parents: 1963
diff changeset
   190
    imageViewsSuperView := imageView superView.
13077
3cac4b955bbf class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 11659
diff changeset
   191
    imageViewsSuperView notNil ifTrue:[
3cac4b955bbf class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 11659
diff changeset
   192
        LastRatio := 1.0 - 
3cac4b955bbf class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 11659
diff changeset
   193
                     (imageViewsSuperView relativeCorner y - imageViewsSuperView relativeOrigin y).
3cac4b955bbf class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 11659
diff changeset
   194
    ].
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   195
    super destroy
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   196
7868
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
   197
    "Created: / 07-09-1998 / 13:13:43 / cg"
6418611891f2 default size
Claus Gittinger <cg@exept.de>
parents: 7799
diff changeset
   198
    "Modified: / 23-10-2007 / 19:10:48 / cg"
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   199
!
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   200
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   201
initialize
107
claus
parents: 52
diff changeset
   202
    |v newPanel sub|
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   203
205d53e91c52 Initial revision
claus
parents:
diff changeset
   204
    super initialize.
205d53e91c52 Initial revision
claus
parents:
diff changeset
   205
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   206
    LastRatio isNil ifTrue:[
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   207
        LastRatio := 0.3
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   208
    ].
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   209
45
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   210
    newPanel := VariableVerticalPanel in:self.
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   211
    newPanel origin:0.0 @ 0.0 corner:1.0 @ 1.0.
2831
0be3af401639 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2271
diff changeset
   212
    newPanel snapMode:#both.
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   213
45
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   214
    "
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   215
     wrap my existing subview into the new
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   216
     variable panel
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   217
    "
1011
1022e80a1c60 eliminated references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   218
    sub := self subViews first.
45
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   219
    self removeSubView:sub.
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   220
    sub origin:0.0@0.0 corner:1.0@LastRatio.
45
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   221
    newPanel addSubView:sub.
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   222
1379
9424d8fe85a7 ImageEditView replaced by ImageView in #initialize
tz
parents: 1011
diff changeset
   223
    v := HVScrollableView for:ImageView in:newPanel.
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   224
    v origin:(0.0 @ LastRatio) corner:(1.0 @ 1.0).
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   225
    imageView := v scrolledView.
18161
0fe8f8711387 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18020
diff changeset
   226
    imageView
0fe8f8711387 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18020
diff changeset
   227
        adjust:#smoothFitBig;
18163
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   228
"/        menuHolder:self; 
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   229
"/        menuMessage:#imageMenu; 
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   230
"/        menuPerformer:self;
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   231
        yourself.
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   232
1872
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   233
    LastExtent notNil ifTrue:[
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   234
        self extent:LastExtent
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   235
    ].
1c3c80a1973f remember last extent and variable frame ratio;
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
   236
45
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   237
    "
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   238
     ImageInspectorView new realize
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   239
     ImageInspectorView inspect:(Image fromFile:'bitmaps/claus.gif')
950b84ba89e6 *** empty log message ***
claus
parents: 30
diff changeset
   240
    "
1011
1022e80a1c60 eliminated references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   241
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   242
    "Modified: / 28-05-2007 / 15:15:32 / cg"
18163
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   243
    "Modified: / 28-05-2018 / 14:19:49 / Claus Gittinger"
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   244
! !
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   245
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   246
!ImageInspectorView methodsFor:'menu'!
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   247
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   248
imageMenu
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   249
    ^ self class imageMenu
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   250
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   251
    "Created: / 28-05-2007 / 15:12:56 / cg"
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   252
!
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   253
8038
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
   254
menuEdit
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
   255
    inspectedObject edit
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
   256
!
4283cb9e492a +menuEdit
Claus Gittinger <cg@exept.de>
parents: 7875
diff changeset
   257
13297
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
   258
menuFileBrowser
17648
7c379ff8a354 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14795
diff changeset
   259
    FileBrowser default
13297
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
   260
        openOn:inspectedObject fileName
17648
7c379ff8a354 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14795
diff changeset
   261
7c379ff8a354 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14795
diff changeset
   262
    "Modified: / 01-09-2017 / 14:05:27 / cg"
13297
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
   263
!
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
   264
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   265
menuMagnification
17687
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   266
    "ask for and change the magnification (with optional smoothing)"
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   267
    
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   268
    |mag smooth magImage|
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   269
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   270
    smooth := false asValue.
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   271
17687
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   272
    mag := (imageView image width / inspectedObject width).
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   273
    
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   274
    Dialog withCheckBoxFor:smooth labelled:'Smooth' do:[
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   275
        mag := Dialog 
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   276
                request:'Magnify by:' 
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   277
                initialAnswer:mag 
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   278
                list:#('0.25' '0.5' '1' '2' '4' '8').
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   279
    ].
7875
8bc00cd0c2a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
   280
    mag := Number readFrom:mag onError:[nil].
8bc00cd0c2a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
   281
    mag notNil ifTrue:[
18163
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   282
        imageView forceSmoothing:smooth value.
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   283
        imageView magnificationFactor:mag.
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   284
"/        imageView withExecuteCursorDo:[
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   285
"/            smooth value ifTrue:[
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   286
"/                magImage := inspectedObject hardSmoothingMagnifiedBy:mag
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   287
"/            ] ifFalse:[
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   288
"/                magImage := inspectedObject magnifiedBy:mag
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   289
"/            ].
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   290
"/        ].
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   291
"/        imageView adjust:#topLeft.
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   292
"/        imageView image:magImage.
7875
8bc00cd0c2a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
   293
    ]
7799
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   294
89bbb32c1200 +magnify
Claus Gittinger <cg@exept.de>
parents: 2831
diff changeset
   295
    "Created: / 28-05-2007 / 15:14:35 / cg"
17687
01e713d1af75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17648
diff changeset
   296
    "Modified: / 10-09-2017 / 12:30:56 / cg"
18163
146b866d952d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18162
diff changeset
   297
    "Modified: / 28-05-2018 / 14:18:31 / Claus Gittinger"
8672
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   298
!
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   299
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   300
menuSetBackgroundColor:colorNameSymbol
b407d6ab29da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8451
diff changeset
   301
    imageView backgroundColor:(Color name:colorNameSymbol)
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   302
! !
516
f007fd40377a examples
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   303
2271
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   304
!ImageInspectorView methodsFor:'queries'!
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   305
13297
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
   306
filenameOfImageKnown
14420
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   307
    ^ [ inspectedObject isImage and:[inspectedObject fileName notNil] ]
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   308
!
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   309
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   310
hasImage
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   311
    "do we inspect an image and not a Form?"
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   312
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   313
    ^ inspectedObject isImage
13297
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
   314
!
ea807c25ceb9 class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 13077
diff changeset
   315
2271
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   316
labelFor:anObject
11659
dac2f285a647 changed: #labelFor:
Claus Gittinger <cg@exept.de>
parents: 9184
diff changeset
   317
    |l fn|
2271
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   318
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   319
    l := super labelFor:anObject.
14420
250bcc5188a6 class: ImageInspectorView
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
   320
    (anObject isImage and:[(fn := anObject fileName) notNil]) ifTrue:[
11659
dac2f285a647 changed: #labelFor:
Claus Gittinger <cg@exept.de>
parents: 9184
diff changeset
   321
        l := l , ' (''' , fn asFilename baseName, ''')'
2271
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   322
    ].
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   323
    ^ l
11659
dac2f285a647 changed: #labelFor:
Claus Gittinger <cg@exept.de>
parents: 9184
diff changeset
   324
dac2f285a647 changed: #labelFor:
Claus Gittinger <cg@exept.de>
parents: 9184
diff changeset
   325
    "Modified: / 25-07-2012 / 12:53:13 / cg"
2271
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   326
! !
0cf238543cb1 fixed and improved fieldNameList generation & use.
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   327
1011
1022e80a1c60 eliminated references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 647
diff changeset
   328
!ImageInspectorView class methodsFor:'documentation'!
516
f007fd40377a examples
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   329
f007fd40377a examples
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   330
version
17648
7c379ff8a354 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14795
diff changeset
   331
    ^ '$Header$'
8836
73f01b9e58ec changed:
Claus Gittinger <cg@exept.de>
parents: 8672
diff changeset
   332
!
73f01b9e58ec changed:
Claus Gittinger <cg@exept.de>
parents: 8672
diff changeset
   333
73f01b9e58ec changed:
Claus Gittinger <cg@exept.de>
parents: 8672
diff changeset
   334
version_CVS
17648
7c379ff8a354 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14795
diff changeset
   335
    ^ '$Header$'
516
f007fd40377a examples
Claus Gittinger <cg@exept.de>
parents: 165
diff changeset
   336
! !
13077
3cac4b955bbf class: ImageInspectorView
Claus Gittinger <cg@exept.de>
parents: 11659
diff changeset
   337