diff options
author | Richard Worth <rdworth@gmail.com> | 2008-11-12 01:01:05 +0000 |
---|---|---|
committer | Richard Worth <rdworth@gmail.com> | 2008-11-12 01:01:05 +0000 |
commit | 79b6eaf13c1dbcc1f7d6f2b77062f8b16ae4fefb (patch) | |
tree | 3af0625909fab71f750ab30e61a59b0ddbb8a877 | |
parent | fde1cfb4e414b16185680ac6c40b2bb804fb11fd (diff) | |
download | jquery-ui-79b6eaf13c1dbcc1f7d6f2b77062f8b16ae4fefb.tar.gz jquery-ui-79b6eaf13c1dbcc1f7d6f2b77062f8b16ae4fefb.zip |
Moved colorpicker to experimental branch
-rw-r--r-- | demos/functional/templates/ui.colorpicker.html | 41 | ||||
-rw-r--r-- | tests/visual/colorpicker.html | 357 | ||||
-rw-r--r-- | ui/ui.colorpicker.js | 473 |
3 files changed, 0 insertions, 871 deletions
diff --git a/demos/functional/templates/ui.colorpicker.html b/demos/functional/templates/ui.colorpicker.html deleted file mode 100644 index 844b6266f..000000000 --- a/demos/functional/templates/ui.colorpicker.html +++ /dev/null @@ -1,41 +0,0 @@ -<script type="text/javascript"> - - var model = { - - renderAt: '#containerDemo', - - title: 'Colorpicker Demos', - - demos: [ - - { - title: 'Inline colorpicker', - desc: 'With few lines of code you could build a colorpicker. You can try more options on the fly!', - html: '<div id="colorpicker" />', - destroy: '$("#colorpicker").colorpicker("destroy");', - options: [ - { desc: 'Make a colorpicker', source: '$("#colorpicker").colorpicker({flat:true});' } - ] - }, - - { - title: 'Triggered colorpicker', - desc: 'With few lines of code you could build a colorpicker. You can try more options on the fly!', - html: '<input id="colorpicker2" /><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>', - destroy: '$("#colorpicker2").colorpicker("destroy");', - options: [ - { desc: 'Make a colorpicker', source: '$("#colorpicker2").colorpicker( {submit: function(e,ui) { $("#colorpicker2").val(ui.hex);} });' }, - { desc: 'Fade in/out a colorpicker', source: '$("#colorpicker2").colorpicker( {show: function (e,ui) { $(this).data("colorpicker").picker.fadeIn(500);return false; }, hide: function (e,ui) { $(this).data("colorpicker").picker.fadeOut(500);return false; }, change: function(e,ui) { $("#colorpicker2").val(ui.hex); } });' } - ] - } - - ] - }; - - $(function(){ - - uiRenderDemo(model); - - }); - -</script>
\ No newline at end of file diff --git a/tests/visual/colorpicker.html b/tests/visual/colorpicker.html deleted file mode 100644 index d1dc0a491..000000000 --- a/tests/visual/colorpicker.html +++ /dev/null @@ -1,357 +0,0 @@ -<!doctype html> -<html lang="en"> -<head> - - <title>ColorPicker</title> - -<style type="text/css" media="screen"> - -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { - margin:0; - padding:0; -} -table { - border-collapse:collapse; - border-spacing:0; -} -fieldset,img { - border:0; -} -address,caption,cite,code,dfn,em,strong,th,var { - font-style:normal; - font-weight:normal; -} -ol,ul { - list-style:none; -} -caption,th { - text-align:left; -} -h1,h2,h3,h4,h5,h6 { - font-size:100%; - font-weight:normal; -} -q:before,q:after { - content:''; -} -abbr,acronym { border:0; -} -html, body { - background-color: #fff; - font-family: Arial, Helvetica, sans-serif; - font-size: 12px; - line-height: 18px; - color: #52697E; -} -body { - text-align: center; - overflow: auto; -} -.wrapper { - width: 700px; - margin: 0 auto; - text-align: left; -} -h1 { - font-size: 21px; - height: 47px; - line-height: 47px; - text-transform: uppercase; -} -.navigationTabs { - height: 23px; - line-height: 23px; - border-bottom: 1px solid #ccc; -} -.navigationTabs li { - float: left; - height: 23px; - line-height: 23px; - padding-right: 3px; -} -.navigationTabs li a{ - float: left; - dispaly: block; - height: 23px; - line-height: 23px; - padding: 0 10px; - overflow: hidden; - color: #52697E; - background-color: #eee; - position: relative; - text-decoration: none; -} -.navigationTabs li a:hover { - background-color: #f0f0f0; -} -.navigationTabs li a.active { - background-color: #fff; - border: 1px solid #ccc; - border-bottom: 0px solid; -} -.tabsContent { - border: 1px solid #ccc; - border-top: 0px solid; - width: 698px; - overflow: hidden; -} -.tab { - padding: 16px; - display: block; -} -.tab h2 { - font-weight: bold; - font-size: 16px; -} -.tab h3 { - font-weight: bold; - font-size: 14px; - margin-top: 20px; -} -.tab p { - margin-top: 16px; - clear: both; -} -.tab ul { - margin-top: 16px; - list-style: disc; -} -.tab li { - margin: 10px 0 0 35px; -} -.tab a { - color: #8FB0CF; -} -.tab strong { - font-weight: bold; -} -.tab pre { - font-size: 11px; - margin-top: 20px; - width: 668px; - overflow: auto; - clear: both; -} -.tab table { - width: 100%; -} -.tab table td { - padding: 6px 10px 6px 0; - vertical-align: top; -} -.tab dt { - margin-top: 16px; -} - -#colorSelector { - position: relative; - width: 36px; - height: 36px; - background: url(../../themes/default/images/select.png); -} -#colorSelector div { - position: absolute; - top: 3px; - left: 3px; - width: 30px; - height: 30px; - background: url(../../themes/default/images/select.png) center; -} -#colorSelector2 { - position: absolute; - top: 0; - left: 0; - width: 36px; - height: 36px; - background: url(../../themes/default/images/select2.png); -} -#colorSelector2 div { - position: absolute; - top: 4px; - left: 4px; - width: 28px; - height: 28px; - background: url(../../themes/default/images/select2.png) center; -} -#colorpickerHolder2 { - top: 32px; - left: 0; - width: 356px; - height: 0; - overflow: hidden; - position: absolute; -} -#colorpickerHolder2 .ui-colorpicker { - background-image: url(../../themes/default/images/custom_background.png); - position: absolute; - bottom: 0; - left: 0; -} -#colorpickerHolder2 .ui-colorpicker-hue div { - background-image: url(../../themes/default/images/custom_indic.gif); -} -#colorpickerHolder2 .ui-colorpicker-hex { - background-image: url(../../themes/default/images/custom_hex.png); -} -#colorpickerHolder2 .ui-colorpicker-rgb-r { - background-image: url(../../themes/default/images/custom_rgb_r.png); -} -#colorpickerHolder2 .ui-colorpicker-rgb-g { - background-image: url(../../themes/default/images/custom_rgb_g.png); -} -#colorpickerHolder2 .ui-colorpicker-rgb-b { - background-image: url(../../themes/default/images/custom_rgb_b.png); -} -#colorpickerHolder2 .ui-colorpicker-hsb-s { - background-image: url(../../themes/default/images/custom_hsb_s.png); - display: none; -} -#colorpickerHolder2 .ui-colorpicker-hsb-h { - background-image: url(../../themes/default/images/custom_hsb_h.png); - display: none; -} -#colorpickerHolder2 .ui-colorpicker-hsb-b { - background-image: url(../../themes/default/images/custom_hsb_b.png); - display: none; -} -#colorpickerHolder2 .ui-colorpicker-submit { - background-image: url(../../themes/default/images/colorpicker_submit.png); -} -#colorpickerHolder2 .ui-colorpicker input { - color: #778398; -} -#customWidget { - position: relative; - height: 36px; -} - - -</style> - -<link rel="stylesheet" href="../../themes/default/ui.all.css" type="text/css" media="screen" title="no title" charset="utf-8"> - -<script type="text/javascript" src="../../jquery-1.2.6.js"></script> -<script type="text/javascript" src="../../ui/ui.core.js"></script> -<script type="text/javascript" src="../../ui/ui.colorpicker.js"></script> - -<script type="text/javascript"> - -$(document).ready(function() { - - $('#colorpickerHolder').colorpicker({ flat: true }); - $('#colorpickerHolder2').colorpicker({ - flat: true, - color: '#00ff00', - submit: function(e, ui) { - $('#colorSelector2 div').css('backgroundColor', '#' + ui.hex); - } - }); - $('#colorpickerHolder2>div').css('position', 'absolute'); - var widt = false; - $('#colorSelector2').bind('click', function() { - $('#colorpickerHolder2').stop().animate({height: widt ? 0 : 173}, 500); - widt = !widt; - }); - $('#colorpickerField1').colorpicker({ - submit: function(e, ui) { - $('#colorpickerField1').val(ui.hex); - }, - beforeShow: function (e, ui) { - $(this).colorpicker("setColor", this.value); - } - }) - .bind('keyup', function(){ - $(this).colorpicker("setColor", this.value); - }); - $('#colorSelector').colorpicker({ - color: '#0000ff', - show: function (e, ui) { - $(this).data("colorpicker").picker.fadeIn(500); - return false; - }, - hide: function (e, ui) { - $(this).data("colorpicker").picker.fadeOut(500); - return false; - }, - change: function (e, ui) { - $('#colorSelector div').css('backgroundColor', '#' + ui.hex); - } - }); - -}); - -</script> - - -</head> -<body> - <div class="wrapper"> - <h1>Color Picker</h1> - <ul class="navigationTabs"> - <li><a href="#about" rel="about">About</a></li> - </ul> - <div class="tabsContent"> - <div class="tab"> - <h2>About</h2> - <p>A simple component to select color in the same way you select color in Adobe Photoshop</p> - <h3>Features</h3> - <ul> - <li>Flat mode - as element in page</li> - <li>Powerful controls for color selection</li> - <li>Easy to customize the look by changing some images</li> - <li>Fits into the viewport</li> - </ul> - <h3>Examples</h3> - <p>Flat mode.</p> - <p id="colorpickerHolder"> - </p> - <pre> -$('#colorpickerHolder').ColorPicker({flat: true}); - </pre> - <p>Custom skin and using flat mode to display the color picker in a custom widget.</p> - <div id="customWidget"> - <div id="colorSelector2"><div style="background-color: #00ff00"></div></div> - <div id="colorpickerHolder2"> - </div> - </div> - - <p>Attached to an text field and using callback functions to update the color with field's value and set the value back in the field by submiting the color.</p> - <p><input type="text" maxlength="6" size="6" id="colorpickerField1" value="00ff00" /></p> - <pre> -$('#colorpickerField1').ColorPicker({ - onSubmit: function(hsb, hex, rgb) { - $('#colorpickerField1').val(hex); - }, - onBeforeShow: function () { - $(this).ColorPickerSetColor(this.value); - } -}) -.bind('keyup', function(){ - $(this).ColorPickerSetColor(this.value); -}); -</pre> - <p>Attached to DOMElement and using callbacks to live preview the color and adding animation.</p> - <p> - <div id="colorSelector"><div style="background-color: #0000ff"></div></div> - </p> - <pre> -$('#colorSelector').ColorPicker({ - color: '#0000ff', - onShow: function (colpkr) { - $(colpkr).fadeIn(500); - return false; - }, - onHide: function (colpkr) { - $(colpkr).fadeOut(500); - return false; - }, - onChange: function (hsb, hex, rgb) { - $('#colorSelector div').css('backgroundColor', '#' + hex); - } -}); -</pre> - </div> - </div> - </div> -</body> -</html> diff --git a/ui/ui.colorpicker.js b/ui/ui.colorpicker.js deleted file mode 100644 index 0039e8e71..000000000 --- a/ui/ui.colorpicker.js +++ /dev/null @@ -1,473 +0,0 @@ -/* - * jQuery UI Colorpicker @VERSION - * - * Copyright (c) 2008 Stefan Petre, Paul Bakaus - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://docs.jquery.com/UI/Colorpicker - * - * Depends: - * ui.core.js - */ -(function($) { - -$.widget("ui.colorpicker", { - - _init: function() { - - this.charMin = 65; - var o = this.options, self = this, - tpl = '<div class="ui-colorpicker clearfix"><div class="ui-colorpicker-color"><div><div></div></div></div><div class="ui-colorpicker-hue"><div></div></div><div class="ui-colorpicker-new-color"></div><div class="ui-colorpicker-current-color"></div><div class="ui-colorpicker-hex"><label for="ui-colorpicker-hex" title="hex"></label><input type="text" maxlength="6" size="6" /></div><div class="ui-colorpicker-rgb-r ui-colorpicker-field"><label for="ui-colorpicker-rgb-r"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-rgb-g ui-colorpicker-field"><label for="ui-colorpicker-rgb-g"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-rgb-b ui-colorpicker-field"><label for="ui-colorpicker-rgb-b"</label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-hsb-h ui-colorpicker-field"><label for="ui-colorpicker-hsb-h"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-hsb-s ui-colorpicker-field"><label for="ui-colorpicker-hsb-s"></label><input type="text" maxlength="3" size="2" /><span></span></div><div class="ui-colorpicker-hsb-b ui-colorpicker-field"><label for="ui-colorpicker-hsb-b"></label><input type="text" maxlength="3" size="2" /><span></span></div><button class="ui-colorpicker-submit ui-default-state" name="submit" type="button">Done</button></div>'; - - if (typeof o.color == 'string') { - this.color = this._HexToHSB(o.color); - } else if (o.color.r != undefined && o.color.g != undefined && o.color.b != undefined) { - this.color = this._RGBToHSB(o.color); - } else if (o.color.h != undefined && o.color.s != undefined && o.color.b != undefined) { - this.color = this._fixHSB(o.color); - } else { - return this; - } - - this.origColor = this.color; - this.picker = $(tpl); - - if (o.flat) { - this.picker.appendTo(this.element).show(); - } else { - this.picker.appendTo(document.body); - } - - this.fields = this.picker.find('input') - .bind('keydown', function(e) { return self._keyDown.call(self, e); }) - .bind('change', function(e) { return self._change.call(self, e); }) - .bind('blur', function(e) { return self._blur.call(self, e); }) - .bind('focus', function(e) { return self._focus.call(self, e); }); - - this.picker.find('span').bind('mousedown', function(e) { return self._downIncrement.call(self, e); }); - - this.selector = this.picker.find('div.ui-colorpicker-color').bind('mousedown', function(e) { return self._downSelector.call(self, e); }); - this.selectorIndic = this.selector.find('div div'); - this.hue = this.picker.find('div.ui-colorpicker-hue div'); - this.picker.find('div.ui-colorpicker-hue').bind('mousedown', function(e) { return self._downHue.call(self, e); }); - - this.newColor = this.picker.find('div.ui-colorpicker-new-color'); - this.currentColor = this.picker.find('div.ui-colorpicker-current-color'); - - this.picker.find('.ui-colorpicker-submit') - .bind('mouseenter', function(e) { return self._enterSubmit.call(self, e); }) - .bind('mouseleave', function(e) { return self._leaveSubmit.call(self, e); }) - .bind('click', function(e) { return self._clickSubmit.call(self, e); }); - - this._fillRGBFields(this.color); - this._fillHSBFields(this.color); - this._fillHexFields(this.color); - this._setHue(this.color); - this._setSelector(this.color); - this._setCurrentColor(this.color); - this._setNewColor(this.color); - - if (o.flat) { - this.picker.css({ - position: 'relative', - display: 'block' - }); - } else { - $(this.element).bind(o.eventName+".colorpicker", function(e) { return self._show.call(self, e); }); - } - - }, - - destroy: function() { - - this.picker.remove(); - this.element.removeData("colorpicker").unbind(".colorpicker"); - - }, - - _fillRGBFields: function(hsb) { - var rgb = this._HSBToRGB(hsb); - this.fields - .eq(1).val(rgb.r).end() - .eq(2).val(rgb.g).end() - .eq(3).val(rgb.b).end(); - }, - _fillHSBFields: function(hsb) { - this.fields - .eq(4).val(hsb.h).end() - .eq(5).val(hsb.s).end() - .eq(6).val(hsb.b).end(); - }, - _fillHexFields: function (hsb) { - this.fields - .eq(0).val(this._HSBToHex(hsb)).end(); - }, - _setSelector: function(hsb) { - this.selector.css('backgroundColor', '#' + this._HSBToHex({h: hsb.h, s: 100, b: 100})); - this.selectorIndic.css({ - left: parseInt(150 * hsb.s/100, 10), - top: parseInt(150 * (100-hsb.b)/100, 10) - }); - }, - _setHue: function(hsb) { - this.hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); - }, - _setCurrentColor: function(hsb) { - this.currentColor.css('backgroundColor', '#' + this._HSBToHex(hsb)); - }, - _setNewColor: function(hsb) { - this.newColor.css('backgroundColor', '#' + this._HSBToHex(hsb)); - }, - _keyDown: function(e) { - var pressedKey = e.charCode || e.keyCode || -1; - if ((pressedKey >= this.charMin && pressedKey <= 90) || pressedKey == 32) { - return false; - } - }, - _change: function(e, target) { - - var col; - target = target || e.target; - if (target.parentNode.className.indexOf('-hex') > 0) { - this.color = col = this._HexToHSB(this.value); - this._fillRGBFields(col.color); - this._fillHSBFields(col); - } else if (target.parentNode.className.indexOf('-hsb') > 0) { - this.color = col = this._fixHSB({ - h: parseInt(this.fields.eq(4).val(), 10), - s: parseInt(this.fields.eq(5).val(), 10), - b: parseInt(this.fields.eq(6).val(), 10) - }); - this._fillRGBFields(col); - this._fillHexFields(col); - } else { - this.color = col = this._RGBToHSB(this._fixRGB({ - r: parseInt(this.fields.eq(1).val(), 10), - g: parseInt(this.fields.eq(2).val(), 10), - b: parseInt(this.fields.eq(3).val(), 10) - })); - this._fillHexFields(col); - this._fillHSBFields(col); - } - this._setSelector(col); - this._setHue(col); - this._setNewColor(col); - - this._trigger('change', e, { options: this.options, hsb: col, hex: this._HSBToHex(col), rgb: this._HSBToRGB(col) }); - }, - _blur: function(e) { - - var col = this.color; - this._fillRGBFields(col); - this._fillHSBFields(col); - this._fillHexFields(col); - this._setHue(col); - this._setSelector(col); - this._setNewColor(col); - this.fields.parent().removeClass('ui-colorpicker-focus'); - - }, - _focus: function(e) { - - this.charMin = e.target.parentNode.className.indexOf('-hex') > 0 ? 70 : 65; - this.fields.parent().removeClass('ui-colorpicker-focus'); - $(e.target.parentNode).addClass('ui-colorpicker-focus'); - - }, - _downIncrement: function(e) { - - var field = $(e.target).parent().find('input').focus(), self = this; - this.currentIncrement = { - el: $(e.target).parent().addClass('ui-colorpicker-slider'), - max: e.target.parentNode.className.indexOf('-hsb-h') > 0 ? 360 : (e.target.parentNode.className.indexOf('-hsb') > 0 ? 100 : 255), - y: e.pageY, - field: field, - val: parseInt(field.val(), 10) - }; - $(document).bind('mouseup.cpSlider', function(e) { return self._upIncrement.call(self, e); }); - $(document).bind('mousemove.cpSlider', function(e) { return self._moveIncrement.call(self, e); }); - return false; - - }, - _moveIncrement: function(e) { - this.currentIncrement.field.val(Math.max(0, Math.min(this.currentIncrement.max, parseInt(this.currentIncrement.val + e.pageY - this.currentIncrement.y, 10)))); - this._change.apply(this, [e, this.currentIncrement.field.get(0)]); - return false; - }, - _upIncrement: function(e) { - this.currentIncrement.el.removeClass('ui-colorpicker-slider').find('input').focus(); - this._change.apply(this, [e, this.currentIncrement.field.get(0)]); - $(document).unbind('mouseup.cpSlider'); - $(document).unbind('mousemove.cpSlider'); - return false; - }, - _downHue: function(e) { - - this.currentHue = { - y: this.picker.find('div.ui-colorpicker-hue').offset().top - }; - - this._change.apply(this, [e, this - .fields - .eq(4) - .val(parseInt(360*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentHue.y))))/150, 10)) - .get(0)]); - - var self = this; - $(document).bind('mouseup.cpSlider', function(e) { return self._upHue.call(self, e); }); - $(document).bind('mousemove.cpSlider', function(e) { return self._moveHue.call(self, e); }); - return false; - - }, - _moveHue: function(e) { - - this._change.apply(this, [e, this - .fields - .eq(4) - .val(parseInt(360*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentHue.y))))/150, 10)) - .get(0)]); - - return false; - - }, - _upHue: function(e) { - $(document).unbind('mouseup.cpSlider'); - $(document).unbind('mousemove.cpSlider'); - return false; - }, - _downSelector: function(e) { - - var self = this; - this.currentSelector = { - pos: this.picker.find('div.ui-colorpicker-color').offset() - }; - - this._change.apply(this, [e, this - .fields - .eq(6) - .val(parseInt(100*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentSelector.pos.top))))/150, 10)) - .end() - .eq(5) - .val(parseInt(100*(Math.max(0,Math.min(150,(e.pageX - this.currentSelector.pos.left))))/150, 10)) - .get(0) - ]); - $(document).bind('mouseup.cpSlider', function(e) { return self._upSelector.call(self, e); }); - $(document).bind('mousemove.cpSlider', function(e) { return self._moveSelector.call(self, e); }); - return false; - - }, - _moveSelector: function(e) { - - this._change.apply(this, [e, this - .fields - .eq(6) - .val(parseInt(100*(150 - Math.max(0,Math.min(150,(e.pageY - this.currentSelector.pos.top))))/150, 10)) - .end() - .eq(5) - .val(parseInt(100*(Math.max(0,Math.min(150,(e.pageX - this.currentSelector.pos.left))))/150, 10)) - .get(0) - ]); - return false; - - }, - _upSelector: function(e) { - $(document).unbind('mouseup.cpSlider'); - $(document).unbind('mousemove.cpSlider'); - return false; - }, - _enterSubmit: function(e) { - this.picker.find('.ui-colorpicker-submit').addClass('ui-colorpicker-focus'); - }, - _leaveSubmit: function(e) { - this.picker.find('.ui-colorpicker-submit').removeClass('ui-colorpicker-focus'); - }, - _clickSubmit: function(e) { - - var col = this.color; - this.origColor = col; - this._setCurrentColor(col); - - this._trigger("submit", e, { options: this.options, hsb: col, hex: this._HSBToHex(col), rgb: this._HSBToRGB(col) }); - return false; - - }, - _show: function(e) { - - this._trigger("beforeShow", e, { options: this.options, hsb: this.color, hex: this._HSBToHex(this.color), rgb: this._HSBToRGB(this.color) }); - - var pos = this.element.offset(); - var viewPort = this._getScroll(); - var top = pos.top + this.element[0].offsetHeight; - var left = pos.left; - if (top + 176 > viewPort.t + Math.min(viewPort.h,viewPort.ih)) { - top -= this.element[0].offsetHeight + 176; - } - if (left + 356 > viewPort.l + Math.min(viewPort.w,viewPort.iw)) { - left -= 356; - } - this.picker.css({left: left + 'px', top: top + 'px'}); - if (this._trigger("show", e, { options: this.options, hsb: this.color, hex: this._HSBToHex(this.color), rgb: this._HSBToRGB(this.color) }) != false) { - this.picker.show(); - } - - var self = this; - $(document).bind('mousedown.colorpicker', function(e) { return self._hide.call(self, e); }); - return false; - - }, - _hide: function(e) { - - if (!this._isChildOf(this.picker[0], e.target, this.picker[0])) { - if (this._trigger("hide", e, { options: this.options, hsb: this.color, hex: this._HSBToHex(this.color), rgb: this._HSBToRGB(this.color) }) != false) { - this.picker.hide(); - } - $(document).unbind('mousedown.colorpicker'); - } - - }, - _isChildOf: function(parentEl, el, container) { - if (parentEl == el) { - return true; - } - if (parentEl.contains && !$.browser.safari) { - return parentEl.contains(el); - } - if ( parentEl.compareDocumentPosition ) { - return !!(parentEl.compareDocumentPosition(el) & 16); - } - var prEl = el.parentNode; - while(prEl && prEl != container) { - if (prEl == parentEl) - return true; - prEl = prEl.parentNode; - } - return false; - }, - _getScroll: function() { - var t,l,w,h,iw,ih; - if (document.documentElement) { - t = document.documentElement.scrollTop; - l = document.documentElement.scrollLeft; - w = document.documentElement.scrollWidth; - h = document.documentElement.scrollHeight; - } else { - t = document.body.scrollTop; - l = document.body.scrollLeft; - w = document.body.scrollWidth; - h = document.body.scrollHeight; - } - iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0; - ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0; - return { t: t, l: l, w: w, h: h, iw: iw, ih: ih }; - }, - _fixHSB: function(hsb) { - return { - h: Math.min(360, Math.max(0, hsb.h)), - s: Math.min(100, Math.max(0, hsb.s)), - b: Math.min(100, Math.max(0, hsb.b)) - }; - }, - _fixRGB: function(rgb) { - return { - r: Math.min(255, Math.max(0, rgb.r)), - g: Math.min(255, Math.max(0, rgb.g)), - b: Math.min(255, Math.max(0, rgb.b)) - }; - }, - _HexToRGB: function (hex) { - var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16); - return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; - }, - _HexToHSB: function(hex) { - return this._RGBToHSB(this._HexToRGB(hex)); - }, - _RGBToHSB: function(rgb) { - var hsb = {}; - hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b); - hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b); - hsb.b = Math.round((hsb.b /255)*100); - if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0; - else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b); - else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60 + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b); - else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r); - else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r); - else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g); - else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g); - else hsb.h = 0; - hsb.h = Math.round(hsb.h); - return hsb; - }, - _HSBToRGB: function(hsb) { - var rgb = {}; - var h = Math.round(hsb.h); - var s = Math.round(hsb.s*255/100); - var v = Math.round(hsb.b*255/100); - if(s == 0) { - rgb.r = rgb.g = rgb.b = v; - } else { - var t1 = v; - var t2 = (255-s)*v/255; - var t3 = (t1-t2)*(h%60)/60; - if(h==360) h = 0; - if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3;} - else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3;} - else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3;} - else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3;} - else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3;} - else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3;} - else {rgb.r=0; rgb.g=0; rgb.b=0;} - } - return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; - }, - _RGBToHex: function(rgb) { - var hex = [ - rgb.r.toString(16), - rgb.g.toString(16), - rgb.b.toString(16) - ]; - $.each(hex, function (nr, val) { - if (val.length == 1) { - hex[nr] = '0' + val; - } - }); - return hex.join(''); - }, - _HSBToHex: function(hsb) { - return this._RGBToHex(this._HSBToRGB(hsb)); - }, - setColor: function(col) { - if (typeof col == 'string') { - col = this._HexToHSB(col); - } else if (col.r != undefined && col.g != undefined && col.b != undefined) { - col = this._RGBToHSB(col); - } else if (col.h != undefined && col.s != undefined && col.b != undefined) { - col = this._fixHSB(col); - } else { - return this; - } - - this.color = col; - this.origColor = col; - this._fillRGBFields(col); - this._fillHSBFields(col); - this._fillHexFields(col); - this._setHue(col); - this._setSelector(col); - this._setCurrentColor(col); - this._setNewColor(col); - - } - -}); - -$.extend($.ui.colorpicker, { - version: "@VERSION", - defaults: { - eventName: 'click', - color: 'ff0000', - flat: false - } -}); - -})(jQuery); |