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