1: ================================================================================ 2: 3: Smalltalk.KSU defineClass: #ColorHSBView 4: superclass: #{UI.View} 5: indexedType: #none 6: private: false 7: instanceVariableNames: 'aspectSelector ' 8: classInstanceVariableNames: '' 9: imports: '' 10: category: '' 11: 12: ================================================================================ 13: 14: KSU.ColorHSBView method for 'accessing' 15: 16: aspectArea 17: 18: ^self bounds insetBy: self defaultInset 19: 20: ------------------------------------------------------------ 21: 22: KSU.ColorHSBView method for 'accessing' 23: 24: aspectSelector 25: 26: ^aspectSelector 27: 28: ------------------------------------------------------------ 29: 30: KSU.ColorHSBView method for 'accessing' 31: 32: aspectSelector: aSymbol 33: 34: aspectSelector := aSymbol 35: 36: ------------------------------------------------------------ 37: 38: KSU.ColorHSBView method for 'controller accessing' 39: 40: defaultControllerClass 41: 42: ^KSU.ColorHSBController 43: 44: ------------------------------------------------------------ 45: 46: KSU.ColorHSBView method for 'defaults' 47: 48: defaultInset 49: 50: ^6 @ 6 51: 52: ------------------------------------------------------------ 53: 54: KSU.ColorHSBView method for 'displaying' 55: 56: displayAspectAreaOn: graphicsContext 57: 58: | pixmap gc area symbol left right top bottom | 59: pixmap := Pixmap extent: self aspectArea extent. 60: gc := pixmap graphicsContext. 61: area := pixmap bounds. 62: symbol := self aspectSelector. 63: left := area left. 64: right := area right. 65: top := area top. 66: bottom := area bottom. 67: left to: right - 1 68: do: 69: [:x | 70: | value color box | 71: value := (x - left) / (right - left). 72: color := self model color. 73: symbol = #hue 74: ifTrue: 75: [color := ColorValue 76: hue: value 77: saturation: 1 yourself 78: brightness: 1 yourself]. 79: symbol = #saturation 80: ifTrue: 81: [color := ColorValue 82: hue: color hue 83: saturation: value 84: brightness: 1 yourself]. 85: symbol = #brightness 86: ifTrue: 87: [color := ColorValue 88: hue: color hue 89: saturation: color saturation 90: brightness: value]. 91: box := x @ top corner: (x + 1) @ bottom. 92: gc 93: paint: color; 94: displayRectangle: box]. 95: pixmap 96: displayOn: graphicsContext at: self aspectArea origin; 97: close 98: 99: ------------------------------------------------------------ 100: 101: KSU.ColorHSBView method for 'displaying' 102: 103: displayAspectAreasOutsideOn: graphicsContext 104: 105: graphicsContext paint: self backgroundColor. 106: (self bounds areasOutside: self aspectArea) do: [:aRectangle | graphicsContext displayRectangle: aRectangle] 107: 108: ------------------------------------------------------------ 109: 110: KSU.ColorHSBView method for 'displaying' 111: 112: displayMarksOn: graphicsContext 113: 114: | symbol color value area point box points | 115: symbol := self aspectSelector. 116: color := self model color. 117: value := color perform: symbol. 118: area := self aspectArea. 119: point := ((value * area width + area left) @ area top) rounded. 120: box := 0 @ 0 corner: self defaultInset. 121: box := box align: box bottomCenter with: point. 122: points := Array 123: with: box bottomCenter 124: with: box topLeft 125: with: box topRight 126: with: box bottomCenter. 127: graphicsContext 128: paint: ColorValue black; 129: displayPolygon: points. 130: box := box insetBy: 1. 131: points := Array 132: with: box bottomCenter 133: with: box topLeft 134: with: box topRight 135: with: box bottomCenter. 136: graphicsContext 137: paint: ColorValue white; 138: displayPolygon: points. 139: point := ((value * area width + area left) @ area bottom) rounded. 140: box := 0 @ 0 corner: self defaultInset. 141: box := box align: box topCenter with: point. 142: points := Array 143: with: box topCenter 144: with: box bottomLeft 145: with: box bottomRight 146: with: box topCenter. 147: graphicsContext 148: paint: ColorValue black; 149: displayPolygon: points. 150: box := box insetBy: 1. 151: points := Array 152: with: box topCenter 153: with: box bottomLeft 154: with: box bottomRight 155: with: box topCenter. 156: graphicsContext 157: paint: ColorValue white; 158: displayPolygon: points 159: 160: ------------------------------------------------------------ 161: 162: KSU.ColorHSBView method for 'displaying' 163: 164: displayOn: graphicsContext 165: 166: self model ifNil: [^nil]. 167: self 168: displayAspectAreasOutsideOn: graphicsContext; 169: displayAspectAreaOn: graphicsContext; 170: displayMarksOn: graphicsContext 171: 172: ------------------------------------------------------------ 173: 174: KSU.ColorHSBView method for 'initialize-release' 175: 176: initialize 177: 178: super initialize. 179: aspectSelector := nil. 180: ^self 181: 182: ------------------------------------------------------------ 183: 184: KSU.ColorHSBView method for 'updating' 185: 186: update: aspectSymbol 187: 188: self invalidateNow 189: 190: ================================================================================ 191: 192: KSU.ColorHSBView class 193: instanceVariableNames: '' 194: 195: ================================================================================
This document was generated by KSU.TextDoclet on 2012/11/10 at 10:32:57.