SubCanvas.st
author Claus Gittinger <cg@exept.de>
Mon, 13 Jan 2003 18:18:54 +0100
changeset 2426 c57f84d6ba9e
parent 2404 2b7591c982ac
child 2427 43e68ab02e63
permissions -rw-r--r--
must send postOpenAsSubcanvas, when the application is changed (for example via valueHoder).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
970
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     1
"
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     2
 COPYRIGHT (c) 1998 by eXept Software AG
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     3
              All Rights Reserved
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     4
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     5
 This software is furnished under a license and may be used
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     6
 only in accordance with the terms of that license and with the
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     8
 be provided or otherwise made available to, or used by, any
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
     9
 other person.  No title to or ownership of the software is
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    10
 hereby transferred.
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    11
"
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    12
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    13
1818
fe99c5c721e9 category changes
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
    14
"{ Package: 'stx:libwidg2' }"
fe99c5c721e9 category changes
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
    15
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
ScrollableView subclass:#SubCanvas
1912
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
    17
	instanceVariableNames:'builder spec client clientHolder specHolder clientView
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
    18
		clientViewIsScrolled lateBuild useApplicationSubView
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
    19
		keepClientView useOwnBuilder'
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
    20
	classVariableNames:''
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
    21
	poolDictionaries:''
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
    22
	category:'Views-Basic'
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
970
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    25
!SubCanvas class methodsFor:'documentation'!
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    26
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    27
copyright
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    28
"
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    29
 COPYRIGHT (c) 1998 by eXept Software AG
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    30
              All Rights Reserved
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    31
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    32
 This software is furnished under a license and may be used
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    33
 only in accordance with the terms of that license and with the
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    35
 be provided or otherwise made available to, or used by, any
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    36
 other person.  No title to or ownership of the software is
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    37
 hereby transferred.
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    38
"
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    39
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    40
!
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    41
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    42
documentation
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    43
"
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    44
    a view for a subApplication.
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    45
1895
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    46
    Made to be VW compatible as much as possible (try opening a RefactoringBrowser ...).
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    47
    However, the default setup is not very useful, to embedd arbitrary applications
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    48
    which are meant to be separate stand-alone applications.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    49
    Play with the settings:
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    50
        keepClientView          (default: true)
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    51
        useApplicationSubView   (default: false)
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    52
        useOwnBuilder           (default: false)
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    53
970
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    54
    [author:]
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    55
        Claus Atzkern
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    56
"
8cbadf2b9825 also send #postBuildWith: to the app.
Claus Gittinger <cg@exept.de>
parents: 819
diff changeset
    57
! !
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
1414
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    59
!SubCanvas class methodsFor:'defaults'!
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    60
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    61
defaultHorizontalScrollable
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    62
    ^ false
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    63
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    64
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    65
!
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    66
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    67
defaultVerticalScrollable
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    68
    ^ false
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    69
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    70
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    71
! !
faf0465c333b defaults for hasHVScrollbar now defined in a class method.
tm
parents: 1412
diff changeset
    72
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!SubCanvas methodsFor:'accessing'!
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
    75
builder
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
    76
    "return the value of the instance variable 'builder' (automatically generated)"
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
    78
    ^ builder
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
    79
!
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
    81
client
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
    82
    "return the value of the instance variable 'client' (automatically generated)"
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
    84
    ^ client
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
    85
!
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
    87
client:anApplication spec:aWindowSpecOrSpecSymbol builder:aBuilder
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    "release existing components and generate new components from
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
     the given windowSpec, using the given builder."
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
2426
c57f84d6ba9e must send postOpenAsSubcanvas, when the application is changed
Claus Gittinger <cg@exept.de>
parents: 2404
diff changeset
    91
    |oldClient myApp|
1471
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
    92
2426
c57f84d6ba9e must send postOpenAsSubcanvas, when the application is changed
Claus Gittinger <cg@exept.de>
parents: 2404
diff changeset
    93
    oldClient := client.
1686
bafa16adbf14 must release client first,
ca
parents: 1664
diff changeset
    94
    (client notNil and:[client ~~ anApplication]) ifTrue:[
bafa16adbf14 must release client first,
ca
parents: 1664
diff changeset
    95
        client releaseAsSubCanvas.
bafa16adbf14 must release client first,
ca
parents: 1664
diff changeset
    96
        client := nil.
bafa16adbf14 must release client first,
ca
parents: 1664
diff changeset
    97
    ].
bafa16adbf14 must release client first,
ca
parents: 1664
diff changeset
    98
1546
452132649648 Moved #client: and #client:spec: to SimpleView.
Stefan Vogel <sv@exept.de>
parents: 1471
diff changeset
    99
    (builder := aBuilder) isNil ifTrue:[
1846
e90341acd040 comment
Claus Gittinger <cg@exept.de>
parents: 1818
diff changeset
   100
        builder := anApplication perform:#builder ifNotUnderstood:[UIBuilder new]
1546
452132649648 Moved #client: and #client:spec: to SimpleView.
Stefan Vogel <sv@exept.de>
parents: 1471
diff changeset
   101
    ].
452132649648 Moved #client: and #client:spec: to SimpleView.
Stefan Vogel <sv@exept.de>
parents: 1471
diff changeset
   102
452132649648 Moved #client: and #client:spec: to SimpleView.
Stefan Vogel <sv@exept.de>
parents: 1471
diff changeset
   103
    spec := aWindowSpecOrSpecSymbol.
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   104
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   105
    "/ check for master application
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   106
    (anApplication notNil and:[anApplication masterApplication isNil]) ifTrue:[
1471
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   107
        myApp := self application.
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   108
        myApp ~~ anApplication ifTrue:[
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   109
            anApplication masterApplication:myApp
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   110
        ]
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   111
    ].
1471
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   112
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   113
    client := anApplication.
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   114
    self rebuild.
2426
c57f84d6ba9e must send postOpenAsSubcanvas, when the application is changed
Claus Gittinger <cg@exept.de>
parents: 2404
diff changeset
   115
    (client notNil and:[client ~~ oldClient]) ifTrue:[
c57f84d6ba9e must send postOpenAsSubcanvas, when the application is changed
Claus Gittinger <cg@exept.de>
parents: 2404
diff changeset
   116
        client postOpenAsSubcanvasWith:aBuilder
c57f84d6ba9e must send postOpenAsSubcanvas, when the application is changed
Claus Gittinger <cg@exept.de>
parents: 2404
diff changeset
   117
    ].
1471
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   118
    ^ builder
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   119
!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   120
1412
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   121
makeClientViewScrollable:aBoolean
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   122
    |vs|
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   123
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   124
    aBoolean ~~ clientViewIsScrolled ifTrue:[
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   125
        clientView isNil ifTrue:[
1895
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   126
            useApplicationSubView ifTrue:[
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   127
                clientView := ApplicationSubView new.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   128
            ] ifFalse:[
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   129
                clientView := View new.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   130
            ]
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   131
        ].
1412
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   132
        aBoolean ifTrue:[
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   133
            self scrolledView:(vs := ViewScroller new).
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   134
            vs scrolledView:clientView.
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   135
        ] ifFalse:[
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   136
            self scrolledView:clientView.
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   137
        ].
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   138
        clientViewIsScrolled := aBoolean.
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   139
    ]
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   140
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   141
    "Modified: / 30.1.2000 / 21:36:29 / cg"
1412
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   142
!
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   143
1450
9994adae5c1c checkin from browser
tm
parents: 1414
diff changeset
   144
setClient:anApplicationModel
9994adae5c1c checkin from browser
tm
parents: 1414
diff changeset
   145
    "set the client - do NOT rebuild"
9994adae5c1c checkin from browser
tm
parents: 1414
diff changeset
   146
9994adae5c1c checkin from browser
tm
parents: 1414
diff changeset
   147
    client := anApplicationModel 
9994adae5c1c checkin from browser
tm
parents: 1414
diff changeset
   148
!
9994adae5c1c checkin from browser
tm
parents: 1414
diff changeset
   149
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   150
spec
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   151
    "return the value of the instance variable 'spec' (automatically generated)"
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   152
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   153
    ^ spec
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   154
!
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   155
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   156
spec:something
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   157
    "set the value of the instance variable 'spec' (automatically generated)"
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   158
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   159
    spec := something.
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   160
    self rebuild.
819
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   161
!
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   162
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   163
widget
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   164
    "ST80 compatibility. 
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   165
     I am my own widget"
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   166
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   167
    ^ self
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   168
8450cb2ba595 Widget of SubCanvas is self
Stefan Vogel <sv@exept.de>
parents: 609
diff changeset
   169
    "Created: / 10.3.1998 / 16:20:52 / stefan"
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   170
! !
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   171
2404
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
   172
!SubCanvas methodsFor:'accessing-canvasView handling'!
1895
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   173
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   174
keepClientView:aBoolean
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   175
    keepClientView := aBoolean
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   176
!
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   177
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   178
useApplicationSubView:aBoolean
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   179
    useApplicationSubView := aBoolean
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   180
!
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   181
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   182
useOwnBuilder:aBoolean
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   183
    useOwnBuilder := aBoolean
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   184
! !
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   185
1818
fe99c5c721e9 category changes
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   186
!SubCanvas methodsFor:'accessing-channels'!
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   187
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   188
clientHolder
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   189
    ^ clientHolder
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   190
!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   191
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   192
clientHolder:aValueHolder
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   193
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   194
    clientHolder notNil ifTrue:[
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   195
        clientHolder removeDependent:self
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   196
    ].
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   197
    (clientHolder := aValueHolder) notNil ifTrue:[
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   198
        clientHolder addDependent:self
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   199
    ].
557
7cf5f021983d add method:
ca
parents: 554
diff changeset
   200
    self updateFromChannels
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   201
!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   202
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   203
clientView:aView
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   204
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   205
    clientView notNil ifTrue:[
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   206
        clientView destroy
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   207
    ].
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   208
    clientView := aView
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   209
!
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   210
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   211
specHolder
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   212
    ^ specHolder
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   213
!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   214
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   215
specHolder:aValueHolder
1905
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   216
    |oldSpec|
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   217
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   218
    specHolder notNil ifTrue:[
1905
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   219
        oldSpec := specHolder value.
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   220
        specHolder removeDependent:self
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   221
    ].
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   222
    (specHolder := aValueHolder) notNil ifTrue:[
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   223
        specHolder addDependent:self
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   224
    ].
1905
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   225
    oldSpec ~~ specHolder value ifTrue:[
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   226
        self updateFromChannels
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   227
    ]
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   228
! !
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   229
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   230
!SubCanvas methodsFor:'building'!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   231
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   232
XXrebuild
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   233
    "rebuild
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   234
    "
2083
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   235
"/    | subSpec savedView builderClass boundsOrLayout|
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   236
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   237
"/    superView isNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   238
"/        lateBuild := true.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   239
"/        ^ self
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   240
"/    ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   241
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   242
"/    clientView notNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   243
"/        clientView destroySubViews
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   244
"/    ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   245
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   246
"/    spec notNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   247
"/        (subSpec := spec) isSymbol ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   248
"/            client isNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   249
"/                'SubCanvas [warning]: no client - cannot build spec' infoPrintCR.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   250
"/                ^ self
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   251
"/            ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   252
"/            (subSpec := client class interfaceSpecFor:spec) isNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   253
"/                "/ Transcript showCR:'SubCanvas: nil spec'.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   254
"/                ^ self
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   255
"/            ]
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   256
"/        ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   257
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   258
"/        builder isNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   259
"/            client isNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   260
"/                builderClass := UIBuilder
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   261
"/            ] ifFalse:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   262
"/                builderClass := client builderClass
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   263
"/            ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   264
"/            builder := builderClass new.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   265
"/        ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   266
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   267
"/        "/ old:
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   268
"/"/         builder buildFromSpec:subSpec in:clientView.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   269
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   270
"/        "/ new (let app know (somehow) that this is a build
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   271
"/        "/ for a subcanvas (i.e. it can redefine the buildSubCanvase-method
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   272
"/        "/:
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   273
"/        savedView := builder window.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   274
"/        builder window:clientView.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   275
"/        [
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   276
"/            client buildSubCanvas:subSpec withBuilder:builder.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   277
"/        ] ensure:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   278
"/            builder window:savedView.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   279
"/        ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   280
"/        clientViewIsScrolled ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   281
"/            boundsOrLayout := builder spec window layout.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   282
"/            boundsOrLayout isNil ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   283
"/                 boundsOrLayout := builder spec window bounds
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   284
"/            ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   285
"/            clientView
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   286
"/                extent:(boundsOrLayout rectangleRelativeTo:self bounds preferred:nil) extent.
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   287
"/        ].
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   288
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   289
"/        self realized ifTrue:[
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   290
"/            clientView realizeAllSubViews
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   291
"/        ]
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   292
"/    ]
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   293
"/
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   294
"/    "Modified: / 20.6.1998 / 14:29:00 / cg"
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   295
!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   296
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   297
container:aView
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   298
    super container:aView.
1846
e90341acd040 comment
Claus Gittinger <cg@exept.de>
parents: 1818
diff changeset
   299
e90341acd040 comment
Claus Gittinger <cg@exept.de>
parents: 1818
diff changeset
   300
    "/ my builder can only build the components, when I have a container
e90341acd040 comment
Claus Gittinger <cg@exept.de>
parents: 1818
diff changeset
   301
    "/ lateBuild is set, if the spec was set some time ago, when I had no container
e90341acd040 comment
Claus Gittinger <cg@exept.de>
parents: 1818
diff changeset
   302
    "/ Now, we know where to build the GUI ...
e90341acd040 comment
Claus Gittinger <cg@exept.de>
parents: 1818
diff changeset
   303
    "/ ... and must hurry up to create the widgets.
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   304
    lateBuild == true ifTrue:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   305
        lateBuild := false.
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   306
        self rebuild
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   307
    ].
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   308
!
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   309
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   310
rebuild
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   311
    "rebuild
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   312
    "
2083
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   313
    | subSpec savedView savedBuilder builderClass|
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   314
1856
8ecbdc69f11e comment
Claus Gittinger <cg@exept.de>
parents: 1846
diff changeset
   315
    "/ if the superView is not yet created,
8ecbdc69f11e comment
Claus Gittinger <cg@exept.de>
parents: 1846
diff changeset
   316
    "/ we MUST delay building... (sigh)
1905
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   317
    superView isNil ifTrue:[          
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   318
        lateBuild := true.
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   319
        ^ self
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   320
    ].
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   321
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   322
    clientView notNil ifTrue:[
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   323
        clientView destroySubViews.
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   324
    ].
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   325
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   326
    spec notNil ifTrue:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   327
        (subSpec := spec) isSymbol ifTrue:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   328
            client isNil ifTrue:[
2394
c3984ea38fb5 only output warning 'no client...' if clientHolder is nil.
Claus Gittinger <cg@exept.de>
parents: 2156
diff changeset
   329
                clientHolder isNil ifTrue:[
2395
db8f819ae751 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   330
                    ('SubCanvas [warning]: no client - cannot build spec: ' , spec) infoPrintCR.
2394
c3984ea38fb5 only output warning 'no client...' if clientHolder is nil.
Claus Gittinger <cg@exept.de>
parents: 2156
diff changeset
   331
                ].
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   332
                ^ self
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   333
            ].
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   334
            (subSpec := client class interfaceSpecFor:spec) isNil ifTrue:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   335
                "/ Transcript showCR:'SubCanvas: nil spec'.
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   336
                ^ self
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   337
            ]
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   338
        ].
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   339
        subSpec isArray ifTrue:[
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   340
            subSpec := subSpec decodeAsLiteralArray
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   341
        ].
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   342
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   343
        builder isNil ifTrue:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   344
            client isNil ifTrue:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   345
                builderClass := UIBuilder
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   346
            ] ifFalse:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   347
                builderClass := client builderClass
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   348
            ].
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   349
            builder := builderClass new.
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   350
        ].
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   351
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   352
        "/ old:
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   353
        "/  builder buildFromSpec:subSpec in:clientView.
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   354
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   355
        "/ new (let app know (somehow) that this is a build
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   356
        "/ for a subcanvas (i.e. it can redefine the buildSubCanvas-method):
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   357
1895
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   358
        keepClientView ifFalse:[
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   359
            (clientView notNil and:[clientView application ~~ client]) ifTrue:[
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   360
                clientView destroy.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   361
                clientView := nil.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   362
            ].
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   363
        ].
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   364
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   365
        clientView isNil ifTrue:[
1927
4cb8e4ecc425 previous behavior
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   366
            "/ create a new view
1925
6026af8498a5 if keepClientView is set, care for a view being already
Claus Gittinger <cg@exept.de>
parents: 1914
diff changeset
   367
1927
4cb8e4ecc425 previous behavior
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   368
            useApplicationSubView ifTrue:[
4cb8e4ecc425 previous behavior
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   369
                clientView := ApplicationSubView new.
4cb8e4ecc425 previous behavior
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   370
                clientView application:client.
4cb8e4ecc425 previous behavior
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   371
            ] ifFalse:[
4cb8e4ecc425 previous behavior
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   372
                clientView := View new.
1895
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   373
            ]
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   374
        ].
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   375
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   376
        savedView := builder window.
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   377
        builder window:clientView.
1895
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   378
        useOwnBuilder ifTrue:[
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   379
            savedBuilder := client builder.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   380
            client builder:builder.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   381
        ].
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   382
1912
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
   383
        [   |savedSuperView|
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
   384
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
   385
            "/ kludge: need superView to be set correctly, in order for
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
   386
            "/ postBuildAsSubCanvas to be invoked (instead of postBuild)
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
   387
            "/ however, must unset the superView for code below ...
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
   388
            savedSuperView := clientView superView.
1914
943f0551bf62 use #setContainer: (to avoid warning message)
penk
parents: 1913
diff changeset
   389
            savedSuperView isNil ifTrue:[clientView setContainer:self].
1912
dc3652682529 superView setting.
martin
parents: 1911
diff changeset
   390
            client buildSubCanvas:subSpec withBuilder:builder.
2091
7f936283ea75 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2083
diff changeset
   391
            savedSuperView isNil ifTrue:[clientView setContainer:nil. self removeSubView:clientView. ].
1905
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   392
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   393
            keepClientView ifFalse:[    
1908
e86e34794e84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   394
                (scrolledView notNil and:[clientView isComponentOf:scrolledView]) ifTrue:[
1906
0b64cfae3419 checkin from browser
tm
parents: 1905
diff changeset
   395
                    self error:'this should not happen'
1905
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   396
                ] ifFalse:[
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   397
                    self scrolledView:clientView.
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   398
                ]
1907
e8efd065dc2b oops - clientView again
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
   399
            ] ifTrue:[
1908
e86e34794e84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   400
                (clientView isComponentOf:self) ifFalse:[
1907
e8efd065dc2b oops - clientView again
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
   401
                    self scrolledView:clientView.
e8efd065dc2b oops - clientView again
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
   402
                ]
1905
20ff18462cc6 care for keepClientView setting
tm
parents: 1895
diff changeset
   403
            ]
2083
d7b305aea776 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 1927
diff changeset
   404
        ] ensure:[
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   405
            savedView notNil ifTrue:[
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   406
                builder window:savedView.
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   407
            ].
1895
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   408
            useOwnBuilder ifTrue:[
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   409
                savedBuilder notNil ifTrue:[
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   410
                    client builder:savedBuilder.
a1b2502c91d7 went back halfway to the old behavior,
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
   411
                ]
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   412
            ]
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   413
        ].
1893
6456c11a1307 View -> ApplicationSubView
tm
parents: 1856
diff changeset
   414
1664
a8b97314f813 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1662
diff changeset
   415
        clientViewIsScrolled ifTrue:[
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   416
            clientView extent:((subSpec window layout) ? (subSpec window bounds)) extent.
1664
a8b97314f813 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1662
diff changeset
   417
        ].
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   418
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   419
        self realized ifTrue:[
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   420
            clientView realizeAllSubViews
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   421
        ].
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   422
    ]
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   423
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   424
    "Modified: / 30.1.2000 / 21:36:40 / cg"
1584
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   425
!
f020416e00ae LetterPrinter now works, after changing #rebuild.
Stefan Vogel <sv@exept.de>
parents: 1577
diff changeset
   426
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   427
releaseAllComponents
1412
b426fae6edcf fix ViewScroller in scrolledView
tm
parents: 1383
diff changeset
   428
    clientView destroySubViews.
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   429
    builder := nil.
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   430
    spec    := nil.
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   431
    client  := nil.
1662
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   432
b5ab432da3b9 subApp-channel support;
Claus Gittinger <cg@exept.de>
parents: 1584
diff changeset
   433
    "Modified: / 31.1.2000 / 16:56:14 / cg"
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   434
! !
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   435
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   436
!SubCanvas methodsFor:'change & update'!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   437
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   438
update:something with:aParameter from:changedObject
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   439
    "one of my models changed its value
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   440
    "
557
7cf5f021983d add method:
ca
parents: 554
diff changeset
   441
    (changedObject == clientHolder or:[changedObject == specHolder]) ifTrue:[
7cf5f021983d add method:
ca
parents: 554
diff changeset
   442
        self updateFromChannels
7cf5f021983d add method:
ca
parents: 554
diff changeset
   443
    ] ifFalse:[
7cf5f021983d add method:
ca
parents: 554
diff changeset
   444
        super update:something with:aParameter from:changedObject.
7cf5f021983d add method:
ca
parents: 554
diff changeset
   445
    ]
7cf5f021983d add method:
ca
parents: 554
diff changeset
   446
7cf5f021983d add method:
ca
parents: 554
diff changeset
   447
!
7cf5f021983d add method:
ca
parents: 554
diff changeset
   448
7cf5f021983d add method:
ca
parents: 554
diff changeset
   449
updateFromChannels
7cf5f021983d add method:
ca
parents: 554
diff changeset
   450
    "update canvas from channel
7cf5f021983d add method:
ca
parents: 554
diff changeset
   451
    "
1911
60c80cb7e428 No clients specified.
martin
parents: 1908
diff changeset
   452
    |client spec bldr|
557
7cf5f021983d add method:
ca
parents: 554
diff changeset
   453
7cf5f021983d add method:
ca
parents: 554
diff changeset
   454
    clientHolder isNil ifTrue:[
1911
60c80cb7e428 No clients specified.
martin
parents: 1908
diff changeset
   455
        client := self application.
60c80cb7e428 No clients specified.
martin
parents: 1908
diff changeset
   456
        bldr := UIBuilder new.
557
7cf5f021983d add method:
ca
parents: 554
diff changeset
   457
    ] ifFalse:[
7cf5f021983d add method:
ca
parents: 554
diff changeset
   458
        client := clientHolder value
554
c32ed45bfc6e bug fixes for spec derived from channel
ca
parents: 553
diff changeset
   459
    ].
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   460
557
7cf5f021983d add method:
ca
parents: 554
diff changeset
   461
    specHolder isNil ifTrue:[
7cf5f021983d add method:
ca
parents: 554
diff changeset
   462
        spec := #windowSpec
7cf5f021983d add method:
ca
parents: 554
diff changeset
   463
    ] ifFalse:[
7cf5f021983d add method:
ca
parents: 554
diff changeset
   464
        spec := specHolder value
7cf5f021983d add method:
ca
parents: 554
diff changeset
   465
    ].
7cf5f021983d add method:
ca
parents: 554
diff changeset
   466
    (client notNil and:[spec notNil]) ifTrue:[
7cf5f021983d add method:
ca
parents: 554
diff changeset
   467
    ] ifFalse:[
1467
2d85bd1a8267 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
   468
"/        spec notNil ifTrue:[
2d85bd1a8267 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
   469
"/            self halt:'spec but no app'.
2d85bd1a8267 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
   470
"/        ].
1894
f0469313b9f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1893
diff changeset
   471
        client := nil.
f0469313b9f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1893
diff changeset
   472
        spec := #windowSpec.  "/ is that true ?
f0469313b9f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1893
diff changeset
   473
    ].
1911
60c80cb7e428 No clients specified.
martin
parents: 1908
diff changeset
   474
    self client:client spec:spec builder:bldr
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   475
1467
2d85bd1a8267 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1450
diff changeset
   476
    "Modified: / 5.8.1999 / 13:35:26 / cg"
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   477
! !
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   478
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   479
!SubCanvas methodsFor:'initialization'!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   480
2156
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   481
initialize
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   482
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   483
    super initialize.
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   484
"/    self scrolledView:(clientView := ApplicationSubView new).
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   485
    clientViewIsScrolled := false.
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   486
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   487
    "/ these defaults make subCanvas compatible with VW;
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   488
    "/ however, they make our life difficult sometimes.
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   489
    keepClientView := true.
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   490
    useApplicationSubView := true "false".
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   491
    useOwnBuilder := false.
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   492
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   493
    spec := #windowSpec.
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   494
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   495
    "Modified: / 31.1.2000 / 16:56:31 / cg"
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   496
!
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   497
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   498
release
1471
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   499
    client notNil ifTrue:[
1702
ff202e263b9d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
   500
        client == self application ifTrue:[
ff202e263b9d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
   501
            client releaseAsSubCanvas.
ff202e263b9d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
   502
        ] ifFalse:[
ff202e263b9d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
   503
            client release
ff202e263b9d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
   504
        ].
1471
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   505
    ].
09a5803325e4 when destroying or changing the client, release as subApp
Claus Gittinger <cg@exept.de>
parents: 1467
diff changeset
   506
609
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   507
    clientHolder notNil ifTrue:[
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   508
        clientHolder removeDependent:self.
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   509
        clientHolder := nil.
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   510
    ].
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   511
    specHolder notNil ifTrue:[
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   512
        specHolder removeDependent:self.
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   513
        specHolder := nil.
ad75d5f13ca1 implement destroy:
ca
parents: 557
diff changeset
   514
    ].
2156
e16dc409ecf2 destroy - release
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
   515
    super release.
1702
ff202e263b9d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
   516
ff202e263b9d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1686
diff changeset
   517
    "Modified: / 13.2.2000 / 23:31:12 / cg"
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   518
! !
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   519
1720
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   520
!SubCanvas methodsFor:'layout'!
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   521
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   522
usedScrolledViewHMarginWhenHasV:hasV andHasH:hasH
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   523
    "return the horizontal margin around (outer margin).
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   524
     Redefined to avoid margin when no scrollers are present"
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   525
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   526
    ^ (hasV or:[hasH]) ifTrue:[scrolledViewHMargin] ifFalse:[0]
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   527
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   528
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   529
!
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   530
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   531
usedScrolledViewVMarginWhenHasV:hasV andHasH:hasH
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   532
    "return the horizontal margin around (outer margin).
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   533
     Redefined to avoid margin when no scrollers are present"
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   534
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   535
    ^ (hasV or:[hasH]) ifTrue:[scrolledViewVMargin] ifFalse:[0]
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   536
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   537
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   538
! !
d855968ce342 redefine margin computations (avoid margin if subcanvas does not scroll).
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
   539
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   540
!SubCanvas methodsFor:'queries'!
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   541
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   542
application
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   543
    "return the application, under which this view was opened,
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   544
    "
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   545
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   546
    client notNil ifTrue:[
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   547
        ^ client
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
    ].
503
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   549
    ^ super application
0a3ef2d34d9d add application holder
ca
parents: 455
diff changeset
   550
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
! !
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   552
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   553
!SubCanvas class methodsFor:'documentation'!
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   554
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   555
version
2426
c57f84d6ba9e must send postOpenAsSubcanvas, when the application is changed
Claus Gittinger <cg@exept.de>
parents: 2404
diff changeset
   556
    ^ '$Header: /cvs/stx/stx/libwidg2/SubCanvas.st,v 1.49 2003-01-13 17:18:54 cg Exp $'
455
860d66c9f047 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
! !