ArrowButton.st
author Claus Gittinger <cg@exept.de>
Thu, 23 Nov 1995 03:26:58 +0100
changeset 197 00927189c882
parent 174 d80a6cc3f9b2
child 205 6814c0bf8df8
permissions -rw-r--r--
checkin from browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     1
"
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
     3
	      All Rights Reserved
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     4
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
3ebee08bea15 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
3ebee08bea15 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
3ebee08bea15 Initial revision
claus
parents:
diff changeset
    11
"
3ebee08bea15 Initial revision
claus
parents:
diff changeset
    12
3ebee08bea15 Initial revision
claus
parents:
diff changeset
    13
Button subclass:#ArrowButton
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    14
	 instanceVariableNames:'arrowStyle'
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    15
	 classVariableNames:'DownArrowForm UpArrowForm
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    16
			     LeftArrowForm RightArrowForm CachedStyle
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    17
			     DefaultArrowStyle 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    18
			     DefaultBackgroundColor DefaultForegroundColor 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    19
			     DefaultActiveBackgroundColor DefaultActiveForegroundColor
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    20
			     DefaultEnteredBackgroundColor DefaultEnteredForegroundColor
153
claus
parents: 139
diff changeset
    21
			     DefaultDisabledForegroundColor   
claus
parents: 139
diff changeset
    22
			     DefaultArrowButtonActiveLevel DefaultArrowButtonPassiveLevel 
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    23
			     DownArrowFormFile UpArrowFormFile 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    24
			     LeftArrowFormFile RightArrowFormFile'
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    25
	 poolDictionaries:''
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    26
	 category:'Views-Interactors'
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
    27
!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
    28
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    29
!ArrowButton class methodsFor:'documentation'!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    30
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    31
copyright
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    32
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    33
 COPYRIGHT (c) 1993 by Claus Gittinger
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    34
	      All Rights Reserved
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    35
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    36
 This software is furnished under a license and may be used
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    37
 only in accordance with the terms of that license and with the
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    39
 be provided or otherwise made available to, or used by, any
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    40
 other person.  No title to or ownership of the software is
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    41
 hereby transferred.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    42
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    43
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    44
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    45
version
174
d80a6cc3f9b2 uff - version methods changed to return stings
Claus Gittinger <cg@exept.de>
parents: 155
diff changeset
    46
    ^ '$Header: /cvs/stx/stx/libwidg/ArrowButton.st,v 1.18 1995-11-11 16:18:56 cg Exp $'
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    47
!
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    48
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    49
documentation
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    50
"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    51
    ArrowButtons display an arrow as their label; they are mainly
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    52
    used for scrollbars, but can be useful on their own in some applications.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    53
    Beside the contents, their default behavior is to perform their action
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    54
    when pressed - not (as is the default for normal buttons) when released.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    55
65
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    56
    Indivdual ArrowButtons can be created by sending one of:
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    57
	    ArrowButton upIn:aView /downIn: / leftIn: or rightIn:
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    58
    passing the parent view as argument.
65
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    59
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    60
    styleSheet parameters:
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    61
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    62
	arrowButtonStyle            <Symbol>        the style of the button;
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    63
						    #motif, #st80 or nil (default)
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    64
	arrowButtonForegroundColor  <nil | Color>   foregroundColor 
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    65
	arrowButtonBackgroundColor  <nil | Color>   backgroundColor 
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    66
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    67
	arrowButtonActiveForegroundColor            foregroundColor when pressed
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    68
	arrowButtonActiveBackgroundColor            backgroundColor when pressed
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    69
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    70
	arrowButtonEnteredForegroundColor           foregroundColor when mouse pointer entered
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
    71
	arrowButtonEnteredBackgroundColor           backgroundColor when mouse pointer entered
130
claus
parents: 128
diff changeset
    72
claus
parents: 128
diff changeset
    73
    See examples.
claus
parents: 128
diff changeset
    74
claus
parents: 128
diff changeset
    75
    See also: Button  Toggle  CheckToggle  CheckBox
claus
parents: 128
diff changeset
    76
	      ScrollBar
claus
parents: 128
diff changeset
    77
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    78
"
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    79
!
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
    80
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    81
examples 
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
    82
"
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    83
    example1:
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    84
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    85
	|v p b1 b2 b3 b4|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    86
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    87
	v := StandardSystemView extent:200@200.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    88
	p := HorizontalPanelView origin:0.0 @ 0.0 corner:1.0 @ 1.0 in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    89
	b1 := ArrowButton upIn:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    90
	b2 := ArrowButton downIn:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    91
	b3 := ArrowButton leftIn:p.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    92
	b4 := ArrowButton rightIn:p.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    93
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    94
	b1 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    95
	b2 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    96
	b3 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    97
	b4 action:['whatEver you like here ...'].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
    98
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
    99
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   100
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   101
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   102
    example2:
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   103
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   104
	|v p b1 b2 b3 b4|
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   105
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   106
	v := StandardSystemView extent:200@200.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   107
	p := HorizontalPanelView origin:0.0 @ 0.0 corner:1.0 @ 1.0 in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   108
	b1 := (ArrowButton upIn:p) extent:30@30.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   109
	b2 := (ArrowButton downIn:p) extent:30@30.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   110
	b3 := (ArrowButton leftIn:p) extent:30@30.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   111
	b4 := (ArrowButton rightIn:p) extent:30@30.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   112
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   113
	b1 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   114
	b2 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   115
	b3 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   116
	b4 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   117
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   118
	v open
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   119
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   120
    example3:
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   121
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   122
	|v p b1 b2 b3 b4|
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   123
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   124
	v := StandardSystemView extent:200@200.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   125
	p := View origin:0.0 @ 0.0 corner:1.0 @ 1.0 in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   126
	b1 := (ArrowButton upIn:p) origin:(0.33 @ 0.0) corner:(0.67 @ 0.33).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   127
	b3 := (ArrowButton leftIn:p) origin:(0.0 @ 0.33) corner:(0.33 @ 0.67).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   128
	b4 := (ArrowButton rightIn:p) origin:(0.67 @ 0.33) corner:(1.0 @ 0.67).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   129
	b2 := (ArrowButton downIn:p) origin:(0.33 @ 0.67) corner:(0.67 @ 1.0).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   130
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   131
	b1 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   132
	b2 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   133
	b3 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   134
	b4 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   135
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   136
	v open
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   137
65
b33e4f3a264e *** empty log message ***
claus
parents: 62
diff changeset
   138
    example4 (not good coding style, to explicitely use a particular style,
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   139
	      just a demonstration how it looks ..):
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   140
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   141
	|v p b1 b2 b3 b4 oldStyle|
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   142
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   143
	oldStyle := View defaultStyle.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   144
	View defaultStyle:#motif.
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   145
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   146
	v := StandardSystemView extent:100@100.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   147
	p := View origin:0.0 @ 0.0 corner:1.0 @ 1.0 in:v.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   148
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   149
	b1 := (ArrowButton upIn:p) origin:(0.33 @ 0.0) corner:(0.67 @ 0.33).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   150
	b3 := (ArrowButton leftIn:p) origin:(0.0 @ 0.33) corner:(0.33 @ 0.67).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   151
	b4 := (ArrowButton rightIn:p) origin:(0.67 @ 0.33) corner:(1.0 @ 0.67).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   152
	b2 := (ArrowButton downIn:p) origin:(0.33 @ 0.67) corner:(0.67 @ 1.0).
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   153
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   154
	b1 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   155
	b2 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   156
	b3 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   157
	b4 action:['whatEver you like here ...'].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   158
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   159
	View defaultStyle:oldStyle.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   160
	v open
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   161
"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   162
! !
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   163
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   164
!ArrowButton class methodsFor:'defaults'!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   165
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   166
updateStyleCache
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   167
    DefaultArrowStyle := StyleSheet at:'arrowButtonStyle' default:StyleSheet name.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   168
    DefaultArrowStyle := DefaultArrowStyle asSymbol.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   169
128
claus
parents: 77
diff changeset
   170
    DefaultArrowButtonActiveLevel := StyleSheet at:'arrowButtonActiveLevel' default:nil.
claus
parents: 77
diff changeset
   171
    DefaultArrowButtonPassiveLevel := StyleSheet at:'arrowButtonPassiveLevel' default:nil.
claus
parents: 77
diff changeset
   172
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   173
    DefaultBackgroundColor := StyleSheet colorAt:'arrowButtonBackgroundColor'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   174
    DefaultForegroundColor := StyleSheet colorAt:'arrowButtonForegroundColor'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   175
    DefaultActiveBackgroundColor := StyleSheet colorAt:'arrowButtonActiveBackgroundColor'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   176
    DefaultActiveForegroundColor := StyleSheet colorAt:'arrowButtonActiveForegroundColor'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   177
    DefaultEnteredBackgroundColor := StyleSheet colorAt:'arrowButtonEnteredBackgroundColor'.
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   178
    DefaultEnteredForegroundColor := StyleSheet colorAt:'arrowButtonEnteredForegroundColor'.
153
claus
parents: 139
diff changeset
   179
    DefaultDisabledForegroundColor := StyleSheet colorAt:'arrowButtonDisabledForegroundColor'.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   180
153
claus
parents: 139
diff changeset
   181
    DownArrowForm := StyleSheet at:'arrowButtonDownForm' default:nil.
claus
parents: 139
diff changeset
   182
    UpArrowForm := StyleSheet at:'arrowButtonUpForm' default:nil.
claus
parents: 139
diff changeset
   183
    LeftArrowForm := StyleSheet at:'arrowButtonLeftForm' default:nil.
claus
parents: 139
diff changeset
   184
    RightArrowForm := StyleSheet at:'arrowButtonRightForm' default:nil.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   185
153
claus
parents: 139
diff changeset
   186
    UpArrowFormFile := DownArrowFormFile := LeftArrowFormFile := RightArrowFormFile := nil.
claus
parents: 139
diff changeset
   187
    UpArrowForm isNil ifTrue:[
claus
parents: 139
diff changeset
   188
	UpArrowFormFile := StyleSheet at:'arrowButtonUpFormFile' default:'ScrollUp.xbm'.
claus
parents: 139
diff changeset
   189
    ].
claus
parents: 139
diff changeset
   190
    DownArrowForm isNil ifTrue:[
claus
parents: 139
diff changeset
   191
	DownArrowFormFile := StyleSheet at:'arrowButtonDownFormFile' default:'ScrollDn.xbm'.
claus
parents: 139
diff changeset
   192
    ].
claus
parents: 139
diff changeset
   193
    LeftArrowForm isNil ifTrue:[
claus
parents: 139
diff changeset
   194
	LeftArrowFormFile := StyleSheet at:'arrowButtonLeftFormFile' default:'ScrollLt.xbm'.
claus
parents: 139
diff changeset
   195
    ].
claus
parents: 139
diff changeset
   196
    RightArrowForm isNil ifTrue:[
claus
parents: 139
diff changeset
   197
	RightArrowFormFile := StyleSheet at:'arrowButtonRightFormFile' default:'ScrollRt.xbm'.
claus
parents: 139
diff changeset
   198
    ].
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   199
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   200
    "
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   201
     self updateStyleCache
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   202
    "
153
claus
parents: 139
diff changeset
   203
claus
parents: 139
diff changeset
   204
    "Modified: 31.8.1995 / 03:01:14 / claus"
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   205
!
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   206
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   207
upArrowButtonForm:style on:aDevice
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   208
    "return the form used for the scrollUp Button"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   209
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   210
    |form|
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   211
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   212
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   213
     use cached form, if device is appropriate
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   214
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   215
    CachedStyle ~~ style ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   216
	UpArrowForm := DownArrowForm := LeftArrowForm := RightArrowForm := nil
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   217
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   218
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   219
    ((aDevice == Display) and:[UpArrowForm notNil]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   220
	^ UpArrowForm
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   221
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   222
154
claus
parents: 153
diff changeset
   223
    UpArrowForm := StyleSheet at:'arrowButtonUpForm' default:nil.
claus
parents: 153
diff changeset
   224
    UpArrowForm notNil ifTrue:[
claus
parents: 153
diff changeset
   225
	^ UpArrowForm
claus
parents: 153
diff changeset
   226
    ].
claus
parents: 153
diff changeset
   227
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   228
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   229
     special treatment for st80 arrows 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   230
     - they do not really fit into the general (bitmap) scheme ...
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   231
     (i.e. they are computed instead of drawn from a bitmap)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   232
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   233
    style ~~ #st80 ifTrue:[
130
claus
parents: 128
diff changeset
   234
	UpArrowFormFile notNil ifTrue:[
claus
parents: 128
diff changeset
   235
	    form := Form fromFile:UpArrowFormFile resolution:100 on:aDevice.
claus
parents: 128
diff changeset
   236
	    form isNil ifTrue:[
claus
parents: 128
diff changeset
   237
		'ARRBUTTON: no bitmapFile: ' infoPrint. UpArrowFormFile infoPrintNL.
claus
parents: 128
diff changeset
   238
	    ]
claus
parents: 128
diff changeset
   239
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   240
    ].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   241
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   242
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   243
     form to use as a fallback, if no bitmap file is present
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   244
     (actually not really needed - just to show something useful, in
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   245
      case of a bad installation)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   246
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   247
    form isNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   248
	style == #st80 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   249
	    form := Form width:9 height:9 depth:1 on:aDevice.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   250
	    form clear.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   251
	    form lineWidth:2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   252
	    form capStyle:#round.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   253
	    form paint:(Color colorId:1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   254
	    form displayLineFromX:0 y:6 toX:4 y:2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   255
	    form displayLineFromX:4 y:2 toX:8 y:6.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   256
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   257
	    form := Form width:16 height:16 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   258
			 fromArray:#[2r00000000 2r00000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   259
				     2r00000001 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   260
				     2r00000010 2r01000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   261
				     2r00000100 2r00100000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   262
				     2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   263
				     2r00010000 2r00001000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   264
				     2r00100000 2r00000100
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   265
				     2r01000000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   266
				     2r01111000 2r00011110
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   267
				     2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   268
				     2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   269
				     2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   270
				     2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   271
				     2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   272
				     2r00001111 2r11110000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   273
				     2r00000000 2r00000000]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   274
			 on:aDevice
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   275
	].
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   276
    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   277
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   278
    form := form on:aDevice.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   279
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   280
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   281
     remember form for next use
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   282
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   283
    (aDevice == Display) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   284
	CachedStyle := style.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   285
	UpArrowForm := form
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   286
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   287
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   288
    ^ form
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   289
!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   290
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   291
downArrowButtonForm:style on:aDevice
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   292
    "retun the form used for the scrollDown Button"
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   293
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   294
    |form|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   295
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   296
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   297
     use cached form, if device is appropriate
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   298
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   299
    CachedStyle ~~ style ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   300
	UpArrowForm := DownArrowForm := LeftArrowForm := RightArrowForm := nil
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   301
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   302
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   303
    ((aDevice == Display) and:[DownArrowForm notNil]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   304
	^ DownArrowForm
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   305
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   306
154
claus
parents: 153
diff changeset
   307
    DownArrowForm := StyleSheet at:'arrowButtonDownForm' default:nil.
claus
parents: 153
diff changeset
   308
    DownArrowForm notNil ifTrue:[
claus
parents: 153
diff changeset
   309
	^ DownArrowForm
claus
parents: 153
diff changeset
   310
    ].
claus
parents: 153
diff changeset
   311
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   312
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   313
     special treatment for st80 arrows 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   314
     - they do not really fit into the general (bitmap) scheme ...
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   315
     (i.e. they are computed instead of drawn from a bitmap)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   316
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   317
    style ~~ #st80 ifTrue:[
130
claus
parents: 128
diff changeset
   318
	DownArrowFormFile notNil ifTrue:[
claus
parents: 128
diff changeset
   319
	    form := Form fromFile:DownArrowFormFile resolution:100 on:aDevice.
claus
parents: 128
diff changeset
   320
	    form isNil ifTrue:[
claus
parents: 128
diff changeset
   321
		'ARRBUTTON: no bitmapFile: ' infoPrint. DownArrowFormFile infoPrintNL.
claus
parents: 128
diff changeset
   322
	    ]
claus
parents: 128
diff changeset
   323
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   324
    ].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   325
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   326
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   327
     form to use as a fallback, if no bitmap file is present
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   328
     (actually not really needed - just to show something useful, in
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   329
      case of a bad installation)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   330
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   331
    form isNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   332
	style == #st80 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   333
	    form := Form width:9 height:9 depth:1 on:Display.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   334
	    form clear.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   335
	    form lineWidth:2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   336
	    form capStyle:#round.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   337
	    form paint:(Color colorId:1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   338
	    form displayLineFromX:0 y:2 toX:4 y:6.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   339
	    form displayLineFromX:4 y:6 toX:8 y:2 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   340
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   341
	    form  := Form width:16 height:16 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   342
			  fromArray:#[2r00000000 2r00000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   343
				      2r00001111 2r11110000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   344
				      2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   345
				      2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   346
				      2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   347
				      2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   348
				      2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   349
				      2r01111000 2r00011110
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   350
				      2r01000000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   351
				      2r00100000 2r00000100
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   352
				      2r00010000 2r00001000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   353
				      2r00001000 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   354
				      2r00000100 2r00100000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   355
				      2r00000010 2r01000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   356
				      2r00000001 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   357
				      2r00000000 2r00000000]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   358
			 on:aDevice
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   359
	].
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   360
    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   361
    form := form on:aDevice.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   362
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   363
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   364
     remember form for next use
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   365
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   366
    (aDevice == Display) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   367
	CachedStyle := style.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   368
	DownArrowForm := form
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   369
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   370
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   371
    ^ form
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   372
!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   373
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   374
leftArrowButtonForm:style on:aDevice
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   375
    "retun the form used for the scrollLeft Button"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   376
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   377
    |form|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   378
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   379
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   380
     use cached form, if device is appropriate
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   381
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   382
    CachedStyle ~~ style ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   383
	UpArrowForm := DownArrowForm := LeftArrowForm := RightArrowForm := nil
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   384
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   385
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   386
    ((aDevice == Display) and:[LeftArrowForm notNil]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   387
	^ LeftArrowForm
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   388
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   389
154
claus
parents: 153
diff changeset
   390
    LeftArrowForm := StyleSheet at:'arrowButtonLeftForm' default:nil.
claus
parents: 153
diff changeset
   391
    LeftArrowForm notNil ifTrue:[
claus
parents: 153
diff changeset
   392
	^ LeftArrowForm
claus
parents: 153
diff changeset
   393
    ].
claus
parents: 153
diff changeset
   394
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   395
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   396
     special treatment for st80 arrows 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   397
     - they do not really fit into the general (bitmap) scheme ...
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   398
     (i.e. they are computed instead of drawn from a bitmap)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   399
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   400
    style ~~ #st80 ifTrue:[
130
claus
parents: 128
diff changeset
   401
	LeftArrowFormFile notNil ifTrue:[
claus
parents: 128
diff changeset
   402
	    form := Form fromFile:LeftArrowFormFile resolution:100 on:aDevice.
claus
parents: 128
diff changeset
   403
	    form isNil ifTrue:[
claus
parents: 128
diff changeset
   404
		'ARRBUTTON: no bitmapFile: ' infoPrint. LeftArrowFormFile infoPrintNL.
claus
parents: 128
diff changeset
   405
	    ]
claus
parents: 128
diff changeset
   406
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   407
    ].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   408
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   409
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   410
     form to use as a fallback, if no bitmap file is present
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   411
     (actually not really needed - just to show something useful, in
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   412
      case of a bad installation)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   413
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   414
    form isNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   415
	style == #st80 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   416
	    form := Form width:9 height:9 depth:1 on:Display.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   417
	    form clear.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   418
	    form lineWidth:2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   419
	    form capStyle:#round.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   420
	    form paint:(Color colorId:1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   421
	    form displayLineFromX:6 y:0 toX:2 y:4.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   422
	    form displayLineFromX:2 y:4 toX:6 y:8.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   423
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   424
	    form := Form width:16 height:16 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   425
			 fromArray:#[2r00000000 2r00000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   426
				     2r00000001 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   427
				     2r00000010 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   428
				     2r00000100 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   429
				     2r00001000 2r11111110
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   430
				     2r00010000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   431
				     2r00100000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   432
				     2r01000000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   433
				     2r01000000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   434
				     2r00100000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   435
				     2r00010000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   436
				     2r00001000 2r11111110
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   437
				     2r00000100 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   438
				     2r00000010 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   439
				     2r00000001 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   440
				     2r00000000 2r00000000]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   441
			 on:aDevice
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   442
	].
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   443
    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   444
    form := form on:aDevice.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   445
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   446
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   447
     remember form for next use
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   448
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   449
    (aDevice == Display) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   450
	CachedStyle := style.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   451
	LeftArrowForm := form
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   452
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   453
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   454
    ^ form
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   455
!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   456
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   457
rightArrowButtonForm:style on:aDevice
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   458
    "retun the form used for the scrollRight Button"
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   459
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   460
    |form|
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   461
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   462
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   463
     use cached form, if device is appropriate
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   464
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   465
    CachedStyle ~~ style ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   466
	UpArrowForm := DownArrowForm := LeftArrowForm := RightArrowForm := nil
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   467
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   468
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   469
    ((aDevice == Display) and:[RightArrowForm notNil]) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   470
	^ RightArrowForm
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   471
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   472
154
claus
parents: 153
diff changeset
   473
    RightArrowForm := StyleSheet at:'arrowButtonRightForm' default:nil.
claus
parents: 153
diff changeset
   474
    RightArrowForm notNil ifTrue:[
claus
parents: 153
diff changeset
   475
	^ RightArrowForm
claus
parents: 153
diff changeset
   476
    ].
claus
parents: 153
diff changeset
   477
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   478
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   479
     special treatment for st80 arrows 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   480
     - they do not really fit into the general (bitmap) scheme ...
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   481
     (i.e. they are computed instead of drawn from a bitmap)
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   482
    "
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   483
    style ~~ #st80 ifTrue:[
130
claus
parents: 128
diff changeset
   484
	RightArrowFormFile notNil ifTrue:[
claus
parents: 128
diff changeset
   485
	    form := Form fromFile:RightArrowFormFile resolution:100 on:aDevice.
claus
parents: 128
diff changeset
   486
	    form isNil ifTrue:[
claus
parents: 128
diff changeset
   487
		'ARRBUTTON: no bitmapFile: ' infoPrint. RightArrowFormFile infoPrintNL.
claus
parents: 128
diff changeset
   488
	    ]
claus
parents: 128
diff changeset
   489
	]
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   490
    ].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   491
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   492
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   493
     form to use as a fallback, if no bitmap file is present
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   494
     (actually not really needed - just to show something useful, in
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   495
      case of a bad installation)
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   496
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   497
    form isNil ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   498
	style == #st80 ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   499
	    form := Form width:9 height:9 depth:1 on:Display.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   500
	    form clear.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   501
	    form lineWidth:2.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   502
	    form capStyle:#round.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   503
	    form paint:(Color colorId:1).
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   504
	    form displayLineFromX:2 y:0 toX:6 y:4.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   505
	    form displayLineFromX:6 y:4 toX:2 y:8 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   506
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   507
	    form := Form width:16 height:16 
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   508
			 fromArray:#[2r00000000 2r00000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   509
				     2r00000001 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   510
				     2r00000001 2r01000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   511
				     2r00000001 2r00100000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   512
				     2r01111111 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   513
				     2r01000000 2r00001000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   514
				     2r01000000 2r00000100
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   515
				     2r01000000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   516
				     2r01000000 2r00000010
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   517
				     2r01000000 2r00000100
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   518
				     2r01000000 2r00001000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   519
				     2r01111111 2r00010000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   520
				     2r00000001 2r00100000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   521
				     2r00000001 2r01000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   522
				     2r00000001 2r10000000
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   523
				     2r00000000 2r00000000]
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   524
			 on:aDevice
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   525
	].
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   526
    ].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   527
    form := form on:aDevice.
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   528
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   529
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   530
     remember form for next use
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   531
    "
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   532
    (aDevice == Display) ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   533
	CachedStyle := style.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   534
	RightArrowForm := form
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   535
    ].
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   536
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   537
    ^ form
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   538
! !
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   539
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   540
!ArrowButton class methodsFor:'instance creation'!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   541
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   542
upIn:aView
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   543
    ^ (super in:aView) direction:#up
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   544
!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   545
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   546
downIn:aView
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   547
    ^ (super in:aView) direction:#down
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   548
!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   549
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   550
leftIn:aView
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   551
    ^ (super in:aView) direction:#left
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   552
!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   553
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   554
rightIn:aView
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   555
    ^ (super in:aView) direction:#right
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   556
! !
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   557
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   558
!ArrowButton methodsFor:'accessing'!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   559
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   560
direction:aDirectionSymbol
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   561
    |form|
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   562
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   563
    aDirectionSymbol == #up ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   564
	form := (self class upArrowButtonForm:arrowStyle on:device).
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   565
	name := 'upButton'.
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   566
    ].
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   567
    aDirectionSymbol == #down ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   568
	form := (self class downArrowButtonForm:arrowStyle on:device).
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   569
	name := 'downButton'.
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   570
    ].
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   571
    aDirectionSymbol == #left ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   572
	form := (self class leftArrowButtonForm:arrowStyle on:device).
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   573
	name := 'leftButton'.
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   574
    ].
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   575
    aDirectionSymbol == #right ifTrue:[
62
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   576
	form := (self class rightArrowButtonForm:arrowStyle on:device).
7cc1e330da47 *** empty log message ***
claus
parents: 60
diff changeset
   577
	name := 'rightButton'.
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   578
    ].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   579
    self form:form
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   580
! !
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   581
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   582
!ArrowButton methodsFor:'initialization'!
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   583
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   584
initialize
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   585
    super initialize.
77
565b052f5277 *** empty log message ***
claus
parents: 75
diff changeset
   586
    controller beTriggerOnDown.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   587
!
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   588
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   589
initStyle
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   590
    super initStyle.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   591
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   592
    DefaultBackgroundColor notNil ifTrue:[
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   593
	bgColor := DefaultBackgroundColor on:device
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   594
    ].
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   595
    DefaultForegroundColor notNil ifTrue:[
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   596
	fgColor := DefaultForegroundColor on:device
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   597
    ].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   598
    DefaultActiveForegroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   599
	activeFgColor := DefaultActiveForegroundColor on:device
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   600
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   601
    DefaultActiveBackgroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   602
	activeBgColor := DefaultActiveBackgroundColor on:device
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   603
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   604
    DefaultEnteredForegroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   605
	enteredFgColor := DefaultEnteredForegroundColor on:device
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   606
    ].
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   607
    DefaultEnteredBackgroundColor notNil ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   608
	enteredBgColor := DefaultEnteredBackgroundColor on:device
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   609
    ].
153
claus
parents: 139
diff changeset
   610
    DefaultDisabledForegroundColor notNil ifTrue:[
claus
parents: 139
diff changeset
   611
	disabledFgColor := DefaultDisabledForegroundColor on:device
claus
parents: 139
diff changeset
   612
    ].
claus
parents: 139
diff changeset
   613
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   614
    arrowStyle := DefaultArrowStyle.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   615
128
claus
parents: 77
diff changeset
   616
    DefaultArrowButtonActiveLevel notNil ifTrue:[onLevel := DefaultArrowButtonActiveLevel].
claus
parents: 77
diff changeset
   617
    DefaultArrowButtonPassiveLevel notNil ifTrue:[offLevel := DefaultArrowButtonPassiveLevel].
claus
parents: 77
diff changeset
   618
    offLevel ~~ level ifTrue:[self level:offLevel].
claus
parents: 77
diff changeset
   619
claus
parents: 77
diff changeset
   620
"/    "
claus
parents: 77
diff changeset
   621
"/     special treatment for motif arrows 
claus
parents: 77
diff changeset
   622
"/     - they do not really fit into the general (bitmap) scheme ...
claus
parents: 77
diff changeset
   623
"/    "
claus
parents: 77
diff changeset
   624
"/    arrowStyle == #motif ifTrue:[
claus
parents: 77
diff changeset
   625
"/        onLevel := 0.
claus
parents: 77
diff changeset
   626
"/        offLevel := 0.
claus
parents: 77
diff changeset
   627
"/        self level:0.
claus
parents: 77
diff changeset
   628
"/    ]
1
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   629
! !
3ebee08bea15 Initial revision
claus
parents:
diff changeset
   630
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   631
!ArrowButton methodsFor:'redrawing'!
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   632
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   633
drawWith:fg and:bg
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   634
    "this is a q&d hack for motif ..."
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   635
155
claus
parents: 154
diff changeset
   636
    |topLeft botRight noColor allColor isString orgX orgY r|
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   637
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   638
    arrowStyle ~~ #motif ifTrue:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   639
	^ super drawWith:fg and:bg.
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   640
    ].
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   641
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   642
    "
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   643
     the code below does a lot of bitmap drawing, but allows
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   644
     to 3D-ify any logo (it draws it displaced by some pixels
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   645
     to the upper left in one-color and displaced to the 
60
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   646
     lower right in the other color). It should be rewritten to
f3c738c24ce6 mostly style
claus
parents: 59
diff changeset
   647
     cache the result for later drawing operations.
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   648
    "
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   649
    logo notNil ifTrue:[
153
claus
parents: 139
diff changeset
   650
	self paint:bg.
claus
parents: 139
diff changeset
   651
	self fillRectangleX:0 y:0 width:width height:height.
claus
parents: 139
diff changeset
   652
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   653
	shadowColor := shadowColor on:device.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   654
	lightColor := lightColor on:device.
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   655
77
565b052f5277 *** empty log message ***
claus
parents: 75
diff changeset
   656
	controller pressed ifTrue:[
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   657
	    topLeft := shadowColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   658
	    botRight := lightColor
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   659
	] ifFalse:[
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   660
	    topLeft := lightColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   661
	    botRight := shadowColor
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   662
	].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   663
153
claus
parents: 139
diff changeset
   664
	isString := logo isString.
claus
parents: 139
diff changeset
   665
claus
parents: 139
diff changeset
   666
	isString ifFalse:[
claus
parents: 139
diff changeset
   667
	    logo depth ~~ 1 ifTrue:[
claus
parents: 139
diff changeset
   668
		"/ allow for 4-bit logos (for motif)
155
claus
parents: 154
diff changeset
   669
		"/ one catch: if the view background is a complex pixmap
claus
parents: 154
diff changeset
   670
		"/ we cannot use this as colorMap entry.
claus
parents: 154
diff changeset
   671
		"/ therefore, compute their average colors and take these
claus
parents: 154
diff changeset
   672
		"/ (this looks ok for buttons ...)
claus
parents: 154
diff changeset
   673
		r := (0@0 corner:10@10).
claus
parents: 154
diff changeset
   674
		logo colorMap:(Array with:(bg averageColorIn:r)
claus
parents: 154
diff changeset
   675
				     with:(topLeft averageColorIn:r)
claus
parents: 154
diff changeset
   676
				     with:(botRight averageColorIn:r)
claus
parents: 154
diff changeset
   677
				     with:(fg averageColorIn:r)).
153
claus
parents: 139
diff changeset
   678
		logo photometric:#palette.
claus
parents: 139
diff changeset
   679
		self displayForm:logo x:labelOriginX  y:labelOriginY.
claus
parents: 139
diff changeset
   680
		^ self
claus
parents: 139
diff changeset
   681
	    ]
claus
parents: 139
diff changeset
   682
	].
38
4b9b70b2cc87 2.10.3 pre-final version
claus
parents: 24
diff changeset
   683
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   684
	noColor := Color noColor.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   685
	allColor := Color allColor.
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   686
153
claus
parents: 139
diff changeset
   687
	isString ifTrue:[
139
claus
parents: 130
diff changeset
   688
	    orgY := height - font height // 2 + font ascent.
claus
parents: 130
diff changeset
   689
	    orgX := width - labelOriginX // 4 - 1.
claus
parents: 130
diff changeset
   690
	].
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   691
	self paint:topLeft.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   692
	#(-1 0 -1) with:#(-1 -1 0) do:[:dX :dY |
139
claus
parents: 130
diff changeset
   693
	    isString ifTrue:[
claus
parents: 130
diff changeset
   694
		self displayString:logo x:orgX+dX  y:orgY+dY.
claus
parents: 130
diff changeset
   695
	    ] ifFalse:[
claus
parents: 130
diff changeset
   696
		self displayForm:logo x:labelOriginX+dX  y:labelOriginY+dY.
claus
parents: 130
diff changeset
   697
	    ]    
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   698
	].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   699
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   700
	self paint:botRight.
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   701
	#(1 1 0) with:#(0 1 1) do:[:dX :dY |
139
claus
parents: 130
diff changeset
   702
	    isString ifTrue:[
claus
parents: 130
diff changeset
   703
		self displayString:logo x:orgX+dX  y:orgY+dY.
claus
parents: 130
diff changeset
   704
	    ] ifFalse:[
claus
parents: 130
diff changeset
   705
		self displayForm:logo x:labelOriginX+dX  y:labelOriginY+dY.
claus
parents: 130
diff changeset
   706
	    ]    
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   707
	].
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   708
59
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   709
	"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   710
	 finally, the form itself
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   711
	"
450ce95a72a4 *** empty log message ***
claus
parents: 38
diff changeset
   712
	self paint:fg.
139
claus
parents: 130
diff changeset
   713
	isString ifTrue:[
claus
parents: 130
diff changeset
   714
	    self displayString:logo x:orgX y:orgY.
claus
parents: 130
diff changeset
   715
	] ifFalse:[
claus
parents: 130
diff changeset
   716
	    self displayForm:logo x:labelOriginX  y:labelOriginY.
claus
parents: 130
diff changeset
   717
	]    
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   718
    ]
153
claus
parents: 139
diff changeset
   719
claus
parents: 139
diff changeset
   720
    "Modified: 31.8.1995 / 03:03:12 / claus"
6
fd1b68b48422 *** empty log message ***
claus
parents: 1
diff changeset
   721
! !