From 48c38d630bf345703f371dc687682b7f29f11626 Mon Sep 17 00:00:00 2001 From: lone-cloud Date: Wed, 23 Sep 2015 00:02:55 -0700 Subject: [PATCH] New color picker component --- app/components/bridge-controls.js | 2 +- app/components/color-picker.js | 66 ++++++++ app/components/controls/light-control.js | 12 -- app/components/light-group.js | 6 + app/styles/app.scss | 27 ++-- app/templates/components/color-picker.hbs | 1 + .../components/controls/light-control.hbs | 10 +- ember-cli-build.js | 1 - public/assets/images/colorwheel.png | Bin 53486 -> 35955 bytes .../components/color-picker-test.js | 26 +++ vendor/colorpicker.js | 152 ------------------ 11 files changed, 121 insertions(+), 182 deletions(-) create mode 100644 app/components/color-picker.js create mode 100644 app/templates/components/color-picker.hbs create mode 100644 tests/integration/components/color-picker-test.js delete mode 100644 vendor/colorpicker.js diff --git a/app/components/bridge-controls.js b/app/components/bridge-controls.js index 8898105..04e607e 100644 --- a/app/components/bridge-controls.js +++ b/app/components/bridge-controls.js @@ -107,7 +107,7 @@ export default Em.Component.extend({ }, tabList: ["Lights", "Music"], - selectedTab: 0, + selectedTab: 1, tabData: function(){ var tabData = [], selectedTab = this.get('selectedTab'); diff --git a/app/components/color-picker.js b/app/components/color-picker.js new file mode 100644 index 0000000..63c27b0 --- /dev/null +++ b/app/components/color-picker.js @@ -0,0 +1,66 @@ +import Em from 'ember'; + +export default Em.Component.extend({ + classNames:['colorpicker'], + + // https://dzone.com/articles/creating-your-own-html5 + didInsertElement: function(){ + // handle color changes + var self = this, + canvas = Em.$('#picker')[0].getContext('2d'), + image = new Image(); + + image.src ='assets/images/colorwheel.png'; + image.onload = function () { + canvas.drawImage(image, 0, 0, image.width, image.height); // draw the image on the canvas + }; + }, + + // http://www.developers.meethue.com/documentation/color-conversions-rgb-xy + rgbToXy: function(red, green, blue){ + var X, Y, Z, x, y; + + // normalize + red = Number((red/255).toFixed(2)); + green = Number((green/255).toFixed(2)); + blue = Number((blue/255).toFixed(2)); + + // gamma correction + red = (red > 0.04045) ? Math.pow((red + 0.055) / (1.0 + 0.055), 2.4) : (red / 12.92); + green = (green > 0.04045) ? Math.pow((green + 0.055) / (1.0 + 0.055), 2.4) : (green / 12.92); + blue = (blue > 0.04045) ? Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4) : (blue / 12.92); + + // RGB to XYZ + X = red * 0.664511 + green * 0.154324 + blue * 0.162028; + Y = red * 0.283881 + green * 0.668433 + blue * 0.047685; + Z = red * 0.000088 + green * 0.072310 + blue * 0.986039; + + x = X / (X + Y + Z); + y = Y / (X + Y + Z); + + return [x,y]; + }, + + xyTorgb: function(x, y){ + var r, g, b, X, Y, Z, activeLights = this.get('activeLights'), lightsData = this.get('lightsData'); + + z = 1 - x - y; + Y = lightsData[activeLights[0]].state.bri; + X = (Y / y) * x; + Z = (Y / y) * z; + + r = X * 1.656492 - Y * 0.354851 - Z * 0.255038; + g = -X * 0.707196 + Y * 1.655397 + Z * 0.036152; + b = X * 0.051713 - Y * 0.121364 + Z * 1.011530; + + r = r <= 0.0031308 ? 12.92 * r : (1.0 + 0.055) * Math.pow(r, (1.0 / 2.4)) - 0.055; + g = g <= 0.0031308 ? 12.92 * g : (1.0 + 0.055) * Math.pow(g, (1.0 / 2.4)) - 0.055; + b = b <= 0.0031308 ? 12.92 * b : (1.0 + 0.055) * Math.pow(b, (1.0 / 2.4)) - 0.055; + + r = Math.floor(r * 255); + g = Math.floor(g * 255); + b = Math.floor(b * 255); + + return [r, g, b]; + } +}); diff --git a/app/components/controls/light-control.js b/app/components/controls/light-control.js index 7b39e79..f2f8c94 100644 --- a/app/components/controls/light-control.js +++ b/app/components/controls/light-control.js @@ -12,18 +12,6 @@ export default Em.Component.extend({ isShowingColorPicker: false, - didInsertElement: function(){ - // handle color changes - var self = this, - canvas = $('#picker')[0].getContext('2d'), - image = new Image(); - - image.src ='assets/images/colorwheel.png'; - image.onload = function () { - canvas.drawImage(image, 0, 0, image.width, image.height); // draw the image on the canvas - }; - }, - actions: { clickLight: function(){ console.log('clickLight'); diff --git a/app/components/light-group.js b/app/components/light-group.js index caebac4..48f694f 100644 --- a/app/components/light-group.js +++ b/app/components/light-group.js @@ -44,6 +44,12 @@ export default Em.Component.extend({ } }, + didInsertElement: function() { + if(this.get('lightsData')){ + this.onLightsDataChange(); + } + }, + // list of all the lights in the hue system onLightsDataChange: function(){ if(!this.get('isHovering')){ diff --git a/app/styles/app.scss b/app/styles/app.scss index b035fab..1c33f6b 100644 --- a/app/styles/app.scss +++ b/app/styles/app.scss @@ -28,6 +28,10 @@ body { position: static; } +.relative { + position: relative; +} + #settings { cursor: pointer; position: absolute; @@ -62,7 +66,7 @@ body { } .appSettingsItem:hover { - background: darken(white, 10%); + background: darken(white, 20%); } .settingsItem.on md-icon.md-default-theme { @@ -188,20 +192,19 @@ md-list-item .md-no-style { } .colorpicker { - background-color: #222222; - border-radius: 5px 5px 5px 5px; - box-shadow: 2px 2px 2px #444444; + padding: 10px; + background: rgba(0, 0, 0, 0.6); + box-shadow: 5px 10px 15px 5px rgba(0, 0, 0, 0.3); color: #FFFFFF; - font-size: 12px; + z-index: 2; position: absolute; - width: 460px; + width: 220px; + right: 6px; + top: -6px; } #picker { cursor: crosshair; - float: left; - margin: 10px; - border: 0; } // LIGHT GROUP @@ -239,7 +242,8 @@ md-slider.md-default-theme .md-thumb:after { .lightGroup { margin: 0 auto 0 auto; .tooltip.top { - margin-top: 8px; + margin-top: -10px; + margin-left: -3px; } } @@ -271,7 +275,8 @@ md-slider.md-default-theme .md-thumb:after { left: 6px; } .tooltip.top { - margin-top: -10px; + margin-top: 6px; + margin-left: -5px; } } diff --git a/app/templates/components/color-picker.hbs b/app/templates/components/color-picker.hbs new file mode 100644 index 0000000..48e41a2 --- /dev/null +++ b/app/templates/components/color-picker.hbs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/templates/components/controls/light-control.hbs b/app/templates/components/controls/light-control.hbs index 931a95a..a9ee892 100644 --- a/app/templates/components/controls/light-control.hbs +++ b/app/templates/components/controls/light-control.hbs @@ -19,12 +19,12 @@ {{paper-icon icon="color-lens"}}

Color

{{#paper-button raised=true class="color" action="toggleColorpicker"}}{{/paper-button}} - {{#if isShowingColorPicker}} -
- -
- {{/if}} {{/paper-item}} +
+ {{#if isShowingColorPicker}} + {{color-picker lightsData=lightsData activeLights=activeLights}} + {{/if}} +
{{#paper-item class="item"}} {{paper-icon icon="flare"}} diff --git a/ember-cli-build.js b/ember-cli-build.js index cbf157b..f00946c 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -7,7 +7,6 @@ module.exports = function(defaults) { }); app.import('vendor/dancer.js'); - app.import('vendor/colorpicker.js'); app.import('bower_components/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js'); app.import('bower_components/JavaScript-ID3-Reader/dist/id3-minimized.js'); app.import('bower_components/jquery-mousewheel/jquery.mousewheel.js'); diff --git a/public/assets/images/colorwheel.png b/public/assets/images/colorwheel.png index 7bf9424b562ccc216f4a4c4bfa4c834c2e72b4bb..3d6d114d59c363e837d7a4ada838f8989ea12dc5 100644 GIT binary patch literal 35955 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≪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�CXBN25AIEbiGj@@Z*VueydIPc#722~t1c}^{O$f&VCP#gYa8GNW# zFxitda z1bNhvFzb$6>h$6C9aRMv=DG~Ue;eX^3IXQ zWN>Ov3^RHnLw!F7ncjz0nZSWy`Cw}3p^AIJ?|mHf<~u>{d;nm)k7a;pV=FO18m};7 zj5Im^mOCJbc*zwP7&TPg8X?liwLxW4RZtrriWEPl3Kw?c>!93+%6!I$q5SjDK>5b2 zxIU5RIhTX{6|aG=8@>UV3(g0>S`Ibyjfst8wsWV|V{AmzWX(yaZGZWWNbw;|jnv

uLp5V6SodHsBDWL7gw2!P)6l_csTY!#VI_m?u`o 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 DB83m> diff --git a/tests/integration/components/color-picker-test.js b/tests/integration/components/color-picker-test.js new file mode 100644 index 0000000..fb1d925 --- /dev/null +++ b/tests/integration/components/color-picker-test.js @@ -0,0 +1,26 @@ +import { moduleForComponent, test } from 'ember-qunit'; +import hbs from 'htmlbars-inline-precompile'; + +moduleForComponent('color-picker', 'Integration | Component | color picker', { + integration: true +}); + +test('it renders', function(assert) { + assert.expect(2); + + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.on('myAction', function(val) { ... }); + + this.render(hbs`{{color-picker}}`); + + assert.equal(this.$().text().trim(), ''); + + // Template block usage: + this.render(hbs` + {{#color-picker}} + template block text + {{/color-picker}} + `); + + assert.equal(this.$().text().trim(), 'template block text'); +}); diff --git a/vendor/colorpicker.js b/vendor/colorpicker.js deleted file mode 100644 index 71ddc9b..0000000 --- a/vendor/colorpicker.js +++ /dev/null @@ -1,152 +0,0 @@ -//https://github.com/bgrins/colorwheel-1k/tree/gh-pages -(function() { - - // Declare constants and variables to help with minification - // Some of these are inlined (with comments to the side with the actual equation) - var doc = document; - doc.c = doc.createElement; - b.a = b.appendChild; - - var width = c.width = c.height = 400, - label = b.a(doc.c("p")), - input = b.a(doc.c("input")), - imageData = a.createImageData(width, width), - pixels = imageData.data, - oneHundred = input.value = input.max = 100, - circleOffset = 10, - diameter = 380, //width-circleOffset*2, - radius = 190, //diameter / 2, - radiusPlusOffset = 200, //radius + circleOffset - radiusSquared = radius * radius, - two55 = 255, - currentY = oneHundred, - currentX = -currentY, - wheelPixel = 16040; // circleOffset*4*width+circleOffset*4; - - // Math helpers - var math = Math, - PI = math.PI, - PI2 = PI * 2, - sqrt = math.sqrt, - atan2 = math.atan2; - - // Setup DOM properties - b.style.textAlign="center"; - label.style.font = "2em courier"; - input.type = "range"; - - // Load color wheel data into memory. - for (y = input.min = 0; y < width; y++) { - for (x = 0; x < width; x++) { - var rx = x - radius, - ry = y - radius, - d = rx * rx + ry * ry, - rgb = hsvToRgb( - (atan2(ry, rx) + PI) / PI2, // Hue - sqrt(d) / radius, // Saturation - 1 // Value - ); - - // Print current color, but hide if outside the area of the circle - pixels[wheelPixel++] = rgb[0]; - pixels[wheelPixel++] = rgb[1]; - pixels[wheelPixel++] = rgb[2]; - pixels[wheelPixel++] = d > radiusSquared ? 0 : two55; - } - } - - // Bind Event Handlers - input.onchange = redraw; - c.onmousedown = doc.onmouseup = function(e) { - // Unbind mousemove if this is a mouseup event, or bind mousemove if this a mousedown event - doc.onmousemove = /p/.test(e.type) ? 0 : (redraw(e), redraw); - } - - // Handle manual calls + mousemove event handler + input change event handler all in one place. - function redraw(e) { - - // Only process an actual change if it is triggered by the mousemove or mousedown event. - // Otherwise e.pageX will be undefined, which will cause the result to be NaN, so it will fallback to the current value - currentX = e.pageX - c.offsetLeft - radiusPlusOffset || currentX; - currentY = e.pageY - c.offsetTop - radiusPlusOffset || currentY; - - // Scope these locally so the compiler will minify the names. Will manually remove the 'var' keyword in the minified version. - var theta = atan2(currentY, currentX), - d = currentX * currentX + currentY * currentY; - - // If the x/y is not in the circle, find angle between center and mouse point: - // Draw a line at that angle from center with the distance of radius - // Use that point on the circumference as the draggable location - if (d > radiusSquared) { - currentX = radius * math.cos(theta); - currentY = radius * math.sin(theta); - theta = atan2(currentY, currentX); - d = currentX * currentX + currentY * currentY; - } - - label.textContent = b.style.background = hsvToRgb( - (theta + PI) / PI2, // Current hue (how many degrees along the circle) - sqrt(d) / radius, // Current saturation (how close to the middle) - input.value / oneHundred // Current value (input type="range" slider value) - )[3]; - - // Reset to color wheel and draw a spot on the current location. - a.putImageData(imageData, 0, 0); - - // Draw the current spot. - // I have tried a rectangle, circle, and heart shape. - /* - // Rectangle: - a.fillStyle = '#000'; - a.fillRect(currentX+radiusPlusOffset,currentY+radiusPlusOffset, 6, 6); - */ - /* - // Circle: - a.beginPath(); - a.strokeStyle = '#000'; - a.arc(~~currentX+radiusPlusOffset,~~currentY+radiusPlusOffset, 4, 0, PI2); - a.stroke(); - */ - - // Heart: - a.font = "1em arial"; - a.fillText("♥", currentX+radiusPlusOffset-4,currentY+radiusPlusOffset+4); - - } - - // Created a shorter version of the HSV to RGB conversion function in TinyColor - // https://github.com/bgrins/TinyColor/blob/master/tinycolor.js - function hsvToRgb(h, s, v) { - h*=6; - var i = ~~h, - f = h - i, - p = v * (1 - s), - q = v * (1 - f * s), - t = v * (1 - (1 - f) * s), - mod = i % 6, - r = [v, q, p, p, t, v][mod] * two55, - g = [t, v, v, q, p, p][mod] * two55, - b = [p, p, t, v, v, q][mod] * two55; - - return [r, g, b, "rgb("+ ~~r + "," + ~~g + "," + ~~b + ")"]; - } - - // Kick everything off - redraw(0); - - /* - // Just an idea I had to kick everything off with some changing colors… - // Probably no way to squeeze this into 1k, but it could probably be a lot smaller than this: - currentX = currentY = 1; - var interval = setInterval(function() { - currentX--; - currentY*=1.05; - redraw(0) - }, 7); - - setTimeout(function() { - clearInterval(interval) - }, 700) - */ - -})();