TransparentBox.st
author Claus Gittinger <cg@exept.de>
Fri, 16 Jul 2004 16:40:32 +0200
changeset 2003 196bdcaf1859
parent 1975 3901166c295e
child 2004 a0245a3e8cdc
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
"{ Package: 'stx:libview2' }"
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
View subclass:#TransparentBox
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
     4
	instanceVariableNames:'shapeForm'
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Views-Basic'
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    10
!TransparentBox class methodsFor:'documentation'!
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    11
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    12
examples
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    13
"
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    14
    | tv b1 b2 |
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    15
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    16
    b1 := Button label:'hello'.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    17
    b1 origin:10@10.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    18
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    19
    b2 := Button label:'hello'.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    20
    b2 origin:100@100.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    21
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    22
    tv := self new.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    23
    tv extent:200@200.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    24
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    25
    tv addSubView:b1.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    26
    tv addSubView:b2.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    27
    tv open
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    28
"
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    29
! !
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!TransparentBox methodsFor:'events'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
sizeChanged:how
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    34
    shapeForm notNil ifTrue:[
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    35
        self computeShape.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    36
    ].
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    37
    ^ super sizeChanged: how.
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
! !
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
!TransparentBox methodsFor:'initialization'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    42
realize
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    self computeShape.
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    44
    super realize.
1975
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
!TransparentBox methodsFor:'queries'!
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
isTransparentBox
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
    ^true
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
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
specClass
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    ^ TransparentBoxSpec
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    56
!
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    57
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    58
windowStyle
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    59
    ^ #undecorated
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
! !
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
!TransparentBox methodsFor:'shape computation'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    64
addSubView:aView
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    65
    super addSubView:aView.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    66
    shapeForm notNil ifTrue:[
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    67
        self computeShape
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    68
    ].
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    69
!
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    70
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
computeShape
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    72
    | subViews w h |
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    device supportsArbitraryShapedViews ifFalse:[^self].
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
    w := self extent x.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    h := self extent y.
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    78
    shapeForm := Form width:w height:h.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    79
    shapeForm fill:(Color colorId:0).
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    81
    shapeForm foreground:(Color colorId:1).
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    subViews := self subViews.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    subViews isEmptyOrNil ifTrue:[
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    85
       self fillFormWithBorderShape:shapeForm.
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    ] ifFalse:[
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
        subViews do:[:aSubView|
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    88
            aSubView fillFormWithBorderShape:shapeForm.
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
        ]
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    ].
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    91
    "/ self viewShape:shapeForm.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    92
    self borderShape:shapeForm.
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
! !
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
!TransparentBox class methodsFor:'documentation'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
version
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    98
    ^ '$Header: /cvs/stx/stx/libview2/TransparentBox.st,v 1.2 2004-07-16 14:40:32 cg Exp $'
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
! !