From ab651ab83bd1433a337c40879e7a3783b5e973ba Mon Sep 17 00:00:00 2001 From: 61616 <33187059+61616@users.noreply.github.com> Date: Thu, 5 May 2022 17:18:25 -0400 Subject: [PATCH] Moved Button click calls Rolled method relay button click calls from B12Button to Button, allowing buttons to function without defining a child class --- B12NumbersV3/guiButton.pde | 5 ++++- B12NumbersV3/guiMathPad.pde | 17 +++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) 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(){