UISpecificationTool.st
author Claus Gittinger <cg@exept.de>
Wed, 25 Jan 2006 12:27:59 +0100
changeset 1960 62c7258f3c31
parent 1956 65cc475656d3
child 1963 a0c51ed97fc3
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     1
"
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     2
 COPYRIGHT (c) 1995 by eXept Software AG
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     3
              All Rights Reserved
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     4
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     5
 This software is furnished under a license and may be used
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    10
 hereby transferred.
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    11
"
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    12
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    13
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    14
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    15
1386
5b562fd44e68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1364
diff changeset
    16
"{ Package: 'stx:libtool2' }"
5b562fd44e68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1364
diff changeset
    17
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    18
ApplicationModel subclass:#UISpecificationTool
759
f0c325edcc6c add scroller
ca
parents: 752
diff changeset
    19
	instanceVariableNames:'modifiedHolder aspects specification selection specChannel
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    20
		buildInView listOfSpecViews'
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    21
	classVariableNames:''
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    22
	poolDictionaries:''
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    23
	category:'Interface-UIPainter'
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    24
!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    25
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    26
ViewScroller subclass:#BuildInView
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
    27
	instanceVariableNames:''
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    28
	classVariableNames:''
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    29
	poolDictionaries:''
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    30
	privateIn:UISpecificationTool
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    31
!
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    32
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    33
!UISpecificationTool class methodsFor:'documentation'!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    34
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    35
copyright
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    36
"
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    37
 COPYRIGHT (c) 1995 by eXept Software AG
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    38
              All Rights Reserved
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    39
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    40
 This software is furnished under a license and may be used
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    41
 only in accordance with the terms of that license and with the
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    42
 inclusion of the above copyright notice.   This software may not
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    43
 be provided or otherwise made available to, or used by, any
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    44
 other person.  No title to or ownership of the software is
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    45
 hereby transferred.
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    46
"
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    47
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    48
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    49
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    50
!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    51
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    52
documentation
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    53
"
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    54
    used by the UIPainter to manipulate the specifications of the selected component
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    55
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    56
    [author:]
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    57
        Claus Atzkern
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    58
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    59
    [see also:]
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    60
        UIPainter
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    61
        UILayoutTool
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    62
        UIHelpTool
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    63
"
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    64
! !
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    65
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    66
!UISpecificationTool class methodsFor:'interface specs'!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    67
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    68
windowSpec
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    69
    "This resource specification was automatically generated
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    70
     by the UIPainter of ST/X."
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    71
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    72
    "Do not manually edit this!! If it is corrupted,
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    73
     the UIPainter may not be able to read the specification."
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    74
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    75
    "
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    76
     UIPainter new openOnClass:UISpecificationTool andSelector:#windowSpec
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    77
     UISpecificationTool new openInterface:#windowSpec
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    78
     UISpecificationTool open
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    79
    "
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    80
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    81
    <resource: #canvas>
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
    82
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    83
    ^ 
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    84
     #(#FullSpec
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    85
        #name: #windowSpec
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    86
        #window: 
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    87
       #(#WindowSpec
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    88
          #label: 'unnamed canvas'
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    89
          #name: 'unnamed canvas'
1313
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
    90
          #bounds: #(#Rectangle 12 22 312 322)
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    91
        )
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    92
        #component: 
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    93
       #(#SpecCollection
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    94
          #collection: #(
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    95
           #(#ArbitraryComponentSpec
1313
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
    96
              #name: 'BuildInView'
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
    97
              #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
1313
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
    98
              #hasVerticalScrollBar: true
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
    99
              #miniScrollerVertical: true
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   100
              #autoHideScrollBars: true
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   101
              #hasBorder: false
1313
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   102
              #component: #buildInView
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   103
            )
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   104
           )
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   105
         
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   106
        )
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   107
      )
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   108
! !
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   109
1781
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   110
!UISpecificationTool class methodsFor:'resources'!
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   111
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   112
classResources
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   113
    "my translations are found in the UIPainter classes resources"
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   114
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   115
    ^ UIPainter classResources 
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   116
! !
d67090b1ad57 resources shared with UIPainter class
Claus Gittinger <cg@exept.de>
parents: 1677
diff changeset
   117
1331
fa88e14d026d help texts
Claus Gittinger <cg@exept.de>
parents: 1328
diff changeset
   118
!UISpecificationTool methodsFor:'accessing-channels'!
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   119
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   120
modifiedHolder:aValueHolder
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   121
    "set the value holder set to true in case of modifying attributes
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   122
    "
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   123
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   124
    modifiedHolder removeDependent:self.
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   125
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   126
    (modifiedHolder := aValueHolder) notNil ifTrue:[
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   127
        modifiedHolder addDependent:self.
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   128
    ].
1063
9e710dbc7c92 inputFields use modified & acceptChannels
Claus Gittinger <cg@exept.de>
parents: 1051
diff changeset
   129
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   130
! !
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   131
1331
fa88e14d026d help texts
Claus Gittinger <cg@exept.de>
parents: 1328
diff changeset
   132
!UISpecificationTool methodsFor:'accessing-specification'!
1063
9e710dbc7c92 inputFields use modified & acceptChannels
Claus Gittinger <cg@exept.de>
parents: 1051
diff changeset
   133
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   134
specification
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   135
    "gets current edit specification
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   136
    "
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   137
    ^ specification
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   138
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   139
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   140
!
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   141
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   142
specification:aSpec
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   143
    "sets current edit specification
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   144
    "
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   145
    aSpec notNil ifTrue:[
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   146
        "/ same type of spec - simply change the spec;  no need to setup everything
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   147
        specification class == aSpec class ifTrue:[
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   148
            specification := aSpec.
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   149
            specChannel value:specification.
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   150
          ^ self
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   151
        ]
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   152
    ].
428
f87cca33874e remove dependencies from builder when selection changed
ca
parents: 367
diff changeset
   153
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   154
    "/ release resources
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   155
    specChannel release.
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   156
    aspects     release.
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   157
    selection := listOfSpecViews := nil.
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   158
    buildInView destroyAllClientViews.
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   159
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   160
    (specification := aSpec) isNil ifTrue:[
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   161
        aspects := specChannel := nil.
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   162
      ^ self
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   163
    ].
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   164
    
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   165
    "/ some tricky specs need the builder during the addBindings phase.
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   166
    "/ This is passed down in a special UIBindingsDictionary
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   167
    "/ (remain backward compatible)
536
3991e37ec19f pass special dictionary as bindings-environmnt
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   168
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   169
    aspects := UISpecification newBindingsDictionary.
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   170
    aspects builder:builder.
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   171
    aspects at:#modifiedChannel put:modifiedHolder.
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   172
    aspects at:#acceptChannel   put:self acceptChannel.
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   173
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   174
    specChannel := specification asValue.
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   175
    specification class addBindingsTo:aspects for:specification channel:specChannel.
536
3991e37ec19f pass special dictionary as bindings-environmnt
Claus Gittinger <cg@exept.de>
parents: 428
diff changeset
   176
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   177
    "/ arrange for being notified, if any aspect changes
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   178
    aspects do:[:el| el addDependent:self ].
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   179
! !
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   180
364
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   181
!UISpecificationTool methodsFor:'actions'!
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   182
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   183
setMaxExtent
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   184
    "set the windows maxExtent from its current extent"
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   185
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   186
    |canvas currentExtent|
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   187
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   188
    canvas := self masterApplication painter topView.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   189
    currentExtent := canvas extent.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   190
    (self aspectFor:#maxX) value:currentExtent x.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   191
    (self aspectFor:#maxY) value:currentExtent y.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   192
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   193
    "Modified: / 29.10.1997 / 18:29:17 / cg"
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   194
!
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   195
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   196
setMinExtent
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   197
    "set the windows minExtent from its current extent"
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   198
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   199
    |canvas currentExtent|
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   200
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   201
    canvas := self masterApplication painter topView.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   202
    currentExtent := canvas extent.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   203
    (self aspectFor:#minX) value:currentExtent x.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   204
    (self aspectFor:#minY) value:currentExtent y.
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   205
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   206
    "Created: / 29.10.1997 / 18:17:55 / cg"
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   207
    "Modified: / 29.10.1997 / 18:28:53 / cg"
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   208
! !
c175e197f050 setMin / setMax
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   209
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   210
!UISpecificationTool methodsFor:'bindings'!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   211
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   212
acceptChannel
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   213
    "return the value of the instance variable 'acceptChannel' (automatically generated)"
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   214
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   215
    ^ masterApplication acceptChannel
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   216
!
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   217
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   218
aspectFor:aKey
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   219
    "returns aspect for a key or nil
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   220
    "
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   221
    aspects notNil ifTrue:[
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   222
        ^ aspects at:aKey ifAbsent:nil
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   223
    ].
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   224
    ^ super aspectFor:aKey
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   225
428
f87cca33874e remove dependencies from builder when selection changed
ca
parents: 367
diff changeset
   226
!
f87cca33874e remove dependencies from builder when selection changed
ca
parents: 367
diff changeset
   227
1313
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   228
buildInView
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   229
    ^ buildInView
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   230
!
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   231
584
351914fcc5a4 Define #specificationFor: to fetch subspecifications and
Stefan Vogel <sv@exept.de>
parents: 580
diff changeset
   232
specificationFor:aKey
351914fcc5a4 Define #specificationFor: to fetch subspecifications and
Stefan Vogel <sv@exept.de>
parents: 580
diff changeset
   233
    "this is called if our current specification contains 
351914fcc5a4 Define #specificationFor: to fetch subspecifications and
Stefan Vogel <sv@exept.de>
parents: 580
diff changeset
   234
     subspecifications or subcanvases.
351914fcc5a4 Define #specificationFor: to fetch subspecifications and
Stefan Vogel <sv@exept.de>
parents: 580
diff changeset
   235
     Get the subspecification from the current specification"
351914fcc5a4 Define #specificationFor: to fetch subspecifications and
Stefan Vogel <sv@exept.de>
parents: 580
diff changeset
   236
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   237
    specification notNil ifTrue:[
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   238
        ^ specification class perform:aKey ifNotUnderstood:nil
584
351914fcc5a4 Define #specificationFor: to fetch subspecifications and
Stefan Vogel <sv@exept.de>
parents: 580
diff changeset
   239
    ].
351914fcc5a4 Define #specificationFor: to fetch subspecifications and
Stefan Vogel <sv@exept.de>
parents: 580
diff changeset
   240
    ^ nil
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   241
! !
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   242
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   243
!UISpecificationTool methodsFor:'change & update'!
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   244
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   245
update
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   246
    "reload specification
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   247
    "
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   248
    specChannel notNil ifTrue:[
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   249
        specChannel value:specification.
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   250
    ]
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   251
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   252
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   253
!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   254
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   255
update:something with:someArgument from:someone
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   256
    "any attribute changed its state in the current specification
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   257
    "
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   258
    someone ~~ modifiedHolder ifTrue:[
893
09ea254a9fda comments
Claus Gittinger <cg@exept.de>
parents: 876
diff changeset
   259
        "/ any in the spec has changed.
09ea254a9fda comments
Claus Gittinger <cg@exept.de>
parents: 876
diff changeset
   260
        "/ update my modified holders value
09ea254a9fda comments
Claus Gittinger <cg@exept.de>
parents: 876
diff changeset
   261
1071
560a9eb1a5d8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
   262
        modifiedHolder value:true
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   263
    ]
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   264
893
09ea254a9fda comments
Claus Gittinger <cg@exept.de>
parents: 876
diff changeset
   265
    "Modified: / 16.7.1998 / 19:25:59 / cg"
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   266
! !
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   267
1956
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   268
!UISpecificationTool methodsFor:'help'!
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   269
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   270
basicHelpTextForKey:aKey
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   271
    "activeHelp interface: return some help text for a key.
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   272
     Redefined to ask the current components Spec first."
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   273
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   274
    |helpText|
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   275
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   276
    "/ first, ask the spec
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   277
    helpText := (specification helpSpec) at:aKey ifAbsent:nil.
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   278
"/ DEBUG:    helpText isNil ifTrue:[^ 'No help for key: ', aKey ].
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   279
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   280
    helpText isNil ifTrue:[
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   281
        helpText := super basicHelpTextForKey:aKey.
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   282
    ].
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   283
"/ DEBUG:    ^ aKey , ': ' , helpText
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   284
    ^ helpText
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   285
! !
65cc475656d3 help texts
Claus Gittinger <cg@exept.de>
parents: 1941
diff changeset
   286
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   287
!UISpecificationTool methodsFor:'initialization'!
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   288
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   289
initialize
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   290
    super initialize.
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   291
    buildInView := BuildInView new.
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   292
    buildInView keepViews:true.
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   293
! !
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   294
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   295
!UISpecificationTool methodsFor:'selection'!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   296
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   297
selection:something
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   298
    "selection changed
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   299
    "
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   300
    |slices index spec window|
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   301
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   302
    specification notNil ifTrue:[
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   303
        slices := specification class slices.
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   304
        index  := slices findFirst:[:aSlice| aSlice first = something ].
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   305
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   306
        index ~~ 0 ifTrue:[
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   307
            spec := specification class perform:((slices at:index) last)
428
f87cca33874e remove dependencies from builder when selection changed
ca
parents: 367
diff changeset
   308
        ]
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   309
    ].
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   310
172
10e8e0510baa helpSpec no longer under UIPainter
ca
parents: 164
diff changeset
   311
    spec ~= selection ifTrue:[
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   312
        (selection := spec) notNil ifTrue:[
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   313
            listOfSpecViews isNil ifTrue:[
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   314
                listOfSpecViews := Array new:(slices size).
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   315
            ] ifFalse:[
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   316
                window := listOfSpecViews at:index
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   317
            ].
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   318
            window isNil ifTrue:[
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   319
                builder buildFromSpec:spec in:(window := SimpleView new).
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   320
                listOfSpecViews at:index put:window.
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   321
            ].
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   322
        ].
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   323
        buildInView scrolledView:window.
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   324
    ].
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   325
! !
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   326
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   327
!UISpecificationTool::BuildInView methodsFor:'accessing'!
759
f0c325edcc6c add scroller
ca
parents: 752
diff changeset
   328
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   329
scrolledView:aView
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   330
    "set the view to be scrolled"
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   331
    |wrapper y|
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   332
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   333
    scrolledView == aView ifTrue:[^ self].
759
f0c325edcc6c add scroller
ca
parents: 752
diff changeset
   334
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   335
    scrolledView notNil ifTrue:[scrolledView beInvisible].
759
f0c325edcc6c add scroller
ca
parents: 752
diff changeset
   336
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   337
    scrolledView := aView.
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   338
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   339
    (scrolledView notNil and:[scrolledView superView ~~ frame]) ifTrue:[
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   340
        scrolledView borderWidth:0; level:0.
845
146b3f78afcb we dont want any 3D effect for the scrolled view
Claus Gittinger <cg@exept.de>
parents: 837
diff changeset
   341
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   342
        frame addSubView:scrolledView.
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   343
1351
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   344
        scrolledView subViews size == 1 ifTrue:[
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   345
            wrapper := scrolledView subViews first.
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   346
            wrapper isScrollWrapper ifTrue:[
1351
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   347
                "/ give it a full-relative size, and let it do
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   348
                "/ the scrolling itself.
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   349
                y := 1.0
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   350
            ]
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   351
        ].
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   352
        y isNil ifTrue:[
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   353
            y := scrolledView preferredExtent y
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   354
        ].
811686e8acab no additional scrollBar, if embedded view is itself a scrollable
Claus Gittinger <cg@exept.de>
parents: 1344
diff changeset
   355
        scrolledView origin:0@0 corner:1.0 @ y.
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   356
        scrolledView allViewBackground:(self viewBackground).
759
f0c325edcc6c add scroller
ca
parents: 752
diff changeset
   357
    ].
845
146b3f78afcb we dont want any 3D effect for the scrolled view
Claus Gittinger <cg@exept.de>
parents: 837
diff changeset
   358
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   359
    realized ifTrue:[
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   360
        scrolledView ifNotNil:[scrolledView beVisible].
1307
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   361
        self sizeChanged:nil.
52898ecde37d tabing: use map/unmap insteat of raise
ca
parents: 1296
diff changeset
   362
    ].
1573
bf9c5ca8e48a reuse functionality of changed ViewScroller
ca
parents: 1505
diff changeset
   363
    model value:scrolledView.
759
f0c325edcc6c add scroller
ca
parents: 752
diff changeset
   364
! !
f0c325edcc6c add scroller
ca
parents: 752
diff changeset
   365
1313
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   366
!UISpecificationTool::BuildInView methodsFor:'initialization'!
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   367
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   368
level:aLevel
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   369
    super level:0
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   370
!
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   371
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   372
realize
1315
8722cfe3cce1 checkin from browser
ca
parents: 1313
diff changeset
   373
1313
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   374
    super realize.
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   375
    superView notNil ifTrue:[superView level:0].
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   376
! !
95ef9b917d82 no level for scrollable windowSpec ..
ca
parents: 1307
diff changeset
   377
164
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   378
!UISpecificationTool class methodsFor:'documentation'!
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   379
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   380
version
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   381
    ^ '$Header$'
1bc26edd0d3e intitial checkin
ca
parents:
diff changeset
   382
! !