Label.st
author claus
Fri, 28 Oct 1994 04:25:37 +0100
changeset 60 f3c738c24ce6
parent 59 450ce95a72a4
child 63 f4eaf04d1eaf
permissions -rw-r--r--
mostly style
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) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
     3
	      All Rights Reserved
0
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:#Label
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:'logo
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    15
			      labelWidth labelHeight
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    16
			      labelOriginX labelOriginY
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    17
			      adjust hSpace vSpace
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    18
			      bgColor fgColor fixSize'
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    19
       classVariableNames:'DefaultFont 
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    20
			   DefaultForegroundColor DefaultBackgroundColor'
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    21
       poolDictionaries:''
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    22
       category:'Views-Layout'
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    23
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    24
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    25
Label comment:'
5
claus
parents: 3
diff changeset
    26
COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    27
	      All Rights Reserved
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    28
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
    29
$Header: /cvs/stx/stx/libwidg/Label.st,v 1.10 1994-10-28 03:25:05 claus Exp $
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    30
'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
    31
3
claus
parents: 0
diff changeset
    32
!Label class methodsFor:'documentation'!
claus
parents: 0
diff changeset
    33
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    34
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    35
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    36
 COPYRIGHT (c) 1989 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    37
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    39
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    40
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    41
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    42
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    43
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    44
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    45
"
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
version
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    49
"
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
    50
$Header: /cvs/stx/stx/libwidg/Label.st,v 1.10 1994-10-28 03:25:05 claus Exp $
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    51
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    52
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    53
3
claus
parents: 0
diff changeset
    54
documentation
claus
parents: 0
diff changeset
    55
"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    56
    This class implements labels, which are views to display a string or image.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    57
    The Label will try to do its best to make its contents fit into the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    58
    view. The contents can be a String, a collection of Strings (i.e.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    59
    Text) or a Form/Image. The contents is drawn in fgColor/bgColor,
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    60
    which can be changed using:
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    61
	aLabel foregroundColor:aColor
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    62
	aLabel backgroundColor:aColor
3
claus
parents: 0
diff changeset
    63
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    64
    When a label is assigned a contents, it will resize itself to fit
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    65
    the required size. This resizing can be suppressed by setting the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    66
    fixsize attribute to true using:
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    67
	aLabel sizeFixed:true
3
claus
parents: 0
diff changeset
    68
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    69
    This can be used, if resizing of the label is not wanted.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    70
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    71
    The placement of the contents within the label is controlled by
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    72
    the adjust attribute, it can be set with
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    73
	aLabel adjust:how
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    74
    , where how is one of the symbols left, #right, #center, #centerLeft or
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    75
    #centerRight (see the comment in Label>>adjust:).
3
claus
parents: 0
diff changeset
    76
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    77
    example:
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    78
	l := Label in:aView.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    79
	l label:'hello world'.
3
claus
parents: 0
diff changeset
    80
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    81
    Instance variables:
3
claus
parents: 0
diff changeset
    82
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    83
	logo                <Object>        the logo, can be a Form, String or Text
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    84
	labelWidth          <Integer>       the width of the logo in device units
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    85
	labelHeight         <Integer>       the height of the logo in device units
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    86
	labelOriginX        <Integer>       the x-position of the logo withing the Label
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    87
	labelOriginY        <Integer>       the y-position of the logo withing the Label
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    88
	adjust              <Symbol>        controls how the logo is positioned within the
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    89
					    label. Can be one of:#left,#right,#center,
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    90
					    #centerLeft or #centerRight (see comment in adjust:)
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    91
	hSpace              <Integer>       number of horizontal pixels around logo
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    92
	vSpace              <Integer>       number of vertical pixels around logo
3
claus
parents: 0
diff changeset
    93
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    94
	bgColor             <Color>         background color
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    95
	fgColor             <Color>         foreground color
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    96
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    97
	fixSize             <Boolean>       if true, a change of the logo change will not
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    98
					    resize the label; otherwise, its size is adjusted.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    99
					    default:false.
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   100
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   101
    Model-View behavior:
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   102
	label model:aModel.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   103
	label aspect:aspectSymbol.
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   104
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   105
	model sends #changed:aspectSymbol
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   106
	---> label will redraw its label from value of model>>aspectSymbol
3
claus
parents: 0
diff changeset
   107
"
claus
parents: 0
diff changeset
   108
! !
claus
parents: 0
diff changeset
   109
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   110
!Label class methodsFor:'defaults'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   111
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   112
defaultExtent
3
claus
parents: 0
diff changeset
   113
    "return default extent"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   114
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   115
    ^ 16 @ 16
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   116
!
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   117
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   118
updateStyleCache
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   119
    DefaultForegroundColor := StyleSheet colorAt:'labelForegroundColor' default:Black.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   120
    DefaultBackgroundColor := StyleSheet colorAt:'labelBackgroundColor'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   121
    DefaultFont := StyleSheet fontAt:'labelFont'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   122
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   123
    "
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   124
     self updateStyleCache
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   125
    "
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   126
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   127
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   128
!Label class methodsFor:'instance creation'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   129
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   130
form:aForm
3
claus
parents: 0
diff changeset
   131
    "return a new Label showing a form"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   132
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   133
    ^ (self on:Display) form:aForm
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   134
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   135
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   136
form:aForm in:aView
3
claus
parents: 0
diff changeset
   137
    "return a new Label showing a form"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   138
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   139
    ^ (self in:aView) form:aForm
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   140
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   141
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   142
!Label methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   143
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   144
initialize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   145
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   146
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   147
    font := font on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   148
    self height:(font height + font descent).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   149
    adjust := #center.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   150
    labelOriginX := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   151
    labelOriginY := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   152
    labelWidth := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   153
    labelHeight := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   154
    logo := nil.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   155
    fixSize := false.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   156
    hSpace := (self horizontalPixelPerMillimeter:0.5) rounded.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   157
    vSpace := (self verticalPixelPerMillimeter:0.5) rounded
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   158
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   159
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   160
initStyle
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   161
    super initStyle.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   162
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   163
    DefaultFont notNil ifTrue:[font := DefaultFont on:device].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   164
    DefaultBackgroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   165
	bgColor := DefaultBackgroundColor on:device
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   166
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   167
	bgColor := viewBackground on:device.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   168
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   169
    DefaultForegroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   170
	fgColor := DefaultForegroundColor on:device
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   171
    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   172
	fgColor := Black on:device.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   173
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   174
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   175
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   176
realize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   177
    super realize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   178
    fgColor := fgColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   179
    bgColor := bgColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   180
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   181
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   182
recreate
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   183
    "after snapin, labels dimensions may have changed due to
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   184
     different font parameters"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   185
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   186
    super recreate.
3
claus
parents: 0
diff changeset
   187
    font := font on:device.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   188
    self computeLabelSize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   189
    self computeLabelOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   190
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   191
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   192
!Label methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   193
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   194
foregroundColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   195
    "return the foreground color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   196
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   197
    ^ fgColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   198
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   199
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   200
foregroundColor:aColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   201
    "set the foreground color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   202
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   203
    fgColor := aColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   204
    self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   205
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   206
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   207
backgroundColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   208
    "return the background color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   209
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   210
    ^ bgColor 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   211
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   212
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   213
backgroundColor:aColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   214
    "set the background color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   215
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   216
    bgColor := aColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   217
    self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   218
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   219
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   220
foregroundColor:fg backgroundColor:bg
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   221
    "set the colors to be used for drawing"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   222
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   223
    fgColor := fg on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   224
    bgColor := bg on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   225
    self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   226
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   227
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   228
sizeFixed:aBoolean
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   229
    "set/clear the fix-size attribute (will not change size on label-change)"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   230
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   231
    fixSize := aBoolean
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   232
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   233
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   234
sizeFixed
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   235
    "return the fix-size attribute"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   236
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   237
    ^ fixSize
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   238
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   239
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   240
label:aString
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   241
    "set the label-string; adjust extent if not already realized"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   242
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   243
    (logo = aString) ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   244
	logo := aString.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   245
	self newLayout
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   246
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   247
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   248
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   249
label
3
claus
parents: 0
diff changeset
   250
    "return the labels string"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   251
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   252
    ^ logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   253
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   254
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   255
labelWidth
3
claus
parents: 0
diff changeset
   256
    "return the logos width in pixels"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   257
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   258
    ^ labelWidth
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   259
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   260
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   261
font:aFont
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   262
    "set the font - if I'm not realized, adjust my size"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   263
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   264
    (aFont ~~ font) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   265
	super font:(aFont on:device).
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   266
	self newLayout
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   267
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   268
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   269
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   270
adjust:how
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   271
    "set the adjust, how which must be one of
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   272
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   273
     #left        -> left adjust logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   274
     #right       -> right adjust logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   275
     #center      -> center logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   276
     #centerLeft  -> center logo; if it does not fit, left adjust it
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   277
     #centerRight -> center logo; if no fit, right adjust
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   278
    "
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   279
    (adjust ~~ how) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   280
	adjust := how.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   281
	self newLayout
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   282
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   283
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   284
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   285
form:aForm
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   286
    "set the labels form; adjust extent if not already realized"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   287
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   288
    aForm isNil ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   289
	aForm ~~ logo ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   290
	    logo notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   291
		logo extent = aForm extent ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   292
		    logo := aForm.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   293
		    ^ self
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   294
		]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   295
	    ].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   296
	    logo := aForm.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   297
	    self newLayout
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   298
	]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   299
    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   300
!
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   301
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   302
logo:something
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   303
    "set the labels form or string"
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   304
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   305
    (logo isKindOf:Collection) ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   306
	self form:something
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   307
    ] ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   308
	self label:something
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   309
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   310
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   311
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   312
!Label methodsFor:'change & update'!
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   313
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   314
update:something
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   315
    "the MVC way of changing the label ..."
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   316
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   317
    (something == aspectSymbol) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   318
	model notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   319
	    self label:(model perform: aspectSymbol) printString.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   320
	].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   321
	^ self.
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   322
    ].
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   323
    super update:something
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   324
! !
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   325
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   326
!Label methodsFor:'queries'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   327
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   328
preferedExtent
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   329
    "return my prefered extent - this is the minimum size I would like to have"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   330
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   331
    |extra|
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   332
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   333
    logo notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   334
	extra := margin * 2.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   335
	^ (labelWidth + extra) @ (labelHeight + extra)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   336
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   337
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   338
    ^ super preferedExtent
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   339
! !
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   340
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   341
!Label methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   342
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   343
newLayout
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   344
    "recompute position/size after a change
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   345
     - helper for form:/font: etc."
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   346
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   347
    self computeLabelSize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   348
    fixSize ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   349
	self resize
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   350
    ] ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   351
	self computeLabelOrigin
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   352
    ].
3
claus
parents: 0
diff changeset
   353
    shown ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   354
	self redraw
3
claus
parents: 0
diff changeset
   355
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   356
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   357
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   358
resize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   359
    "resize myself to make text fit into myself"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   360
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   361
    |extra|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   362
3
claus
parents: 0
diff changeset
   363
    logo notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   364
	(relativeExtent isNil and:[extentRule isNil]) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   365
	    extra := margin * 2.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   366
	    self extent:(labelWidth + extra) @ (labelHeight + extra)
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   367
	].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   368
	self computeLabelOrigin
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   369
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   370
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   371
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   372
computeLabelSize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   373
    "compute the extent needed to hold the label; aForm or aString"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   374
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   375
    |numberOfLines textHeight textWidth|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   376
3
claus
parents: 0
diff changeset
   377
    (logo isKindOf:Collection) ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   378
	logo notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   379
	    labelWidth := logo width. 
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   380
	    labelHeight := logo height
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   381
	].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   382
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   383
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   384
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   385
    "must be a String or Text"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   386
    (logo isString) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   387
	numberOfLines := 1 + (logo occurrencesOf:(Character cr)).
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   388
	(numberOfLines ~~ 1) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   389
	    logo := logo asText
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   390
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   391
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   392
	numberOfLines := logo size.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   393
	(numberOfLines == 1) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   394
	    logo := logo asString
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   395
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   396
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   397
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   398
    textHeight := font height * numberOfLines + font descent.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   399
    textWidth := font widthOf:logo.
25
975bead4571a *** empty log message ***
claus
parents: 24
diff changeset
   400
    labelWidth := textWidth + (hSpace * 2) .
975bead4571a *** empty log message ***
claus
parents: 24
diff changeset
   401
    labelHeight := textHeight + (vSpace * 2)
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   402
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   403
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   404
computeLabelOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   405
    "(re)compute the origin of the label whenever label or font changes"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   406
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   407
    |x y|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   408
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   409
    labelHeight isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   410
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   411
    " always center vertically "
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   412
    (labelHeight < height) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   413
	y := (height - labelHeight) // 2
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   414
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   415
	y := 0
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   416
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   417
    labelOriginY := y.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   418
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   419
    (((adjust == #center) 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   420
     or:[adjust == #centerRight])
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   421
     or:[adjust == #centerLeft]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   422
	" center text/form in button "
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   423
	x := (width - labelWidth) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   424
	(width < labelWidth) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   425
	    "no fit"
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   426
	    (adjust == #centerLeft) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   427
		x := margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   428
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   429
		(adjust == #centerRight) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   430
		    x := width - labelWidth - margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   431
		]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   432
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   433
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   434
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   435
	(adjust == #left) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   436
	    x := margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   437
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   438
	    x := width - labelWidth - margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   439
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   440
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   441
    labelOriginX := x
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   442
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   443
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   444
!Label methodsFor:'events'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   445
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   446
sizeChanged:how
3
claus
parents: 0
diff changeset
   447
    "sent whenever size is changed by someone else - recompute the
claus
parents: 0
diff changeset
   448
     logos position within the View."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   449
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   450
    self computeLabelOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   451
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   452
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   453
!Label methodsFor:'redrawing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   454
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   455
drawWith:fg and:bg
3
claus
parents: 0
diff changeset
   456
    "redraw my label with fg/bg - this generic method is also used by subclasses
claus
parents: 0
diff changeset
   457
     (especially Button) to redraw the logo in different colors."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   458
3
claus
parents: 0
diff changeset
   459
    |x y cutOff mustClear|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   460
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   461
    cutOff := margin * 2.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   462
3
claus
parents: 0
diff changeset
   463
    mustClear := true.
claus
parents: 0
diff changeset
   464
claus
parents: 0
diff changeset
   465
    (logo notNil and:[(logo isKindOf:Form) or:[logo isKindOf:Image]]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   466
	(labelOriginX == 0 and:[labelOriginY == 0]) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   467
	    logo width >= (width - cutOff) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   468
		logo height >= (height - cutOff) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   469
		    "no need to clear before - avoid flicker"
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   470
		    mustClear := false
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   471
		]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   472
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   473
	].
3
claus
parents: 0
diff changeset
   474
    ].
claus
parents: 0
diff changeset
   475
claus
parents: 0
diff changeset
   476
    mustClear ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   477
	self paint:bg.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   478
	self fillRectangleX:margin y:margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   479
		      width:(width - cutOff)
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   480
		     height:(height - cutOff).
3
claus
parents: 0
diff changeset
   481
    ].
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   482
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   483
    logo notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   484
	self paint:fg on:bg.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   485
	(logo isKindOf:Image) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   486
	    logo := logo on:device
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   487
	].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   488
	((logo isKindOf:Form) or:[logo isKindOf:Image]) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   489
"/            self background:bg.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   490
	    self displayOpaqueForm:logo x:labelOriginX y:labelOriginY
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   491
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   492
	    x := labelOriginX + hSpace.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   493
	    y := labelOriginY + (font ascent) + vSpace.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   494
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   495
	    (logo isString) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   496
		self displayString:logo x:x y:y
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   497
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   498
		logo do:[ :line |
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   499
		    self displayString:(line printString) x:x y:y.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   500
		    y := y + (font height)
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   501
		]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   502
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   503
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   504
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   505
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   506
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   507
redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   508
    "redraw my label"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   509
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   510
    shown ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   511
	self drawWith:fgColor and:bgColor
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   512
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   513
! !