FramedBox.st
author claus
Sun, 07 Aug 1994 15:23:42 +0200
changeset 38 4b9b70b2cc87
parent 25 975bead4571a
child 59 450ce95a72a4
permissions -rw-r--r--
2.10.3 pre-final version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     1
"
5
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1991 by Claus Gittinger
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     4
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    11
"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    12
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    13
View subclass:#FramedBox
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    14
         instanceVariableNames:'label layout fgColor showFrame'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    15
         classVariableNames:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    16
         poolDictionaries:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    17
         category:'Views-Layout'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    18
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    19
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    20
FramedBox comment:'
5
claus
parents: 3
diff changeset
    21
COPYRIGHT (c) 1991 by Claus Gittinger
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    22
              All Rights Reserved
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    24
$Header: /cvs/stx/stx/libwidg/FramedBox.st,v 1.7 1994-08-07 13:21:57 claus Exp $
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    25
'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    26
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    27
!FramedBox class methodsFor:'documentation'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    28
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    29
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    30
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    31
 COPYRIGHT (c) 1991 by Claus Gittinger
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    32
              All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    33
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    34
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    35
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    36
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    37
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    38
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    39
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    40
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    41
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    42
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    43
version
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    44
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    45
$Header: /cvs/stx/stx/libwidg/FramedBox.st,v 1.7 1994-08-07 13:21:57 claus Exp $
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    46
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    47
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    48
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    49
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    50
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    51
    a frame around something. The frame may have a label, whose position
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    52
    is controlled by the layout variable, aSymbol which may be one of:
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    53
    [#topCenter #topLeft #topRight #bottomLeft #bottomCenter #bottomRight]
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    54
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    55
    Its also possible, to not show the frame but only the label, by setting
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    56
    showFrame to false.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    57
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    58
! !
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    59
3
claus
parents: 0
diff changeset
    60
!FramedBox methodsFor:'private'!
claus
parents: 0
diff changeset
    61
claus
parents: 0
diff changeset
    62
redrawIfShown
claus
parents: 0
diff changeset
    63
    shown ifTrue:[
claus
parents: 0
diff changeset
    64
        self clear.
claus
parents: 0
diff changeset
    65
        self redraw
claus
parents: 0
diff changeset
    66
    ]
claus
parents: 0
diff changeset
    67
! !
claus
parents: 0
diff changeset
    68
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    69
!FramedBox methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    70
3
claus
parents: 0
diff changeset
    71
foregroundColor
claus
parents: 0
diff changeset
    72
    "return the frame labels foreground color"
claus
parents: 0
diff changeset
    73
claus
parents: 0
diff changeset
    74
    ^ fgColor
claus
parents: 0
diff changeset
    75
!
claus
parents: 0
diff changeset
    76
claus
parents: 0
diff changeset
    77
foregroundColor:aColor
claus
parents: 0
diff changeset
    78
    "set the frame labels foreground color"
claus
parents: 0
diff changeset
    79
claus
parents: 0
diff changeset
    80
    aColor ~= fgColor ifTrue:[
claus
parents: 0
diff changeset
    81
        fgColor := aColor.
claus
parents: 0
diff changeset
    82
        self redrawIfShown
claus
parents: 0
diff changeset
    83
    ]
claus
parents: 0
diff changeset
    84
!
claus
parents: 0
diff changeset
    85
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    86
frameShown
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    87
    "return true, if frame is shown;
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    88
     if false, oly the label is shown"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    89
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    90
    ^ showFrame
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    91
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    92
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    93
showFrame:aBoolean
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    94
    "turn on/off showing of the frame -
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    95
     without a frame, only the label is shown at its position"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    96
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    97
    aBoolean ~~ showFrame ifTrue:[
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    98
        showFrame := aBoolean.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    99
        self redrawIfShown
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   100
    ]
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   101
!
3
claus
parents: 0
diff changeset
   102
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   103
label
3
claus
parents: 0
diff changeset
   104
    "return the frames labelstring"
claus
parents: 0
diff changeset
   105
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   106
    ^ label
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   107
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   108
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   109
label:aString
3
claus
parents: 0
diff changeset
   110
    "set the frames labelstring"
claus
parents: 0
diff changeset
   111
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   112
    (label ~= aString) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   113
        label := aString.
3
claus
parents: 0
diff changeset
   114
        self redrawIfShown
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   115
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   116
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   117
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   118
font:aFont
3
claus
parents: 0
diff changeset
   119
    "set the frame labelstrings font"
claus
parents: 0
diff changeset
   120
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   121
    (font ~= aFont) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   122
        super font:aFont.
3
claus
parents: 0
diff changeset
   123
        self redrawIfShown
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   124
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   125
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   126
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   127
viewRectangle
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   128
    "return the inside area - redefined to save frame from
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   129
     relative computations"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   130
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   131
    |m2 sep|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   132
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   133
    sep := font height.
25
975bead4571a *** empty log message ***
claus
parents: 24
diff changeset
   134
    m2 := sep + sep "+ sep".
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   135
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   136
    showFrame ifFalse:[
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   137
        ^ (0 @ sep) extent:(width @ height)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   138
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   139
    ^ (sep @ sep) extent:((width - sep) @ (height - sep))
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   140
"/ WRONG:
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   141
"/    ^ (sep @ sep) extent:((width - m2) @ (height - m2))
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   142
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   143
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   144
layout
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   145
    "return the current layout, which is a symbol describing
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   146
     the labels position."
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   147
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   148
    ^ layout
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   149
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   150
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   151
layout:aSymbol
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   152
    "define the position of the label;
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   153
     aSymbol may be: #topLeft, #topCenter, #topRight;
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   154
     #bottomLeft, #bottomCenter or #bottomRight"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   155
3
claus
parents: 0
diff changeset
   156
    layout ~~ aSymbol ifTrue:[
claus
parents: 0
diff changeset
   157
        layout := aSymbol.
claus
parents: 0
diff changeset
   158
        self redrawIfShown
claus
parents: 0
diff changeset
   159
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   160
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   161
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   162
!FramedBox methodsFor:'events'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   163
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   164
sizeChanged:how
3
claus
parents: 0
diff changeset
   165
    self redrawIfShown.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   166
    super sizeChanged:how
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   167
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   168
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   169
!FramedBox methodsFor:'drawing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   170
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   171
drawFrame
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   172
    "redraw the frame"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   173
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   174
    |sep halfSep w h|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   175
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   176
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   177
     if there is no label, give more real estate to the inside
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   178
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   179
    label isNil ifTrue:[
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   180
        sep := 4.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   181
        halfSep := 2
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   182
    ] ifFalse:[
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   183
halfSep := font height // 2.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   184
sep := halfSep * 2.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   185
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   186
        sep := font height.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   187
        halfSep := sep // 2.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   188
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   189
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   190
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   191
    w := width - sep.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   192
    h := height - sep.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   193
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   194
    ((style == #normal) or:[style == #mswindows]) ifTrue:[
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   195
        self displayRectangleX:halfSep 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   196
                             y:halfSep
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   197
                         width:w 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   198
                        height:h.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   199
        ^ self
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   200
    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   201
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   202
    w := w + 1.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   203
    h := h + 1.
7
15a9291b9bd0 *** empty log message ***
claus
parents: 5
diff changeset
   204
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   205
    self paint:shadowColor.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   206
    self displayRectangleX:halfSep-1 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   207
                         y:halfSep-1
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   208
                     width:w 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   209
                    height:h.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   210
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   211
    self paint:lightColor.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   212
    self displayRectangleX:halfSep 
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   213
                         y:halfSep
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   214
                     width:w
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   215
                    height:h
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   216
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   217
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   218
redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   219
    "redraw the frame and name if present"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   220
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   221
    |labelLen l x y|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   222
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   223
    label isNil ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   224
        labelLen := 0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   225
    ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   226
        l := ' ' , label , ' '.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   227
        labelLen := font widthOf:l
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   228
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   229
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   230
    showFrame ifTrue:[
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   231
        self drawFrame.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   232
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   233
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   234
    labelLen > 0 ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   235
        labelLen < width ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   236
            (#(topLeft topCenter topRight) includes:layout) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   237
                y := font ascent.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   238
            ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   239
                y := height - font descent.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   240
            ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
            (#(topLeft bottomLeft) includes:layout) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
                x := font height
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   243
            ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   244
                (#(topRight bottomRight) includes:layout) ifTrue:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   245
                    x := width - labelLen - font height
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   246
                ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   247
                    x := (width - labelLen) // 2
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   248
                ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   249
            ].
3
claus
parents: 0
diff changeset
   250
            self paint:fgColor on:viewBackground.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   251
            self displayOpaqueString:l x:x y:y
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   252
        ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   253
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   254
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   255
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   256
!FramedBox methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   257
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   258
initialize
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   259
    super initialize.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   260
    showFrame := true
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   261
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   262
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   263
initStyle
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   264
    "default position is top-center, except for ms-windows, where
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   265
     the text is positioned at top-left"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   266
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   267
    super initStyle.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   268
3
claus
parents: 0
diff changeset
   269
    fgColor := Black.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   270
    ((style == #mswindows) or:[style == #motif]) ifTrue:[
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   271
        layout := #topLeft 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   272
    ] ifFalse:[
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   273
        layout := #topCenter
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   274
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   275
! !