public class Knob extends Controller<Knob>
/**
* ControlP5 Knob
*
*
* find a list of public methods available for the Knob 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 knobValue = 100;
Knob myKnobA;
Knob myKnobB;
void setup() {
size(700,400);
smooth();
noStroke();
cp5 = new ControlP5(this);
myKnobA = cp5.addKnob("knob")
.setRange(0,255)
.setValue(50)
.setPosition(100,70)
.setRadius(50)
.setDragDirection(Knob.VERTICAL)
;
myKnobB = cp5.addKnob("knobValue")
.setRange(0,255)
.setValue(220)
.setPosition(100,210)
.setRadius(50)
.setNumberOfTickMarks(10)
.setTickMarkLength(4)
.snapToTickMarks(true)
.setColorForeground(color(255))
.setColorBackground(color(0, 160, 100))
.setColorActive(color(255,255,0))
.setDragDirection(Knob.HORIZONTAL)
;
}
void draw() {
background(myColorBackground);
fill(knobValue);
rect(0,height/2,width,height/2);
fill(0,100);
rect(80,40,140,320);
}
void knob(int theValue) {
myColorBackground = color(theValue);
println("a knob event. setting background to "+theValue);
}
void keyPressed() {
switch(key) {
case('1'):myKnobA.setValue(180);break;
case('2'):myKnobB.setConstrained(false).hideTickMarks().snapToTickMarks(false);break;
case('3'):myKnobA.shuffle();myKnobB.shuffle();break;
}
}
/*
a list of all methods available for the Knob Controller
use ControlP5.printPublicMethodsFor(Knob.class);
to print the following list into the console.
You can find further details about class Knob in the javadoc.
Format:
ClassName : returnType methodName(parameter type)
controlP5.Knob : Knob setConstrained(boolean)
controlP5.Knob : Knob setDragDirection(int)
controlP5.Knob : Knob setMax(float)
controlP5.Knob : Knob setMin(float)
controlP5.Knob : Knob setNumberOfTickMarks(int)
controlP5.Knob : Knob setRadius(float)
controlP5.Knob : Knob setRange(float)
controlP5.Knob : Knob setResolution(float)
controlP5.Knob : Knob setScrollSensitivity(float)
controlP5.Knob : Knob setSensitivity(float)
controlP5.Knob : Knob setShowRange(boolean)
controlP5.Knob : Knob setStartAngle(float)
controlP5.Knob : Knob setTickMarkLength(int)
controlP5.Knob : Knob setTickMarkWeight(float)
controlP5.Knob : Knob setValue(float)
controlP5.Knob : Knob setViewStyle(int)
controlP5.Knob : Knob showTickMarks(boolean)
controlP5.Knob : Knob shuffle()
controlP5.Knob : Knob snapToTickMarks(boolean)
controlP5.Knob : Knob update()
controlP5.Knob : boolean isConstrained()
controlP5.Knob : boolean isShowRange()
controlP5.Knob : boolean isShowTickMarks()
controlP5.Knob : float getAngle()
controlP5.Knob : float getRadius()
controlP5.Knob : float getRange()
controlP5.Knob : float getResolution()
controlP5.Knob : float getStartAngle()
controlP5.Knob : float getTickMarkWeight()
controlP5.Knob : float getValue()
controlP5.Knob : int getDragDirection()
controlP5.Knob : int getNumberOfTickMarks()
controlP5.Knob : int getTickMarkLength()
controlP5.Knob : int getViewStyle()
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 : Knob addCallback(CallbackListener)
controlP5.Controller : Knob addListener(ControlListener)
controlP5.Controller : Knob bringToFront()
controlP5.Controller : Knob bringToFront(ControllerInterface)
controlP5.Controller : Knob hide()
controlP5.Controller : Knob linebreak()
controlP5.Controller : Knob listen(boolean)
controlP5.Controller : Knob lock()
controlP5.Controller : Knob plugTo(Object)
controlP5.Controller : Knob plugTo(Object, String)
controlP5.Controller : Knob plugTo(Object[])
controlP5.Controller : Knob plugTo(Object[], String)
controlP5.Controller : Knob registerProperty(String)
controlP5.Controller : Knob registerProperty(String, String)
controlP5.Controller : Knob registerTooltip(String)
controlP5.Controller : Knob removeBehavior()
controlP5.Controller : Knob removeCallback()
controlP5.Controller : Knob removeCallback(CallbackListener)
controlP5.Controller : Knob removeListener(ControlListener)
controlP5.Controller : Knob removeProperty(String)
controlP5.Controller : Knob removeProperty(String, String)
controlP5.Controller : Knob setArrayValue(float[])
controlP5.Controller : Knob setArrayValue(int, float)
controlP5.Controller : Knob setBehavior(ControlBehavior)
controlP5.Controller : Knob setBroadcast(boolean)
controlP5.Controller : Knob setCaptionLabel(String)
controlP5.Controller : Knob setColor(CColor)
controlP5.Controller : Knob setColorActive(int)
controlP5.Controller : Knob setColorBackground(int)
controlP5.Controller : Knob setColorCaptionLabel(int)
controlP5.Controller : Knob setColorForeground(int)
controlP5.Controller : Knob setColorValueLabel(int)
controlP5.Controller : Knob setDecimalPrecision(int)
controlP5.Controller : Knob setDefaultValue(float)
controlP5.Controller : Knob setHeight(int)
controlP5.Controller : Knob setId(int)
controlP5.Controller : Knob setImages(PImage, PImage, PImage)
controlP5.Controller : Knob setImages(PImage, PImage, PImage, PImage)
controlP5.Controller : Knob setLabelVisible(boolean)
controlP5.Controller : Knob setLock(boolean)
controlP5.Controller : Knob setMax(float)
controlP5.Controller : Knob setMin(float)
controlP5.Controller : Knob setMouseOver(boolean)
controlP5.Controller : Knob setMoveable(boolean)
controlP5.Controller : Knob setPosition(PVector)
controlP5.Controller : Knob setPosition(float, float)
controlP5.Controller : Knob setSize(PImage)
controlP5.Controller : Knob setSize(int, int)
controlP5.Controller : Knob setStringValue(String)
controlP5.Controller : Knob setUpdate(boolean)
controlP5.Controller : Knob setValueLabel(String)
controlP5.Controller : Knob setView(ControllerView)
controlP5.Controller : Knob setVisible(boolean)
controlP5.Controller : Knob setWidth(int)
controlP5.Controller : Knob show()
controlP5.Controller : Knob unlock()
controlP5.Controller : Knob unplugFrom(Object)
controlP5.Controller : Knob unplugFrom(Object[])
controlP5.Controller : Knob unregisterTooltip()
controlP5.Controller : Knob update()
controlP5.Controller : Knob updateSize()
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 : 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 |
autoHeight |
static int |
autoWidth |
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 |
---|
Knob(ControlP5 theControlP5,
ControllerGroup<?> theParent,
java.lang.String theName,
float theMin,
float theMax,
float theDefaultValue,
int theX,
int theY,
int theWidth) |
Knob(ControlP5 theControlP5,
java.lang.String theName)
Convenience constructor to extend Knob.
|
Modifier and Type | Method and Description |
---|---|
float |
getAngle() |
float |
getAngleRange() |
int |
getDragDirection()
Gets the drag direction which is either Controller.HORIZONTAL or Controller.VERTICAL.
|
int |
getNumberOfTickMarks() |
float |
getRadius() |
float |
getResolution() |
float |
getStartAngle()
get the start angle, 0 is at 3 o'clock.
|
int |
getTickMarkLength() |
float |
getTickMarkWeight() |
float |
getValue() |
int |
getViewStyle() |
Knob |
hideTickMarks() |
boolean |
isConstrained() |
boolean |
isShowAngleRange() |
boolean |
isShowTickMarks() |
void |
mousePressed() |
void |
mouseReleasedOutside() |
Knob |
scrolled(int theRotationValue)
Changes the value of the knob when hovering and using the mouse wheel or the scroll function
of a multi-touch track pad.
|
Knob |
setAngleRange(float theRange)
set the range in between which the know operates.
|
Knob |
setConstrained(boolean theValue) |
Knob |
setDragDirection(int theValue)
Sets the drag direction, when controlling a knob, parameter is either Controller.HORIZONTAL
or Controller.VERTICAL.
|
Knob |
setMax(float theValue)
sets the maximum value of the Controller.
|
Knob |
setMin(float theValue)
sets the minimum value of the Controller.
|
Knob |
setNumberOfTickMarks(int theNumber) |
Knob |
setRadius(float theValue) |
Knob |
setRange(float theMin,
float theMax) |
Knob |
setResolution(float theValue)
resolution is a sensitivity value when dragging a knob.
|
Knob |
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.
|
Knob |
setShowAngleRange(boolean theValue) |
Knob |
setSize(int theWidth,
int theHeight) |
Knob |
setStartAngle(float theAngle)
The start angle is a value between 0 and TWO_PI.
|
Knob |
setTickMarkLength(int theLength) |
Knob |
setTickMarkWeight(float theWeight) |
Knob |
setValue(float theValue) |
Knob |
setViewStyle(int theStyle)
set the display style of a knob.
|
Knob |
showTickMarks() |
Knob |
shuffle()
Assigns a random value to the controller.
|
Knob |
snapToTickMarks(boolean theFlag) |
Knob |
update()
updates the value of the controller without having to set the value explicitly.
|
Knob |
updateDisplayMode(int theMode) |
Knob |
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, getMax, getMin, getName, getParent, getPickingColor, getPointer, getPosition, getProperty, getProperty, getStringValue, getTab, getValueLabel, getView, getWidth, getWindow, hide, init, isActive, isBroadcast, isInside, isLabelVisible, isListening, isLock, isMouseOver, isMousePressed, isMoveable, isUpdate, isUserInteraction, 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, setMouseOver, setMousePressed, setMoveable, setParent, setPosition, setPosition, setSize, setStringValue, setTab, setTab, setUpdate, setUserInteraction, setValueLabel, setValueSelf, setView, setView, setVisible, setWidth, show, toString, unlock, unplugFrom, unplugFrom, unregisterTooltip, updateAbsolutePosition, updateEvents, updateSize
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
parent, setColorLabel, setColorValue, setLabel
public Knob(ControlP5 theControlP5, ControllerGroup<?> theParent, java.lang.String theName, float theMin, float theMax, float theDefaultValue, int theX, int theY, int theWidth)
public Knob(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 float getAngle()
public float getAngleRange()
public int getDragDirection()
public int getNumberOfTickMarks()
public float getRadius()
public float getResolution()
public float getStartAngle()
public int getTickMarkLength()
public float getTickMarkWeight()
public float getValue()
getValue
in interface ControllerInterface<Knob>
getValue
in class Controller<Knob>
Controller.getStringValue()
,
Controller.getArrayValue()
public int getViewStyle()
public Knob hideTickMarks()
public boolean isConstrained()
public boolean isShowAngleRange()
public boolean isShowTickMarks()
public void mousePressed()
public void mouseReleasedOutside()
public Knob scrolled(int theRotationValue)
public Knob setAngleRange(float theRange)
public Knob setConstrained(boolean theValue)
public Knob setDragDirection(int theValue)
theValue
- must be Controller.HORIZONTAL or Controller.VERTICALpublic Knob setMax(float theValue)
Controller
setMax
in class Controller<Knob>
theValue
- floatpublic Knob setMin(float theValue)
Controller
setMin
in class Controller<Knob>
theValue
- floatpublic Knob setNumberOfTickMarks(int theNumber)
public Knob setRadius(float theValue)
public Knob setRange(float theMin, float theMax)
public Knob setResolution(float theValue)
public Knob setScrollSensitivity(float theValue)
theValue
- public Knob setShowAngleRange(boolean theValue)
public Knob setSize(int theWidth, int theHeight)
setSize
in class Controller<Knob>
public Knob setStartAngle(float theAngle)
public Knob setTickMarkLength(int theLength)
public Knob setTickMarkWeight(float theWeight)
public Knob setValue(float theValue)
setValue
in interface ControllerInterface<Knob>
setValue
in class Controller<Knob>
theValue
- floatpublic Knob setViewStyle(int theStyle)
theStyle
- use Knob.LINE, Knob.ELLIPSE or Knob.ARCpublic Knob showTickMarks()
public Knob shuffle()
public Knob snapToTickMarks(boolean theFlag)
public Knob update()
Controller
update
in interface ControllerInterface<Knob>
update
in class Controller<Knob>
Controller.setUpdate(boolean)
,
Controller.isUpdate()
public Knob updateDisplayMode(int theMode)
public Knob updateInternalEvents(processing.core.PApplet theApplet)
ControllerInterface
updateInternalEvents
in interface ControllerInterface<Knob>
updateInternalEvents
in class Controller<Knob>
ControllerInterface.updateInternalEvents
processing library controlP5 by Andreas Schlegel. (c) 2006-2014