public class Slider extends Controller<Slider>
/**
* 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.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 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()
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 : Slider addCallback(CallbackListener)
controlP5.Controller : Slider addListener(ControlListener)
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 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 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 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 setImages(PImage, PImage, PImage)
controlP5.Controller : Slider setImages(PImage, PImage, PImage, PImage)
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(PVector)
controlP5.Controller : Slider setPosition(float, 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 setValueLabel(String)
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[] 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)
*/
Modifier and Type | Field and Description |
---|---|
static int |
FIX |
static int |
FLEXIBLE |
autoSpacing
acceptClassList, ACTION_BROADCAST, ACTION_CLICK, ACTION_DRAG, ACTION_ENTER, ACTION_EXIT, ACTION_LEAVE, ACTION_MOVE, ACTION_PRESS, ACTION_PRESSED, ACTION_RELEASE, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, 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, 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, KEYCONTROL, LEFT, LEFT_OUTSIDE, LIME, LINE, LIST, LOAD, MAROON, MENU, METHOD, MOVE, MULTI, MULTIPLES, NAVY, OLIVE, ORANGE, OVER, P2D, P3D, PI, PRESSED, PRINT, PURPLE, RED, RELEASE, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, 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_RED, THEME_RETRO, THEME_WHITE, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TREE, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT, WHITE, YELLOW
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.
|
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.
|
add, addCallback, addListener, 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, 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, setId, setImage, setImage, setImages, setImages, setImages, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
parent, setColorLabel, setColorValue, setLabel
public static final int FIX
public static final int FLEXIBLE
public Slider(ControlP5 theControlP5, ControllerGroup<?> theParent, java.lang.String theName, float theMin, float theMax, float theDefaultValue, int theX, int theY, int theWidth, int theHeight)
public Slider(ControlP5 theControlP5, java.lang.String theName)
theControlP5
- theName
- /**
* 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;
}
}
public int getDirection()
public int getHandleSize()
public float getMax()
Controller
getMax
in class Controller<Slider>
public float getMin()
Controller
getMin
in class Controller<Slider>
public int getNumberOfTickMarks()
public int getSliderMode()
public TickMark getTickMark(int theIndex)
theIndex
- TickMark
public java.util.ArrayList<TickMark> getTickMarks()
public int getTriggerEvent()
public float getValue()
getValue
in interface ControllerInterface<Slider>
getValue
in class Controller<Slider>
Controller.getStringValue()
,
Controller.getArrayValue()
public float getValuePosition()
public void init()
init
in interface ControllerInterface<Slider>
init
in class Controller<Slider>
public Slider linebreak()
linebreak
in class Controller<Slider>
public Slider scrolled(int theRotationValue)
theRotationValue
- public Slider setColorTickMark(int theColor)
theColor
- public Slider setHandleSize(int theSize)
theSize
- public Slider setHeight(int theValue)
setHeight
in class Controller<Slider>
theValue
- intpublic Slider setMax(float theValue)
setMax
in class Controller<Slider>
theValue
- floatpublic Slider setMin(float theValue)
setMin
in class Controller<Slider>
theValue
- floatpublic Slider setNumberOfTickMarks(int theNumber)
theNumber
- public Slider setRange(float theMin, float theMax)
public Slider setScrollSensitivity(float theValue)
theValue
- @Deprecated public Slider setSensitivity(float theValue)
theValue
- setScrollSensitivity(float)
public Slider setSize(int theWidth, int theHeight)
setSize
in class Controller<Slider>
@Deprecated public void setSliderBarSize(int theSize)
public Slider setSliderMode(int theMode)
theMode
- intpublic Slider setTriggerEvent(int theEventID)
theEventID
- public Slider setValue(float theValue)
setValue
in interface ControllerInterface<Slider>
setValue
in class Controller<Slider>
theValue
- floatpublic Slider setWidth(int theValue)
setWidth
in class Controller<Slider>
theValue
- intpublic Slider showTickMarks(boolean theFlag)
theFlag
- public Slider shuffle()
public Slider snapToTickMarks(boolean theFlag)
theFlag
- public Slider update()
Controller
update
in interface ControllerInterface<Slider>
update
in class Controller<Slider>
Controller.setUpdate(boolean)
,
Controller.isUpdate()
public Slider updateDisplayMode(int theMode)
public Slider updateInternalEvents(processing.core.PApplet theApplet)
ControllerInterface
updateInternalEvents
in interface ControllerInterface<Slider>
updateInternalEvents
in class Controller<Slider>
ControllerInterface.updateInternalEvents
processing library controlP5 by Andreas Schlegel. (c) 2006-2014