TransparentBox.st
author Claus Gittinger <cg@exept.de>
Thu, 16 Dec 2004 12:45:15 +0100
changeset 2029 136dd7e8228a
parent 2004 a0245a3e8cdc
child 2377 4a5d442f4a2b
permissions -rw-r--r--
pass change information from update
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
2004
a0245a3e8cdc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2003
diff changeset
    16
    b1 := Button label:'close'.
a0245a3e8cdc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2003
diff changeset
    17
    b1 action:[ tv close ].
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    18
    b1 origin:10@10.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    19
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    20
    b2 := Button label:'hello'.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    21
    b2 origin:100@100.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    22
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    23
    tv := self new.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    24
    tv extent:200@200.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    25
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    26
    tv addSubView:b1.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    27
    tv addSubView:b2.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    28
    tv open
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    29
"
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    30
! !
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!TransparentBox methodsFor:'events'!
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
sizeChanged:how
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    35
    shapeForm notNil ifTrue:[
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    36
        self computeShape.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    37
    ].
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    38
    ^ super sizeChanged: how.
1975
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
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!TransparentBox methodsFor:'initialization'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    43
realize
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    self computeShape.
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    45
    super realize.
1975
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
!TransparentBox methodsFor:'queries'!
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
isTransparentBox
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
    ^true
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
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
specClass
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    ^ TransparentBoxSpec
2003
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
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    59
windowStyle
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    60
    ^ #undecorated
1975
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
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!TransparentBox methodsFor:'shape computation'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    65
addSubView:aView
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    66
    super addSubView:aView.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    67
    shapeForm notNil ifTrue:[
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    68
        self computeShape
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
!
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    71
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
computeShape
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    73
    | subViews w h |
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    device supportsArbitraryShapedViews ifFalse:[^self].
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    w := self extent x.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    h := self extent y.
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    79
    shapeForm := Form width:w height:h.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    80
    shapeForm fill:(Color colorId:0).
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    82
    shapeForm foreground:(Color colorId:1).
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    subViews := self subViews.
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    subViews isEmptyOrNil ifTrue:[
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    86
       self fillFormWithBorderShape:shapeForm.
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    ] ifFalse:[
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
        subViews do:[:aSubView|
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    89
            aSubView fillFormWithBorderShape:shapeForm.
1975
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
    ].
2003
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    92
    "/ self viewShape:shapeForm.
196bdcaf1859 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1975
diff changeset
    93
    self borderShape:shapeForm.
1975
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
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!TransparentBox class methodsFor:'documentation'!
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
version
2004
a0245a3e8cdc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2003
diff changeset
    99
    ^ '$Header: /cvs/stx/stx/libview2/TransparentBox.st,v 1.3 2004-07-16 14:41:50 cg Exp $'
1975
3901166c295e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !