diff --git a/pd/nw/dialog_gatom.html b/pd/nw/dialog_gatom.html index a8f37f2ccd47295b49c5cc44c35bdddcfe33c57f..523794922c2564cb7e59374510670162e32af81e 100644 --- a/pd/nw/dialog_gatom.html +++ b/pd/nw/dialog_gatom.html @@ -10,28 +10,28 @@ <legend data-i18n="gatom.prop.gatom"></legend> <table class="pairs"> - <tr class="width prop hidden"> + <tr class="width prop"> <td> <label data-i18n="[title]iem.prop.width_tt"> <span data-i18n="iem.prop.width"></span> </label> </td> <td data-i18n="[title]iem.prop.width_tt"> - <input type="text" name="width"> + <input type="text" id="width" name="width"> </td> <td> </td> <td> </td> </tr> - <tr class="draglo prop pair hidden"> + <tr class="draglo prop pair"> <td> <label data-i18n="[title]iem.prop.minimum_tt"> <span data-i18n="iem.prop.minimum"></span> </label> </td> <td data-i18n="[title]iem.prop.minimum_tt"> - <input type="text" name="minimum-range"> + <input type="text" id="minimum-range" name="minimum-range"> </td> <td> <label data-i18n="[title]iem.prop.maximum_tt"> @@ -39,7 +39,7 @@ </label> </td> <td data-i18n="[title]iem.prop.maximum_tt"> - <input type="text" name="maximum-range"> + <input type="text" id="maximum-range" name="maximum-range"> </td> </tr> <tr> @@ -49,7 +49,7 @@ </label> </td> <td colspan="3"> - <input type="text" name="send-symbol"> + <input type="text" id="send-symbol" name="send-symbol"> </td> </tr> <tr> @@ -59,7 +59,7 @@ </label> </td> <td colspan="3"> - <input type="text" name="receive-symbol"> + <input type="text" id="receive-symbol" name="receive-symbol"> </td> </tr> <tr> @@ -69,7 +69,7 @@ </label> </td> <td colspan="3"> - <input type="text" name="label"> + <input type="text" id="label" name="label"> </td> </tr> <tr> @@ -86,8 +86,7 @@ type="radio" id="labelpos_left" value="2" - name="labelpos" - onchange="labelpos_change(this);"> + name="labelpos"> <span data-i18n="gatom.prop.label_top"></span> <br/> @@ -96,16 +95,14 @@ type="radio" id="labelpos_left" value="0" - name="labelpos" - onchange="labelpos_change(this);"> + name="labelpos"> <span data-i18n="gatom.prop.label_left"></span> <input class="array-style" type="radio" id="labelpos_right" value="1" - name="labelpos" - onchange="labelpos_change(this);"> + name="labelpos"> <span data-i18n="gatom.prop.label_right"></span> <br/> @@ -114,8 +111,7 @@ type="radio" id="labelpos_bottom" value="3" - name="labelpos" - onchange="labelpos_change(this);"> + name="labelpos"> <span data-i18n="gatom.prop.label_bottom"></span> </label> @@ -167,169 +163,54 @@ return arg.split(' ').join(fake_space); } - function strip_problem_chars(arg) { - var problem_chars = [';', ',', '{', '}', '\\']; - var ret = arg; - for(var i = 0; i < problem_chars.length; i++) { - ret = ret.split(';').join(''); - } - return ret; +function strip_problem_chars(arg) { + var problem_chars = [';', ',', '{', '}', '\\']; + var ret = arg; + for(var i = 0; i < problem_chars.length; i++) { + ret = ret.split(';').join(''); } + return ret; +} - function apply() { - pdgui.gui_post("we're applying shits!"); - - /* Not sure what these are... - iemgui_clip_dim $id - iemgui_clip_num $id - iemgui_sched_rng $id - iemgui_verify_rng $id - iemgui_sched_rng $id - iemgui_clip_fontsize $id - */ - - - - var send_symbol = document.getElementsByName('send-symbol')[0].value; - var receive_symbol = document.getElementsByName('receive-symbol')[0].value; - var label = document.getElementsByName('label')[0].value; - if (send_symbol === null || send_symbol === '') { send_symbol = 'empty'; } - if (receive_symbol === null || receive_symbol === '') { receive_symbol = 'empty'; } - if (label === null || label === '') { label = 'empty'; } - - console.log("send_symbol is " + send_symbol); - - if (send_symbol.charAt(0) === '$') { - send_symbol = '#' + send_symbol.slice(1); - } - if (receive_symbol.charAt(0) === '$') { - receive_symbol = '#' + receive_symbol.slice(1); - } - if (label.charAt(0) === '$') { - label = '#' + label.slice(1); - } - - send_symbol = substitute_space(send_symbol); - receive_symbol = substitute_space(receive_symbol); - label = substitute_space(label); - - send_symbol = strip_problem_chars(send_symbol); - receive_symbol = strip_problem_chars(receive_symbol); - label = strip_problem_chars(label); - - var label_x_offset = document.getElementsByName('x-offset')[0].value; - var label_y_offset = document.getElementsByName('y-offset')[0].value; - - // make sure the offset boxes have a value - if (label_x_offset === null) { label_x_offset = 0; } - if (label_y_offset === null) { label_y_offset = 0; } - - var height, width; - var size = document.getElementsByName('size')[0].value; - if (size === '') { - var size = document.getElementsByName('selection-size')[0].value; - } - - if (size !== '') { - width = size; - height = size; - } else { - width = document.getElementsByName('width')[0].value; - height = document.getElementsByName('height')[0].value; - } - - var slot3 = document.getElementsByName('minimum-range')[0].value; - var slot4 = document.getElementsByName('maximum-range')[0].value; - - if (slot3 === '') { - slot3 = document.getElementsByName('flash-interrupt')[0].value; - slot4 = document.getElementsByName('flash-hold')[0].value; - } - - if (slot3 === '') { - slot3 = document.getElementsByName('visible-width')[0].value; - slot4 = document.getElementsByName('visible-height')[0].value; - } - - if (slot3 === '') { // toggle - slot3 = document.getElementsByName('nonzero-value')[0].value; - if (slot3 === '') { - slot3 = 0; +function gatom_escape(str) { + var arr, i, ret; + if (str.length === 0) { + ret = '-'; + } else if (str.slice(0,1) === '-') { + ret = '-' + str; + } else { + arr = str.split(''); + for (i = 0; i < arr.length; i++) { + if (arr[i] === '$') { + arr[i] = '#'; } - slot4 = 0; - } - - var slot5 = +document.getElementsByName('log-scaling')[0].checked; - // Hack to accomodate the vu-scale property, which exists in the same - // slot as this one - var log_scaling_spanner = document.getElementsByClassName('log-scaling')[0]; - var log_display = log_scaling_spanner.style.getPropertyValue('display'); - - if (log_display === null) { - slot5 = +document.getElementsByName('vu-scale')[0].checked; - pdgui.gui_post('slot five is ' + slot5); } - pdgui.gui_post('slot five is ' + slot5); - - var init = +document.getElementsByName('init')[0].checked; - if (init === '') { init = 0; } + ret = arr.join(''); + } + return strip_problem_chars(ret); +} - var slot7 = document.getElementsByName('log-height')[0].value; - if (slot7 === '') { - slot7 = document.getElementsByName('number')[0].value; - } - if (slot7 === '') { - slot7 = 0; - } +function apply() { + pdgui.gui_post("we're applying shits!"); - var font_style = document.getElementsByName('font-style')[0].value; - if (font_style !== null) { font_style = 0; } - - var font_size = document.getElementsByName('font-size')[0].value; - if (font_size === '') { font_size = 0; } - - var foreground_color = parseInt(document.getElementsByName('foreground-color')[0].value.slice(1), 16); - var background_color = parseInt(document.getElementsByName('background-color')[0].value.slice(1), 16); - var label_color = parseInt(document.getElementsByName('label-color')[0].value.slice(1), 16); - - var slot18 = +document.getElementsByName('steady-on-click')[0].checked; - - pdgui.pdsend([pd_object_callback, 'dialog', - width, height, - slot3, // bng: flash-interrupt - // slider: min-range - // toggle: nonzero-value - // my_canvas: visible_width - slot4, // bng: flash-hold - // slider: max-range - // my_canvas: visible_height - slot5, // slider: lin/log thingy - // nbx: lin/log - // vu: vu-scale - init, - slot7, // log-height or vradio/hradio number - send_symbol, receive_symbol, label, - label_x_offset, label_y_offset, - font_style, font_size, - background_color, foreground_color, - label_color, - slot18, // steady on click - 0].join(' ')); /* - pd [concat $id dialog \ - $::dialog($vid:wdt) $::dialog($vid:hgt) \ - $::dialog($vid:min_rng) $::dialog($vid:max_rng) \ - $::dialog($vid:lin0_log1) $::dialog($vid:loadbang) \ - $::dialog($vid:num) \ - $hhhsnd $hhhrcv $hhhgui_nam \ - $::dialog($vid:gn_dx) $::dialog($vid:gn_dy) \ - $::dialog($vid:gn_f) $::dialog($vid:gn_fs) \ - $::dialog($vid:bcol) $::dialog($vid:fcol) \ - $::dialog($vid:lcol) \ - $::dialog($vid:steady) $::dialog($vid:hide) \;] + set cmd [concat $id param \ + $::dialog($vid:width) $::dialog($vid:lo) $::dialog($vid:hi) \ + [gatom_escape $::dialog($vid:label)] $::dialog($vid:wherelabel) \ + [gatom_escape $::dialog($vid:symfrom)] \ + [gatom_escape $::dialog($vid:symto)] \;] */ - - } + + pdgui.pdsend([pd_object_callback, 'param', + +document.getElementById('width').value, + +document.getElementById('minimum-range').value, + +document.getElementById('maximum-range').value, + gatom_escape(document.getElementById('label').value), + document.querySelector('input[name="labelpos"]:checked').value, + gatom_escape(document.getElementById('receive-symbol').value), + gatom_escape(document.getElementById('send-symbol').value) + ].join(' ')); +} function cancel() { pdgui.gui_post("closing the window at this point"); @@ -379,52 +260,31 @@ function translate_form() { } } -function populate_form(attr_array) { - - // First, let's put the translated text for the form labels: - -// tr_text('heading.size'); -// tr_text('heading.messages'); -// tr_text('heading.label'); -// tr_text('heading.colors'); -// tr_prop('width'); -// tr_tooltip('width'); +function get_attr(name, attrs) { + return attrs[attrs.indexOf(name)+1]; +} -// var headings = ["size", "messages", "label", "colors"]; -// for (var i = 0; i < headings.length; i++) { -// var str = "iem.prop.heading." + headings[i]; -// var heading = document.getElementById(str); -// heading.textContent = l(str); -// } +function get_elem(name) { + return document.getElementById(name); +} - for(var i = 0; i < attr_array.length; i+=2) { - // Unhide the span with the class with the same name as the id - var prop_group = document.getElementsByClassName(attr_array[i])[0]; - if (prop_group !== undefined) { - console.log("the thing here is " + attr_array[i]); - prop_group.classList.remove('hidden'); - } else { - pdgui.gui_post("Error: couldn't find iemgui prop group for " + attr_array[i]); - } - // iemguis use the string 'empty' for null because of - // the limitations of Pd's state-saving API. So we have - // to filter that one out - if(attr_array[i+1] !== 'empty') { - var elem = document.getElementsByName(attr_array[i]); - if (elem.length > 0) { - if(attr_array[i].slice(-5) === 'color') { - var hex_string = Number(attr_array[i+1]).toString(16); - var color_string = "#" + (hex_string === '0' ? '000000' : hex_string); - pdgui.gui_post("color is " + color_string); - elem[0].value = color_string; - } else if (elem[0].type === 'checkbox') { - // The attr here is a string, so we need to - // force it to number, hence the "+" below - elem[0].checked = +attr_array[i+1]; - } else { - elem[0].value = attr_array[i+1]; - } - } +function populate_form(attr_array) { + var label, snd, rcv, labelpos, i, radios; + get_elem('width').value = get_attr('width', attr_array); + get_elem('minimum-range').value = get_attr('draglo', attr_array); + get_elem('maximum-range').value = get_attr('draghi', attr_array); + label = get_attr('label', attr_array); + get_elem('label').value = label === '-' ? '' : label; + snd = get_attr('send-symbol', attr_array); + get_elem('send-symbol').value = snd === '-' ? '' : snd; + rcv = get_attr('receive-symbol', attr_array); + get_elem('receive-symbol').value = rcv === '-' ? '' : rcv; + + labelpos = get_attr('labelpos', attr_array); + radios = document.getElementsByName('labelpos'); + for (i = 0; i < radios.length; i++) { + if (+radios[i].value === labelpos) { + radios[i].checked = true; } } }