Label.st
author claus
Sat, 18 Mar 1995 06:16:33 +0100
changeset 104 ca75c90df7a9
parent 97 cbf495fe3b64
child 105 3d064ba4a0cc
permissions -rw-r--r--
Initial revision
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
97
cbf495fe3b64 *** empty log message ***
claus
parents: 87
diff changeset
    29
$Header: /cvs/stx/stx/libwidg/Label.st,v 1.17 1995-03-06 19:28:54 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
"
97
cbf495fe3b64 *** empty log message ***
claus
parents: 87
diff changeset
    50
$Header: /cvs/stx/stx/libwidg/Label.st,v 1.17 1995-03-06 19:28:54 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.
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    59
    Text) or a Form/Image. 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    60
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    61
    The contents is drawn in fgColor/bgColor, which can be changed using:
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    62
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    63
	aLabel foregroundColor:aColor
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    64
	aLabel backgroundColor:aColor
3
claus
parents: 0
diff changeset
    65
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    66
    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
    67
    the required size. This resizing can be suppressed by setting the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    68
    fixsize attribute to true using:
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    69
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    70
	aLabel sizeFixed:true
3
claus
parents: 0
diff changeset
    71
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    72
    This can be used, if resizing of the label is not wanted.
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    73
    However, in this case you have to make certain that the size is big enough
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    74
    to hold changed logos later.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    75
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    76
    The placement of the contents within the label is controlled by
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    77
    the adjust attribute, it can be set with:
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    78
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    79
	aLabel adjust:how
3
claus
parents: 0
diff changeset
    80
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    81
    where how is one of the symbols left, #right, #center, #centerLeft or
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
    82
    #centerRight (see the comment in Label>>adjust:). The default is #center.
3
claus
parents: 0
diff changeset
    83
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    84
    Instance variables:
3
claus
parents: 0
diff changeset
    85
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    86
	logo                <Object>        the logo, can be a Form, String or Text
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    87
	labelWidth          <Integer>       the width of the logo in device units
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    88
	labelHeight         <Integer>       the height of the logo in device units
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    89
	labelOriginX        <Integer>       the x-position of the logo withing the Label
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    90
	labelOriginY        <Integer>       the y-position of the logo withing the Label
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    91
	adjust              <Symbol>        controls how the logo is positioned within the
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    92
					    label. Can be one of:#left,#right,#center,
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    93
					    #centerLeft or #centerRight (see comment in adjust:)
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    94
	hSpace              <Integer>       number of horizontal pixels around logo
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    95
	vSpace              <Integer>       number of vertical pixels around logo
3
claus
parents: 0
diff changeset
    96
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    97
	bgColor             <Color>         background color
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
    98
	fgColor             <Color>         foreground color
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
    99
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   100
	fixSize             <Boolean>       if true, a change of the logo change will not
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   101
					    resize the label; otherwise, its size is adjusted.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   102
					    default:false.
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   103
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   104
    Model-View behavior:
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   105
	label model:aModel.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   106
	label aspect:aspectSymbol.
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   107
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   108
	model sends #changed:aspectSymbol
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   109
	---> label will redraw its label from value of model>>aspectSymbol
3
claus
parents: 0
diff changeset
   110
"
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   111
!
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   112
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   113
examples
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   114
"
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   115
    Notice, that Buttons and others inherit from Label; 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   116
    therefore, the following geometry examples apply to all subclasses too.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   117
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   118
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   119
    simple:
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   120
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   121
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   122
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   123
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   124
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   125
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   126
	l label:'hello world'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   127
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   128
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   129
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   130
    placement:
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   131
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   132
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   133
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   134
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   135
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   136
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   137
	l label:'hello world'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   138
	l origin:50@100.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   139
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   140
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   141
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   142
    level:
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   143
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   144
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   145
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   146
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   147
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   148
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   149
	l level:5.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   150
	l label:'hello world'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   151
	l origin:50@100.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   152
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   153
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   154
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   155
    another level:    
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   156
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   157
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   158
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   159
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   160
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   161
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   162
	l level:-1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   163
	l label:'hello world'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   164
	l origin:50@100.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   165
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   166
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   167
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   168
    border & colors:    
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   169
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   170
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   171
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   172
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   173
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   174
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   175
	l level:0.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   176
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   177
	l borderColor:Color red.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   178
	l foregroundColor:Color green darkened.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   179
	l backgroundColor:Color green lightened.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   180
	l label:'hello world'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   181
	l origin:50@100.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   182
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   183
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   184
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   185
    adjust (resize to see):    
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   186
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   187
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   188
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   189
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   190
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   191
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   192
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   193
	l label:'default - centered'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   194
	l origin:0.0@70.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   195
	l width:1.0.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   196
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   197
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   198
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   199
	l adjust:#left.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   200
	l label:'left adjust'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   201
	l origin:0.0@100.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   202
	l width:1.0.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   203
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   204
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   205
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   206
	l adjust:#right.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   207
	l label:'right adjust'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   208
	l origin:0.0@130.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   209
	l width:1.0.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   210
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   211
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   212
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   213
    just a reminder, that instead of doing placement manually
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   214
    as in:    
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   215
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   216
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   217
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   218
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   219
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   220
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   221
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   222
	l label:'default - centered'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   223
	l origin:0.1@70.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   224
	l width:0.8.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   225
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   226
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   227
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   228
	l adjust:#left.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   229
	l label:'left adjust'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   230
	l origin:0.1@100.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   231
	l width:0.8.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   232
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   233
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   234
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   235
	l adjust:#right.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   236
	l label:'right adjust'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   237
	l origin:0.1@130.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   238
	l width:0.8.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   239
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   240
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   241
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   242
    it is much easier, to use a geometry handler, such as
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   243
    a VerticalPanel. Try:
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   244
	|top panel l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   245
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   246
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   247
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   248
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   249
	panel := VerticalPanelView 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   250
			origin:0.0 @ 0.0 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   251
			corner:1.0 @ 1.0 
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   252
			    in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   253
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   254
	panel horizontalLayout:#fit.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   255
	panel verticalLayout:#center.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   256
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   257
	l := Label in:panel.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   258
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   259
	l label:'default - centered'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   260
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   261
	l := Label in:panel.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   262
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   263
	l adjust:#left.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   264
	l label:'left adjust'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   265
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   266
	l := Label in:panel.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   267
	l borderWidth:1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   268
	l adjust:#right.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   269
	l label:'right adjust'.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   270
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   271
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   272
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   273
    labels with bitmaps or images:
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   274
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   275
	|top l|
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   276
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   277
	top := StandardSystemView new.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   278
	top extent:(200 @ 200).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   279
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   280
	l := Label in:top.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   281
	l level:-1.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   282
	l form:((Image fromFile:'bitmaps/garfield.gif') magnifyBy:0.2 @ 0.2).
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   283
	l origin:50@100.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   284
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   285
	top open
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   286
"
3
claus
parents: 0
diff changeset
   287
! !
claus
parents: 0
diff changeset
   288
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   289
!Label class methodsFor:'defaults'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   290
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   291
defaultExtent
3
claus
parents: 0
diff changeset
   292
    "return default extent"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   293
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   294
    ^ 16 @ 16
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   295
!
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   296
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   297
updateStyleCache
77
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   298
    DefaultForegroundColor := StyleSheet colorAt:'labelForegroundColor'.
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   299
    DefaultForegroundColor isNil ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   300
	DefaultForegroundColor := StyleSheet colorAt:'foregroundColor' default:Black.
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   301
    ].
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   302
    DefaultBackgroundColor := StyleSheet colorAt:'labelBackgroundColor'.
77
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   303
    DefaultBackgroundColor isNil ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   304
	DefaultForegroundColor := StyleSheet colorAt:'backgroundColor'.
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   305
    ].
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   306
    DefaultFont := StyleSheet fontAt:'labelFont'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   307
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   308
    "
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   309
     self updateStyleCache
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   310
    "
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   311
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   312
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   313
!Label class methodsFor:'instance creation'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   314
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   315
form:aForm
3
claus
parents: 0
diff changeset
   316
    "return a new Label showing a form"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   317
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   318
    ^ (self on:Display) form:aForm
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   319
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   320
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   321
form:aForm in:aView
3
claus
parents: 0
diff changeset
   322
    "return a new Label showing a form"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   323
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   324
    ^ (self in:aView) form:aForm
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   325
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   326
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   327
!Label methodsFor:'initialization'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   328
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   329
initialize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   330
    super initialize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   331
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   332
    font := font on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   333
    self height:(font height + font descent).
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   334
    adjust := #center.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   335
    labelOriginX := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   336
    labelOriginY := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   337
    labelWidth := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   338
    labelHeight := 0.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   339
    logo := nil.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   340
    fixSize := false.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   341
    hSpace := (self horizontalPixelPerMillimeter:0.5) rounded.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   342
    vSpace := (self verticalPixelPerMillimeter:0.5) rounded
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   343
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   344
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   345
initStyle
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   346
    super initStyle.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   347
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   348
    DefaultFont notNil ifTrue:[font := DefaultFont on:device].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   349
    DefaultBackgroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   350
	bgColor := DefaultBackgroundColor on:device
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   351
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   352
	bgColor := viewBackground on:device.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   353
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   354
    DefaultForegroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   355
	fgColor := DefaultForegroundColor on:device
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   356
    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   357
	fgColor := Black on:device.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   358
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   359
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   360
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   361
realize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   362
    super realize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   363
    fgColor := fgColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   364
    bgColor := bgColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   365
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   366
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   367
recreate
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   368
    "after snapin, labels dimensions may have changed due to
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   369
     different font parameters"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   370
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   371
    super recreate.
3
claus
parents: 0
diff changeset
   372
    font := font on:device.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   373
    self computeLabelSize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   374
    self computeLabelOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   375
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   376
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   377
!Label methodsFor:'accessing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   378
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   379
foregroundColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   380
    "return the foreground color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   381
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   382
    ^ fgColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   383
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   384
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   385
foregroundColor:aColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   386
    "set the foreground color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   387
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   388
    fgColor := aColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   389
    self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   390
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   391
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   392
backgroundColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   393
    "return the background color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   394
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   395
    ^ bgColor 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   396
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   397
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   398
backgroundColor:aColor
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   399
    "set the background color"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   400
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   401
    bgColor := aColor on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   402
    self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   403
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   404
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   405
foregroundColor:fg backgroundColor:bg
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   406
    "set the colors to be used for drawing"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   407
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   408
    fgColor := fg on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   409
    bgColor := bg on:device.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   410
    self redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   411
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   412
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   413
sizeFixed:aBoolean
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   414
    "set/clear the fix-size attribute (will not change size on label-change)"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   415
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   416
    fixSize := aBoolean
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   417
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   418
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   419
sizeFixed
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   420
    "return the fix-size attribute"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   421
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   422
    ^ fixSize
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   423
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   424
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   425
label:aString
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   426
    "set the label-string; adjust extent if not already realized"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   427
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   428
    (logo = aString) ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   429
	logo := aString.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   430
	self newLayout
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   431
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   432
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   433
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   434
label
3
claus
parents: 0
diff changeset
   435
    "return the labels string"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   436
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   437
    ^ logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   438
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   439
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   440
labelWidth
3
claus
parents: 0
diff changeset
   441
    "return the logos width in pixels"
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   442
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   443
    ^ labelWidth
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   444
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   445
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   446
font:aFont
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   447
    "set the font - if I'm not realized, adjust my size"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   448
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   449
    (aFont ~~ font) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   450
	super font:(aFont on:device).
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   451
	self newLayout
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   452
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   453
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   454
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   455
adjust:how
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   456
    "set the adjust, how which must be one of
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   457
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   458
     #left        -> left adjust logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   459
     #right       -> right adjust logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   460
     #center      -> center logo
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   461
     #centerLeft  -> center logo; if it does not fit, left adjust it
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   462
     #centerRight -> center logo; if no fit, right adjust
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   463
    "
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   464
    (adjust ~~ how) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   465
	adjust := how.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   466
	self newLayout
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   467
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   468
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   469
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   470
form:aForm
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   471
    "set the labels form; adjust extent if not already realized"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   472
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   473
    (aForm notNil and:[aForm ~~ logo]) ifTrue:[
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   474
	logo notNil ifTrue:[
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   475
	    logo isImageOrForm ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   476
		logo extent = aForm extent ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   477
		    logo := aForm.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   478
		    ^ self
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   479
		]
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   480
	    ]
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   481
	].
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   482
	logo := aForm.
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   483
	self newLayout
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   484
    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   485
!
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   486
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   487
logo:something
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   488
    "set the labels form or string"
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   489
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   490
    logo isImageOrForm ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   491
	self form:something
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   492
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   493
	self label:something
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   494
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   495
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   496
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   497
!Label methodsFor:'change & update'!
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   498
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   499
update:something
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   500
    "the MVC way of changing the label ..."
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   501
97
cbf495fe3b64 *** empty log message ***
claus
parents: 87
diff changeset
   502
    (aspectSymbol notNil
cbf495fe3b64 *** empty log message ***
claus
parents: 87
diff changeset
   503
    and:[something == aspectSymbol]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   504
	model notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   505
	    self label:(model perform: aspectSymbol) printString.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   506
	].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   507
	^ self.
50
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   508
    ].
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   509
    super update:something
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   510
! !
e2a1b5f187ef MVC support
claus
parents: 38
diff changeset
   511
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   512
!Label methodsFor:'queries'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   513
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   514
preferedExtent
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   515
    "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
   516
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   517
    |extra|
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   518
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   519
    logo notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   520
	extra := margin * 2.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   521
	^ (labelWidth + extra) @ (labelHeight + extra)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   522
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   523
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   524
    ^ super preferedExtent
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   525
! !
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 25
diff changeset
   526
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   527
!Label methodsFor:'private'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   528
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   529
newLayout
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   530
    "recompute position/size after a change
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   531
     - helper for form:/font: etc."
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   532
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   533
    self computeLabelSize.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   534
    fixSize ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   535
	self resize
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   536
    ] ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   537
	self computeLabelOrigin
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   538
    ].
3
claus
parents: 0
diff changeset
   539
    shown ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   540
	self redraw
3
claus
parents: 0
diff changeset
   541
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   542
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   543
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   544
resize
69
2b72a20e61c2 *** empty log message ***
claus
parents: 63
diff changeset
   545
    "resize myself to make text fit into myself.
2b72a20e61c2 *** empty log message ***
claus
parents: 63
diff changeset
   546
     but only do so, if I have not been given a relative extent
2b72a20e61c2 *** empty log message ***
claus
parents: 63
diff changeset
   547
     or an extend computation block."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   548
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   549
    |extra|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   550
3
claus
parents: 0
diff changeset
   551
    logo notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   552
	(relativeExtent isNil and:[extentRule isNil]) ifTrue:[
69
2b72a20e61c2 *** empty log message ***
claus
parents: 63
diff changeset
   553
	    (relativeCorner isNil and:[cornerRule isNil]) ifTrue:[
2b72a20e61c2 *** empty log message ***
claus
parents: 63
diff changeset
   554
		extra := margin * 2.
2b72a20e61c2 *** empty log message ***
claus
parents: 63
diff changeset
   555
		self extent:(labelWidth + extra) @ (labelHeight + extra)
2b72a20e61c2 *** empty log message ***
claus
parents: 63
diff changeset
   556
	    ].
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   557
	].
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   558
	self computeLabelOrigin
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   559
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   560
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   561
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   562
computeLabelSize
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   563
    "compute the extent needed to hold the label; aForm or aString"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   564
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   565
    |numberOfLines textHeight textWidth|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   566
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   567
    logo isNil ifTrue:[^ self].
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   568
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   569
    logo isImageOrForm ifTrue:[
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   570
	labelWidth := logo width. 
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   571
	labelHeight := logo height.
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   572
	^ self
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   573
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   574
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   575
    "must be a String or collection of strings"
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   576
    logo isString ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   577
	numberOfLines := 1 + (logo occurrencesOf:(Character cr)).
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   578
	(numberOfLines ~~ 1) ifTrue:[
81
0c97b2905d5b Text eliminated
claus
parents: 77
diff changeset
   579
	    logo := logo asStringCollection
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   580
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   581
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   582
	numberOfLines := logo size.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   583
	(numberOfLines == 1) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   584
	    logo := logo asString
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   585
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   586
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   587
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   588
    textHeight := font height * numberOfLines + font descent.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   589
    textWidth := font widthOf:logo.
25
975bead4571a *** empty log message ***
claus
parents: 24
diff changeset
   590
    labelWidth := textWidth + (hSpace * 2) .
975bead4571a *** empty log message ***
claus
parents: 24
diff changeset
   591
    labelHeight := textHeight + (vSpace * 2)
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   592
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   593
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   594
computeLabelOrigin
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   595
    "(re)compute the origin of the label whenever label or font changes"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   596
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   597
    |x y|
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   598
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   599
    labelHeight isNil ifTrue:[^ self].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   600
63
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   601
    "if it does not fit, should we make the origin visible,
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   602
     or the center (for text, the center seems better. For images,
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   603
     I dont really know ehich is better ...
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   604
     The commented code below makes the origin visible
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   605
   "
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   606
"/    (labelHeight < height) ifTrue:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   607
"/        y := (height - labelHeight) // 2
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   608
"/    ] ifFalse:[
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   609
"/        y := 0
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   610
"/    ].
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   611
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   612
    "always center vertically"
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   613
    y := (height - labelHeight) // 2.
f4eaf04d1eaf *** empty log message ***
claus
parents: 60
diff changeset
   614
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   615
    labelOriginY := y.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   616
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   617
    (((adjust == #center) 
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   618
     or:[adjust == #centerRight])
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   619
     or:[adjust == #centerLeft]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   620
	" center text/form in button "
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   621
	x := (width - labelWidth) // 2.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   622
	(width < labelWidth) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   623
	    "no fit"
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   624
	    (adjust == #centerLeft) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   625
		x := margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   626
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   627
		(adjust == #centerRight) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   628
		    x := width - labelWidth - margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   629
		]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   630
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   631
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   632
    ] ifFalse:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   633
	(adjust == #left) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   634
	    x := margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   635
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   636
	    x := width - labelWidth - margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   637
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   638
    ].
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   639
    labelOriginX := x
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   640
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   641
70
14443a9ea4ec *** empty log message ***
claus
parents: 69
diff changeset
   642
!Label methodsFor:'event handling'!
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   643
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   644
sizeChanged:how
3
claus
parents: 0
diff changeset
   645
    "sent whenever size is changed by someone else - recompute the
claus
parents: 0
diff changeset
   646
     logos position within the View."
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   647
77
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   648
    |prevPosition|
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   649
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   650
    prevPosition := labelOriginX.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   651
    self computeLabelOrigin
77
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   652
    shown ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   653
	labelOriginX ~~ prevPosition ifTrue:[
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   654
	    self redraw
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   655
	]
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   656
    ]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   657
! !
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   658
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   659
!Label methodsFor:'redrawing'!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   660
77
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   661
clearInsideWith:bg
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   662
    |cutOff mustClear|
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   663
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   664
    cutOff := margin * 2.
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   665
3
claus
parents: 0
diff changeset
   666
    mustClear := true.
claus
parents: 0
diff changeset
   667
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   668
    (logo notNil and:[logo isImageOrForm]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   669
	(labelOriginX == 0 and:[labelOriginY == 0]) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   670
	    logo width >= (width - cutOff) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   671
		logo height >= (height - cutOff) ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   672
		    "no need to clear before - avoid flicker"
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   673
		    mustClear := false
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   674
		]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   675
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   676
	].
3
claus
parents: 0
diff changeset
   677
    ].
claus
parents: 0
diff changeset
   678
claus
parents: 0
diff changeset
   679
    mustClear ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   680
	self paint:bg.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   681
	self fillRectangleX:margin y:margin
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   682
		      width:(width - cutOff)
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   683
		     height:(height - cutOff).
3
claus
parents: 0
diff changeset
   684
    ].
77
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   685
!
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   686
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   687
drawWith:fg and:bg
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   688
    "redraw my label with fg/bg - this generic method is also used by subclasses
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   689
     (especially Button) to redraw the logo in different colors."
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   690
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   691
    |x y|
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   692
565b052f5277 *** empty log message ***
claus
parents: 70
diff changeset
   693
    self clearInsideWith:bg.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   694
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   695
    logo notNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   696
	self paint:fg on:bg.
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   697
	logo isImageOrForm ifTrue:[
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   698
	    logo := logo on:device.
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   699
"/            self background:bg.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   700
	    self displayOpaqueForm:logo x:labelOriginX y:labelOriginY
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   701
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   702
	    x := labelOriginX + hSpace.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   703
	    y := labelOriginY + (font ascent) + vSpace.
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   704
87
2c6ab478466a *** empty log message ***
claus
parents: 81
diff changeset
   705
	    logo isString ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   706
		self displayString:logo x:x y:y
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   707
	    ] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   708
		logo do:[ :line |
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   709
		    self displayString:(line printString) x:x y:y.
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   710
		    y := y + (font height)
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   711
		]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   712
	    ]
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   713
	]
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   714
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   715
!
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   716
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   717
redraw
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   718
    "redraw my label"
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   719
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   720
    shown ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 50
diff changeset
   721
	self drawWith:fgColor and:bgColor
0
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   722
    ]
e6a541c1c0eb Initial revision
claus
parents:
diff changeset
   723
! !