diff --git a/B12NumbersV3/guiButton.pde b/B12NumbersV3/guiButton.pde index bdd5f5e..7927543 100644 --- a/B12NumbersV3/guiButton.pde +++ b/B12NumbersV3/guiButton.pde @@ -6,8 +6,9 @@ class Button{ int mode; // Stores rect draw mode for button color col; // Stores static color color highlight; // Stores mouseover color - MethodRelay function; + MethodRelay function; // Gets called when button is pressed boolean mouseOver; + Object[] data; // Anything that gets passed to MethodRelay function Button(ClickHandler _ch, PVector _pos, PVector _dim, float _radius){ ch = _ch; @@ -19,6 +20,7 @@ class Button{ highlight = color(100); mouseOver = false; ch.addl(new LiveMethodRelay(this, "clicked", float.class, float.class)); + data = new Object[0]; } Button(ClickHandler _ch, PVector _pos, PVector _dim){ this(_ch, _pos, _dim, 0); @@ -62,6 +64,7 @@ class Button{ void clicked(float x, float y){ if(mouseOver){ println(x + " " + y + " mouse pos"); + function.execute(data); } } diff --git a/B12NumbersV3/guiMathPad.pde b/B12NumbersV3/guiMathPad.pde index d13931a..5238137 100644 --- a/B12NumbersV3/guiMathPad.pde +++ b/B12NumbersV3/guiMathPad.pde @@ -14,7 +14,8 @@ class MathPad{ void initialize(){ for(int i = 0; i < 12; i++){ - buttons[i] = new B12Button(this, ch, new PVector(25 * int(i%4),25 * floor(i/4)), new PVector(20,20),new B12Digit(i)); + buttons[i] = new B12Button(ch, new PVector(25 * int(i%4),25 * floor(i/4)), new PVector(20,20),new B12Digit(i)); + buttons[i].setFunction(new MethodRelay(this, "addChar", B12Digit.class)); buttons[i].setColor(220,150); } } @@ -42,28 +43,28 @@ class MathPad{ } class B12Button extends Button{ - Object parent; B12Digit digit; - B12Button(Object _parent, ClickHandler _ch, PVector _pos, PVector _dim, float _radius, B12Digit _digit){ + B12Button(ClickHandler _ch, PVector _pos, PVector _dim, float _radius, B12Digit _digit){ super(_ch,_pos,_dim,_radius); + data = (Object[])append(data, _digit); digit = _digit; - parent = _parent; } - B12Button(Object _parent, ClickHandler _ch, PVector _pos, PVector _dim, B12Digit _digit){ - this(_parent, _ch, _pos, _dim, 2, _digit); + B12Button(ClickHandler _ch, PVector _pos, PVector _dim, B12Digit _digit){ + this(_ch, _pos, _dim, 2, _digit); } // GETTERS AND SETTERS // B12Digit getDigit(){ return digit; } void setDigit(B12Digit _digit){ digit = _digit; } + /* @Override void clicked(float x, float y){ if(mouseOver){ - new MethodRelay(parent, "addChar", B12Digit.class).execute(digit); + new MethodRelay(target, "addChar", B12Digit.class).execute(digit); } - } + }*/ @Override void display(){