controlP5
Class RadioButton

java.lang.Object
  extended by controlP5.ControllerGroup
      extended by controlP5.ControlGroup
          extended by controlP5.RadioButton
All Implemented Interfaces:
ControllerInterface, ControlListener, ControlP5Constants
Direct Known Subclasses:
Radio

public class RadioButton
extends ControlGroup

A radioButton is a list of toggles that can be turned on or off. radioButton is of type ControllerGroup, therefore a controllerPlug can't be set. this means that an event from a radioButton can't be forwarded to a method other than controlEvent in a sketch. a radioButton has 2 sets of values. radioButton.getValue() returns the value of the active radioButton item. radioButton.getArrayValue() returns a float array that represents the active (1) and inactive (0) items of a radioButton. ControlP5 CheckBox Toggle

+Example
/**
* ControlP5 RadioButton
*
*
* find a list of public methods available for the RadioButton Controller
* at the bottom of this sketch.
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlp5
*
*/


import controlP5.*;

ControlP5 cp5;

int myColorBackground = color(0,0,0);

RadioButton r;

void setup() {
  size(700,400);
  
  cp5 = new ControlP5(this);
  r = cp5.addRadioButton("radioButton")
         .setPosition(20,160)
         .setSize(40,20)
         .setColorForeground(color(120))
         .setColorActive(color(255))
         .setColorLabel(color(255))
         .setItemsPerRow(5)
         .setSpacingColumn(50)
         .addItem("50",1)
         .addItem("100",2)
         .addItem("150",3)
         .addItem("200",4)
         .addItem("250",5)
         ;
     
     for(Toggle t:r.getItems()) {
       t.captionLabel().setColorBackground(color(255,80));
       t.captionLabel().style().moveMargin(-7,0,0,-3);
       t.captionLabel().style().movePadding(7,0,0,3);
       t.captionLabel().style().backgroundWidth = 45;
       t.captionLabel().style().backgroundHeight = 13;
     }
}


void draw() {
  background(myColorBackground);
}


void keyPressed() {
  switch(key) {
    case('0'): r.deactivateAll(); break;
    case('1'): r.activate(0); break;
    case('2'): r.activate(1); break;
    case('3'): r.activate(2); break;
    case('4'): r.activate(3); break;
    case('5'): r.activate(4); break;
  }
  
}

void controlEvent(ControlEvent theEvent) {
  if(theEvent.isFrom(r)) {
    print("got an event from "+theEvent.getName()+"\t");
    for(int i=0;i

Field Summary
 
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
RadioButton(ControlP5 theControlP5, java.lang.String theName)
          Convenience constructor to extend RadioButton.
 
Method Summary
 RadioButton activate(int theIndex)
          Deactivates all active RadioButton items and only activates the item corresponding to theIndex.
 RadioButton activate(java.lang.String theName)
          Actives an item of the Radio button by name.
 RadioButton addItem(java.lang.String theName, float theValue)
           
 RadioButton addItem(Toggle theToggle, float theValue)
           
 RadioButton align(int[] a)
           
 RadioButton align(int theX, int theY)
           
 RadioButton alignX(int theX)
           
 RadioButton alignY(int theY)
           
 RadioButton deactivate(int theIndex)
           
 RadioButton deactivate(java.lang.String theName)
          Deactivates a RadioButton by name and sets the value of the RadioButton to the default value -1.
 RadioButton deactivateAll()
           
 int[] getAlign()
           
 Toggle getItem(int theIndex)
          Gets a radio button item by index.
 Toggle getItem(java.lang.String theName)
           
 java.util.List 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.
 RadioButton hideLabels()
           
 RadioButton plugTo(java.lang.Object theObject)
           
 RadioButton plugTo(java.lang.Object theObject, java.lang.String thePlugName)
           
 RadioButton removeItem(java.lang.String theName)
           
 RadioButton setArrayValue(float[] theArray)
          Sets the value for all RadioButton items according to the values of the array passed on.
 RadioButton setColorLabels(int theColor)
           
 RadioButton setImage(processing.core.PImage theImage)
           
 RadioButton setImage(processing.core.PImage theImage, int theState)
           
 RadioButton setImages(processing.core.PImage theDefaultImage, processing.core.PImage theOverImage, processing.core.PImage theActiveImage)
           
 RadioButton setItemHeight(int theItemHeight)
          set the height of a radioButton/checkBox item.
 RadioButton setItemsPerRow(int theValue)
          Items of a radioButton or a checkBox are organized in columns and rows.
 RadioButton setItemWidth(int theItemWidth)
          set the width of a radioButton/checkBox item.
 RadioButton setLabelPadding(int thePaddingX, int thePaddingY)
           
 RadioButton setNoneSelectedAllowed(boolean theValue)
          In order to always have 1 item selected, use setNoneSelectedAllowed(false), by default this is true.
 RadioButton setSize(int theWidth, int theHeight)
           
 RadioButton setSize(processing.core.PImage theImage)
           
 RadioButton setSpacingColumn(int theSpacing)
          Sets the spacing in pixels between columns.
 RadioButton setSpacingRow(int theSpacing)
          Sets the spacing in pixels between rows.
 RadioButton showLabels()
           
 RadioButton toUpperCase(boolean theValue)
           
 
Methods inherited from class controlP5.ControlGroup
activateEvent, addListener, controlEvent, getBackgroundHeight, getBarHeight, getInfo, listenerSize, mousePressed, removeListener, setBackgroundColor, setBackgroundHeight, setBarHeight, stringValue, toString, updateInternalEvents
 
Methods inherited from class controlP5.ControllerGroup
add, addCanvas, addCloseButton, addDrawable, bringToFront, bringToFront, close, disableCollapse, enableCollapse, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getCaptionLabel, getColor, getController, getHeight, getId, getName, getPosition, getProperty, getProperty, getStringValue, getTab, getValue, getValueLabel, getWidth, getWindow, hide, hideArrow, hideBar, isBarVisible, isCollapse, isMouseOver, isMoveable, isOpen, isUpdate, isVisible, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, open, registerProperty, registerProperty, remove, remove, remove, removeCanvas, removeCloseButton, removeProperty, removeProperty, setAddress, setArrayValue, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorForeground, setColorLabel, setColorValue, setGroup, setGroup, setHeight, setId, setLabel, setMouseOver, setMoveable, setOpen, setPosition, setPosition, setStringValue, setTab, setTab, setTab, setTitle, setUpdate, setValue, setVisible, setWidth, show, showArrow, showBar, updateAbsolutePosition
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface controlP5.ControllerInterface
continuousUpdateEvents, draw, getParent, getPickingColor, init, keyEvent, parent, setAbsolutePosition, setMousePressed, update, updateEvents
 

Constructor Detail

RadioButton

public RadioButton(ControlP5 theControlP5,
                   java.lang.String theName)
Convenience constructor to extend RadioButton.

Parameters:
theControlP5 -
theName -
+Example
/**
 * 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

activate

public RadioButton activate(int theIndex)
Deactivates all active RadioButton items and only activates the item corresponding to theIndex.

Parameters:
theIndex -

activate

public RadioButton activate(java.lang.String theName)
Actives an item of the Radio button by name.

Parameters:
theName -

addItem

public RadioButton addItem(java.lang.String theName,
                           float theValue)
Parameters:
theName -
theValue -
Returns:

addItem

public RadioButton addItem(Toggle theToggle,
                           float theValue)
Parameters:
theToggle -
theValue -
Returns:

align

public RadioButton align(int[] a)

align

public RadioButton align(int theX,
                         int theY)

alignX

public RadioButton alignX(int theX)

alignY

public RadioButton alignY(int theY)

deactivate

public RadioButton deactivate(int theIndex)
Parameters:
theIndex -

deactivate

public RadioButton deactivate(java.lang.String theName)
Deactivates a RadioButton by name and sets the value of the RadioButton to the default value -1.

Parameters:
theName -

deactivateAll

public RadioButton deactivateAll()

getAlign

public int[] getAlign()

getItem

public Toggle getItem(int theIndex)
Gets a radio button item by index.

Parameters:
theIndex -
Returns:
Toggle

getItem

public Toggle getItem(java.lang.String theName)

getItems

public java.util.List getItems()

getState

public boolean getState(int theIndex)
Gets the state of an item - this can be true (for on) or false (for off) - by index.

Parameters:
theIndex -
Returns:
boolean

getState

public boolean getState(java.lang.String theName)
Gets the state of an item - this can be true (for on) or false (for off) - by name.

Parameters:
theName -
Returns:

hideLabels

public RadioButton hideLabels()

plugTo

public RadioButton plugTo(java.lang.Object theObject)

plugTo

public RadioButton plugTo(java.lang.Object theObject,
                          java.lang.String thePlugName)

removeItem

public RadioButton removeItem(java.lang.String theName)
Parameters:
theName -

setArrayValue

public RadioButton setArrayValue(float[] theArray)
Sets the value for all RadioButton items according to the values of the array passed on. 0 will turn off an item, any other value will turn it on.

Specified by:
setArrayValue in interface ControllerInterface
Overrides:
setArrayValue in class ControllerGroup
Returns:
ControllerGroup

setColorLabels

public RadioButton setColorLabels(int theColor)

setImage

public RadioButton setImage(processing.core.PImage theImage)
Parameters:
theImage -

setImage

public RadioButton setImage(processing.core.PImage theImage,
                            int theState)
Parameters:
theImage -
theState - use Controller.DEFAULT (background), or Controller.OVER (foreground), or Controller.ACTIVE (active)
Returns:

setImages

public RadioButton setImages(processing.core.PImage theDefaultImage,
                             processing.core.PImage theOverImage,
                             processing.core.PImage theActiveImage)
Parameters:
theDefaultImage -
theOverImage -
theActiveImage -
Returns:
RadioButton

setItemHeight

public RadioButton setItemHeight(int theItemHeight)
set the height of a radioButton/checkBox item. by default the height is 11px. in order to recognize a custom height, the itemHeight has to be set before adding items to a radioButton/checkBox.

Parameters:
theItemHeight -

setItemsPerRow

public RadioButton setItemsPerRow(int theValue)
Items of a radioButton or a checkBox are organized in columns and rows. SetItemsPerRow sets the limit of items per row. items exceeding the limit will be pushed to the next row.

Parameters:
theValue -

setItemWidth

public RadioButton setItemWidth(int theItemWidth)
set the width of a radioButton/checkBox item. by default the width is 11px. in order to recognize a custom width, the itemWidth has to be set before adding items to a radioButton/checkBox.

Parameters:
theItemWidth -

setLabelPadding

public RadioButton setLabelPadding(int thePaddingX,
                                   int thePaddingY)

setNoneSelectedAllowed

public RadioButton setNoneSelectedAllowed(boolean theValue)
In order to always have 1 item selected, use setNoneSelectedAllowed(false), by default this is true. setNoneSelectedAllowed does not apply when in multipleChoice mode.

Parameters:
theValue -

setSize

public RadioButton setSize(int theWidth,
                           int theHeight)
Overrides:
setSize in class ControlGroup

setSize

public RadioButton setSize(processing.core.PImage theImage)

setSpacingColumn

public RadioButton setSpacingColumn(int theSpacing)
Sets the spacing in pixels between columns.

Parameters:
theSpacing -

setSpacingRow

public RadioButton setSpacingRow(int theSpacing)
Sets the spacing in pixels between rows.

Parameters:
theSpacing -

showLabels

public RadioButton showLabels()

toUpperCase

public RadioButton toUpperCase(boolean theValue)


processing library controlP5 by Andreas Schlegel. (c) 2006-2012