1: ================================================================================
  2: 
  3: Smalltalk.KSU defineClass: #ColorRGB
  4:     superclass: #{KSU.ColorAbstract}
  5:     indexedType: #none
  6:     private: false
  7:     instanceVariableNames: 'redField greenField blueField '
  8:     classInstanceVariableNames: ''
  9:     imports: ''
 10:     category: 'KSU-Template'
 11: 
 12: ================================================================================
 13: 
 14: KSU.ColorRGB method for 'aspects'
 15: 
 16: blueField
 17: 
 18:     blueField ifNil: [blueField := (self valueString: self blueGauge value) asValue].
 19:     ^blueField
 20: 
 21: ------------------------------------------------------------
 22: 
 23: KSU.ColorRGB method for 'aspects'
 24: 
 25: blueGauge
 26: 
 27:     ^self thirdGauge
 28: 
 29: ------------------------------------------------------------
 30: 
 31: KSU.ColorRGB method for 'accessing'
 32: 
 33: color
 34: 
 35:     | aColor |
 36:     aColor := ColorValue
 37:                 red: (0 max: (self redGauge value min: 1))
 38:                 green: (0 max: (self greenGauge value min: 1))
 39:                 blue: (0 max: (self blueGauge value min: 1)).
 40:     ^aColor
 41: 
 42: ------------------------------------------------------------
 43: 
 44: KSU.ColorRGB method for 'aspects'
 45: 
 46: greenField
 47: 
 48:     greenField ifNil: [greenField := (self valueString: self greenGauge value) asValue].
 49:     ^greenField
 50: 
 51: ------------------------------------------------------------
 52: 
 53: KSU.ColorRGB method for 'aspects'
 54: 
 55: greenGauge
 56: 
 57:     ^self secondGauge
 58: 
 59: ------------------------------------------------------------
 60: 
 61: KSU.ColorRGB method for 'initialize-release'
 62: 
 63: initialize
 64: 
 65:     super initialize.
 66:     redField := nil.
 67:     greenField := nil.
 68:     blueField := nil.
 69:     ^self
 70: 
 71: ------------------------------------------------------------
 72: 
 73: KSU.ColorRGB method for 'aspects'
 74: 
 75: redField
 76: 
 77:     redField ifNil: [redField := (self valueString: self redGauge value) asValue].
 78:     ^redField
 79: 
 80: ------------------------------------------------------------
 81: 
 82: KSU.ColorRGB method for 'aspects'
 83: 
 84: redGauge
 85: 
 86:     ^self firstGauge
 87: 
 88: ------------------------------------------------------------
 89: 
 90: KSU.ColorRGB method for 'private'
 91: 
 92: updateColor
 93: 
 94:     #('red' 'green' 'blue') do: 
 95:             [:aString |
 96:             | gaugeModel fieldModel gaugeString fieldString |
 97:             gaugeModel := self perform: (aString , 'Gauge') asSymbol.
 98:             fieldModel := self perform: (aString , 'Field') asSymbol.
 99:             gaugeString := self valueString: gaugeModel value.
100:             fieldString := fieldModel value.
101:             gaugeString = fieldString ifFalse: [fieldModel value: gaugeString]].
102:     super updateColor
103: 
104: ------------------------------------------------------------
105: 
106: KSU.ColorRGB method for 'private'
107: 
108: valueString: aValue
109: 
110:     ^(aValue roundTo: 0.01) printString
111: 
112: ================================================================================
113: 
114: KSU.ColorRGB class
115:     instanceVariableNames: ''
116: 
117: ================================================================================
118: 
119: KSU.ColorRGB class method for 'examples'
120: 
121: example1
122:     "KSU.ColorRGB example1."
123: 
124:     | anApplication |
125:     anApplication := KSU.ColorRGB new.
126:     anApplication open.
127:     ^anApplication
128: 
129: ------------------------------------------------------------
130: 
131: KSU.ColorRGB class method for 'interface specs'
132: 
133: windowSpec
134:     "Tools.UIPainter new openOnClass: self andSelector: #windowSpec"
135: 
136:     <resource: #canvas>
137:     ^#(#{UI.FullSpec} 
138:         #window: 
139:         #(#{UI.WindowSpec} 
140:             #label: '加法混色' 
141:             #min: #(#{Core.Point} 512 160 ) 
142:             #max: #(#{Core.Point} 512 160 ) 
143:             #bounds: #(#{Graphics.Rectangle} 1023 719 1535 879 ) 
144:             #flags: 4 
145:             #menu: #menuBar ) 
146:         #component: 
147:         #(#{UI.SpecCollection} 
148:             #collection: #(
149:                 #(#{UI.LabelSpec} 
150:                     #layout: #(#{Core.Point} 24 17 ) 
151:                     #name: #redLabel 
152:                     #colors: 
153:                     #(#{UI.LookPreferences} 
154:                         #setBackgroundColor: #(#{Graphics.ColorValue} #pink ) ) 
155:                     #label: '赤:' ) 
156:                 #(#{UI.LabelSpec} 
157:                     #layout: #(#{Core.Point} 24 49 ) 
158:                     #name: #greenLabel 
159:                     #colors: 
160:                     #(#{UI.LookPreferences} 
161:                         #setBackgroundColor: #(#{Graphics.ColorValue} 6143 8191 6143 ) ) 
162:                     #label: '緑:' ) 
163:                 #(#{UI.LabelSpec} 
164:                     #layout: #(#{Core.Point} 24 81 ) 
165:                     #name: #blueLabel 
166:                     #colors: 
167:                     #(#{UI.LookPreferences} 
168:                         #setBackgroundColor: #(#{Graphics.ColorValue} 6143 6143 8191 ) ) 
169:                     #label: '青:' ) 
170:                 #(#{UI.InputFieldSpec} 
171:                     #layout: #(#{Graphics.Rectangle} 64 17 128 40 ) 
172:                     #name: #redField 
173:                     #colors: 
174:                     #(#{UI.LookPreferences} 
175:                         #setBackgroundColor: #(#{Graphics.ColorValue} #pink ) ) 
176:                     #model: #redField 
177:                     #alignment: #center 
178:                     #isReadOnly: true 
179:                     #type: #string ) 
180:                 #(#{UI.InputFieldSpec} 
181:                     #layout: #(#{Graphics.Rectangle} 64 49 128 72 ) 
182:                     #name: #greenField 
183:                     #colors: 
184:                     #(#{UI.LookPreferences} 
185:                         #setBackgroundColor: #(#{Graphics.ColorValue} 6143 8191 6143 ) ) 
186:                     #model: #greenField 
187:                     #alignment: #center 
188:                     #isReadOnly: true ) 
189:                 #(#{UI.InputFieldSpec} 
190:                     #layout: #(#{Graphics.Rectangle} 64 81 128 104 ) 
191:                     #name: #blueField 
192:                     #colors: 
193:                     #(#{UI.LookPreferences} 
194:                         #setBackgroundColor: #(#{Graphics.ColorValue} 6143 6143 8191 ) ) 
195:                     #model: #blueField 
196:                     #alignment: #center 
197:                     #isReadOnly: true ) 
198:                 #(#{UI.SliderSpec} 
199:                     #layout: #(#{Graphics.Rectangle} 144 16 488 40 ) 
200:                     #name: #redGauge 
201:                     #colors: 
202:                     #(#{UI.LookPreferences} 
203:                         #setBackgroundColor: #(#{Graphics.ColorValue} #pink ) ) 
204:                     #model: #redGauge 
205:                     #orientation: #horizontal 
206:                     #start: 0 
207:                     #stop: 1 
208:                     #step: 0.01 ) 
209:                 #(#{UI.SliderSpec} 
210:                     #layout: #(#{Graphics.Rectangle} 144 48 488 72 ) 
211:                     #name: #greenGauge 
212:                     #colors: 
213:                     #(#{UI.LookPreferences} 
214:                         #setBackgroundColor: #(#{Graphics.ColorValue} 6143 8191 6143 ) ) 
215:                     #model: #greenGauge 
216:                     #orientation: #horizontal 
217:                     #start: 0 
218:                     #stop: 1 
219:                     #step: 0.01 ) 
220:                 #(#{UI.SliderSpec} 
221:                     #layout: #(#{Graphics.Rectangle} 144 80 488 104 ) 
222:                     #name: #blueGauge 
223:                     #colors: 
224:                     #(#{UI.LookPreferences} 
225:                         #setBackgroundColor: #(#{Graphics.ColorValue} 6143 6143 8191 ) ) 
226:                     #model: #blueGauge 
227:                     #orientation: #horizontal 
228:                     #start: 0 
229:                     #stop: 1 
230:                     #step: 0.01 ) ) ) )
231: 
232: ================================================================================

This document was generated by KSU.TextDoclet on 2012/11/10 at 10:56:49.