controlP5

## Class Toggle

- java.lang.Object
- - controlP5.Controller<Toggle>
  - - controlP5.Toggle

- All Implemented Interfaces:
    CDrawable, ControllerInterface<Toggle>, ControlP5Constants

      public class Toggle
      extends Controller<Toggle>

  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.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 : ControllerView getView()
        controlP5.Controller : Label getCaptionLabel()
        controlP5.Controller : Label getValueLabel()
        controlP5.Controller : List getControllerPlugList()
        controlP5.Controller : Pointer getPointer()
        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 : Toggle addCallback(CallbackListener)
        controlP5.Controller : Toggle addListener(ControlListener)
        controlP5.Controller : Toggle addListenerFor(int, CallbackListener)
        controlP5.Controller : Toggle align(int, int, int, int)
        controlP5.Controller : Toggle bringToFront()
        controlP5.Controller : Toggle bringToFront(ControllerInterface)
        controlP5.Controller : Toggle hide()
        controlP5.Controller : Toggle linebreak()
        controlP5.Controller : Toggle listen(boolean)
        controlP5.Controller : Toggle lock()
        controlP5.Controller : Toggle onChange(CallbackListener)
        controlP5.Controller : Toggle onClick(CallbackListener)
        controlP5.Controller : Toggle onDoublePress(CallbackListener)
        controlP5.Controller : Toggle onDrag(CallbackListener)
        controlP5.Controller : Toggle onDraw(ControllerView)
        controlP5.Controller : Toggle onEndDrag(CallbackListener)
        controlP5.Controller : Toggle onEnter(CallbackListener)
        controlP5.Controller : Toggle onLeave(CallbackListener)
        controlP5.Controller : Toggle onMove(CallbackListener)
        controlP5.Controller : Toggle onPress(CallbackListener)
        controlP5.Controller : Toggle onRelease(CallbackListener)
        controlP5.Controller : Toggle onReleaseOutside(CallbackListener)
        controlP5.Controller : Toggle onStartDrag(CallbackListener)
        controlP5.Controller : Toggle onWheel(CallbackListener)
        controlP5.Controller : Toggle plugTo(Object)
        controlP5.Controller : Toggle plugTo(Object, String)
        controlP5.Controller : Toggle plugTo(Object[])
        controlP5.Controller : Toggle plugTo(Object[], String)
        controlP5.Controller : Toggle registerProperty(String)
        controlP5.Controller : Toggle registerProperty(String, String)
        controlP5.Controller : Toggle registerTooltip(String)
        controlP5.Controller : Toggle removeBehavior()
        controlP5.Controller : Toggle removeCallback()
        controlP5.Controller : Toggle removeCallback(CallbackListener)
        controlP5.Controller : Toggle removeListener(ControlListener)
        controlP5.Controller : Toggle removeListenerFor(int, CallbackListener)
        controlP5.Controller : Toggle removeListenersFor(int)
        controlP5.Controller : Toggle removeProperty(String)
        controlP5.Controller : Toggle removeProperty(String, String)
        controlP5.Controller : Toggle setArrayValue(float[])
        controlP5.Controller : Toggle setArrayValue(int, float)
        controlP5.Controller : Toggle setBehavior(ControlBehavior)
        controlP5.Controller : Toggle setBroadcast(boolean)
        controlP5.Controller : Toggle setCaptionLabel(String)
        controlP5.Controller : Toggle setColor(CColor)
        controlP5.Controller : Toggle setColorActive(int)
        controlP5.Controller : Toggle setColorBackground(int)
        controlP5.Controller : Toggle setColorCaptionLabel(int)
        controlP5.Controller : Toggle setColorForeground(int)
        controlP5.Controller : Toggle setColorLabel(int)
        controlP5.Controller : Toggle setColorValue(int)
        controlP5.Controller : Toggle setColorValueLabel(int)
        controlP5.Controller : Toggle setDecimalPrecision(int)
        controlP5.Controller : Toggle setDefaultValue(float)
        controlP5.Controller : Toggle setHeight(int)
        controlP5.Controller : Toggle setId(int)
        controlP5.Controller : Toggle setImage(PImage)
        controlP5.Controller : Toggle setImage(PImage, int)
        controlP5.Controller : Toggle setImages(PImage, PImage, PImage)
        controlP5.Controller : Toggle setImages(PImage, PImage, PImage, PImage)
        controlP5.Controller : Toggle setLabel(String)
        controlP5.Controller : Toggle setLabelVisible(boolean)
        controlP5.Controller : Toggle setLock(boolean)
        controlP5.Controller : Toggle setMax(float)
        controlP5.Controller : Toggle setMin(float)
        controlP5.Controller : Toggle setMouseOver(boolean)
        controlP5.Controller : Toggle setMoveable(boolean)
        controlP5.Controller : Toggle setPosition(float, float)
        controlP5.Controller : Toggle setPosition(float[])
        controlP5.Controller : Toggle setSize(PImage)
        controlP5.Controller : Toggle setSize(int, int)
        controlP5.Controller : Toggle setStringValue(String)
        controlP5.Controller : Toggle setUpdate(boolean)
        controlP5.Controller : Toggle setValue(float)
        controlP5.Controller : Toggle setValueLabel(String)
        controlP5.Controller : Toggle setValueSelf(float)
        controlP5.Controller : Toggle setView(ControllerView)
        controlP5.Controller : Toggle setVisible(boolean)
        controlP5.Controller : Toggle setWidth(int)
        controlP5.Controller : Toggle show()
        controlP5.Controller : Toggle unlock()
        controlP5.Controller : Toggle unplugFrom(Object)
        controlP5.Controller : Toggle unplugFrom(Object[])
        controlP5.Controller : Toggle unregisterTooltip()
        controlP5.Controller : Toggle update()
        controlP5.Controller : Toggle updateSize()
        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[] getAbsolutePosition()
        controlP5.Controller : float[] getArrayValue()
        controlP5.Controller : float[] getPosition()
        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)
        controlP5.Toggle : Toggle linebreak()
        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 getBooleanValue()
        controlP5.Toggle : boolean getState()
        controlP5.Toggle : int getMode()
        java.lang.Object : String toString()
        java.lang.Object : boolean equals(Object)

        created: 2015/03/24 12:21:35

        */

    `

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `autoHeight`
    `static int` | `autoWidth`

    - ### Fields inherited from interface controlP5.ControlP5Constants

      `acceptClassList, 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 Summary

    Constructors
    Constructor and Description
    `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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `draw(processing.core.PGraphics theGraphics)` the default draw function for each controller extending superclass Controller.
    `boolean` | `getBooleanValue()`
    `int` | `getMode()`
    `boolean` | `getState()`
    `float` | `internalValue()`
    `Toggle` | `linebreak()`
    `void` | `mousePressed()`
    `Toggle` | `setImages(processing.core.PImage... theImages)`
    `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, addListenerFor, align, bringToFront, bringToFront, changeValue, continuousUpdateEvents, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getBehavior, getCaptionLabel, getColor, getControllerPlugList, getControlWindow, getDecimalPrecision, getDefaultValue, getHeight, getId, getInfo, getLabel, getMax, getMin, getName, getParent, getPickingColor, getPointer, getPosition, getProperty, getProperty, getStringValue, getTab, getValue, getValueLabel, getView, getWidth, getWindow, hide, init, isActive, isBroadcast, isInside, isLabelVisible, isListening, isLock, isMouseOver, isMousePressed, isMoveable, isUpdate, isUserInteraction, isVisible, keyEvent, listen, listenerSize, lock, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, onChange, onClick, onDoublePress, onDrag, onDraw, onEndDrag, onEnter, onLeave, onMove, onPress, onRelease, onReleaseOutside, onStartDrag, onWheel, plugTo, plugTo, plugTo, plugTo, registerProperty, registerProperty, registerTooltip, remove, remove, removeBehavior, removeCallback, removeCallback, removeListener, removeListenerFor, removeListenersFor, removeProperty, removeProperty, set, setAbsolutePosition, setAddress, setArrayValue, setArrayValue, setBehavior, setBroadcast, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorCaptionLabel, setColorForeground, setColorLabel, setColorValue, setColorValueLabel, setDecimalPrecision, setDefaultValue, setGroup, setGroup, setHeight, setId, setImage, setImage, setImages, setImages, setLabel, setLabelVisible, setLock, setMax, setMin, setMouseOver, setMousePressed, setMoveable, setParent, setPosition, setPosition, setSize, setSize, setStringValue, setTab, setTab, setUpdate, setUserInteraction, setValueLabel, setValueSelf, setView, setView, setVisible, setWidth, show, toString, unlock, unplugFrom, unplugFrom, unregisterTooltip, updateAbsolutePosition, updateEvents, updateInternalEvents, updateSize, x, y`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

        `

    - #### Toggle

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

  - ### Method Detail

    - #### draw

          public void draw(processing.core.PGraphics theGraphics)

      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<Toggle>`
      Overrides:
        `draw` in class `Controller<Toggle>`
      Parameters:
        `theApplet` - PApplet
      See Also:
        `ControllerView`

    - #### getBooleanValue

          public boolean getBooleanValue()

    - #### getMode

          public int getMode()

    - #### getState

          public boolean getState()

    - #### internalValue

          public float internalValue()

    - #### linebreak

          public Toggle linebreak()

      Overrides:
        `linebreak` in class `Controller<Toggle>`
      Returns:
        Controller

    - #### mousePressed

          public void mousePressed()

    - #### setImages

          public Toggle setImages(processing.core.PImage... theImages)

      Overrides:
        `setImages` in class `Controller<Toggle>`

    - #### 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<Toggle>`
      Overrides:
        `setValue` in class `Controller<Toggle>`
      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<Toggle>`
      Overrides:
        `update` in class `Controller<Toggle>`
      Returns:
        Controller
      See Also:
        `Controller.setUpdate(boolean)`, `Controller.isUpdate()`

    - #### updateDisplayMode

          public Toggle updateDisplayMode(int theState)

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