ui.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. ui = {};
  2. ui.window = window;
  3. ui.html_elements = {};
  4. ui.__ui_element_wrapper = function(element) {
  5. this.element = element;
  6. };
  7. ui.element_wrapper = function(element) {
  8. ui.__ui_element_wrapper(element);
  9. this.event_handlers = {};
  10. };
  11. ui.element_wrapper_html = function(parent_tb, button_id, the_default) {
  12. this.parent_tb = parent_tb;
  13. this.button_id = button_id;
  14. this.value = the_default;
  15. };
  16. ui.element_wrapper_html.prototype.get_value = function() {
  17. console.log(this.parent_tb.element.items)
  18. }
  19. ui.create_toolbar = function(name, tb_parent) {
  20. tb_parent = typeof tb_parent !== 'undefined' ? a : $(document.body);
  21. return new function(name, tb_parent) {
  22. var div_parent = $('<div id="' + name + '" style="display: inline-block; margin: 5px; padding: 4px; border: 1px solid silver; border-radius: 3px"></div>').appendTo(tb_parent);
  23. this.element = div_parent.w2toolbar({
  24. event_handlers: {},
  25. name: name,
  26. items: [],
  27. onClick: function(event) {
  28. if (event.target in this.event_handlers) {
  29. this.event_handlers[event.target][0].addInput(new Event("mouse_press", this.event_handlers[event.target][1], []), 0);
  30. }
  31. }
  32. });
  33. // what a terribly ugly hack
  34. $('#tb_' + name + '_right').hide();
  35. }(name, tb_parent);
  36. }
  37. ui.create_button = function(button_id, caption, img, parent_tb, controller, port) {
  38. var btn = parent_tb.element.add({ type: 'button', id: button_id, img: img, caption: caption });
  39. parent_tb.element.event_handlers[button_id] = [controller, port];
  40. return new ui.element_wrapper(btn);
  41. }
  42. ui.create_tb_element = function(button_id, html, the_default, parent_tb, controller, port) {
  43. var btn = parent_tb.element.add({ type: 'html', id: button_id, html: html });
  44. parent_tb.element.event_handlers[button_id] = [controller, port];
  45. var wrapper = new ui.element_wrapper_html(parent_tb, button_id, the_default);
  46. ui.html_elements[button_id] = wrapper;
  47. return wrapper;
  48. }
  49. ui.parameter_changed = function(button_id) {
  50. ui.html_elements[button_id].value = $('#' + button_id + '_input')[0].value;
  51. }