TransparentBox.st
author Claus Gittinger <cg@exept.de>
Wed, 07 Apr 2004 16:07:50 +0200
changeset 1975 3901166c295e
child 2003 196bdcaf1859
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
'From Smalltalk/X, Version:5.2.2 on 07-04-2004 at 04:07:23 PM'                  !
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ Package: 'stx:libview2' }"
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
View subclass:#TransparentBox
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'Views-Basic'
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!TransparentBox methodsFor:'events'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
sizeChanged:how
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
    self computeShape.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
"/    self clear;redraw.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    ^super sizeChanged: how.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
! !
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!TransparentBox methodsFor:'initialization'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
initialize
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
    super initialize.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    self computeShape.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    self viewBackground: Color green.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
"
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
| tv |
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
tv := TopView new.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
gbox := GBOX origin:0.0@0.0 corner: 1.0@1.0 in: tv.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
gbox viewBackground: Color green.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
tv open
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
"
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
! !
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!TransparentBox methodsFor:'queries'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
isTransparentBox
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    ^true
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
specClass
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    ^ TransparentBoxSpec
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
! !
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!TransparentBox methodsFor:'shape computation'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
computeShape
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    | borderForm subViews w h |
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    device supportsArbitraryShapedViews ifFalse:[^self].
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    w := self extent x.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    h := self extent y.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    borderForm := Form width:w height:h.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    borderForm fill:(Color colorId:0).
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    borderForm foreground:(Color colorId:1).
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    subViews := self subViews.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    subViews isEmptyOrNil ifTrue:[
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
       self fillFormWithBorderShape:borderForm.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    ] ifFalse:[
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
        subViews do:[:aSubView|
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
            aSubView fillFormWithBorderShape:borderForm.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
        ]
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    ].
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    self borderShape:borderForm.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
! !
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!TransparentBox class methodsFor:'documentation'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
version
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    ^ '$Header: /cvs/stx/stx/libview2/TransparentBox.st,v 1.1 2004-04-07 14:07:50 cg Exp $'
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
! !