VisualRegion.st
author Claus Gittinger <cg@exept.de>
Sun, 29 Jan 2017 02:26:51 +0100
changeset 3853 5a78ffcf69de
parent 3464 85e229581fd1
child 4213 8127ef0ff47d
permissions -rw-r--r--
#FEATURE by cg class: TypeConverter changed: #timeOfClass:withFormat:orDefault:language:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3464
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
     1
"{ Encoding: utf8 }"
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
     2
1803
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
     3
"
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
     4
 COPYRIGHT (c) 1997 by Claus Gittinger
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
     5
              All Rights Reserved
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
     6
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
     7
 This software is furnished under a license and may be used
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
     8
 only in accordance with the terms of that license and with the
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    10
 be provided or otherwise made available to, or used by, any
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    11
 other person.  No title to or ownership of the software is
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    12
 hereby transferred.
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    13
"
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    14
"{ Package: 'stx:libview2' }"
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    15
3464
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
    16
"{ NameSpace: Smalltalk }"
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
    17
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    18
SimpleView subclass:#VisualRegion
daef87563758 intitial checkin
ca
parents:
diff changeset
    19
	instanceVariableNames:'isElliptical isOpaque'
daef87563758 intitial checkin
ca
parents:
diff changeset
    20
	classVariableNames:''
daef87563758 intitial checkin
ca
parents:
diff changeset
    21
	poolDictionaries:''
daef87563758 intitial checkin
ca
parents:
diff changeset
    22
	category:'Views-Special'
daef87563758 intitial checkin
ca
parents:
diff changeset
    23
!
daef87563758 intitial checkin
ca
parents:
diff changeset
    24
daef87563758 intitial checkin
ca
parents:
diff changeset
    25
!VisualRegion class methodsFor:'documentation'!
daef87563758 intitial checkin
ca
parents:
diff changeset
    26
1803
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    27
copyright
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    28
"
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    29
 COPYRIGHT (c) 1997 by Claus Gittinger
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    30
              All Rights Reserved
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    31
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    32
 This software is furnished under a license and may be used
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    33
 only in accordance with the terms of that license and with the
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    35
 be provided or otherwise made available to, or used by, any
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    36
 other person.  No title to or ownership of the software is
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    37
 hereby transferred.
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    38
"
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    39
!
d69cb54a3b56 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
    40
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    41
documentation
daef87563758 intitial checkin
ca
parents:
diff changeset
    42
"
daef87563758 intitial checkin
ca
parents:
diff changeset
    43
    VisualRegion is a passive visual component which provides a rectangular or elliptical
daef87563758 intitial checkin
ca
parents:
diff changeset
    44
    shape. It can take an arbitrary border line thicknesses and can be defined as opaque
daef87563758 intitial checkin
ca
parents:
diff changeset
    45
    with a background color or non opaque.
daef87563758 intitial checkin
ca
parents:
diff changeset
    46
1241
414114cfc5cc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
    47
    Notice:
414114cfc5cc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
    48
      This is an ST-80 compatibility class, provided to aid porting
414114cfc5cc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
    49
      of ST-80 or VisualWorks code;
414114cfc5cc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1186
diff changeset
    50
      it may be incomplete or incompatible to the corresponding ST-80 class. 
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    51
      If you encounter any incompatibilities, please forward a note 
daef87563758 intitial checkin
ca
parents:
diff changeset
    52
      describing the incompatibility verbal (i.e. no code) to the ST/X team.
daef87563758 intitial checkin
ca
parents:
diff changeset
    53
"
daef87563758 intitial checkin
ca
parents:
diff changeset
    54
!
daef87563758 intitial checkin
ca
parents:
diff changeset
    55
daef87563758 intitial checkin
ca
parents:
diff changeset
    56
examples
daef87563758 intitial checkin
ca
parents:
diff changeset
    57
"
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    58
    some regions; the blue one has its own cursor,
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    59
    the light-grey and red ones havea popupMenu,
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    60
    however, the red one is almost completely covered by an invisible inputView
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    61
    which provides its own menu (only the far left edge of the red region
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    62
    shows the red-menu)
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    63
                                                                                [exBegin]
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    64
        |top s1 s2 s3 s4 v1 rd i vh|
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    65
daef87563758 intitial checkin
ca
parents:
diff changeset
    66
        top := StandardSystemView new extent:250@250.
daef87563758 intitial checkin
ca
parents:
diff changeset
    67
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    68
        rd := true.
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    69
daef87563758 intitial checkin
ca
parents:
diff changeset
    70
        v1 := View origin:25@25 extent:50@50 in:top.
daef87563758 intitial checkin
ca
parents:
diff changeset
    71
        v1 viewBackground:(Color blue).
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    72
        v1 cursor:(Cursor thumbsUp).
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    73
        vh := ValueHolder new.
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    74
        vh onChangeSend:#value to:[ v1 viewBackground:vh value. v1 clear ].
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    75
        vh inspect.
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    76
daef87563758 intitial checkin
ca
parents:
diff changeset
    77
        s1 := VisualRegion origin:10@10 extent:30@30 in:top.
daef87563758 intitial checkin
ca
parents:
diff changeset
    78
        s1 lineWidth:0.
daef87563758 intitial checkin
ca
parents:
diff changeset
    79
        s1 viewBackground:(Color gray:90).
daef87563758 intitial checkin
ca
parents:
diff changeset
    80
        s1 isElliptical:rd.
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    81
        s1 middleButtonMenu:(PopUpMenu labels:#('foo' 'bar')).
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    82
daef87563758 intitial checkin
ca
parents:
diff changeset
    83
        s2 := VisualRegion origin:60@10 extent:30@30 in:top.
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    84
        s2 viewBackground:(Color green).
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    85
        s2 lineWidth:1.
daef87563758 intitial checkin
ca
parents:
diff changeset
    86
        s2 isElliptical:rd.
daef87563758 intitial checkin
ca
parents:
diff changeset
    87
daef87563758 intitial checkin
ca
parents:
diff changeset
    88
        s3 := VisualRegion origin:10@60 extent:100@30 in:top.
daef87563758 intitial checkin
ca
parents:
diff changeset
    89
        s3 viewBackground:(Color gray:70).
daef87563758 intitial checkin
ca
parents:
diff changeset
    90
        s3 lineWidth:0.
daef87563758 intitial checkin
ca
parents:
diff changeset
    91
        s3 isOpaque:false.
daef87563758 intitial checkin
ca
parents:
diff changeset
    92
        s3 isElliptical:rd.
daef87563758 intitial checkin
ca
parents:
diff changeset
    93
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    94
        s4 := VisualRegion origin:60@60 extent:60@30 in:top.
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    95
        s4 viewBackground:(Color red).
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    96
        s4 lineWidth:3.
597
daef87563758 intitial checkin
ca
parents:
diff changeset
    97
        s4 isOpaque:false.
daef87563758 intitial checkin
ca
parents:
diff changeset
    98
        s4 isElliptical:rd.
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
    99
        s4 middleButtonMenu:(PopUpMenu labels:#('foo1' 'bar1')).
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
   100
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
   101
        i := InputView origin:70@60 extent:60@30 in:top.
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
   102
        i middleButtonMenu:(PopUpMenu labels:#('foo2' 'bar2')).
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   103
daef87563758 intitial checkin
ca
parents:
diff changeset
   104
        top open
1186
eb94ab8ac18c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1184
diff changeset
   105
                                                                                [exEnd]
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   106
"
daef87563758 intitial checkin
ca
parents:
diff changeset
   107
! !
daef87563758 intitial checkin
ca
parents:
diff changeset
   108
daef87563758 intitial checkin
ca
parents:
diff changeset
   109
!VisualRegion methodsFor:'accessing'!
daef87563758 intitial checkin
ca
parents:
diff changeset
   110
daef87563758 intitial checkin
ca
parents:
diff changeset
   111
isElliptical
daef87563758 intitial checkin
ca
parents:
diff changeset
   112
    "get the outline of the region; elliptical or rectangle
daef87563758 intitial checkin
ca
parents:
diff changeset
   113
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   114
  ^ isElliptical
daef87563758 intitial checkin
ca
parents:
diff changeset
   115
daef87563758 intitial checkin
ca
parents:
diff changeset
   116
!
daef87563758 intitial checkin
ca
parents:
diff changeset
   117
daef87563758 intitial checkin
ca
parents:
diff changeset
   118
isElliptical:aBoolean
daef87563758 intitial checkin
ca
parents:
diff changeset
   119
    "set the outline of the region; elliptical or rectangle
daef87563758 intitial checkin
ca
parents:
diff changeset
   120
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   121
    (isElliptical ~~ aBoolean) ifTrue:[
daef87563758 intitial checkin
ca
parents:
diff changeset
   122
        isElliptical := aBoolean.
daef87563758 intitial checkin
ca
parents:
diff changeset
   123
        self layoutChanged
daef87563758 intitial checkin
ca
parents:
diff changeset
   124
    ].
daef87563758 intitial checkin
ca
parents:
diff changeset
   125
!
daef87563758 intitial checkin
ca
parents:
diff changeset
   126
daef87563758 intitial checkin
ca
parents:
diff changeset
   127
isOpaque
3464
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
   128
    "return true, if the object fully covers its frame (i.e. is rectangular
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
   129
     and has no 'holes'.
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
   130
     Here, get the opaque mode concerning the inner background of the region"
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   131
3464
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
   132
    ^ isOpaque
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   133
!
daef87563758 intitial checkin
ca
parents:
diff changeset
   134
daef87563758 intitial checkin
ca
parents:
diff changeset
   135
isOpaque:aBoolean
daef87563758 intitial checkin
ca
parents:
diff changeset
   136
    "set opaque mode concerning the inner background of the region
daef87563758 intitial checkin
ca
parents:
diff changeset
   137
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   138
    (isOpaque ~~ aBoolean) ifTrue:[
daef87563758 intitial checkin
ca
parents:
diff changeset
   139
        isOpaque := aBoolean.
daef87563758 intitial checkin
ca
parents:
diff changeset
   140
        self layoutChanged
daef87563758 intitial checkin
ca
parents:
diff changeset
   141
    ].
daef87563758 intitial checkin
ca
parents:
diff changeset
   142
daef87563758 intitial checkin
ca
parents:
diff changeset
   143
daef87563758 intitial checkin
ca
parents:
diff changeset
   144
!
daef87563758 intitial checkin
ca
parents:
diff changeset
   145
daef87563758 intitial checkin
ca
parents:
diff changeset
   146
lineWidth:aNumber
3290
093f7f0fadbc class: VisualRegion
Stefan Vogel <sv@exept.de>
parents: 1931
diff changeset
   147
    "set the border drawing width in pixels"
093f7f0fadbc class: VisualRegion
Stefan Vogel <sv@exept.de>
parents: 1931
diff changeset
   148
093f7f0fadbc class: VisualRegion
Stefan Vogel <sv@exept.de>
parents: 1931
diff changeset
   149
    gc lineWidth ~~ aNumber ifTrue:[
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   150
        super lineWidth:aNumber.
daef87563758 intitial checkin
ca
parents:
diff changeset
   151
        self layoutChanged
daef87563758 intitial checkin
ca
parents:
diff changeset
   152
    ]
daef87563758 intitial checkin
ca
parents:
diff changeset
   153
!
daef87563758 intitial checkin
ca
parents:
diff changeset
   154
daef87563758 intitial checkin
ca
parents:
diff changeset
   155
setLineWidth:aNumber
daef87563758 intitial checkin
ca
parents:
diff changeset
   156
    "set the line drawing width in pixels without recomputation of the shape
daef87563758 intitial checkin
ca
parents:
diff changeset
   157
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   158
    super lineWidth:aNumber
daef87563758 intitial checkin
ca
parents:
diff changeset
   159
daef87563758 intitial checkin
ca
parents:
diff changeset
   160
! !
daef87563758 intitial checkin
ca
parents:
diff changeset
   161
daef87563758 intitial checkin
ca
parents:
diff changeset
   162
!VisualRegion methodsFor:'change & update'!
daef87563758 intitial checkin
ca
parents:
diff changeset
   163
daef87563758 intitial checkin
ca
parents:
diff changeset
   164
sizeChanged:how
daef87563758 intitial checkin
ca
parents:
diff changeset
   165
    "must compute a new shape, when size is changed
daef87563758 intitial checkin
ca
parents:
diff changeset
   166
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   167
    self computeShape.
daef87563758 intitial checkin
ca
parents:
diff changeset
   168
    super sizeChanged:how
daef87563758 intitial checkin
ca
parents:
diff changeset
   169
daef87563758 intitial checkin
ca
parents:
diff changeset
   170
daef87563758 intitial checkin
ca
parents:
diff changeset
   171
! !
daef87563758 intitial checkin
ca
parents:
diff changeset
   172
daef87563758 intitial checkin
ca
parents:
diff changeset
   173
!VisualRegion methodsFor:'initialization'!
daef87563758 intitial checkin
ca
parents:
diff changeset
   174
daef87563758 intitial checkin
ca
parents:
diff changeset
   175
initialize
daef87563758 intitial checkin
ca
parents:
diff changeset
   176
    "setup default configuration
daef87563758 intitial checkin
ca
parents:
diff changeset
   177
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   178
    super initialize.
daef87563758 intitial checkin
ca
parents:
diff changeset
   179
    isElliptical := false.
daef87563758 intitial checkin
ca
parents:
diff changeset
   180
    isOpaque     := true.
daef87563758 intitial checkin
ca
parents:
diff changeset
   181
    self computeShape
daef87563758 intitial checkin
ca
parents:
diff changeset
   182
daef87563758 intitial checkin
ca
parents:
diff changeset
   183
daef87563758 intitial checkin
ca
parents:
diff changeset
   184
! !
daef87563758 intitial checkin
ca
parents:
diff changeset
   185
daef87563758 intitial checkin
ca
parents:
diff changeset
   186
!VisualRegion methodsFor:'private'!
daef87563758 intitial checkin
ca
parents:
diff changeset
   187
daef87563758 intitial checkin
ca
parents:
diff changeset
   188
layoutChanged
daef87563758 intitial checkin
ca
parents:
diff changeset
   189
    "recompute shape and change to invalidate
daef87563758 intitial checkin
ca
parents:
diff changeset
   190
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   191
    self computeShape.
1931
3eeab6c26ca9 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 1803
diff changeset
   192
    self invalidate 
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   193
954
e59f70e01541 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
   194
    "Modified: / 6.6.1998 / 19:52:41 / cg"
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   195
! !
daef87563758 intitial checkin
ca
parents:
diff changeset
   196
daef87563758 intitial checkin
ca
parents:
diff changeset
   197
!VisualRegion methodsFor:'queries'!
daef87563758 intitial checkin
ca
parents:
diff changeset
   198
daef87563758 intitial checkin
ca
parents:
diff changeset
   199
specClass
daef87563758 intitial checkin
ca
parents:
diff changeset
   200
    ^ RegionSpec
daef87563758 intitial checkin
ca
parents:
diff changeset
   201
daef87563758 intitial checkin
ca
parents:
diff changeset
   202
daef87563758 intitial checkin
ca
parents:
diff changeset
   203
! !
daef87563758 intitial checkin
ca
parents:
diff changeset
   204
daef87563758 intitial checkin
ca
parents:
diff changeset
   205
!VisualRegion methodsFor:'shape computation'!
daef87563758 intitial checkin
ca
parents:
diff changeset
   206
daef87563758 intitial checkin
ca
parents:
diff changeset
   207
computeShape
daef87563758 intitial checkin
ca
parents:
diff changeset
   208
    "computes 2 forms, one for the border, the other for the inside area. The border
daef87563758 intitial checkin
ca
parents:
diff changeset
   209
     form is borderwidth*2 pixels larger. Each form gets filled with an ellipse of
daef87563758 intitial checkin
ca
parents:
diff changeset
   210
     1-pixels, to define the shapes (take a look at the XShape spec, for more info)
daef87563758 intitial checkin
ca
parents:
diff changeset
   211
    "
daef87563758 intitial checkin
ca
parents:
diff changeset
   212
    isElliptical ifTrue:[
3290
093f7f0fadbc class: VisualRegion
Stefan Vogel <sv@exept.de>
parents: 1931
diff changeset
   213
        self makeRoundViewShapeWithBorder:gc lineWidth opaque:isOpaque.
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   214
    ] ifFalse:[
1342
acb9e9fe0cb1 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 1241
diff changeset
   215
        isOpaque ifFalse:[
3290
093f7f0fadbc class: VisualRegion
Stefan Vogel <sv@exept.de>
parents: 1931
diff changeset
   216
            self makeTransparentRectangularViewShapeWithBorder:gc lineWidth
1342
acb9e9fe0cb1 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 1241
diff changeset
   217
        ] ifTrue:[
acb9e9fe0cb1 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 1241
diff changeset
   218
            self borderShape:nil.
acb9e9fe0cb1 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 1241
diff changeset
   219
            self viewShape:nil.
3290
093f7f0fadbc class: VisualRegion
Stefan Vogel <sv@exept.de>
parents: 1931
diff changeset
   220
            self borderWidth:gc lineWidth.
1342
acb9e9fe0cb1 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 1241
diff changeset
   221
        ]
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   222
    ].
daef87563758 intitial checkin
ca
parents:
diff changeset
   223
1183
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   224
"/    |border shape extent form|
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   225
"/
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   226
"/    extent := self extent.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   227
"/    border := Form extent:extent.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   228
"/    shape  := Form extent:extent.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   229
"/
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   230
"/    isElliptical ifTrue:[
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   231
"/        border fillArcX:0 y:0 
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   232
"/                  width:(border width)
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   233
"/                 height:(border height)
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   234
"/                   from:0
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   235
"/                  angle:360.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   236
"/    ] ifFalse:[
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   237
"/        border fillRectangleX:0 y:0
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   238
"/                        width:(border width)
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   239
"/                       height:(border height)
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   240
"/    ].
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   241
"/
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   242
"/    isOpaque ifFalse:[
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   243
"/        form := border.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   244
"/        border foreground:(Color colorId:0).
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   245
"/    ] ifTrue:[
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   246
"/        form := shape.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   247
"/        shape foreground:(Color colorId:1).
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   248
"/    ].
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   249
"/
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   250
"/    isElliptical ifTrue:[
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   251
"/        form fillArcX:lineWidth y:lineWidth 
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   252
"/                width:(border  width) - (lineWidth * 2)
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   253
"/               height:(border height) - (lineWidth * 2)
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   254
"/                 from:0
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   255
"/                angle:360.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   256
"/    ] ifFalse:[
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   257
"/        form fillRectangleX:lineWidth y:lineWidth
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   258
"/                      width:(border  width) - (lineWidth * 2)
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   259
"/                     height:(border height) - (lineWidth * 2).
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   260
"/    ].
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   261
"/    self borderShape:border.
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   262
"/    self viewShape:shape.
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   263
1183
8dff9008b5c7 use common roundShape computer
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
   264
    "Modified: / 5.6.1999 / 21:28:54 / cg"
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   265
! !
daef87563758 intitial checkin
ca
parents:
diff changeset
   266
daef87563758 intitial checkin
ca
parents:
diff changeset
   267
!VisualRegion class methodsFor:'documentation'!
daef87563758 intitial checkin
ca
parents:
diff changeset
   268
daef87563758 intitial checkin
ca
parents:
diff changeset
   269
version
3464
85e229581fd1 class: VisualRegion
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
   270
    ^ '$Header: /cvs/stx/stx/libview2/VisualRegion.st,v 1.11 2015-05-05 11:14:10 cg Exp $'
597
daef87563758 intitial checkin
ca
parents:
diff changeset
   271
! !
3290
093f7f0fadbc class: VisualRegion
Stefan Vogel <sv@exept.de>
parents: 1931
diff changeset
   272