1: ================================================================================ 2: 3: Smalltalk.KSU defineClass: #ColorHSB 4: superclass: #{UI.ApplicationModel} 5: indexedType: #none 6: private: false 7: instanceVariableNames: 'hueGauge saturationGauge brightnessGauge ' 8: classInstanceVariableNames: '' 9: imports: '' 10: category: 'KSU-Template' 11: 12: ================================================================================ 13: 14: KSU.ColorHSB method for 'aspects' 15: 16: brightnessGauge 17: 18: brightnessGauge 19: ifNil: 20: [brightnessGauge := 0.5 asValue. 21: brightnessGauge compute: [:aValue | self updateColorBrightness: aValue]]. 22: ^brightnessGauge 23: 24: ------------------------------------------------------------ 25: 26: KSU.ColorHSB method for 'interface opening' 27: 28: brightnessView 29: 30: | aView | 31: aView := ColorHSBView model: self. 32: aView aspectSelector: #brightness. 33: ^aView 34: 35: ------------------------------------------------------------ 36: 37: KSU.ColorHSB method for 'accessing' 38: 39: color 40: 41: | aColor | 42: aColor := ColorValue 43: hue: (0 max: (self hueGauge value min: 1)) 44: saturation: (0 max: (self saturationGauge value min: 1)) 45: brightness: (0 max: (self brightnessGauge value min: 1)). 46: ^aColor 47: 48: ------------------------------------------------------------ 49: 50: KSU.ColorHSB method for 'aspects' 51: 52: hueGauge 53: 54: hueGauge 55: ifNil: 56: [hueGauge := 0.5 asValue. 57: hueGauge compute: [:aValue | self updateColorHue: aValue]]. 58: ^hueGauge 59: 60: ------------------------------------------------------------ 61: 62: KSU.ColorHSB method for 'interface opening' 63: 64: hueView 65: 66: | aView | 67: aView := ColorHSBView model: self. 68: aView aspectSelector: #hue. 69: ^aView 70: 71: ------------------------------------------------------------ 72: 73: KSU.ColorHSB method for 'initialize-release' 74: 75: initialize 76: 77: super initialize. 78: hueGauge := nil. 79: saturationGauge := nil. 80: brightnessGauge := nil. 81: ^self 82: 83: ------------------------------------------------------------ 84: 85: KSU.ColorHSB method for 'interface opening' 86: 87: postOpenWith: aBuilder 88: 89: super postOpenWith: aBuilder. 90: self updateColor 91: 92: ------------------------------------------------------------ 93: 94: KSU.ColorHSB method for 'aspects' 95: 96: saturationGauge 97: 98: saturationGauge 99: ifNil: 100: [saturationGauge := 0.5 asValue. 101: saturationGauge compute: [:aValue | self updateColorSaturation: aValue]]. 102: ^saturationGauge 103: 104: ------------------------------------------------------------ 105: 106: KSU.ColorHSB method for 'interface opening' 107: 108: saturationView 109: 110: | aView | 111: aView := ColorHSBView model: self. 112: aView aspectSelector: #saturation. 113: ^aView 114: 115: ------------------------------------------------------------ 116: 117: KSU.ColorHSB method for 'private' 118: 119: updateColor 120: 121: self builder 122: ifNotNil: 123: [:aBuilder | 124: aBuilder window 125: ifNotNil: 126: [:aWindow | 127: aWindow 128: background: self color; 129: display]] 130: 131: ------------------------------------------------------------ 132: 133: KSU.ColorHSB method for 'private' 134: 135: updateColorBrightness: aValue 136: 137: InputState default altDown 138: ifTrue: 139: [self hueGauge value = aValue ifFalse: [self hueGauge value: aValue]. 140: self saturationGauge value = aValue ifFalse: [self saturationGauge value: aValue]]. 141: self updateColor 142: 143: ------------------------------------------------------------ 144: 145: KSU.ColorHSB method for 'private' 146: 147: updateColorHue: aValue 148: 149: InputState default altDown 150: ifTrue: 151: [self saturationGauge value = aValue ifFalse: [self saturationGauge value: aValue]. 152: self brightnessGauge value = aValue ifFalse: [self brightnessGauge value: aValue]]. 153: self updateColor 154: 155: ------------------------------------------------------------ 156: 157: KSU.ColorHSB method for 'private' 158: 159: updateColorSaturation: aValue 160: 161: InputState default altDown 162: ifTrue: 163: [self hueGauge value = aValue ifFalse: [self hueGauge value: aValue]. 164: self brightnessGauge value = aValue ifFalse: [self brightnessGauge value: aValue]]. 165: self updateColor 166: 167: ================================================================================ 168: 169: KSU.ColorHSB class 170: instanceVariableNames: '' 171: 172: ================================================================================ 173: 174: KSU.ColorHSB class method for 'examples' 175: 176: example1 177: "KSU.ColorHSB example1." 178: 179: | anApplication | 180: anApplication := KSU.ColorHSB new. 181: anApplication open. 182: ^anApplication 183: 184: ------------------------------------------------------------ 185: 186: KSU.ColorHSB class method for 'resources' 187: 188: menuBar 189: "Tools.MenuEditor new openOnClass: self andSelector: #menuBar" 190: 191: <resource: #menu> 192: ^#(#{UI.Menu} #( 193: #(#{UI.MenuItem} 194: #rawLabel: 'ファイル' 195: #submenu: #(#{UI.Menu} #( 196: #(#{UI.MenuItem} 197: #rawLabel: '終了' 198: #value: #closeRequest ) ) #(1 ) nil ) ) ) #(1 ) nil ) decodeAsLiteralArray 199: 200: ------------------------------------------------------------ 201: 202: KSU.ColorHSB class method for 'interface specs' 203: 204: windowSpec 205: "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" 206: 207: <resource: #canvas> 208: ^#(#{UI.FullSpec} 209: #window: 210: #(#{UI.WindowSpec} 211: #label: '色相・彩度・明度' 212: #min: #(#{Core.Point} 512 160 ) 213: #max: #(#{Core.Point} 512 160 ) 214: #bounds: #(#{Graphics.Rectangle} 1024 640 1536 800 ) 215: #flags: 4 216: #menu: #menuBar ) 217: #component: 218: #(#{UI.SpecCollection} 219: #collection: #( 220: #(#{UI.LabelSpec} 221: #layout: #(#{Core.Point} 24 17 ) 222: #name: #hueLabel 223: #colors: 224: #(#{UI.LookPreferences} 225: #setBackgroundColor: #(#{Graphics.ColorValue} #pink ) ) 226: #label: '色相 :' ) 227: #(#{UI.LabelSpec} 228: #layout: #(#{Core.Point} 24 49 ) 229: #name: #saturationLabel 230: #colors: 231: #(#{UI.LookPreferences} 232: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 8191 6143 ) ) 233: #label: '彩度:' ) 234: #(#{UI.LabelSpec} 235: #layout: #(#{Core.Point} 24 81 ) 236: #name: #brightnessLabel 237: #colors: 238: #(#{UI.LookPreferences} 239: #setBackgroundColor: #(#{Graphics.ColorValue} 6143 6143 8191 ) ) 240: #label: '明度:' ) 241: #(#{UI.ArbitraryComponentSpec} 242: #layout: #(#{Graphics.Rectangle} 72 17 488 40 ) 243: #name: #hueView 244: #component: #hueView ) 245: #(#{UI.ArbitraryComponentSpec} 246: #layout: #(#{Graphics.Rectangle} 72 49 488 72 ) 247: #name: #saturationView 248: #component: #saturationView ) 249: #(#{UI.ArbitraryComponentSpec} 250: #layout: #(#{Graphics.Rectangle} 72 81 488 104 ) 251: #name: #brightnessView 252: #component: #brightnessView ) ) ) ) 253: 254: ================================================================================
This document was generated by KSU.TextDoclet on 2012/11/10 at 10:32:57.