controlP5
Class Toggle

java.lang.Object
  extended by controlP5.Controller
      extended by controlP5.Toggle
All Implemented Interfaces:
CDrawable, ControllerInterface, ControlP5Constants

public class Toggle
extends Controller

a toggle can have two states, true and false, where true has the value 1 and false is 0.

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


import controlP5.*;

ControlP5 cp5;

int col = color(255);

boolean toggleValue = false;

void setup() {
  size(400,400);
  smooth();
  cp5 = new ControlP5(this);
  
  // create a toggle
  cp5.addToggle("toggleValue")
     .setPosition(40,100)
     .setSize(50,20)
     ;
  
  // create a toggle and change the default look to a (on/off) switch look
  cp5.addToggle("toggle")
     .setPosition(40,250)
     .setSize(50,20)
     .setValue(true)
     .setMode(ControlP5.SWITCH)
     ;
     
}
  

void draw() {
  background(0);
  
  pushMatrix();
  
  if(toggleValue==true) {
    fill(255,255,220);
  } else {
    fill(128,128,110);
  }
  translate(280,100);
  ellipse(0,0,100,100);
  
  
  translate(0,150);
  fill(col);
  ellipse(0,0,40,40);
  
  popMatrix();
}



void toggle(boolean theFlag) {
  if(theFlag==true) {
    col = color(255);
  } else {
    col = color(100);
  }
  println("a toggle event.");
}






/*
a list of all methods available for the Toggle Controller
use ControlP5.printPublicMethodsFor(Toggle.class);
to print the following list into the console.

You can find further details about class Toggle in the javadoc.

Format:
ClassName : returnType methodName(parameter type)


controlP5.Toggle : Toggle setMode(int) 
controlP5.Toggle : Toggle setState(boolean) 
controlP5.Toggle : Toggle setValue(boolean) 
controlP5.Toggle : Toggle setValue(float) 
controlP5.Toggle : Toggle toggle() 
controlP5.Toggle : Toggle update() 
controlP5.Toggle : boolean getState() 
controlP5.Controller : CColor getColor() 
controlP5.Controller : ControlBehavior getBehavior() 
controlP5.Controller : ControlWindow getControlWindow() 
controlP5.Controller : ControlWindow getWindow() 
controlP5.Controller : Controller addCallback(CallbackListener) 
controlP5.Controller : Controller addListener(ControlListener) 
controlP5.Controller : Controller hide() 
controlP5.Controller : Controller linebreak() 
controlP5.Controller : Controller listen(boolean) 
controlP5.Controller : Controller lock() 
controlP5.Controller : Controller plugTo(Object) 
controlP5.Controller : Controller plugTo(Object, String) 
controlP5.Controller : Controller plugTo(Object[]) 
controlP5.Controller : Controller plugTo(Object[], String) 
controlP5.Controller : Controller registerProperty(String) 
controlP5.Controller : Controller registerProperty(String, String) 
controlP5.Controller : Controller registerTooltip(String) 
controlP5.Controller : Controller removeBehavior() 
controlP5.Controller : Controller removeCallback() 
controlP5.Controller : Controller removeCallback(CallbackListener) 
controlP5.Controller : Controller removeListener(ControlListener) 
controlP5.Controller : Controller removeProperty(String) 
controlP5.Controller : Controller removeProperty(String, String) 
controlP5.Controller : Controller setArrayValue(float[]) 
controlP5.Controller : Controller setArrayValue(int, float) 
controlP5.Controller : Controller setBehavior(ControlBehavior) 
controlP5.Controller : Controller setBroadcast(boolean) 
controlP5.Controller : Controller setCaptionLabel(String) 
controlP5.Controller : Controller setColor(CColor) 
controlP5.Controller : Controller setColorActive(int) 
controlP5.Controller : Controller setColorBackground(int) 
controlP5.Controller : Controller setColorCaptionLabel(int) 
controlP5.Controller : Controller setColorForeground(int) 
controlP5.Controller : Controller setColorValueLabel(int) 
controlP5.Controller : Controller setDecimalPrecision(int) 
controlP5.Controller : Controller setDefaultValue(float) 
controlP5.Controller : Controller setDisplay(ControllerDisplay) 
controlP5.Controller : Controller setHeight(int) 
controlP5.Controller : Controller setId(int) 
controlP5.Controller : Controller setImages(PImage, PImage, PImage) 
controlP5.Controller : Controller setImages(PImage, PImage, PImage, PImage) 
controlP5.Controller : Controller setLabelVisible(boolean) 
controlP5.Controller : Controller setLock(boolean) 
controlP5.Controller : Controller setMax(float) 
controlP5.Controller : Controller setMin(float) 
controlP5.Controller : Controller setMoveable(boolean) 
controlP5.Controller : Controller setPosition(PVector) 
controlP5.Controller : Controller setPosition(float, float) 
controlP5.Controller : Controller setSize(PImage) 
controlP5.Controller : Controller setSize(int, int) 
controlP5.Controller : Controller setStringValue(String) 
controlP5.Controller : Controller setUpdate(boolean) 
controlP5.Controller : Controller setValueLabel(String) 
controlP5.Controller : Controller setVisible(boolean) 
controlP5.Controller : Controller setWidth(int) 
controlP5.Controller : Controller show() 
controlP5.Controller : Controller unlock() 
controlP5.Controller : Controller unplugFrom(Object) 
controlP5.Controller : Controller unplugFrom(Object[]) 
controlP5.Controller : Controller unregisterTooltip() 
controlP5.Controller : Controller update() 
controlP5.Controller : Controller updateSize() 
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 getLabel() 
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 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 getHeight() 
controlP5.Controller : int getId() 
controlP5.Controller : int getWidth() 
controlP5.Controller : int listenerSize() 
controlP5.Controller : void remove() 
controlP5.Controller : void setDisplay(ControllerDisplay, int) 
java.lang.Object : String toString() 
java.lang.Object : boolean equals(Object) 


*/



Field Summary
static int autoHeight
           
static int autoWidth
           
 
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
Toggle(ControlP5 theControlP5, java.lang.String theName)
          Convenience constructor to extend Toggle.
Toggle(ControlP5 theControlP5, Tab theParent, java.lang.String theName, float theValue, float theX, float theY, int theWidth, int theHeight)
           
 
Method Summary
 void draw(processing.core.PApplet theApplet)
          the default draw function for each controller extending superclass Controller.
 boolean getState()
           
 float internalValue()
           
 Toggle linebreak()
          
 void mousePressed()
          
 void setInternalValue(float theInternalValue)
          by default a toggle returns 0 (for off) and 1 (for on).
 Toggle setMode(int theMode)
          set the visual mode of a Toggle.
 Toggle setState(boolean theFlag)
          sets the state of the toggle, this can be true or false.
 Toggle setValue(boolean theValue)
           
 Toggle setValue(float theValue)
          
 Toggle toggle()
          switch the state of a toggle.
 Toggle update()
          updates the value of the controller without having to set the value explicitly.
 Toggle updateDisplayMode(int theState)
          
 
Methods inherited from class controlP5.Controller
add, addCallback, addListener, align, bringToFront, bringToFront, changeValue, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getBehavior, getCaptionLabel, getColor, getControllerPlugList, getControlWindow, getDecimalPrecision, getDefaultValue, getHeight, getId, getLabel, getMax, getMin, getName, getParent, getPickingColor, getPointer, getPosition, getProperty, getProperty, getStringValue, getTab, getValue, getValueLabel, getWidth, getWindow, hide, init, isActive, isBroadcast, isInside, isLabelVisible, isListening, isLock, isMouseOver, isMousePressed, isMoveable, isUpdate, isVisible, keyEvent, listen, listenerSize, lock, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, plugTo, plugTo, plugTo, plugTo, registerProperty, registerProperty, registerTooltip, remove, remove, removeBehavior, removeCallback, removeCallback, removeListener, removeProperty, removeProperty, setAbsolutePosition, setAddress, setArrayValue, setArrayValue, setBehavior, setBroadcast, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorCaptionLabel, setColorForeground, setColorValueLabel, setDecimalPrecision, setDefaultValue, setGroup, setGroup, setHeight, setId, setImage, setImage, setImages, setImages, setImages, setLabelVisible, setLock, setMax, setMin, setMouseOver, setMousePressed, setMoveable, setParent, setPosition, setPosition, setSize, setSize, setStringValue, setTab, setTab, setUpdate, setValueLabel, setView, setView, setVisible, setWidth, show, unlock, unplugFrom, unplugFrom, unregisterTooltip, updateAbsolutePosition, updateEvents, updateInternalEvents, updateSize
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface controlP5.ControllerInterface
continuousUpdateEvents, parent, setColorLabel, setColorValue, setLabel
 

Field Detail

autoHeight

public static int autoHeight

autoWidth

public static int autoWidth
Constructor Detail

Toggle

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

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;
  }
}


Toggle

public Toggle(ControlP5 theControlP5,
              Tab theParent,
              java.lang.String theName,
              float theValue,
              float theX,
              float theY,
              int theWidth,
              int theHeight)
Parameters:
theControlP5 - ControlP5
theParent - Tab
theName - String
theValue - float
theX - float
theY - float
theWidth - int
theHeight - int
Method Detail

draw

public void draw(processing.core.PApplet theApplet)
Description copied from class: Controller
the default draw function for each controller extending superclass Controller. This draw function will take care of default matrix operations and will call the display function of the current ControllerView object active for this particular controller.

Specified by:
draw in interface CDrawable
Specified by:
draw in interface ControllerInterface
Overrides:
draw in class Controller
Parameters:
theApplet - PApplet
See Also:
ControllerView

getState

public boolean getState()
Returns:

internalValue

public float internalValue()

linebreak

public Toggle linebreak()

Overrides:
linebreak in class Controller
Returns:
Controller

mousePressed

public void mousePressed()


setInternalValue

public void setInternalValue(float theInternalValue)
by default a toggle returns 0 (for off) and 1 (for on). the internal value variable can be used to store an additional value for a toggle event.

Parameters:
theInternalValue -

setMode

public Toggle setMode(int theMode)
set the visual mode of a Toggle. use setMode(ControlP5.DEFAULT) or setMode(ControlP5.SWITCH)

Parameters:
theMode -

setState

public Toggle setState(boolean theFlag)
sets the state of the toggle, this can be true or false.

Parameters:
theFlag - boolean

setValue

public Toggle setValue(boolean theValue)
Parameters:
theValue -

setValue

public Toggle setValue(float theValue)

Specified by:
setValue in interface ControllerInterface
Overrides:
setValue in class Controller
Parameters:
theValue - float

toggle

public Toggle toggle()
switch the state of a toggle.


update

public Toggle update()
updates the value of the controller without having to set the value explicitly. update does not visually update the controller. the updating status can be set with setUpdate(true/false) and checked with isUpdate().

Specified by:
update in interface ControllerInterface
Overrides:
update in class Controller
Returns:
Controller
See Also:
Controller.setUpdate(boolean), Controller.isUpdate()

updateDisplayMode

public Toggle updateDisplayMode(int theState)



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