|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectcontrolP5.Controller
controlP5.Button
public class Button
A button triggers an event after it has been release. Events can be linked to functions and
fields inside your program/sketch. for a full documentation of this controller see the
Controller
class.
/**
* ControlP5 Button
* this example shows how to create buttons with controlP5.
*
* find a list of public methods available for the Button Controller
* at the bottom of this sketch's source code
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlp5
*
*/
import controlP5.*;
ControlP5 cp5;
int myColor = color(255);
int c1,c2;
float n,n1;
void setup() {
size(400,600);
noStroke();
cp5 = new ControlP5(this);
// create a new button with name 'buttonA'
cp5.addButton("colorA")
.setValue(0)
.setPosition(100,100)
.setSize(200,19)
;
// and add another 2 buttons
cp5.addButton("colorB")
.setValue(100)
.setPosition(100,120)
.setSize(200,19)
;
cp5.addButton("colorC")
.setPosition(100,140)
.setSize(200,19)
.setValue(0)
;
PImage[] imgs = {loadImage("button_a.png"),loadImage("button_b.png"),loadImage("button_c.png")};
cp5.addButton("play")
.setValue(128)
.setPosition(140,300)
.setImages(imgs)
.updateSize()
;
cp5.addButton("playAgain")
.setValue(128)
.setPosition(210,300)
.setImages(imgs)
.updateSize()
;
}
void draw() {
background(myColor);
myColor = lerpColor(c1,c2,n);
n += (1-n)* 0.1;
}
public void controlEvent(ControlEvent theEvent) {
println(theEvent.getController().getName());
n = 0;
}
// function colorA will receive changes from
// controller with name colorA
public void colorA(int theValue) {
println("a button event from colorA: "+theValue);
c1 = c2;
c2 = color(0,160,100);
}
// function colorB will receive changes from
// controller with name colorB
public void colorB(int theValue) {
println("a button event from colorB: "+theValue);
c1 = c2;
c2 = color(150,0,0);
}
// function colorC will receive changes from
// controller with name colorC
public void colorC(int theValue) {
println("a button event from colorC: "+theValue);
c1 = c2;
c2 = color(255,255,0);
}
public void play(int theValue) {
println("a button event from buttonB: "+theValue);
c1 = c2;
c2 = color(0,0,0);
}
/*
a list of all methods available for the Button Controller
use ControlP5.printPublicMethodsFor(Button.class);
to print the following list into the console.
You can find further details about class Button in the javadoc.
Format:
ClassName : returnType methodName(parameter type)
controlP5.Button : Button activateBy(int)
controlP5.Button : Button setOff()
controlP5.Button : Button setOn()
controlP5.Button : Button setSwitch(boolean)
controlP5.Button : Button setValue(float)
controlP5.Button : Button update()
controlP5.Button : String getInfo()
controlP5.Button : String toString()
controlP5.Button : boolean getBooleanValue()
controlP5.Button : boolean isOn()
controlP5.Button : boolean isPressed()
controlP5.Controller : Button addCallback(CallbackListener)
controlP5.Controller : Button addListener(ControlListener)
controlP5.Controller : Button bringToFront()
controlP5.Controller : Button bringToFront(ControllerInterface)
controlP5.Controller : Button hide()
controlP5.Controller : Button linebreak()
controlP5.Controller : Button listen(boolean)
controlP5.Controller : Button lock()
controlP5.Controller : Button plugTo(Object)
controlP5.Controller : Button plugTo(Object, String)
controlP5.Controller : Button plugTo(Object[])
controlP5.Controller : Button plugTo(Object[], String)
controlP5.Controller : Button registerProperty(String)
controlP5.Controller : Button registerProperty(String, String)
controlP5.Controller : Button registerTooltip(String)
controlP5.Controller : Button removeBehavior()
controlP5.Controller : Button removeCallback()
controlP5.Controller : Button removeCallback(CallbackListener)
controlP5.Controller : Button removeListener(ControlListener)
controlP5.Controller : Button removeProperty(String)
controlP5.Controller : Button removeProperty(String, String)
controlP5.Controller : Button setArrayValue(float[])
controlP5.Controller : Button setArrayValue(int, float)
controlP5.Controller : Button setBehavior(ControlBehavior)
controlP5.Controller : Button setBroadcast(boolean)
controlP5.Controller : Button setCaptionLabel(String)
controlP5.Controller : Button setColor(CColor)
controlP5.Controller : Button setColorActive(int)
controlP5.Controller : Button setColorBackground(int)
controlP5.Controller : Button setColorCaptionLabel(int)
controlP5.Controller : Button setColorForeground(int)
controlP5.Controller : Button setColorValueLabel(int)
controlP5.Controller : Button setDecimalPrecision(int)
controlP5.Controller : Button setDefaultValue(float)
controlP5.Controller : Button setHeight(int)
controlP5.Controller : Button setId(int)
controlP5.Controller : Button setImages(PImage, PImage, PImage)
controlP5.Controller : Button setImages(PImage, PImage, PImage, PImage)
controlP5.Controller : Button setLabelVisible(boolean)
controlP5.Controller : Button setLock(boolean)
controlP5.Controller : Button setMax(float)
controlP5.Controller : Button setMin(float)
controlP5.Controller : Button setMouseOver(boolean)
controlP5.Controller : Button setMoveable(boolean)
controlP5.Controller : Button setPosition(PVector)
controlP5.Controller : Button setPosition(float, float)
controlP5.Controller : Button setSize(PImage)
controlP5.Controller : Button setSize(int, int)
controlP5.Controller : Button setStringValue(String)
controlP5.Controller : Button setUpdate(boolean)
controlP5.Controller : Button setValueLabel(String)
controlP5.Controller : Button setView(ControllerView)
controlP5.Controller : Button setVisible(boolean)
controlP5.Controller : Button setWidth(int)
controlP5.Controller : Button show()
controlP5.Controller : Button unlock()
controlP5.Controller : Button unplugFrom(Object)
controlP5.Controller : Button unplugFrom(Object[])
controlP5.Controller : Button unregisterTooltip()
controlP5.Controller : Button update()
controlP5.Controller : Button updateSize()
controlP5.Controller : CColor getColor()
controlP5.Controller : ControlBehavior getBehavior()
controlP5.Controller : ControlWindow getControlWindow()
controlP5.Controller : ControlWindow getWindow()
controlP5.Controller : ControllerProperty getProperty(String)
controlP5.Controller : ControllerProperty getProperty(String, String)
controlP5.Controller : Label getCaptionLabel()
controlP5.Controller : Label getValueLabel()
controlP5.Controller : List getControllerPlugList()
controlP5.Controller : PImage setImage(PImage)
controlP5.Controller : PImage setImage(PImage, int)
controlP5.Controller : PVector getAbsolutePosition()
controlP5.Controller : PVector getPosition()
controlP5.Controller : String getAddress()
controlP5.Controller : String getInfo()
controlP5.Controller : String getName()
controlP5.Controller : String getStringValue()
controlP5.Controller : String toString()
controlP5.Controller : Tab getTab()
controlP5.Controller : boolean isActive()
controlP5.Controller : boolean isBroadcast()
controlP5.Controller : boolean isInside()
controlP5.Controller : boolean isLabelVisible()
controlP5.Controller : boolean isListening()
controlP5.Controller : boolean isLock()
controlP5.Controller : boolean isMouseOver()
controlP5.Controller : boolean isMousePressed()
controlP5.Controller : boolean isMoveable()
controlP5.Controller : boolean isUpdate()
controlP5.Controller : boolean isVisible()
controlP5.Controller : float getArrayValue(int)
controlP5.Controller : float getDefaultValue()
controlP5.Controller : float getMax()
controlP5.Controller : float getMin()
controlP5.Controller : float getValue()
controlP5.Controller : float[] getArrayValue()
controlP5.Controller : int getDecimalPrecision()
controlP5.Controller : int getHeight()
controlP5.Controller : int getId()
controlP5.Controller : int getWidth()
controlP5.Controller : int listenerSize()
controlP5.Controller : void remove()
controlP5.Controller : void setView(ControllerView, int)
java.lang.Object : String toString()
java.lang.Object : boolean equals(Object)
*/
Field Summary | |
---|---|
static int |
autoHeight
|
static int |
autoWidth
|
Fields inherited from class controlP5.Controller |
---|
autoSpacing |
Fields inherited from interface controlP5.ControlP5Constants |
---|
acceptClassList, ACTION_BROADCAST, ACTION_ENTER, ACTION_LEAVE, ACTION_PRESSED, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, ACTIVE, ALL, ALT, ARC, ARRAY, BACKSPACE, BASELINE, BITFONT, BOOLEAN, BOTTOM, BOTTOM_OUTSIDE, CAPTIONLABEL, CENTER, COMMANDKEY, CONTROL, controlEventClass, CUSTOM, DECREASE, DEFAULT, DELETE, DONE, DOWN, ELLIPSE, ENTER, ESCAPE, EVENT, eventMethod, FADEIN, FADEOUT, FIELD, FLOAT, HALF_PI, HIDE, HIGHLIGHT, HORIZONTAL, IDLE, IMAGE, INACTIVE, INCREASE, INTEGER, INVALID, KEYCONTROL, LEFT, LEFT_OUTSIDE, LINE, LOAD, MENU, METHOD, MOVE, MULTI, MULTIPLES, OVER, PI, PRESSED, PRINT, RELEASE, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, SHIFT, SINGLE, SINGLE_COLUMN, SINGLE_ROW, SPRITE, STRING, SWITCH, SWITCH_BACK, SWITCH_FORE, TAB, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT |
Constructor Summary | |
---|---|
Button(ControlP5 theControlP5,
java.lang.String theName)
Convenience constructor to extend Button. |
Method Summary | |
---|---|
Button |
activateBy(int theValue)
A button can be activated by a mouse PRESSED or mouse RELEASE. |
boolean |
getBooleanValue()
Returns true or false and indicates the switch state of the button. |
boolean |
isOn()
|
boolean |
isPressed()
|
Button |
setOff()
If the button acts as a switch, setOff will turn off the switch. |
Button |
setOn()
If the button acts as a switch, setOn will turn on the switch. |
Button |
setSwitch(boolean theFlag)
Turns a button into a switch, or use a Toggle instead. |
Button |
setValue(float theValue)
|
Button |
update()
updates the value of the controller without having to set the value explicitly. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface controlP5.ControllerInterface |
---|
continuousUpdateEvents, draw, parent, setColorLabel, setColorValue, setLabel |
Methods inherited from interface controlP5.CDrawable |
---|
draw |
Field Detail |
---|
public static int autoHeight
public static int autoWidth
Constructor Detail |
---|
public Button(ControlP5 theControlP5, java.lang.String theName)
theControlP5
- theName
-
/**
* ControlP5 extending Controllers
*
* the following example shows how to extend the Controller class to
* create customizable Controllers. You can either extend the Controller class itself,
* or any class that extends Controller itself like the Slider, Button, DropdownList, etc.
*
* How to:
*
* 1) do a super call to the convenience constructor requiring
* 2 parameter (ControlP5 instance, name)
*
* 2) the Controller class has a set of empty methods that allow you to capture
* inputs from the mouse including
* onEnter(), onLeave(), onPress(), onRelease(), onClick(), onScroll(int), onDrag()
* These you can override and include functionality as needed.
*
* 3) use method getPointer() to return the local (relative)
* xy-coordinates of the controller
*
* 4) after instantiation custom controllers are treated the same
* as default controlP5 controllers.
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlp5
*
*/
import controlP5.*;
ControlP5 cp5;
PApplet p;
void setup() {
size(400, 400);
cp5 = new ControlP5(this);
// create 2 groups to show nesting of custom controllers and
//
Group g1 = cp5.addGroup("a").setPosition(0,100).setWidth(180);
Group g2 = cp5.addGroup("b").setPosition(0,10).setWidth(180);
g2.moveTo(g1);
// create 2 custom Controllers from class MyButton
// MyButton extends Controller and inherits all methods accordingly.
new MyButton(cp5, "b1").setPosition(0, 0).setSize(180, 200).moveTo(g2);
new MyButton(cp5, "b2").setPosition(205, 15).setSize(180, 200);
}
void draw() {
background(0);
}
// b1 will be called from Controller b1
public void b1(float theValue) {
println("yay button "+theValue);
}
public void controlEvent(ControlEvent theEvent) {
println("controlEvent : "+theEvent);
}
// Create a custom Controller, please not that
// MyButton extends Controller,
// is an indicator for the super class about the type of
// custom controller to be created.
class MyButton extends Controller {
int current = 0xffff0000;
float a = 128;
float na;
int y;
// use the convenience constructor of super class Controller
// MyButton will automatically registered and move to the
// default controlP5 tab.
MyButton(ControlP5 cp5, String theName) {
super(cp5, theName);
// replace the default view with a custom view.
setView(new ControllerView() {
public void display(PApplet p, Object b) {
// draw button background
na += (a-na) * 0.1;
p.fill(current,na);
p.rect(0, 0, getWidth(), getHeight());
// draw horizontal line which can be moved on the x-axis
// using the scroll wheel.
p.fill(0,255,0);
p.rect(0,y,width,10);
// draw the custom label
p.fill(128);
translate(0,getHeight()+14);
p.text(getName(),0,0);
p.text(getName(),0,0);
}
}
);
}
// override various input methods for mouse input control
void onEnter() {
cursor(HAND);
println("enter");
a = 255;
}
void onScroll(int n) {
println("scrolling");
y -= n;
y = constrain(y,0,getHeight()-10);
}
void onPress() {
println("press");
current = 0xffffff00;
}
void onClick() {
Pointer p1 = getPointer();
println("clicked at "+p1.x()+", "+p1.y());
current = 0xffffff00;
setValue(y);
}
void onRelease() {
println("release");
current = 0xffffffff;
}
void onMove() {
println("moving "+this+" "+_myControlWindow.getMouseOverList());
}
void onDrag() {
current = 0xff0000ff;
Pointer p1 = getPointer();
float dif = dist(p1.px(),p1.py(),p1.x(),p1.y());
println("dragging at "+p1.x()+", "+p1.y()+" "+dif);
}
void onReleaseOutside() {
onLeave();
}
void onLeave() {
println("leave");
cursor(ARROW);
a = 128;
}
}
Method Detail |
---|
public Button activateBy(int theValue)
theValue
- use ControlP5.PRESSED or ControlP5.RELEASE as parameter
public boolean getBooleanValue()
setSwitch
should have been set before.
Button.setSwitch(boolean)
public boolean isOn()
public boolean isPressed()
public Button setOff()
setSwitch
to turn a Button into a Switch.
public Button setOn()
setSwitch
to turn a Button into a Switch.
public Button setSwitch(boolean theFlag)
theFlag
- turns the button into a switch when true
Toggle
public Button setValue(float theValue)
setValue
in interface ControllerInterface
setValue
in class Controller
theValue
- floatpublic Button update()
update
in interface ControllerInterface
update
in class Controller
Controller.setUpdate(boolean)
,
Controller.isUpdate()
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |