Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## controlP5
Class Bang

    java.lang.Object
      controlP5.Controller
          controlP5.Bang

All Implemented Interfaces:
  CDrawable, ControllerInterface, ControlP5Constants

    public class Bang

extends Controller

The Bang controller triggers an event when pressed. A bang can only be assigned to a function in your program but not to a field like other controllers. Bang extends superclass Controller, for a full documentation see the `Controller` reference.

+Example
  `

      /**
       * ControlP5 Bang
       * A bang triggers an event that can be received by a function named after the bang.
       * By default a bang is triggered when pressed, this can be changed to 'release'
       * using theBang.setTriggerEvent(Bang.RELEASE).
       *
       * find a list of public methods available for the Bang 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);

      color[] col = new color[] {
        color(100), color(150), color(200), color(250)
      };

      void setup() {
        size(400, 600);
        noStroke();
        cp5 = new ControlP5(this);
        for (int i=0;i

  `

Field Summary

Fields inherited from class controlP5.Controller
`autoHeight, autoSpacing, 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
`Bang(ControlP5 theControlP5, java.lang.String theName)` Convenience constructor to extend Bang.

Method Summary
`int` | `getTriggerEvent()`
`Bang` | `setTriggerEvent(int theEventID)` By default a bang is triggered when the mouse is pressed.
`Bang` | `setValue(float theValue)` Sets the value of the bang controller.

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, linebreak, 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, update, 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, draw, parent, setColorLabel, setColorValue, setLabel`

Methods inherited from interface controlP5.CDrawable
`draw`

Constructor Detail

### Bang

    public Bang(ControlP5 theControlP5,
                java.lang.String theName)

  Convenience constructor to extend Bang.

  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

### getTriggerEvent

    public int getTriggerEvent()

### setTriggerEvent

    public Bang setTriggerEvent(int theEventID)

  By default a bang is triggered when the mouse is pressed. use setTriggerEvent(Bang.PRESSED) or setTriggerEvent(Bang.RELEASE) to define the action for triggering a bang. currently only Bang.PRESSED and Bang.RELEASE are supported.

  Parameters:
    `theEventID` -
  Returns:
    Bang

### setValue

    public Bang setValue(float theValue)

  Sets the value of the bang controller. since bang can be true or false, false=0 and true=1

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

Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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