From ef83ebbcafd72cc851322767580eb6ba01fc2969 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Tue, 4 Mar 2008 21:35:03 +0000 Subject: [PATCH] new colorpicker --- lib/WebGUI/Content/Setup.pm | 22 +-- lib/WebGUI/Form/Color.pm | 35 ++-- www/extras/colorpicker/color.js | 102 ----------- www/extras/colorpicker/colorpicker.css | 25 +-- www/extras/colorpicker/colorpicker.js | 207 ++++++++-------------- www/extras/colorpicker/example.html | 49 +++-- www/extras/colorpicker/hline.png | Bin 416 -> 0 bytes www/extras/colorpicker/hue.png | Bin 1344 -> 0 bytes www/extras/colorpicker/key.js | 34 ---- www/extras/colorpicker/pickerbg.png | Bin 12421 -> 0 bytes www/extras/colorpicker/select.gif | Bin 78 -> 0 bytes www/extras/styleDesigner/styleDesigner.js | 3 +- 12 files changed, 158 insertions(+), 319 deletions(-) delete mode 100644 www/extras/colorpicker/color.js delete mode 100644 www/extras/colorpicker/hline.png delete mode 100644 www/extras/colorpicker/hue.png delete mode 100644 www/extras/colorpicker/key.js delete mode 100644 www/extras/colorpicker/pickerbg.png delete mode 100644 www/extras/colorpicker/select.gif diff --git a/lib/WebGUI/Content/Setup.pm b/lib/WebGUI/Content/Setup.pm index 669b2b008..c5d5c6a42 100644 --- a/lib/WebGUI/Content/Setup.pm +++ b/lib/WebGUI/Content/Setup.pm @@ -184,16 +184,18 @@ sub handler { $logoUrl = $logo->getStorageLocation->getUrl($logo->get("filename")); } my $style = $session->style; - $style->setScript($url->extras('/yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/event/event-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/dom/dom-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/dragdrop/dragdrop-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/animation/animation-min.js'),{ type=>'text/javascript' }); - $style->setLink($url->extras('/colorpicker/colorpicker.css'),{ type=>'text/css', rel=>"stylesheet" }); - $style->setScript($url->extras('/colorpicker/color.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/colorpicker/key.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/slider/slider-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/colorpicker/colorpicker.js'),{ type=>'text/javascript' }); + $style->setLink($url->extras('/yui/build/container/assets/skins/sam/container.css'),{ type=>'text/css', rel=>"stylesheet" }); + $style->setLink($url->extras('/yui/build/colorpicker/assets/skins/sam/colorpicker.css'),{ type=>'text/css', rel=>"stylesheet" }); + $style->setScript($url->extras('/yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/event/event-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/dom/dom-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/dragdrop/dragdrop-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/utilities/utilities.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/container/container-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/slider/slider-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/colorpicker/colorpicker-min.js'),{ type=>'text/javascript' }); + $style->setLink($url->extras('/colorpicker/colorpicker.css'),{ type=>'text/css', rel=>"stylesheet" }); + $style->setScript($url->extras('/colorpicker/colorpicker.js'),{ type=>'text/javascript' }); $style->setScript($url->extras("/styleDesigner/styleDesigner.js"), {type=>"text/javascript"}); $style->setLink($url->extras("/styleDesigner/styleDesigner.css"), {rel=>"stylesheet", type=>"text/css"}); $legend = "Style Designer"; diff --git a/lib/WebGUI/Form/Color.pm b/lib/WebGUI/Form/Color.pm index b0e950cea..1228bf27d 100644 --- a/lib/WebGUI/Form/Color.pm +++ b/lib/WebGUI/Form/Color.pm @@ -88,26 +88,31 @@ Renders a color picker control. =cut sub toHtml { - my $self = shift; + my $self = shift; my $url = $self->session->url; my $style = $self->session->style; - $style->setScript($url->extras('/yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/event/event-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/dom/dom-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/dragdrop/dragdrop-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/animation/animation-min.js'),{ type=>'text/javascript' }); - $style->setLink($url->extras('/colorpicker/colorpicker.css'),{ type=>'text/css', rel=>"stylesheet" }); - $style->setScript($url->extras('/colorpicker/color.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/colorpicker/key.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/yui/build/slider/slider-min.js'),{ type=>'text/javascript' }); - $style->setScript($url->extras('/colorpicker/colorpicker.js'),{ type=>'text/javascript' }); + $style->setLink($url->extras('/yui/build/container/assets/skins/sam/container.css'),{ type=>'text/css', rel=>"stylesheet" }); + $style->setLink($url->extras('/yui/build/colorpicker/assets/skins/sam/colorpicker.css'),{ type=>'text/css', rel=>"stylesheet" }); + $style->setScript($url->extras('/yui/build/yahoo/yahoo-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/event/event-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/dom/dom-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/dragdrop/dragdrop-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/utilities/utilities.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/container/container-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/slider/slider-min.js'),{ type=>'text/javascript' }); + $style->setScript($url->extras('/yui/build/colorpicker/colorpicker-min.js'),{ type=>'text/javascript' }); + $style->setLink($url->extras('/colorpicker/colorpicker.css'),{ type=>'text/css', rel=>"stylesheet" }); + $style->setScript($url->extras('/colorpicker/colorpicker.js'),{ type=>'text/javascript' }); my $id = $self->get("id"); my $value = $self->get("value"); - return q| - |; + my $name = $self->get("name"); + return qq{ +}; +# +# +# } 1; diff --git a/www/extras/colorpicker/color.js b/www/extras/colorpicker/color.js deleted file mode 100644 index 43f9b29e9..000000000 --- a/www/extras/colorpicker/color.js +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */ - -YAHOO.util.Color = function() { - - var hexchars = "0123456789ABCDEF"; - - var real2int = function(n) { - return Math.min(255, Math.round(n*256)); - }; - - return { - - /** - * HSV to RGB. h[0,360], s[0,1], v[0,1] - */ - hsv2rgb: function(h,s,v) { - var r,g,b,i,f,p,q,t; - i = Math.floor((h/60)%6); - f = (h/60)-i; - p = v*(1-s); - q = v*(1-f*s); - t = v*(1-(1-f)*s); - switch(i) { - case 0: r=v; g=t; b=p; break; - case 1: r=q; g=v; b=p; break; - case 2: r=p; g=v; b=t; break; - case 3: r=p; g=q; b=v; break; - case 4: r=t; g=p; b=v; break; - case 5: r=v; g=p; b=q; break; - } - //alert([h,s,v] + "-" + [r,g,b]); - - return [real2int(r), real2int(g), real2int(b)]; - }, - - rgb2hsv: function(r,g,b) { - var min,max,delta,h,s,v; - min = Math.min(Math.min(r,g),b); - max = Math.max(Math.max(r,g),b); - delta = max-min; - - switch (max) { - case min: h=0; break; - case r: h=(g-b)/delta; - if (g 255) return false; - if ((!a[1] && a[1] !=0) || isNaN(a[1]) || a[1] < 0 || a[1] > 255) return false; - if ((!a[2] && a[2] !=0) || isNaN(a[2]) || a[2] < 0 || a[2] > 255) return false; - - return true; - } - } -}(); - diff --git a/www/extras/colorpicker/colorpicker.css b/www/extras/colorpicker/colorpicker.css index 0b7654a82..d6c8097b4 100644 --- a/www/extras/colorpicker/colorpicker.css +++ b/www/extras/colorpicker/colorpicker.css @@ -4,13 +4,18 @@ border: 1px solid black; float: left; } - #ddPicker { position: absolute; background-color: #eeeeee; top: 200px; left: 20px; width: 380px; height: 260px; z-index: 1000; } - #ddPicker input { font-size: .85em } - #pickerHandle { background-color: #bbbbbb; height: 10px; cursor: move; } - #hueThumb { cursor:default; width:18px; height:18px; z-index: 9; position:absolute; } - #hueBg {-moz-outline: none; outline:0px none; position:absolute; left:216px; height:198px; width:18px; background:url(/extras/colorpicker/hue.png) no-repeat; top:18px; } - #pickerDiv {-moz-outline: none; outline:0px none; position:absolute; left:10px; height:187px; width:188px; background-color:#FF0000; top:20px; } - #pickerbg { position:absolute; z-index: 1; top:0px; left:0px; } - #selector { cursor:default; width:11px; height:11px; z-index: 9; position:absolute; top:0px; left:0px; } - #valdiv { text-align:right; position:absolute; top: 86px; left:246px; } - #swatch { position:absolute; left:260px; top:30px; height:60px; width:60px; border:2px solid #aaaaaa; } +.wg-picker-panel .ft { + text-align: right; +} +.wg-picker-panel .container-close { + height: 5px; +} +.wg-picker-panel { + z-index 100 !important; +} +.wg-picker-panel .yui-picker-controls .hd { + display: none; +} +.wg-picker-panel .yui-picker-controls .bd { + margin-top: 12px; +} diff --git a/www/extras/colorpicker/colorpicker.js b/www/extras/colorpicker/colorpicker.js index 1113d44c5..0fb268d11 100644 --- a/www/extras/colorpicker/colorpicker.js +++ b/www/extras/colorpicker/colorpicker.js @@ -1,133 +1,82 @@ -WebguiColorPicker = function() { - var Slider=YAHOO.widget.Slider; - var Color=YAHOO.util.Color; - var Dom=YAHOO.util.Dom; - - var pickerSize=180; - - var hue,picker,panel; - - // hue, int[0,359] - var getH = function() { - var h = (pickerSize - hue.getValue()) / pickerSize; - h = Math.round(h*360); - return (h == 360) ? 0 : h; - } - - // saturation, int[0,1], left to right - var getS = function() { - return picker.getXValue() / pickerSize; - } - - // value, int[0,1], top to bottom - var getV = function() { - return (pickerSize - picker.getYValue()) / pickerSize; - } - - // correctly handle PNG transparency in Win IE 5.5 or higher. - var correctPNG = function() { - if (YAHOO.util.Event.isIE) { - for(var i=0; i" - img.outerHTML = strNewHTML - i = i-1 - } +YAHOO.namespace('WebGUI.Form'); +YAHOO.WebGUI.Form.ColorPicker = { + init: function() { + // Instantiate the Dialog + var dg = this.dialogElement = document.createElement('div'); + document.body.appendChild(dg); + YAHOO.util.Dom.generateId(dg); + YAHOO.util.Dom.addClass(dg, 'yui-picker-panel'); + YAHOO.util.Dom.addClass(dg, 'wg-picker-panel'); + var hd = document.createElement('div'); + YAHOO.util.Dom.addClass(hd, 'hd'); + dg.appendChild(hd); + var bd = document.createElement('div'); + YAHOO.util.Dom.addClass(bd, 'bd'); + dg.appendChild(bd); + var ft = document.createElement('div'); + YAHOO.util.Dom.addClass(ft, 'ft'); + dg.appendChild(ft); + this.dialog = new YAHOO.widget.Dialog(dg, { + width : "360px", + visible : false, + zIndex : 20, + draggable: false, + constraintoviewport : true, + buttons : [ + { text:"Set", handler:function() { this.submit() }, isDefault:true }, + { text:"Cancel", handler:function() { this.cancel() } } + ], + postmethod: 'manual' + }); + this.dialog.renderEvent.subscribe(function() { + if (!this.picker) { //make sure that we haven't already created our Color Picker + var extras = getWebguiProperty("extrasURL"); + var pickerdiv = document.createElement('div'); + YAHOO.util.Dom.addClass(pickerdiv, 'yui-picker'); + this.dialog.body.getElementsByTagName('form')[0].appendChild(pickerdiv); + this.picker = new YAHOO.widget.ColorPicker(pickerdiv, { + container: this.dialog, + images: { + PICKER_THUMB: extras + '/yui/build/colorpicker/assets/picker_thumb.png', + HUE_THUMB: extras + '/yui/build/colorpicker/assets/hue_thumb.png' + }, + showhexsummary: false, + showwebsafe: false, + showhexcontrols: true, // default is false + showhsvcontrols: true // default is false + }); } + }, this, true); + this.dialog.beforeShowEvent.subscribe(function() { + var hex = this.saveElement.value.substr(1); + this.picker.setValue(YAHOO.util.Color.hex2rgb(hex), false); + }, this, true); + this.dialog.manualSubmitEvent.subscribe(function() { + var hex = '#' + this.picker.get('hex'); + this.saveElement.value = hex; + this.saveElement.onchange(); + }, this, true); + this.dialog.render(); + }, + display: function(el, swatch) { + this.saveElement = YAHOO.util.Dom.get(el); + this.swatchElement = YAHOO.util.Dom.get(swatch); + if (this.dialog) { + this.dialog.cancel(); } + this.dialog.cfg.setProperty('context', [this.swatchElement, 'tl', 'tr']); + this.dialog.align(YAHOO.widget.Overlay.TOP_LEFT, YAHOO.widget.Overlay.TOP_RIGHT); + this.dialog.show(); + }, + attach: function(el, swatch) { + YAHOO.util.Event.on(el, 'change', function(e, swatch) { + YAHOO.util.Dom.setStyle(swatch, 'background-color', this.value); + }, swatch); + YAHOO.util.Event.on(swatch, 'click', function(e, objs) { + YAHOO.util.Event.preventDefault(e); + this.display(objs[0], objs[1]); + }, [el, swatch], this); } - - var swatchUpdate = function() { - var h=getH(), s=getS(), v=getV(); - - Dom.get("hval").value = h; - Dom.get("sval").value = Math.round(s*100); - Dom.get("vval").value = Math.round(v*100); - - var rgb = Color.hsv2rgb(h, s, v); - - var styleDef = "rgb(" + rgb.join(",") + ")"; - Dom.setStyle("swatch", "background-color", styleDef); - - Dom.get("rval").value = rgb[0]; - Dom.get("gval").value = rgb[1]; - Dom.get("bval").value = rgb[2]; - - Dom.get("hexval").value = Color.rgb2hex(rgb[0], rgb[1], rgb[2]); - }; - - var hueUpdate = function(newOffset) { - var rgb = Color.hsv2rgb(getH(), 1, 1); - var styleDef = "rgb(" + rgb.join(",") + ")"; - Dom.setStyle("pickerDiv", "background-color", styleDef); - - swatchUpdate(); - }; - - pickerUpdate = function(newOffset) { - swatchUpdate(); - }; - var currentColorField = ""; - - return { - init: function () { - var thepicker = document.createElement('div'); - thepicker.id = "ddPicker"; - thepicker.style.display = "none"; - document.body.appendChild(thepicker); - }, - - display: function (field) { - currentColorField = Dom.get(field); - var extras = getWebguiProperty("extrasURL"); - thepicker = Dom.get("ddPicker"); - thepicker.style.top = YAHOO.util.Dom.getY(currentColorField) + "px"; - thepicker.style.left = YAHOO.util.Dom.getX(currentColorField) + "px"; - thepicker.style.display = "block"; - thepicker.innerHTML = '
 

R H
G S
B V

#
 
'; - correctPNG(); - hue = Slider.getVertSlider("hueBg", "hueThumb", 0, pickerSize); - hue.subscribe("change", hueUpdate); - - picker = Slider.getSliderRegion("pickerDiv", "selector", 0, pickerSize, 0, pickerSize); - picker.subscribe("change", pickerUpdate); - hueUpdate(0); - panel = new YAHOO.util.DD("ddPicker"); - panel.setHandleElId("pickerHandle"); - - // set field color - var color = currentColorField.value; - color = color.substring(1,7); - var hsv = Color.hex2hsv(color); - hue.setValue(pickerSize - Math.round((hsv["h"] * pickerSize)/360)); - picker.setRegionValue(hsv["s"] * pickerSize, pickerSize - Math.round(hsv["v"]*128/pickerSize) +1); - Dom.get("hexval").value = color; - }, - - setColor: function () { - var color = "#"+document.getElementById("hexval").value; - currentColorField.value = color; - currentColorField.onchange(); - thepicker = Dom.get("ddPicker"); - thepicker.innerHTML = ""; - thepicker.style.display = "none"; - } - } -}(); - -YAHOO.util.Event.on(window, "load", WebguiColorPicker.init); - - +}; +YAHOO.util.Event.onDOMReady(YAHOO.WebGUI.Form.ColorPicker.init, YAHOO.WebGUI.Form.ColorPicker, true); diff --git a/www/extras/colorpicker/example.html b/www/extras/colorpicker/example.html index 3b15e3235..c964bb24f 100644 --- a/www/extras/colorpicker/example.html +++ b/www/extras/colorpicker/example.html @@ -3,31 +3,44 @@ Yahoo! UI Library - Slider Widget - + + - - - - - - - + + + + + + + +
- - +
+ + + +
+
+ + +
+
+ + +
+ diff --git a/www/extras/colorpicker/hline.png b/www/extras/colorpicker/hline.png deleted file mode 100644 index e9b1649c81b28473569dfc11824d6143d0c47f53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+3?vf;>QaFeOS+@4BLl;=8&~`zjDUQ}64!{5 z;QX|b^2DN42FH~Aq*MjZ+{ERS(8U$^J-+C7)2tvF^Mn4j0NanYu;rmk`Qiw~u^p=hI!wPL$S)YkB>^x*Ew%U# z)EejM;uunKE9t^v1|Ab}q0qqaq*N9rUd}ky#0di2($?0}+ROqQJPJ?0`oP?3@>HdA zi|dRAhp2$iHh)QtCCgNg9aKHf!{XGn%Yi}Uk%+)`S2l&mrGc(59w?SD2qZ9UIApAq TB$+J@w28sf)z4*}Q$iB}CQQOW diff --git a/www/extras/colorpicker/hue.png b/www/extras/colorpicker/hue.png deleted file mode 100644 index 9a2d9c9952432d6faae3af571c047cd6c0a209ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 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 Dz=6CK diff --git a/www/extras/colorpicker/select.gif b/www/extras/colorpicker/select.gif deleted file mode 100644 index 599f7f13a6854d198f501588948ffcf97bf9f365..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmZ?wbhEHbij|08)1sO8@`> diff --git a/www/extras/styleDesigner/styleDesigner.js b/www/extras/styleDesigner/styleDesigner.js index 3eba78ef3..47c176e12 100644 --- a/www/extras/styleDesigner/styleDesigner.js +++ b/www/extras/styleDesigner/styleDesigner.js @@ -129,7 +129,8 @@ WebguiStyleDesigner = function () { swatch.style.backgroundColor = field.value; swatch.onclick = function () { var id = this.id.replace(/(\w+)_swatch/,"$1"); - WebguiColorPicker.display(id); + YAHOO.WebGUI.Form.ColorPicker.display(id, this.id); + return false; } field.onchange = function () { Dom.get(this.id+"_swatch").style.backgroundColor = this.value;