# HG changeset patch # User hertzhaft # Date 1333188634 -7200 # Node ID 95d28c6ad0188b6a8e6b12fe40770c0977842010 # Parent d139f59a5f80439c13feb14d0934342b61a8eb5b rgb slider now gets/sets values, plus some refactoring diff -r d139f59a5f80 -r 95d28c6ad018 webapp/src/main/webapp/jquery/jquery.digilib.css --- a/webapp/src/main/webapp/jquery/jquery.digilib.css Sat Mar 31 00:41:28 2012 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.css Sat Mar 31 12:10:34 2012 +0200 @@ -127,7 +127,7 @@ div.dl-digilib #dl-calibration { background: url('img/blue.png'); position: absolute; - border: 1px solid lightcyan; + border: 2px solid lightcyan; width: 400px; display: none; z-index: 9999; @@ -265,6 +265,7 @@ div.dl-digilib table.dl-rgbslider td.rgb { width: 40%; padding: 10px; + border: 2px solid lightcyan; } /* special definitions for fullscreen */ diff -r d139f59a5f80 -r 95d28c6ad018 webapp/src/main/webapp/jquery/jquery.digilib.dialogs.js --- a/webapp/src/main/webapp/jquery/jquery.digilib.dialogs.js Sat Mar 31 00:41:28 2012 +0200 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.dialogs.js Sat Mar 31 12:10:34 2012 +0200 @@ -47,8 +47,8 @@ var $elem = data.$elem; var settings = data.settings; var cssPrefix = settings.cssPrefix; - var $calDiv = $elem.find('#'+cssPrefix+'calibration'); - if ($calDiv.length > 0) return; // already onscreen + var calibrationSelector = '#'+cssPrefix+'calibration'; + if (fn.isOnScreen(data, calibrationSelector)) return; // already onscreen var html = '\
\
\ @@ -106,8 +106,8 @@ var $elem = data.$elem; var settings = data.settings; var cssPrefix = settings.cssPrefix; - var $scaleDiv = $elem.find('#'+cssPrefix+'scalemode'); - if ($scaleDiv.length > 0) return; // already onscreen + var scaleModeSelector = '#'+cssPrefix+'scalemode'; + if (fn.isOnScreen(data, scaleModeSelector)) return; // already onscreen var html = '\ '; - var $elem = data.$elem; - var $div = $(html).appendTo($elem); + $div = $(html).appendTo($elem); var $form = $div.find('form'); $form.prepend($content); // handle submit @@ -191,8 +218,9 @@ $slider.data({'$text' : $text, '$range' : $range}); // connect slider and input $range.on('change', function () { - var val = $range.val(); - $text.val(val); + // crop floating point imprecision + var val = parseFloat($range.val()).toFixed(4); + $text.val(parseFloat(val)); }); $text.on('change', function () { var val = $text.val(); @@ -225,19 +253,27 @@ var rgbSlider = function (data, callback) { var cls = data.settings.cssPrefix + 'rgbslider'; var $table = $(''); - var makeSliders = function(index, value) { - // TODO: set start values + var setupTableRow = function(index, value) { + var color = rgb[value]; + // start values are set in "handleSetup" + var $brgt = tinySlider(data, 'brgt', color.a); + var $cont = tinySlider(data, 'cont', color.m); + $table.data(value+'a', $brgt.data('$text')); + $table.data(value+'m', $cont.data('$text')); var $tr = $('').appendTo($table); - var $td = $('').appendTo($tr); - var $td = $('').appendTo($tr); + var $td = $('
'+rgb[value].label+'').append(tinySlider(data, 'brgt')).appendTo($tr); - var $td = $('').append(tinySlider(data, 'cont')).appendTo($tr); + var $td = $(''+color.label+'').append($brgt).appendTo($tr); + var $td = $('').append($cont).appendTo($tr); } - $.each(['r','g','b'], makeSliders); - var getValue = function () { - // TODO: get values from sliders - callback(null, null); + $.each(primaryColors, setupTableRow); + var getValues = function () { + // get values from sliders + var input = $table.data(); + var rgba = input['ra'].val() + '/' + input['ga'].val() + '/' + input['ba'].val(); + var rgbm = input['rm'].val() + '/' + input['gm'].val() + '/' + input['bm'].val(); + callback(rgbm, rgba); }; - setupFormDiv(data, $table, 'rgbslider', getValue); + setupFormDiv(data, $table, 'rgbslider', getValues); }; // plugin object with name and init