diff --git a/build/gui.html b/build/gui.html
index c54828c..900466a 100644
--- a/build/gui.html
+++ b/build/gui.html
@@ -10,11 +10,12 @@ var e,f,g,h=b.type;if("load"===h&&!b.bubbles){var i=c;i instanceof Q.Document&&(
{{ name }}
{{ comment }}
{{ open ? 'Close' : 'Open' }} Controls
+},_register:function(){c(this.extends)&&!b(this.extends)&&console.warn("%s is attempting to extend %s, an unregistered element or one that was not registered with Polymer.",this.name,this.extends),this.register(this.name,this.extends),this.registered=!0},waitingForPrototype:function(a){return h(a)?void 0:(i(a,this),this.handleNoScript(a),!0)},handleNoScript:function(a){this.hasAttribute("noscript")&&!this.noscript&&(this.noscript=!0,Polymer(a))},waitingForResources:function(){return this._needsResources},waitingForQueue:function(){return f.enqueue(this,this.registerWhenReady,this._register)},loadResources:function(){this._needsResources=!0,this.loadStyles(function(){this._needsResources=!1,this.registerWhenReady()}.bind(this))}});e.publish(e.declaration,j),g(function(){document.body.removeAttribute("unresolved"),document.dispatchEvent(new CustomEvent("polymer-ready",{bubbles:!0}))}),document.registerElement("polymer-element",{prototype:j})}(Polymer),function(){var a=document.createElement("polymer-element");a.setAttribute("name","auto-binding"),a.setAttribute("extends","template"),a.init(),Polymer("auto-binding",{createdCallback:function(){this.syntax=this.bindingDelegate=this.makeSyntax(),Polymer.whenPolymerReady(function(){this.model=this,this.setAttribute("bind",""),this.async(function(){this.marshalNodeReferences(this.parentNode),this.fire("template-bound")})}.bind(this))},makeSyntax:function(){var a=Object.create(Polymer.api.declaration.events),b=this;a.findController=function(){return b.model};var c=new PolymerExpressions,d=c.prepareBinding;return c.prepareBinding=function(b,e,f){return a.prepareEventBinding(b,e,f)||d.call(c,b,e,f)},c}})}();
{{ name }}
{{ comment }}
undefined
-
-
-
-
\ No newline at end of file
+
+
+
+
+
\ No newline at end of file
diff --git a/build/gui.js b/build/gui.js
index 822a39a..7ba03c4 100644
--- a/build/gui.js
+++ b/build/gui.js
@@ -10,11 +10,12 @@ document.write(['
{{ name }}
{{ comment }}
{{ open ? 'Close' : 'Open' }} Controls
',
+'},_register:function(){c(this.extends)&&!b(this.extends)&&console.warn("%s is attempting to extend %s, an unregistered element or one that was not registered with Polymer.",this.name,this.extends),this.register(this.name,this.extends),this.registered=!0},waitingForPrototype:function(a){return h(a)?void 0:(i(a,this),this.handleNoScript(a),!0)},handleNoScript:function(a){this.hasAttribute("noscript")&&!this.noscript&&(this.noscript=!0,Polymer(a))},waitingForResources:function(){return this._needsResources},waitingForQueue:function(){return f.enqueue(this,this.registerWhenReady,this._register)},loadResources:function(){this._needsResources=!0,this.loadStyles(function(){this._needsResources=!1,this.registerWhenReady()}.bind(this))}});e.publish(e.declaration,j),g(function(){document.body.removeAttribute("unresolved"),document.dispatchEvent(new CustomEvent("polymer-ready",{bubbles:!0}))}),document.registerElement("polymer-element",{prototype:j})}(Polymer),function(){var a=document.createElement("polymer-element");a.setAttribute("name","auto-binding"),a.setAttribute("extends","template"),a.init(),Polymer("auto-binding",{createdCallback:function(){this.syntax=this.bindingDelegate=this.makeSyntax(),Polymer.whenPolymerReady(function(){this.model=this,this.setAttribute("bind",""),this.async(function(){this.marshalNodeReferences(this.parentNode),this.fire("template-bound")})}.bind(this))},makeSyntax:function(){var a=Object.create(Polymer.api.declaration.events),b=this;a.findController=function(){return b.model};var c=new PolymerExpressions,d=c.prepareBinding;return c.prepareBinding=function(b,e,f){return a.prepareEventBinding(b,e,f)||d.call(c,b,e,f)},c}})}();
{{ name }}
{{ comment }}
',
'
undefined
',
'',
'',
-'
',
-'
',
-'
',
-'
',].join("\n"))
\ No newline at end of file
+'
',
+'
',
+'
',
+'
',
+'
',].join("\n"))
\ No newline at end of file
diff --git a/elements/controller-base/controller-base.js b/elements/controller-base/controller-base.js
index 92405ce..2eb53f8 100644
--- a/elements/controller-base/controller-base.js
+++ b/elements/controller-base/controller-base.js
@@ -33,6 +33,7 @@ Polymer('controller-base', {
valueChanged: function() {
this.update();
+ this.fire( 'change', this.value );
},
@@ -64,8 +65,18 @@ Polymer('controller-base', {
setValue: function( v ) {
this.value = v;
+ return this;
- }
+ },
+
+ onChange: function( v ) {
+
+ this.addEventListener( 'change', function( e ) {
+ v( e.detail );
+ } );
+ return this;
+
+ },
});
\ No newline at end of file
diff --git a/elements/controller-boolean/controller-boolean.html b/elements/controller-boolean/controller-boolean.html
index 1c9c696..dd01e37 100644
--- a/elements/controller-boolean/controller-boolean.html
+++ b/elements/controller-boolean/controller-boolean.html
@@ -1,4 +1,3 @@
-
diff --git a/elements/controller-function/controller-function.html b/elements/controller-function/controller-function.html
index fcb0c45..505ebbc 100644
--- a/elements/controller-function/controller-function.html
+++ b/elements/controller-function/controller-function.html
@@ -1,4 +1,3 @@
-
diff --git a/elements/controller-number/controller-number.html b/elements/controller-number/controller-number.html
index b596910..e40eed0 100644
--- a/elements/controller-number/controller-number.html
+++ b/elements/controller-number/controller-number.html
@@ -1,4 +1,3 @@
-
@@ -20,7 +19,6 @@
on-down="{{ down }}"
on-up="{{ up }}"
on-trackx="{{ trackx }}"
- on-tracky="{{ tracky }}"
on-trackstart="{{ trackstart }}"
horizontal layout center
hidden?="{{ !slider }}"
diff --git a/elements/controller-option/controller-option.html b/elements/controller-option/controller-option.html
new file mode 100644
index 0000000..b0d20f5
--- /dev/null
+++ b/elements/controller-option/controller-option.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+