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

## controlP5
Class Range

    java.lang.Object
      controlP5.Controller
          controlP5.Range

All Implemented Interfaces:
  CDrawable, ControllerInterface, ControlP5Constants

    public class Range

extends Controller

A range slider works just like a slider but can be adjusted on both ends.

See Also:
  `Slider`
  +Example
    `

        /**
        * ControlP5 Range
        *
        * find a list of public methods available for the Range 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);

        int colorMin = 100;

        int colorMax = 100;

        Range range;

        void setup() {
          size(700,400);
          cp5 = new ControlP5(this);
          range = cp5.addRange("rangeController")
                     // disable broadcasting since setRange and setRangeValues will trigger an event
                     .setBroadcast(false)
                     .setPosition(50,50)
                     .setSize(400,40)
                     .setHandleSize(20)
                     .setRange(0,255)
                     .setRangeValues(50,100)
                     // after the initialization we turn broadcast back on again
                     .setBroadcast(true)
                     .setColorForeground(color(255,40))
                     .setColorBackground(color(255,40))
                     ;

          noStroke();
        }

        void draw() {
          background(colorMax);
          fill(colorMin);
          rect(0,0,width,height/2);
        }

        void controlEvent(ControlEvent theControlEvent) {
          if(theControlEvent.isFrom("rangeController")) {
            // min and max values are stored in an array.
            // access this array with controller().arrayValue().
            // min is at index 0, max is at index 1.
            colorMin = int(theControlEvent.getController().getArrayValue(0));
            colorMax = int(theControlEvent.getController().getArrayValue(1));
            println("range update, done.");
          }

        }

        void keyPressed() {
          switch(key) {
            case('1'):range.setLowValue(0);break;
            case('2'):range.setLowValue(100);break;
            case('3'):range.setHighValue(120);break;
            case('4'):range.setHighValue(200);break;
            case('5'):range.setRangeValues(40,60);break;
          }
        }

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

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

        Format:
        ClassName : returnType methodName(parameter type)

        controlP5.Range : Range setArrayValue(float[])
        controlP5.Range : Range setColorCaptionLabel(int)
        controlP5.Range : Range setColorTickMark(int)
        controlP5.Range : Range setColorValueLabel(int)
        controlP5.Range : Range setHandleSize(int)
        controlP5.Range : Range setHeight(int)
        controlP5.Range : Range setHighValue(float)
        controlP5.Range : Range setHighValueLabel(String)
        controlP5.Range : Range setLowValue(float)
        controlP5.Range : Range setLowValueLabel(String)
        controlP5.Range : Range setMax(float)
        controlP5.Range : Range setMin(float)
        controlP5.Range : Range setNumberOfTickMarks(int)
        controlP5.Range : Range setRange(float, float)
        controlP5.Range : Range setRangeValues(float, float)
        controlP5.Range : Range setWidth(int)
        controlP5.Range : Range showTickMarks(boolean)
        controlP5.Range : Range snapToTickMarks(boolean)
        controlP5.Range : ArrayList getTickMarks()
        controlP5.Range : float getHighValue()
        controlP5.Range : float getLowValue()
        controlP5.Range : float[] getArrayValue()
        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 : 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 : Range addCallback(CallbackListener)
        controlP5.Controller : Range addListener(ControlListener)
        controlP5.Controller : Range bringToFront()
        controlP5.Controller : Range bringToFront(ControllerInterface)
        controlP5.Controller : Range hide()
        controlP5.Controller : Range linebreak()
        controlP5.Controller : Range listen(boolean)
        controlP5.Controller : Range lock()
        controlP5.Controller : Range plugTo(Object)
        controlP5.Controller : Range plugTo(Object, String)
        controlP5.Controller : Range plugTo(Object[])
        controlP5.Controller : Range plugTo(Object[], String)
        controlP5.Controller : Range registerProperty(String)
        controlP5.Controller : Range registerProperty(String, String)
        controlP5.Controller : Range registerTooltip(String)
        controlP5.Controller : Range removeBehavior()
        controlP5.Controller : Range removeCallback()
        controlP5.Controller : Range removeCallback(CallbackListener)
        controlP5.Controller : Range removeListener(ControlListener)
        controlP5.Controller : Range removeProperty(String)
        controlP5.Controller : Range removeProperty(String, String)
        controlP5.Controller : Range setArrayValue(float[])
        controlP5.Controller : Range setArrayValue(int, float)
        controlP5.Controller : Range setBehavior(ControlBehavior)
        controlP5.Controller : Range setBroadcast(boolean)
        controlP5.Controller : Range setCaptionLabel(String)
        controlP5.Controller : Range setColor(CColor)
        controlP5.Controller : Range setColorActive(int)
        controlP5.Controller : Range setColorBackground(int)
        controlP5.Controller : Range setColorCaptionLabel(int)
        controlP5.Controller : Range setColorForeground(int)
        controlP5.Controller : Range setColorValueLabel(int)
        controlP5.Controller : Range setDecimalPrecision(int)
        controlP5.Controller : Range setDefaultValue(float)
        controlP5.Controller : Range setHeight(int)
        controlP5.Controller : Range setId(int)
        controlP5.Controller : Range setImages(PImage, PImage, PImage)
        controlP5.Controller : Range setImages(PImage, PImage, PImage, PImage)
        controlP5.Controller : Range setLabelVisible(boolean)
        controlP5.Controller : Range setLock(boolean)
        controlP5.Controller : Range setMax(float)
        controlP5.Controller : Range setMin(float)
        controlP5.Controller : Range setMouseOver(boolean)
        controlP5.Controller : Range setMoveable(boolean)
        controlP5.Controller : Range setPosition(PVector)
        controlP5.Controller : Range setPosition(float, float)
        controlP5.Controller : Range setSize(PImage)
        controlP5.Controller : Range setSize(int, int)
        controlP5.Controller : Range setStringValue(String)
        controlP5.Controller : Range setUpdate(boolean)
        controlP5.Controller : Range setValueLabel(String)
        controlP5.Controller : Range setView(ControllerView)
        controlP5.Controller : Range setVisible(boolean)
        controlP5.Controller : Range setWidth(int)
        controlP5.Controller : Range show()
        controlP5.Controller : Range unlock()
        controlP5.Controller : Range unplugFrom(Object)
        controlP5.Controller : Range unplugFrom(Object[])
        controlP5.Controller : Range unregisterTooltip()
        controlP5.Controller : Range update()
        controlP5.Controller : Range updateSize()
        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 : 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[] getArrayValue()
        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)
        java.lang.Object : String toString()
        java.lang.Object : boolean equals(Object)

        */

    `

Field Summary
`int` | `alignValueLabel`
`static int` | `autoHeight`
`static processing.core.PVector` | `autoSpacing`
`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, 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, WAIT`

Constructor Summary
`Range(ControlP5 theControlP5, ControllerGroup theParent, java.lang.String theName, float theMin, float theMax, float theDefaultMinValue, float theDefaultMaxValue, int theX, int theY, int theWidth, int theHeight)`
`Range(ControlP5 theControlP5, java.lang.String theName)` Convenience constructor to extend Range.

Method Summary
`float[]` | `arrayValue()` Deprecated.
`float[]` | `getArrayValue()` returns the current float array value of a controller.
`float` | `getHighValue()`
`float` | `getLowValue()`
`TickMark` | `getTickMark()`
`java.util.ArrayList` | `getTickMarks()`
`float` | `highValue()` Deprecated.
`float` | `lowValue()` Deprecated.
`void` | `mousePressed()`
`void` | `mouseReleased()`
`void` | `mouseReleasedOutside()`
`void` | `onLeave()`
`Range` | `setArrayValue(float[] theArray)`
`Range` | `setColorCaptionLabel(int theColor)`
`Range` | `setColorTickMark(int theColor)`
`Range` | `setColorValueLabel(int theColor)`
`Range` | `setDraggable(boolean theFlag)`
`Range` | `setHandleSize(int theSize)`
`Range` | `setHeight(int theValue)`
`Range` | `setHighValue(float theValue)`
`Range` | `setHighValueLabel(java.lang.String theLabel)`
`Range` | `setLowValue(float theValue)`
`Range` | `setLowValueLabel(java.lang.String theLabel)`
`Range` | `setMax(float theValue)` sets the maximum value of the Controller.
`Range` | `setMin(float theValue)` sets the minimum value of the Controller.
`Range` | `setNumberOfTickMarks(int theNumber)`
`Range` | `setRange(float theMinValue, float theMaxValue)`
`Range` | `setRangeValues(float theLowValue, float theHighValue)`
`Range` | `setSliderMode(int theMode)`
`Range` | `setValue(float theValue)` set the value of the range-slider.
`Range` | `setWidth(int theValue)`
`Range` | `showTickMarks(boolean theFlag)`
`Range` | `snapToTickMarks(boolean theFlag)`
`java.lang.String` | `toString()`
`Range` | `updateDisplayMode(int theMode)`
`Range` | `updateInternalEvents(processing.core.PApplet theApplet)` a method for putting input events like e.g.

Methods inherited from class controlP5.Controller
`add, addCallback, addListener, align, bringToFront, bringToFront, changeValue, getAbsolutePosition, getAddress, 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, setBehavior, setBroadcast, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorForeground, setDecimalPrecision, setDefaultValue, setGroup, setGroup, setId, setImage, setImage, setImages, setImages, setImages, setLabelVisible, setLock, setMouseOver, setMousePressed, setMoveable, setParent, setPosition, setPosition, setSize, setSize, setStringValue, setTab, setTab, setUpdate, setValueLabel, setView, setView, setVisible, show, unlock, unplugFrom, unplugFrom, unregisterTooltip, update, updateAbsolutePosition, updateEvents, updateSize`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface controlP5.ControllerInterface
`continuousUpdateEvents, draw, parent, setColorLabel, setColorValue, setLabel`

Methods inherited from interface controlP5.CDrawable
`draw`

Field Detail

### alignValueLabel

    public int alignValueLabel

### autoHeight

    public static int autoHeight

### autoSpacing

    public static processing.core.PVector autoSpacing

### autoWidth

    public static int autoWidth

Constructor Detail

### Range

    public Range(ControlP5 theControlP5,
                 ControllerGroup theParent,
                 java.lang.String theName,
                 float theMin,
                 float theMax,
                 float theDefaultMinValue,
                 float theDefaultMaxValue,
                 int theX,
                 int theY,
                 int theWidth,
                 int theHeight)

Parameters:
  `theControlP5` - ControlP5
  `theParent` - ControllerGroup
  `theName` - String
  `theMin` - float
  `theMax` - float
  `theDefaultValue` - float
  `theX` - int
  `theY` - int
  `theWidth` - int
  `theHeight` - int

### Range

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

  Convenience constructor to extend Range.

  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

### arrayValue

    @Deprecated
    public float[] arrayValue()

  Deprecated.

  Overrides:
    `arrayValue` in class `Controller`

### getArrayValue

    public float[] getArrayValue()

  Description copied from class: `Controller`
  returns the current float array value of a controller.

  Specified by:
    `getArrayValue` in interface `ControllerInterface`
  Overrides:
    `getArrayValue` in class `Controller`
  Returns:
    float[]
  See Also:
    `Controller.getValue()`, `Controller.getStringValue()`

### getHighValue

    public float getHighValue()

### getLowValue

    public float getLowValue()

### getTickMark

    public TickMark getTickMark()

### getTickMarks

    public java.util.ArrayList getTickMarks()

### highValue

    @Deprecated
    public float highValue()

  Deprecated.

### lowValue

    @Deprecated
    public float lowValue()

  Deprecated.

### mousePressed

    public void mousePressed()

### mouseReleased

    public void mouseReleased()

### mouseReleasedOutside

    public void mouseReleasedOutside()

### onLeave

    public void onLeave()

### setArrayValue

    public Range setArrayValue(float[] theArray)

  Specified by:
    `setArrayValue` in interface `ControllerInterface`
  Overrides:
    `setArrayValue` in class `Controller`
  Returns:
    Controller

### setColorCaptionLabel

    public Range setColorCaptionLabel(int theColor)

  Description copied from class: `Controller`

  Overrides:
    `setColorCaptionLabel` in class `Controller`
  Returns:
    Controller

### setColorTickMark

    public Range setColorTickMark(int theColor)

### setColorValueLabel

    public Range setColorValueLabel(int theColor)

  Overrides:
    `setColorValueLabel` in class `Controller`
  Returns:
    Controller

### setDraggable

    public Range setDraggable(boolean theFlag)

### setHandleSize

    public Range setHandleSize(int theSize)

### setHeight

    public Range setHeight(int theValue)

  Overrides:
    `setHeight` in class `Controller`
  Returns:
    Controller

### setHighValue

    public Range setHighValue(float theValue)

### setHighValueLabel

    public Range setHighValueLabel(java.lang.String theLabel)

### setLowValue

    public Range setLowValue(float theValue)

### setLowValueLabel

    public Range setLowValueLabel(java.lang.String theLabel)

### setMax

    public Range setMax(float theValue)

  Description copied from class: `Controller`
  sets the maximum value of the Controller.

  Overrides:
    `setMax` in class `Controller`
  Parameters:
    `theValue` - float
  Returns:
    Controller

### setMin

    public Range setMin(float theValue)

  Description copied from class: `Controller`
  sets the minimum value of the Controller.

  Overrides:
    `setMin` in class `Controller`
  Parameters:
    `theValue` - float
  Returns:
    Controller

### setNumberOfTickMarks

    public Range setNumberOfTickMarks(int theNumber)

### setRange

    public Range setRange(float theMinValue,
                          float theMaxValue)

### setRangeValues

    public Range setRangeValues(float theLowValue,
                                float theHighValue)

### setSliderMode

    public Range setSliderMode(int theMode)

### setValue

    public Range setValue(float theValue)

  set the value of the range-slider. to set the low and high value, use setLowValue and setHighValue or setRangeValues

  Specified by:
    `setValue` in interface `ControllerInterface`
  Overrides:
    `setValue` in class `Controller`
  Parameters:
    `theValue` - float
  Returns:
    Range
  See Also:
    `Range.setLowValue(float)`, `Range.setHighValue(float)`, `Range.setRangeValues(float, float)`

### setWidth

    public Range setWidth(int theValue)

  Overrides:
    `setWidth` in class `Controller`
  Returns:
    Controller

### showTickMarks

    public Range showTickMarks(boolean theFlag)

### snapToTickMarks

    public Range snapToTickMarks(boolean theFlag)

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `Controller`

### updateDisplayMode

    public Range updateDisplayMode(int theMode)

### updateInternalEvents

    public Range updateInternalEvents(processing.core.PApplet theApplet)

  Description copied from interface: `ControllerInterface`
  a method for putting input events like e.g. mouse or keyboard events and queries. this has been taken out of the draw method for better overwriting capability.

  Specified by:
    `updateInternalEvents` in interface `ControllerInterface`
  Overrides:
    `updateInternalEvents` in class `Controller`
  See Also:
    `ControllerInterface.updateInternalEvents`

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