controlP5

## Class Slider

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

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

      public class Slider
      extends Controller<Slider>

  A slider is either used horizontally or vertically. when adding a slider to controlP5, the width is compared against the height. if the width is bigger, you get a horizontal slider, is the height bigger, you get a vertical slider. a slider can have a fixed slider handle (one end of the slider is fixed to the left or bottom side of the controller), or a flexible slider handle (a handle you can drag).
  +Example
    `

        /**
         * ControlP5 Slider. Horizontal and vertical sliders,
         * with and without tick marks and snap-to-tick behavior.
         * by andreas schlegel, 2010
         */

        /**
        * ControlP5 Slider
        *
        * Horizontal and vertical sliders,
        * With and without tick marks and snap-to-tick behavior.
        *
        * find a list of public methods available for the Slider Controller
        * at the bottom of this sketch.
        *
        * by Andreas Schlegel, 2012
        * www.sojamo.de/libraries/controlp5
        *
        */

        import controlP5.*;

        ControlP5 cp5;
        int myColor = color(0,0,0);

        int sliderValue = 100;
        int sliderTicks1 = 100;
        int sliderTicks2 = 30;
        Slider abc;

        void setup() {
          size(700,400);
          noStroke();
          cp5 = new ControlP5(this);

          // add a horizontal sliders, the value of this slider will be linked
          // to variable 'sliderValue'
          cp5.addSlider("sliderValue")
             .setPosition(100,50)
             .setRange(0,255)
             ;

          // create another slider with tick marks, now without
          // default value, the initial value will be set according to
          // the value of variable sliderTicks2 then.
          cp5.addSlider("sliderTicks1")
             .setPosition(100,140)
             .setSize(20,100)
             .setRange(0,255)
             .setNumberOfTickMarks(5)
             ;

          // add a vertical slider
          cp5.addSlider("slider")
             .setPosition(100,305)
             .setSize(200,20)
             .setRange(0,200)
             .setValue(128)
             ;

          // reposition the Label for controller 'slider'
          cp5.getController("slider").getValueLabel().align(ControlP5.LEFT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);
          cp5.getController("slider").getCaptionLabel().align(ControlP5.RIGHT, ControlP5.BOTTOM_OUTSIDE).setPaddingX(0);

          cp5.addSlider("sliderTicks2")
             .setPosition(100,370)
             .setWidth(400)
             .setRange(255,0) // values can range from big to small as well
             .setValue(128)
             .setNumberOfTickMarks(7)
             .setSliderMode(Slider.FLEXIBLE)
             ;
          // use Slider.FIX or Slider.FLEXIBLE to change the slider handle
          // by default it is Slider.FIX

        }

        void draw() {
          background(sliderTicks1);

          fill(sliderValue);
          rect(0,0,width,100);

          fill(myColor);
          rect(0,280,width,70);

          fill(sliderTicks2);
          rect(0,350,width,50);
        }

        void slider(float theColor) {
          myColor = color(theColor);
          println("a slider event. setting background to "+theColor);
        }

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

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

        You can find further details about class Slider 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 : Slider addCallback(CallbackListener)
        controlP5.Controller : Slider addListener(ControlListener)
        controlP5.Controller : Slider addListenerFor(int, CallbackListener)
        controlP5.Controller : Slider align(int, int, int, int)
        controlP5.Controller : Slider bringToFront()
        controlP5.Controller : Slider bringToFront(ControllerInterface)
        controlP5.Controller : Slider hide()
        controlP5.Controller : Slider linebreak()
        controlP5.Controller : Slider listen(boolean)
        controlP5.Controller : Slider lock()
        controlP5.Controller : Slider onChange(CallbackListener)
        controlP5.Controller : Slider onClick(CallbackListener)
        controlP5.Controller : Slider onDoublePress(CallbackListener)
        controlP5.Controller : Slider onDrag(CallbackListener)
        controlP5.Controller : Slider onDraw(ControllerView)
        controlP5.Controller : Slider onEndDrag(CallbackListener)
        controlP5.Controller : Slider onEnter(CallbackListener)
        controlP5.Controller : Slider onLeave(CallbackListener)
        controlP5.Controller : Slider onMove(CallbackListener)
        controlP5.Controller : Slider onPress(CallbackListener)
        controlP5.Controller : Slider onRelease(CallbackListener)
        controlP5.Controller : Slider onReleaseOutside(CallbackListener)
        controlP5.Controller : Slider onStartDrag(CallbackListener)
        controlP5.Controller : Slider onWheel(CallbackListener)
        controlP5.Controller : Slider plugTo(Object)
        controlP5.Controller : Slider plugTo(Object, String)
        controlP5.Controller : Slider plugTo(Object[])
        controlP5.Controller : Slider plugTo(Object[], String)
        controlP5.Controller : Slider registerProperty(String)
        controlP5.Controller : Slider registerProperty(String, String)
        controlP5.Controller : Slider registerTooltip(String)
        controlP5.Controller : Slider removeBehavior()
        controlP5.Controller : Slider removeCallback()
        controlP5.Controller : Slider removeCallback(CallbackListener)
        controlP5.Controller : Slider removeListener(ControlListener)
        controlP5.Controller : Slider removeListenerFor(int, CallbackListener)
        controlP5.Controller : Slider removeListenersFor(int)
        controlP5.Controller : Slider removeProperty(String)
        controlP5.Controller : Slider removeProperty(String, String)
        controlP5.Controller : Slider setArrayValue(float[])
        controlP5.Controller : Slider setArrayValue(int, float)
        controlP5.Controller : Slider setBehavior(ControlBehavior)
        controlP5.Controller : Slider setBroadcast(boolean)
        controlP5.Controller : Slider setCaptionLabel(String)
        controlP5.Controller : Slider setColor(CColor)
        controlP5.Controller : Slider setColorActive(int)
        controlP5.Controller : Slider setColorBackground(int)
        controlP5.Controller : Slider setColorCaptionLabel(int)
        controlP5.Controller : Slider setColorForeground(int)
        controlP5.Controller : Slider setColorLabel(int)
        controlP5.Controller : Slider setColorValue(int)
        controlP5.Controller : Slider setColorValueLabel(int)
        controlP5.Controller : Slider setDecimalPrecision(int)
        controlP5.Controller : Slider setDefaultValue(float)
        controlP5.Controller : Slider setHeight(int)
        controlP5.Controller : Slider setId(int)
        controlP5.Controller : Slider setImage(PImage)
        controlP5.Controller : Slider setImage(PImage, int)
        controlP5.Controller : Slider setImages(PImage, PImage, PImage)
        controlP5.Controller : Slider setImages(PImage, PImage, PImage, PImage)
        controlP5.Controller : Slider setLabel(String)
        controlP5.Controller : Slider setLabelVisible(boolean)
        controlP5.Controller : Slider setLock(boolean)
        controlP5.Controller : Slider setMax(float)
        controlP5.Controller : Slider setMin(float)
        controlP5.Controller : Slider setMouseOver(boolean)
        controlP5.Controller : Slider setMoveable(boolean)
        controlP5.Controller : Slider setPosition(float, float)
        controlP5.Controller : Slider setPosition(float[])
        controlP5.Controller : Slider setSize(PImage)
        controlP5.Controller : Slider setSize(int, int)
        controlP5.Controller : Slider setStringValue(String)
        controlP5.Controller : Slider setUpdate(boolean)
        controlP5.Controller : Slider setValue(float)
        controlP5.Controller : Slider setValueLabel(String)
        controlP5.Controller : Slider setValueSelf(float)
        controlP5.Controller : Slider setView(ControllerView)
        controlP5.Controller : Slider setVisible(boolean)
        controlP5.Controller : Slider setWidth(int)
        controlP5.Controller : Slider show()
        controlP5.Controller : Slider unlock()
        controlP5.Controller : Slider unplugFrom(Object)
        controlP5.Controller : Slider unplugFrom(Object[])
        controlP5.Controller : Slider unregisterTooltip()
        controlP5.Controller : Slider update()
        controlP5.Controller : Slider 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[] 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.Slider : ArrayList getTickMarks()
        controlP5.Slider : Slider setColorTickMark(int)
        controlP5.Slider : Slider setHandleSize(int)
        controlP5.Slider : Slider setHeight(int)
        controlP5.Slider : Slider setMax(float)
        controlP5.Slider : Slider setMin(float)
        controlP5.Slider : Slider setNumberOfTickMarks(int)
        controlP5.Slider : Slider setRange(float, float)
        controlP5.Slider : Slider setScrollSensitivity(float)
        controlP5.Slider : Slider setSize(int, int)
        controlP5.Slider : Slider setSliderMode(int)
        controlP5.Slider : Slider setTriggerEvent(int)
        controlP5.Slider : Slider setValue(float)
        controlP5.Slider : Slider setWidth(int)
        controlP5.Slider : Slider showTickMarks(boolean)
        controlP5.Slider : Slider shuffle()
        controlP5.Slider : Slider snapToTickMarks(boolean)
        controlP5.Slider : Slider update()
        controlP5.Slider : TickMark getTickMark(int)
        controlP5.Slider : float getMax()
        controlP5.Slider : float getMin()
        controlP5.Slider : float getValue()
        controlP5.Slider : float getValuePosition()
        controlP5.Slider : int getDirection()
        controlP5.Slider : int getHandleSize()
        controlP5.Slider : int getNumberOfTickMarks()
        controlP5.Slider : int getSliderMode()
        controlP5.Slider : int getTriggerEvent()
        java.lang.Object : String toString()
        java.lang.Object : boolean equals(Object)

        created: 2015/03/24 12:25:46

        */

    `

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `FIX`
    `static int` | `FLEXIBLE`

    - ### Fields inherited from class controlP5.Controller

      `autoSpacing`

    - ### 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
    `Slider(ControlP5 theControlP5, ControllerGroup<?> theParent, java.lang.String theName, float theMin, float theMax, float theDefaultValue, int theX, int theY, int theWidth, int theHeight)`
    `Slider(ControlP5 theControlP5, java.lang.String theName)` Convenience constructor to extend Slider.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getDirection()`
    `int` | `getHandleSize()`
    `float` | `getMax()` returns the maximum value of the controller.
    `float` | `getMin()` returns the minimum value of the controller.
    `int` | `getNumberOfTickMarks()` returns the amount of tickmarks available for a slider
    `int` | `getSliderMode()`
    `TickMark` | `getTickMark(int theIndex)` returns an instance of a tickmark by index.
    `java.util.ArrayList<TickMark>` | `getTickMarks()` returns an ArrayList of available tick marks for a slider.
    `int` | `getTriggerEvent()` returns the current trigger event which is either Slider.PRESSED or Slider.RELEASE
    `float` | `getValue()`
    `float` | `getValuePosition()`
    `void` | `init()`
    `Slider` | `linebreak()`
    `Slider` | `scrolled(int theRotationValue)` changes the value of the slider when hovering and using the mouse wheel or the scroll function of a multi-touch track pad.
    `Slider` | `setColorTickMark(int theColor)` sets the color of tick marks if enabled.
    `Slider` | `setHandleSize(int theSize)` sets the size of the Slider handle, by default it is set to either the width or height of the slider.
    `Slider` | `setHeight(int theValue)` set the height of the slider.
    `Slider` | `setMax(float theValue)` set the maximum value of the slider.
    `Slider` | `setMin(float theValue)` sets the minimum value of the slider.
    `Slider` | `setNumberOfTickMarks(int theNumber)` sets the number of tickmarks for a slider, by default tick marks are turned off.
    `Slider` | `setRange(float theMin, float theMax)`
    `Slider` | `setScrollSensitivity(float theValue)` sets the sensitivity for the scroll behavior when using the mouse wheel or the scroll function of a multi-touch track pad.
    `Slider` | `setSensitivity(float theValue)` Deprecated.
    `Slider` | `setSize(int theWidth, int theHeight)`
    `void` | `setSliderBarSize(int theSize)` Deprecated.
    `Slider` | `setSliderMode(int theMode)` use the slider mode to set the mode of the slider bar, which can be Slider.FLEXIBLE or Slider.FIX
    `Slider` | `setTriggerEvent(int theEventID)` the trigger event is set to Slider.PRESSED by default but can be changed to Slider.RELEASE so that events are triggered when the slider is released.
    `Slider` | `setValue(float theValue)` set the value of the slider.
    `Slider` | `setWidth(int theValue)` set the width of the slider.
    `Slider` | `showTickMarks(boolean theFlag)` shows or hides tickmarks for a slider
    `Slider` | `shuffle()` assigns a random value to the slider.
    `Slider` | `snapToTickMarks(boolean theFlag)` enables or disables snap to tick marks.
    `Slider` | `update()` updates the value of the controller without having to set the value explicitly.
    `Slider` | `updateDisplayMode(int theMode)`
    `Slider` | `updateInternalEvents(processing.core.PApplet theApplet)` a method for putting input events like e.g.

    - ### Methods inherited from class controlP5.Controller

      `add, addCallback, addListener, addListenerFor, align, bringToFront, bringToFront, changeValue, continuousUpdateEvents, draw, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getBehavior, getCaptionLabel, getColor, getControllerPlugList, getControlWindow, getDecimalPrecision, getDefaultValue, getHeight, getId, getInfo, getLabel, getName, getParent, getPickingColor, getPointer, getPosition, getProperty, getProperty, getStringValue, getTab, getValueLabel, getView, getWidth, getWindow, hide, 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, setFont, setFont, setGroup, setGroup, setId, setImage, setImage, setImages, setImages, setImages, setLabel, setLabelVisible, setLock, setMouseOver, setMousePressed, setMoveable, setParent, setPosition, setPosition, setSize, setStringValue, setTab, setTab, setUpdate, setUserInteraction, setValueLabel, setValueSelf, setView, setView, setVisible, show, toString, unlock, unplugFrom, unplugFrom, unregisterTooltip, updateAbsolutePosition, updateEvents, updateSize, x, y`

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

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

- - ### Field Detail

    - #### FIX

          public static final int FIX

      See Also:
        Constant Field Values

    - #### FLEXIBLE

          public static final int FLEXIBLE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Slider

          public Slider(ControlP5 theControlP5,
                        ControllerGroup<?> theParent,
                        java.lang.String theName,
                        float theMin,
                        float theMax,
                        float theDefaultValue,
                        int theX,
                        int theY,
                        int theWidth,
                        int theHeight)

    - #### Slider

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

      Convenience constructor to extend Slider.
      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;
              }
            }

        `

  - ### Method Detail

    - #### getDirection

          public int getDirection()

    - #### getHandleSize

          public int getHandleSize()

    - #### getMax

          public float getMax()

      Description copied from class: `Controller`
      returns the maximum value of the controller.
      Overrides:
        `getMax` in class `Controller<Slider>`
      Returns:
        float

    - #### getMin

          public float getMin()

      Description copied from class: `Controller`
      returns the minimum value of the controller.
      Overrides:
        `getMin` in class `Controller<Slider>`
      Returns:
        float

    - #### getNumberOfTickMarks

          public int getNumberOfTickMarks()

      returns the amount of tickmarks available for a slider
      Returns:
        int

    - #### getSliderMode

          public int getSliderMode()

    - #### getTickMark

          public TickMark getTickMark(int theIndex)

      returns an instance of a tickmark by index.
      Parameters:
        `theIndex` -
      Returns:
      See Also:
        `TickMark`

    - #### getTickMarks

          public java.util.ArrayList<TickMark> getTickMarks()

      returns an ArrayList of available tick marks for a slider.
      Returns:
        ArrayList

    - #### getTriggerEvent

          public int getTriggerEvent()

      returns the current trigger event which is either Slider.PRESSED or Slider.RELEASE
      Returns:
        int

    - #### getValue

          public float getValue()

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

    - #### getValuePosition

          public float getValuePosition()

    - #### init

          public void init()

      Specified by:
        `init` in interface `ControllerInterface<Slider>`
      Overrides:
        `init` in class `Controller<Slider>`

    - #### linebreak

          public Slider linebreak()

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

    - #### scrolled

          public Slider scrolled(int theRotationValue)

      changes the value of the slider when hovering and using the mouse wheel or the scroll function of a multi-touch track pad.
      Parameters:
        `theRotationValue` -
      Returns:
        Slider

    - #### setColorTickMark

          public Slider setColorTickMark(int theColor)

      sets the color of tick marks if enabled. by default the color is set to white.
      Parameters:
        `theColor` -
      Returns:
        Slider

    - #### setHandleSize

          public Slider setHandleSize(int theSize)

      sets the size of the Slider handle, by default it is set to either the width or height of the slider.
      Parameters:
        `theSize` -

    - #### setHeight

          public Slider setHeight(int theValue)

      set the height of the slider.
      Overrides:
        `setHeight` in class `Controller<Slider>`
      Parameters:
        `theValue` - int
      Returns:
        Controller

    - #### setMax

          public Slider setMax(float theValue)

      set the maximum value of the slider.
      Overrides:
        `setMax` in class `Controller<Slider>`
      Parameters:
        `theValue` - float
      Returns:
        Controller

    - #### setMin

          public Slider setMin(float theValue)

      sets the minimum value of the slider.
      Overrides:
        `setMin` in class `Controller<Slider>`
      Parameters:
        `theValue` - float
      Returns:
        Controller

    - #### setNumberOfTickMarks

          public Slider setNumberOfTickMarks(int theNumber)

      sets the number of tickmarks for a slider, by default tick marks are turned off.
      Parameters:
        `theNumber` -

    - #### setRange

          public Slider setRange(float theMin,
                                 float theMax)

    - #### setScrollSensitivity

          public Slider setScrollSensitivity(float theValue)

      sets the sensitivity for the scroll behavior when using the mouse wheel or the scroll function of a multi-touch track pad. The smaller the value (closer to 0) the higher the sensitivity. by default this value is set to 0.1
      Parameters:
        `theValue` -
      Returns:
        Slider

    - #### setSensitivity

          @Deprecated
          public Slider setSensitivity(float theValue)

      Deprecated.
      Parameters:
        `theValue` -
      Returns:
        Slider
      See Also:
        `setScrollSensitivity(float)`

    - #### setSize

          public Slider setSize(int theWidth,
                                int theHeight)

      Overrides:
        `setSize` in class `Controller<Slider>`
      Returns:
        Controller

    - #### setSliderBarSize

          @Deprecated
          public void setSliderBarSize(int theSize)

      Deprecated.

    - #### setSliderMode

          public Slider setSliderMode(int theMode)

      use the slider mode to set the mode of the slider bar, which can be Slider.FLEXIBLE or Slider.FIX
      Parameters:
        `theMode` - int

    - #### setTriggerEvent

          public Slider setTriggerEvent(int theEventID)

      the trigger event is set to Slider.PRESSED by default but can be changed to Slider.RELEASE so that events are triggered when the slider is released.
      Parameters:
        `theEventID` -

    - #### setValue

          public Slider setValue(float theValue)

      set the value of the slider.
      Specified by:
        `setValue` in interface `ControllerInterface<Slider>`
      Overrides:
        `setValue` in class `Controller<Slider>`
      Parameters:
        `theValue` - float

    - #### setWidth

          public Slider setWidth(int theValue)

      set the width of the slider.
      Overrides:
        `setWidth` in class `Controller<Slider>`
      Parameters:
        `theValue` - int
      Returns:
        Controller

    - #### showTickMarks

          public Slider showTickMarks(boolean theFlag)

      shows or hides tickmarks for a slider
      Parameters:
        `theFlag` -
      Returns:
        Slider

    - #### shuffle

          public Slider shuffle()

      assigns a random value to the slider.

    - #### snapToTickMarks

          public Slider snapToTickMarks(boolean theFlag)

      enables or disables snap to tick marks.
      Parameters:
        `theFlag` -
      Returns:
        Slider

    - #### update

          public Slider update()

      Description copied from class: `Controller`
      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<Slider>`
      Overrides:
        `update` in class `Controller<Slider>`
      Returns:
        Controller
      See Also:
        `Controller.setUpdate(boolean)`, `Controller.isUpdate()`

    - #### updateDisplayMode

          public Slider updateDisplayMode(int theMode)

    - #### updateInternalEvents

          public Slider 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<Slider>`
      Overrides:
        `updateInternalEvents` in class `Controller<Slider>`
      See Also:
        `ControllerInterface.updateInternalEvents`

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