GradientBackground.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 26 Nov 2016 21:09:32 +0000
branchjv
changeset 7719 c2f802dd340a
parent 7359 dfee1b97dc3b
child 7934 5c7dd401bfa2
child 8595 7f9b84978a2e
permissions -rw-r--r--
XFT: Forbid XFT rendering on bitmaps (depth-1 pixmaps) In theory it could work if XFT would just turn gray into either black or white. But XFT doesn't do it and simply draw nothing without failing in any way. To prevent this silent failures, forbid drawing XFT onto bitmaps (depth-1 pixmaps). After all, the while point of XFT is to use anti-aliased fonts.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7359
dfee1b97dc3b #QUALITY by sr
sr
parents: 7078
diff changeset
     1
"{ Encoding: utf8 }"
dfee1b97dc3b #QUALITY by sr
sr
parents: 7078
diff changeset
     2
5461
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
 COPYRIGHT (c) 2009 by eXept Software AG
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
              All Rights Reserved
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 This software is furnished under a license and may be used
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 hereby transferred.
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ Package: 'stx:libview' }"
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
6769
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
    16
"{ NameSpace: Smalltalk }"
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
    17
5461
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
AbstractBackground subclass:#GradientBackground
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    19
	instanceVariableNames:'colors direction cachedForm usedLength'
5461
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	classVariableNames:''
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	poolDictionaries:''
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	category:'Graphics-Support'
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!GradientBackground class methodsFor:'documentation'!
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
copyright
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
"
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 COPYRIGHT (c) 2009 by eXept Software AG
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
              All Rights Reserved
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 This software is furnished under a license and may be used
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 only in accordance with the terms of that license and with the
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 be provided or otherwise made available to, or used by, any
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 other person.  No title to or ownership of the software is
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 hereby transferred.
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
    39
!
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
    40
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
    41
examples
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
    42
"
7078
8496a1fff589 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 6966
diff changeset
    43
  demonstrates the various options, which control gradient the effect:
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
    44
                                                                    [exBegin]
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    45
    |bg t c1 c2 c3 v1 v2 v3 v4 v5 v6 v7 v8 l1 l2 l3 l4 l5 l6 l7 l8|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    46
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    47
    c1 := Color yellow.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    48
    c2 := Color red.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    49
    c3 := Color blue.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    50
    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    51
    t := TopView new.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    52
    t width:800.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    53
    t maxExtent:800@Display height.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    54
    t minExtent:800@50.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    55
    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    56
    l1 := Label origin:0@0   extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    57
    l2 := Label origin:100@0 extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    58
    l3 := Label origin:200@0 extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    59
    l4 := Label origin:300@0 extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    60
    l5 := Label origin:400@0 extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    61
    l6 := Label origin:500@0 extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    62
    l7 := Label origin:600@0 extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    63
    l8 := Label origin:700@0 extent:100@30 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    64
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    65
    v1 := View origin:0@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    66
    v2 := View origin:100@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    67
    v3 := View origin:200@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    68
    v4 := View origin:300@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    69
    v5 := View origin:400@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    70
    v6 := View origin:500@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    71
    v7 := View origin:600@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    72
    v8 := View origin:700@30 extent:100@1.0 in:t.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    73
    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    74
    l1 label:'screen'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    75
    bg := GradientBackground new color1:c1 color2:c2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    76
    v1 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    77
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    78
    l2 label:'100'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    79
    bg := GradientBackground new color1:c1 color2:c2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    80
    bg usedLength:100.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    81
    v2 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    82
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    83
    l3 label:'300'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    84
    bg := GradientBackground new color1:c1 color2:c2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    85
    bg usedLength:300.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    86
    v3 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    87
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    88
    l4 label:'view'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    89
    bg := GradientBackground new color1:c1 color2:c2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    90
    bg usedLength:#view.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    91
    v4 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    92
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    93
    l5 label:'screen'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    94
    bg := GradientBackground new color1:c1 color2:c2 color3:c3.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    95
    v5 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    96
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    97
    l6 label:'100'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    98
    bg := GradientBackground new color1:c1 color2:c2 color3:c3.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
    99
    bg usedLength:100.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   100
    v6 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   101
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   102
    l7 label:'300'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   103
    bg := GradientBackground new color1:c1 color2:c2 color3:c3.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   104
    bg usedLength:300.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   105
    v7 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   106
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   107
    l8 label:'view'; adjust:#center.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   108
    bg := GradientBackground new color1:c1 color2:c2 color3:c3.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   109
    bg usedLength:#view.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   110
    v8 viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   111
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   112
    t open.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   113
                                                                    [exEnd]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   114
                                                                    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   115
                                                                    [exBegin]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   116
    |bg v|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   117
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   118
    bg := GradientBackground new colors:{ Color red . Color green . Color blue . Color red }.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   119
    v := View new extent:300@300.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   120
    v viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   121
    v open.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   122
                                                                    [exEnd]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   123
                                                                    [exBegin]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   124
    |bg v|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   125
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   126
    bg := GradientBackground new colors:{ Color red . Color green . Color blue . Color red }.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   127
    bg usedLength:#view.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   128
    v := View new extent:300@300.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   129
    v viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   130
    v open.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   131
                                                                    [exEnd]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   132
                                                                    [exBegin]
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   133
    |bg v|
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   134
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   135
    bg := GradientBackground new color1:Color red color2:Color yellow.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   136
    v := View new extent:300@300.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   137
    v viewBackground:bg.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   138
    v open.
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   139
                                                                    [exEnd]
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   140
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   141
                                                                    [exBegin]
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   142
    |bg v|
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   143
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   144
    bg := GradientBackground new color1:Color red color2:Color yellow.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   145
    bg usedLength:100.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   146
    v := View new extent:300@300.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   147
    v viewBackground:bg.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   148
    v open.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   149
                                                                    [exEnd]
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   150
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   151
                                                                    [exBegin]
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   152
    |bg v|
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   153
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   154
    bg := GradientBackground new color1:Color red color2:Color yellow.
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   155
    bg usedLength:#view.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   156
    v := View new extent:300@300.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   157
    v viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   158
    v open.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   159
                                                                    [exEnd]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   160
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   161
                                                                    [exBegin]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   162
    |bg v|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   163
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   164
    bg := GradientBackground new color1:Color red color2:Color yellow.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   165
    bg color3:Color green.
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   166
    v := View new extent:300@300.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   167
    v viewBackground:bg.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   168
    v open.
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   169
                                                                    [exEnd]
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   170
                                                                    [exBegin]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   171
    |bg v|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   172
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   173
    bg := GradientBackground new color1:Color red color2:Color yellow.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   174
    bg color3:Color green.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   175
    bg usedLength:100.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   176
    v := View new extent:300@300.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   177
    v viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   178
    v open.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   179
                                                                    [exEnd]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   180
                                                                    [exBegin]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   181
    |bg v|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   182
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   183
    bg := GradientBackground new color1:Color red color2:Color yellow.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   184
    bg color3:Color green.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   185
    bg usedLength:#view.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   186
    v := View new extent:300@300.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   187
    v viewBackground:bg.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   188
    v open.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   189
                                                                    [exEnd]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   190
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   191
"
5461
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
! !
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
6013
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   194
!GradientBackground class methodsFor:'instance creation'!
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   195
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   196
horizontal:color1 to:color2
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   197
    ^ self new 
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   198
        direction:#eastWest;
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   199
        color1:color1 color2:color2
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   200
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   201
    "
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   202
     |bg v|
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   203
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   204
     bg := GradientBackground horizontal:Color red to:Color yellow.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   205
     v := View new extent:300@300.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   206
     v viewBackground:bg.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   207
     v open.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   208
    "
6014
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   209
    "
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   210
     |bg v|
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   211
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   212
     bg := GradientBackground horizontal:Color red to:Color yellow.
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   213
     v := View new extent:300@300.
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   214
     v viewBackground:bg.
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   215
     v open.
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   216
    "
6013
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   217
!
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   218
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   219
vertical:color1 to:color2
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   220
    ^ self new 
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   221
        direction:#northSouth;
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   222
        color1:color1 color2:color2
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   223
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   224
    "
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   225
     |bg v|
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   226
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   227
     bg := GradientBackground vertical:Color red to:Color yellow.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   228
     v := View new extent:300@300.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   229
     v viewBackground:bg.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   230
     v open.
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   231
    "
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   232
! !
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   233
6769
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
   234
!GradientBackground class methodsFor:'queries'!
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
   235
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
   236
possibleDirections 
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
   237
    ^ #(#'northSouth' #'eastWest' )
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
   238
! !
5421316e7200 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6202
diff changeset
   239
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   240
!GradientBackground methodsFor:'accessing'!
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   241
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   242
color1
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   243
    ^ colors at:1
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   244
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   245
    "Created: / 23-01-2011 / 02:01:29 / cg"
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   246
!
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   247
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   248
color1:aColor
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   249
    colors isNil ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   250
        colors := Array new:2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   251
    ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   252
    colors at:1 put:aColor.
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   253
    cachedForm := nil.
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   254
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   255
    "Created: / 23-01-2011 / 02:01:50 / cg"
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   256
    "Modified: / 03-02-2011 / 19:49:18 / cg"
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   257
!
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   258
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   259
color1:aColor1 color2:aColor2
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   260
    colors isNil ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   261
        colors := Array new:2
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   262
    ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   263
    colors at:1 put:aColor1.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   264
    colors at:2 put:aColor2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   265
    cachedForm := nil.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   266
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   267
    "Created: / 03-02-2011 / 19:52:59 / cg"
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   268
!
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   269
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   270
color1:aColor1 color2:aColor2 color3:aColor3
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   271
    colors isNil ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   272
        colors := Array new:3
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   273
    ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   274
    colors at:1 put:aColor1.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   275
    colors at:2 put:aColor2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   276
    colors at:3 put:aColor3.
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   277
    cachedForm := nil.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   278
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   279
    "Created: / 03-02-2011 / 19:52:59 / cg"
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   280
!
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   281
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   282
color2
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   283
    ^ colors at:2
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   284
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   285
    "Created: / 23-01-2011 / 02:01:32 / cg"
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   286
!
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   287
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   288
color2:aColor
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   289
    colors isNil ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   290
        colors := Array new:2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   291
    ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   292
    colors at:2 put:aColor.
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   293
    cachedForm := nil.
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   294
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   295
    "Created: / 23-01-2011 / 02:01:50 / cg"
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   296
    "Modified: / 03-02-2011 / 19:49:18 / cg"
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   297
!
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   298
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   299
color3
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   300
    ^ colors at:3 ifAbsent:[nil]
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   301
!
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   302
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   303
color3:aColor
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   304
    colors isNil ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   305
        colors := Array new:3.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   306
    ] ifFalse:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   307
        colors size < 3 ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   308
            colors := (Array new:3) replaceFrom:1 with:colors; yourself
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   309
        ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   310
    ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   311
    colors at:3 put:aColor.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   312
    cachedForm := nil.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   313
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   314
    "Created: / 23-01-2011 / 02:01:50 / cg"
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   315
    "Modified: / 03-02-2011 / 19:49:18 / cg"
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   316
!
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   317
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   318
colors:aColorVector
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   319
    colors := aColorVector.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   320
    cachedForm := nil.
5688
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   321
!
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   322
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   323
direction
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   324
    "possible values:
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   325
        #northSouth
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   326
        #eastWest
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   327
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   328
     others are not yet supported
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   329
    "
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   330
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   331
    (direction == #eastWest or:[direction == #horizontal]) ifTrue:[^ #eastWest].
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   332
    ^ #northSouth
5688
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   333
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   334
    "Modified: / 23-01-2011 / 14:36:36 / cg"
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   335
!
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   336
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   337
direction:something
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   338
    "possible values:
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   339
        #northSouth
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   340
        #eastWest
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   341
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   342
     others are not yet supported
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   343
    "
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   344
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   345
    direction ~= something ifTrue:[
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   346
        direction := something.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   347
        cachedForm := nil.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   348
    ]
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   349
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   350
    "Modified: / 03-02-2011 / 19:49:41 / cg"
5738
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
   351
!
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
   352
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
   353
usedLength
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
   354
    ^ usedLength
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
   355
!
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
   356
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   357
usedLength:nilOrSymbolOrNumber
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   358
    "specify:
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   359
        nil: use the screen height and interpolate gradient along that
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   360
        #view: use the view's height and interpolate gradient along that
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   361
        <integer>: interpolate from 0..n, with color2 above that.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   362
        See examples on how each looks"
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   363
        
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   364
    nilOrSymbolOrNumber == #full ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   365
        "/ backw. compat.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   366
        usedLength := #view
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   367
    ] ifFalse:[    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   368
        usedLength := nilOrSymbolOrNumber.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   369
    ]
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   370
! !
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   371
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   372
!GradientBackground methodsFor:'converting'!
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   373
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   374
asFormOn:aDevice
6014
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   375
    |h w len|
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   376
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   377
"/    usedLength == #view ifTrue:[
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   378
"/        self halt:'unsupported'. 
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   379
"/        ^ nil
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   380
"/    ].
5688
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   381
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   382
    cachedForm isNil ifTrue:[
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   383
        (len := usedLength) == #view ifTrue:[
6014
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   384
            len := nil
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   385
        ].
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   386
        (self direction == #northSouth) ifTrue:[
6202
020ebdb99a1e Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 6102
diff changeset
   387
            h := len ? (aDevice height). "/ aView height.
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   388
            w := 8.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   389
        ] ifFalse:[
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   390
            h := 8.
6202
020ebdb99a1e Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 6102
diff changeset
   391
            w := len ? (aDevice width).  "/ aView width.
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   392
        ].
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   393
        cachedForm := Form width:w height:h depth:aDevice depth onDevice:aDevice.
7359
dfee1b97dc3b #QUALITY by sr
sr
parents: 7078
diff changeset
   394
        cachedForm isNil ifTrue:[^nil].
5705
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   395
        "/ cachedForm clear.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   396
        self fillRectangleX:0 y:0 width:w height:h in:cachedForm
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   397
    ].
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   398
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   399
    ^ cachedForm
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   400
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   401
    "Created: / 03-02-2011 / 20:05:30 / cg"
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   402
!
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   403
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   404
onDevice:device
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   405
    ^ self asFormOn:device.
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   406
56318de85b68 comment/format in: #initializeAllPluginClasses
Claus Gittinger <cg@exept.de>
parents: 5692
diff changeset
   407
    "Created: / 03-02-2011 / 19:56:06 / cg"
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   408
! !
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   409
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   410
!GradientBackground methodsFor:'drawing'!
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   411
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   412
fillRectangleX:x y:y width:w height:h in:aGC
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   413
    "this is a first (very inefficient) try"
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   414
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   415
    |hHalf wHalf h1 h2 w1 w2 usedHeight usedWidth scaleStartX scaleStartY x2 y2
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   416
     usedHeight2 usedWidth2 scaleStartX2 scaleStartY2 direction numSegs 
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   417
     usedHeightRange usedWidthRange usedRange startPos endPos
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   418
     partRange segOffset segNr pos
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   419
     r1 r2 g1 g2 b1 b2 minR maxR minG maxG minB maxB color1 color2
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   420
     dR dG dB r g b lastR lastG lastB endPart posRect szRun restSize|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   421
    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   422
    direction := self direction.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   423
    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   424
    usedLength isNil ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   425
        "/ use screen's height; so the gradient changes when the bounds are moved
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   426
        usedHeightRange := aGC device height. "/ aView height.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   427
        usedWidthRange := aGC device width.  "/ aView width.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   428
    ] ifFalse:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   429
        usedLength == #view ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   430
            usedHeightRange := aGC height.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   431
            usedWidthRange := aGC width.
6014
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   432
        ] ifFalse:[
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   433
            usedHeightRange := usedLength.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   434
            usedWidthRange := usedLength.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   435
        ].
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   436
    ].
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   437
    direction == #northSouth ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   438
        usedRange := usedHeightRange.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   439
        startPos := y.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   440
        endPos := y+h.
5739
c4fbd37a6164 changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5738
diff changeset
   441
    ] ifFalse:[
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   442
        usedRange := usedWidthRange.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   443
        startPos := x.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   444
        endPos := x+w.
5739
c4fbd37a6164 changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5738
diff changeset
   445
    ].
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   446
    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   447
    "/ each part
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   448
    numSegs := colors size - 1.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   449
    partRange := (usedRange / numSegs) asFloat.
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   450
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   451
    "/ where is the start?
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   452
    segOffset := startPos \\ partRange.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   453
    segNr := startPos // partRange + 1.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   454
    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   455
    pos := startPos.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   456
    [pos < endPos] whileTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   457
        segNr > numSegs ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   458
            restSize := endPos - pos.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   459
            aGC paint:(colors last).
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   460
            
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   461
            direction == #northSouth ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   462
                aGC fillRectangleX:x y:pos width:w height:restSize.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   463
            ] ifFalse:[    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   464
                aGC fillRectangleX:pos y:y width:restSize height:h.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   465
            ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   466
            ^ self
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   467
        ].
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   468
        
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   469
        "/ we have to interpolate between those two colors
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   470
        color1 := colors at:segNr.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   471
        color2 := colors at:segNr+1.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   472
        
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   473
        r1 := color1 redByte.   r2 := color2 redByte.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   474
        g1 := color1 greenByte. g2 := color2 greenByte.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   475
        b1 := color1 blueByte.  b2 := color2 blueByte.
5728
c3c7f362b4c3 changed: #fillRectangleX:y:width:height:in:
Stefan Vogel <sv@exept.de>
parents: 5705
diff changeset
   476
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   477
        minR := r1 min:r2. maxR := r1 max:r2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   478
        minG := g1 min:g2. maxG := g1 max:g2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   479
        minB := b1 min:b2. maxB := b1 max:b2.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   480
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   481
        dR := (r2 - r1) / partRange. dG := (g2 - g1) / partRange. dB := (b2 - b1) / partRange.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   482
        r := r1 + (dR * segOffset). 
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   483
        g := g1 + (dG * segOffset). 
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   484
        b := b1 + (dB * segOffset).
5733
08e2b386abef changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5732
diff changeset
   485
5732
fba4327a852b changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5731
diff changeset
   486
        r := (r max:minR) min:maxR. 
fba4327a852b changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5731
diff changeset
   487
        g := (g max:minG) min:maxG.
fba4327a852b changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5731
diff changeset
   488
        b := (b max:minB) min:maxB.
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   489
5733
08e2b386abef changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5732
diff changeset
   490
        lastR := r asInteger. lastG := g asInteger. lastB := b asInteger.
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   491
        
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   492
        "/ now draw
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   493
        endPart := (startPos + partRange) truncated min:endPos.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   494
        posRect := pos.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   495
        szRun := 0.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   496
        pos to:endPart-1 do:[:p |
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   497
            |rC gC bC|
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   498
            
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   499
            rC := r asInteger. gC := g asInteger. bC := b asInteger.
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   500
            (rC ~~ lastR or:[gC ~~ lastG or:[bC ~~ lastB]]) ifTrue:[
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   501
                aGC paint:(Color redByte:lastR greenByte:lastG blueByte:lastB).
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   502
                direction == #northSouth ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   503
                    aGC fillRectangleX:x y:posRect width:w height:szRun.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   504
                ] ifFalse:[    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   505
                    aGC fillRectangleX:posRect y:y width:szRun height:h.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   506
                ].    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   507
                posRect := p. szRun := 0.
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   508
                lastR := rC. lastG := gC. lastB := bC.
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   509
            ].
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   510
            szRun := szRun + 1.
5731
e638acae4e19 changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
   511
            r := ((r + dR) max:minR) min:maxR. 
e638acae4e19 changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
   512
            g := ((g + dG) max:minG) min:maxG.
e638acae4e19 changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5730
diff changeset
   513
            b := ((b + dB) max:minB) min:maxB.
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   514
        ].
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   515
        szRun ~~ 0 ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   516
            aGC paint:(Color redByte:lastR greenByte:lastG blueByte:lastB).
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   517
            direction == #northSouth ifTrue:[
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   518
                aGC fillRectangleX:x y:posRect width:w height:szRun.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   519
            ] ifFalse:[    
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   520
                aGC fillRectangleX:posRect y:y width:szRun height:h.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   521
            ].    
5733
08e2b386abef changed: #fillRectangleX:y:width:height:in:
Claus Gittinger <cg@exept.de>
parents: 5732
diff changeset
   522
        ].
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   523
        "/ self halt.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   524
        "/ drawn one segment's gradient
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   525
        segOffset := 0.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   526
        pos := startPos := endPart.
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   527
        segNr := segNr + 1.
5688
Claus Gittinger <cg@exept.de>
parents: 5687
diff changeset
   528
    ].
5684
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   529
! !
c6029a2cf7c0 added:8 methods
Claus Gittinger <cg@exept.de>
parents: 5461
diff changeset
   530
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   531
!GradientBackground methodsFor:'queries'!
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   532
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   533
needsFullRedrawOnChangeOfHeight
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   534
    ^ usedLength == #view and:[self direction == #northSouth]
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   535
!
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   536
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   537
needsFullRedrawOnChangeOfWidth
6966
37711d94a0c0 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6953
diff changeset
   538
    ^ usedLength == #view and:[direction == #eastWest]
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   539
! !
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   540
5461
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   541
!GradientBackground class methodsFor:'documentation'!
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   542
6014
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   543
version
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   544
    ^ '$Header$'
6014
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   545
!
0da48fc12d6a class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 6013
diff changeset
   546
5461
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   547
version_CVS
6953
eac8b255a9e1 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6769
diff changeset
   548
    ^ '$Header$'
5461
2451688b8d25 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   549
! !
6013
aee5be18d9a1 class: GradientBackground
Claus Gittinger <cg@exept.de>
parents: 5739
diff changeset
   550