1: ================================================================================ 2: 3: Smalltalk.KSU defineClass: #ColorRGB 4: superclass: #{UI.ApplicationModel} 5: indexedType: #none 6: private: false 7: instanceVariableNames: 'redGauge greenGauge blueGauge 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: blueGauge 28: ifNil: 29: [blueGauge := 0.5 asValue. 30: blueGauge compute: [:aValue | self updateColorBlue: aValue]]. 31: ^blueGauge 32: 33: ------------------------------------------------------------ 34: 35: KSU.ColorRGB method for 'accessing' 36: 37: color 38: 39: | aColor | 40: aColor := ColorValue 41: red: (0 max: (self redGauge value min: 1)) 42: green: (0 max: (self greenGauge value min: 1)) 43: blue: (0 max: (self blueGauge value min: 1)). 44: ^aColor 45: 46: ------------------------------------------------------------ 47: 48: KSU.ColorRGB method for 'aspects' 49: 50: greenField 51: 52: greenField ifNil: [greenField := (self valueString: self greenGauge value) asValue]. 53: ^greenField 54: 55: ------------------------------------------------------------ 56: 57: KSU.ColorRGB method for 'aspects' 58: 59: greenGauge 60: 61: greenGauge 62: ifNil: 63: [greenGauge := 0.5 asValue. 64: greenGauge compute: [:aValue | self updateColorGreen: aValue]]. 65: ^greenGauge 66: 67: ------------------------------------------------------------ 68: 69: KSU.ColorRGB method for 'initialize-release' 70: 71: initialize 72: 73: super initialize. 74: redGauge := nil. 75: greenGauge := nil. 76: blueGauge := nil. 77: redField := nil. 78: greenField := nil. 79: blueField := nil. 80: ^self 81: 82: ------------------------------------------------------------ 83: 84: KSU.ColorRGB method for 'interface opening' 85: 86: postOpenWith: aBuilder 87: 88: super postOpenWith: aBuilder. 89: self updateColor 90: 91: ------------------------------------------------------------ 92: 93: KSU.ColorRGB method for 'aspects' 94: 95: redField 96: 97: redField ifNil: [redField := (self valueString: self redGauge value) asValue]. 98: ^redField 99: 100: ------------------------------------------------------------ 101: 102: KSU.ColorRGB method for 'aspects' 103: 104: redGauge 105: 106: redGauge 107: ifNil: 108: [redGauge := 0.5 asValue. 109: redGauge compute: [:aValue | self updateColorRed: aValue]]. 110: ^redGauge 111: 112: ------------------------------------------------------------ 113: 114: KSU.ColorRGB method for 'private' 115: 116: updateColor 117: 118: self builder 119: ifNotNil: 120: [:aBuilder | 121: aBuilder window 122: ifNotNil: 123: [:aWindow | 124: aWindow 125: background: self color; 126: display]] 127: 128: ------------------------------------------------------------ 129: 130: KSU.ColorRGB method for 'private' 131: 132: updateColorBlue: aValue 133: 134: InputState default altDown 135: ifTrue: 136: [self redGauge value = aValue ifFalse: [self redGauge value: aValue]. 137: self greenGauge value = aValue ifFalse: [self greenGauge value: aValue]]. 138: self blueField value: (self valueString: aValue). 139: self updateColor 140: 141: ------------------------------------------------------------ 142: 143: KSU.ColorRGB method for 'private' 144: 145: updateColorGreen: aValue 146: 147: InputState default altDown 148: ifTrue: 149: [self redGauge value = aValue ifFalse: [self redGauge value: aValue]. 150: self blueGauge value = aValue ifFalse: [self blueGauge value: aValue]]. 151: self greenField value: (self valueString: aValue). 152: self updateColor 153: 154: ------------------------------------------------------------ 155: 156: KSU.ColorRGB method for 'private' 157: 158: updateColorRed: aValue 159: 160: InputState default altDown 161: ifTrue: 162: [self greenGauge value = aValue ifFalse: [self greenGauge value: aValue]. 163: self blueGauge value = aValue ifFalse: [self blueGauge value: aValue]]. 164: self redField value: (self valueString: aValue). 165: self updateColor 166: 167: ------------------------------------------------------------ 168: 169: KSU.ColorRGB method for 'private' 170: 171: valueString: aValue 172: 173: ^(aValue roundTo: 0.01) printString 174: 175: ================================================================================ 176: 177: KSU.ColorRGB class 178: instanceVariableNames: '' 179: 180: ================================================================================ 181: 182: KSU.ColorRGB class method for 'examples' 183: 184: example1 185: "KSU.ColorRGB example1." 186: 187: | anApplication | 188: anApplication := KSU.ColorRGB new. 189: anApplication open. 190: ^anApplication 191: 192: ------------------------------------------------------------ 193: 194: KSU.ColorRGB class method for 'resources' 195: 196: menuBar 197: "Tools.MenuEditor new openOnClass: self andSelector: #menuBar" 198: 199: <resource: #menu> 200: ^#(#{UI.Menu} #( 201: #(#{UI.MenuItem} 202: #rawLabel: 'ファイル' 203: #submenu: #(#{UI.Menu} #( 204: #(#{UI.MenuItem} 205: #rawLabel: '終了' 206: #value: #closeRequest ) ) #(1 ) nil ) ) ) #(1 ) nil ) decodeAsLiteralArray 207: 208: ------------------------------------------------------------ 209: 210: KSU.ColorRGB class method for 'interface specs' 211: 212: windowSpec 213: "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" 214: 215: <resource: #canvas> 216: ^#(#{UI.FullSpec} 217: #window: 218: #(#{UI.WindowSpec} 219: #label: '加法混色' 220: #min: #(#{Core.Point} 512 160 ) 221: #max: #(#{Core.Point} 512 160 ) 222: #bounds: #(#{Graphics.Rectangle} 1023 719 1535 879 ) 223: #flags: 4 224: #menu: #menuBar ) 225: #component: 226: #(#{UI.SpecCollection} 227: #collection: #( 228: #(#{UI.LabelSpec} 229: #layout: #(#{Core.Point} 24 17 ) 230: #name: #redLabel 231: #colors: 232: #(#{UI.LookPreferences} 233: #setBackgroundColor: #(#{Graphics.ColorValue} #pink ) ) 234: #label: '赤:' ) 235: #(#{UI.LabelSpec} 236: #layout: #(#{Core.Point} 24 49 ) 237: #name: #greenLabel 238: #colors: 239: #(#{UI.LookPreferences} 240: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 8191 6143 ) ) 241: #label: '緑:' ) 242: #(#{UI.LabelSpec} 243: #layout: #(#{Core.Point} 24 81 ) 244: #name: #blueLabel 245: #colors: 246: #(#{UI.LookPreferences} 247: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 6143 8191 ) ) 248: #label: '青:' ) 249: #(#{UI.InputFieldSpec} 250: #layout: #(#{Graphics.Rectangle} 64 17 128 40 ) 251: #name: #redField 252: #colors: 253: #(#{UI.LookPreferences} 254: #setBackgroundColor: #(#{Graphics.ColorValue} #pink ) ) 255: #model: #redField 256: #alignment: #center 257: #isReadOnly: true 258: #type: #string ) 259: #(#{UI.InputFieldSpec} 260: #layout: #(#{Graphics.Rectangle} 64 49 128 72 ) 261: #name: #greenField 262: #colors: 263: #(#{UI.LookPreferences} 264: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 8191 6143 ) ) 265: #model: #greenField 266: #alignment: #center 267: #isReadOnly: true ) 268: #(#{UI.InputFieldSpec} 269: #layout: #(#{Graphics.Rectangle} 64 81 128 104 ) 270: #name: #blueField 271: #colors: 272: #(#{UI.LookPreferences} 273: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 6143 8191 ) ) 274: #model: #blueField 275: #alignment: #center 276: #isReadOnly: true ) 277: #(#{UI.SliderSpec} 278: #layout: #(#{Graphics.Rectangle} 144 16 488 40 ) 279: #name: #redGauge 280: #colors: 281: #(#{UI.LookPreferences} 282: #setBackgroundColor: #(#{Graphics.ColorValue} #pink ) ) 283: #model: #redGauge 284: #orientation: #horizontal 285: #start: 0 286: #stop: 1 287: #step: 0.01 ) 288: #(#{UI.SliderSpec} 289: #layout: #(#{Graphics.Rectangle} 144 48 488 72 ) 290: #name: #greenGauge 291: #colors: 292: #(#{UI.LookPreferences} 293: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 8191 6143 ) ) 294: #model: #greenGauge 295: #orientation: #horizontal 296: #start: 0 297: #stop: 1 298: #step: 0.01 ) 299: #(#{UI.SliderSpec} 300: #layout: #(#{Graphics.Rectangle} 144 80 488 104 ) 301: #name: #blueGauge 302: #colors: 303: #(#{UI.LookPreferences} 304: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 6143 8191 ) ) 305: #model: #blueGauge 306: #orientation: #horizontal 307: #start: 0 308: #stop: 1 309: #step: 0.01 ) ) ) ) 310: 311: ================================================================================
This document was generated by KSU.TextDoclet on 2012/11/10 at 10:44:56.