public class CheckBox extends ControlGroup<CheckBox>
Toggle/**
* ControlP5 Checkbox
* an example demonstrating the use of a checkbox in controlP5.
* CheckBox extends the RadioButton class.
* to control a checkbox use:
* activate(), deactivate(), activateAll(), deactivateAll(), toggle(), getState()
*
* find a list of public methods available for the Checkbox Controller
* at the bottom of this sketch's source code
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlP5
*
*/
import controlP5.*;
ControlP5 cp5;
CheckBox checkbox;
int myColorBackground;
void setup() {
size(800, 400);
smooth();
cp5 = new ControlP5(this);
checkbox = cp5.addCheckBox("checkBox")
.setPosition(100, 200)
.setSize(40, 40)
.setItemsPerRow(3)
.setSpacingColumn(30)
.setSpacingRow(20)
.addItem("0", 0)
.addItem("50", 50)
.addItem("100", 100)
.addItem("150", 150)
.addItem("200", 200)
.addItem("255", 255)
;
}
void keyPressed() {
if (key==' ') {
checkbox.deactivateAll();
}
else {
for (int i=0;i<6;i++) {
// check if key 0-5 have been pressed and toggle
// the checkbox item accordingly.
if (keyCode==(48 + i)) {
// the index of checkbox items start at 0
checkbox.toggle(i);
println("toggle "+checkbox.getItem(i).getName());
// also see
// checkbox.activate(index);
// checkbox.deactivate(index);
}
}
}
}
void draw() {
background(170);
pushMatrix();
translate(width/2 + 200, height/2);
stroke(255);
strokeWeight(2);
fill(myColorBackground);
ellipse(0,0,200,200);
popMatrix();
}
void controlEvent(ControlEvent theEvent) {
if (theEvent.isFrom(checkbox)) {
myColorBackground = 0;
print("got an event from "+checkbox.getName()+"\t\n");
// checkbox uses arrayValue to store the state of
// individual checkbox-items. usage:
println(checkbox.getArrayValue());
int col = 0;
for (int i=0;iacceptClassList, ACTION_BROADCAST, ACTION_CLICK, ACTION_DOUBLE_PRESS, ACTION_DRAG, ACTION_END_DRAG, ACTION_ENTER, ACTION_EXIT, ACTION_LEAVE, ACTION_MOVE, ACTION_PRESS, ACTION_PRESSED, ACTION_RELEASE, ACTION_RELEASE_OUTSIDE, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, ACTION_START_DRAG, ACTION_WHEEL, ACTIVE, ALL, ALT, AQUA, ARC, ARRAY, BACKSPACE, BASELINE, BITFONT, BLACK, BLUE, BOOLEAN, BOTTOM, BOTTOM_OUTSIDE, CAPTIONLABEL, CENTER, CHECKBOX, COMMANDKEY, CONTROL, controlEventClass, CUSTOM, DECREASE, DEFAULT, DELETE, delimiter, DONE, DOWN, DROPDOWN, ELLIPSE, ENTER, ESCAPE, EVENT, eventMethod, FADEIN, FADEOUT, FIELD, FLOAT, FUCHSIA, GRAY, GREEN, grixel, HALF_PI, HIDE, HIGHLIGHT, HORIZONTAL, IDLE, IMAGE, INACTIVE, INCREASE, INTEGER, INVALID, J2D, JSON, KEYCONTROL, LEFT, LEFT_OUTSIDE, LIME, LINE, LIST, LOAD, MAROON, MENU, METHOD, MOVE, MULTI, MULTIPLES, NAVY, OLIVE, ORANGE, OVER, P2D, P3D, pathdelimiter, PI, PRESS, PRESSED, PRINT, PURPLE, RED, RELEASE, RELEASED, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, SERIALIZED, SHIFT, SILVER, SINGLE, SINGLE_COLUMN, SINGLE_ROW, SPRITE, standard56, standard58, STRING, SWITCH, SWITCH_BACK, SWITCH_FORE, synt24, TAB, TEAL, THEME_A, THEME_CP52014, THEME_CP5BLUE, THEME_GREY, THEME_RED, THEME_RETRO, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TREE, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT, WHITE, YELLOW| Constructor and Description |
|---|
CheckBox(ControlP5 theControlP5,
ControllerGroup<?> theParent,
java.lang.String theName,
int theX,
int theY)
A CheckBox should only be added to controlP5 by using controlP5.addCheckBox()
|
CheckBox(ControlP5 theControlP5,
java.lang.String theName)
Convenience constructor to extend CheckBox.
|
| Modifier and Type | Method and Description |
|---|---|
CheckBox |
activate(int theIndex)
Activates a single checkbox item by index
|
CheckBox |
activate(java.lang.String theName)
Activates a single checkbox item by name
|
CheckBox |
activateAll() |
CheckBox |
addItem(java.lang.String theName,
float theValue) |
CheckBox |
addItem(Toggle theToggle,
float theValue) |
void |
controlEvent(ControlEvent theEvent)
controlEvent is called by controlP5's ControlBroadcaster to inform available listeners about
value changes.
|
CheckBox |
deactivate(int theIndex)
deactivate a single checkbox item by index
|
CheckBox |
deactivate(java.lang.String theName)
Deactivates a single checkbox item by name
|
CheckBox |
deactivateAll() |
java.lang.String |
getInfo() |
Toggle |
getItem(int theIndex)
Gets a radio button item by index.
|
java.util.List<Toggle> |
getItems() |
boolean |
getState(int theIndex)
Gets the state of an item - this can be true (for on) or false (for off) - by index.
|
boolean |
getState(java.lang.String theName)
Gets the state of an item - this can be true (for on) or false (for off) - by name.
|
CheckBox |
hideLabels() |
CheckBox |
plugTo(java.lang.Object theObject) |
CheckBox |
plugTo(java.lang.Object theObject,
java.lang.String thePlugName) |
CheckBox |
removeItem(java.lang.String theName) |
CheckBox |
setArrayValue(float[] theArray)
Sets the value for all CheckBox items according to the values of the array passed on.
|
CheckBox |
setColorLabels(int theColor) |
CheckBox |
setImage(processing.core.PImage theImage) |
CheckBox |
setImage(processing.core.PImage theImage,
int theState) |
CheckBox |
setImages(processing.core.PImage theDefaultImage,
processing.core.PImage theOverImage,
processing.core.PImage theActiveImage) |
CheckBox |
setItemHeight(int theItemHeight)
set the height of a radioButton/checkBox item.
|
CheckBox |
setItemsPerRow(int theValue)
Items of a radioButton or a checkBox are organized in columns and rows.
|
CheckBox |
setItemWidth(int theItemWidth)
set the width of a radioButton/checkBox item.
|
CheckBox |
setNoneSelectedAllowed(boolean theValue)
In order to always have 1 item selected, use setNoneSelectedAllowed(false), by default this
is true.
|
CheckBox |
setSize(int theWidth,
int theHeight) |
CheckBox |
setSize(processing.core.PImage theImage) |
CheckBox |
setSpacingColumn(int theSpacing)
Sets the spacing in pixels between columns.
|
CheckBox |
setSpacingRow(int theSpacing)
Sets the spacing in pixels between rows.
|
CheckBox |
showLabels() |
CheckBox |
toggle(int theIndex)
toggle a single checkbox item by index
|
void |
toggle(java.lang.String theName)
deactivate a single checkbox item by name
|
java.lang.String |
toString() |
CheckBox |
toUpperCase(boolean theValue) |
void |
updateLayout() |
activateEvent, addListener, getBackgroundHeight, getBarHeight, listenerSize, mousePressed, removeListener, setBackgroundColor, setBackgroundHeight, setBarHeight, stringValue, updateInternalEventsadd, addCanvas, addCloseButton, addDrawable, bringToFront, bringToFront, close, continuousUpdateEvents, disableCollapse, draw, enableCollapse, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getCaptionLabel, getColor, getController, getHeight, getId, getName, getParent, getPickingColor, getPosition, getProperty, getProperty, getStringValue, getTab, getValue, getValueLabel, getWidth, getWindow, hide, hideArrow, hideBar, init, isBarVisible, isCollapse, isMouseOver, isMoveable, isOpen, isUpdate, isVisible, keyEvent, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, open, registerProperty, registerProperty, remove, remove, remove, removeCanvas, removeCloseButton, removeProperty, removeProperty, set, setAbsolutePosition, setAddress, setArrayValue, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorForeground, setColorLabel, setColorValue, setFont, setFont, setGroup, setGroup, setHeight, setId, setLabel, setMouseOver, setMousePressed, setMoveable, setOpen, setPosition, setPosition, setStringValue, setTab, setTab, setTab, setTitle, setUpdate, setValue, setVisible, setWidth, show, showArrow, showBar, update, updateAbsolutePosition, updateEvents, x, ypublic CheckBox(ControlP5 theControlP5, ControllerGroup<?> theParent, java.lang.String theName, int theX, int theY)
theControlP5 - theParent - theName - theX - theY - public CheckBox(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(PGraphics 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;
}
}
public final CheckBox activate(int theIndex)
public final CheckBox activate(java.lang.String theName)
public final CheckBox activateAll()
public CheckBox addItem(java.lang.String theName, float theValue)
theName - theValue - public CheckBox addItem(Toggle theToggle, float theValue)
theToggle - theValue - public void controlEvent(ControlEvent theEvent)
controlEvent in interface ControlListenercontrolEvent in class ControlGroup<CheckBox>theEvent - ControlEventCallbackListener,
CallbackEventpublic final CheckBox deactivate(int theIndex)
public final CheckBox deactivate(java.lang.String theName)
public CheckBox deactivateAll()
public java.lang.String getInfo()
getInfo in class ControlGroup<CheckBox>public Toggle getItem(int theIndex)
theIndex - public java.util.List<Toggle> getItems()
public boolean getState(int theIndex)
theIndex - public boolean getState(java.lang.String theName)
theName - public CheckBox hideLabels()
public CheckBox plugTo(java.lang.Object theObject)
public CheckBox plugTo(java.lang.Object theObject, java.lang.String thePlugName)
public CheckBox removeItem(java.lang.String theName)
theName - public CheckBox setArrayValue(float[] theArray)
setArrayValue in interface ControllerInterface<CheckBox>setArrayValue in class ControllerGroup<CheckBox>public CheckBox setColorLabels(int theColor)
public CheckBox setImage(processing.core.PImage theImage)
theImage - public CheckBox setImage(processing.core.PImage theImage, int theState)
theImage - theState - use Controller.DEFAULT (background), or Controller.OVER (foreground), or
Controller.ACTIVE (active)public CheckBox setImages(processing.core.PImage theDefaultImage, processing.core.PImage theOverImage, processing.core.PImage theActiveImage)
theDefaultImage - theOverImage - theActiveImage - public CheckBox setItemHeight(int theItemHeight)
theItemHeight - public CheckBox setItemsPerRow(int theValue)
theValue - public CheckBox setItemWidth(int theItemWidth)
theItemWidth - public CheckBox setNoneSelectedAllowed(boolean theValue)
theValue - public CheckBox setSize(int theWidth, int theHeight)
setSize in class ControlGroup<CheckBox>public CheckBox setSize(processing.core.PImage theImage)
public CheckBox setSpacingColumn(int theSpacing)
theSpacing - public CheckBox setSpacingRow(int theSpacing)
theSpacing - public CheckBox showLabels()
public final CheckBox toggle(int theIndex)
public final void toggle(java.lang.String theName)
public java.lang.String toString()
toString in class ControlGroup<CheckBox>public CheckBox toUpperCase(boolean theValue)
public void updateLayout()
processing library controlP5 by Andreas Schlegel. (c) 2006-2016