|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectcontrolP5.ControllerGroup
controlP5.ControlGroup
controlP5.ListBox
public class ListBox
A ListBox is a list of vertically aligned items which can be scrolled if required.
DropdownList
/**
* ControlP5 ListBox
*
* find a list of public methods available for the ListBox Controller
* at the bottom of this sketch.
* use the scrollwheel, up or down cursors to scroll through
* a listbox when hovering with the mouse.
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlp5
*
*/
import controlP5.*;
ControlP5 cp5;
ListBox l;
int cnt = 0;
void setup() {
size(700, 400);
cp5 = new ControlP5(this);
l = cp5.addListBox("myList")
.setPosition(100, 100)
.setSize(120, 120)
.setItemHeight(15)
.setBarHeight(15)
.setColorBackground(color(40, 128))
.setColorActive(color(255, 128))
;
l.captionLabel().toUpperCase(true);
l.captionLabel().set("A Listbox");
l.captionLabel().setColor(0xffff0000);
l.captionLabel().style().marginTop = 3;
l.valueLabel().style().marginTop = 3;
for (int i=0;i<80;i++) {
ListBoxItem lbi = l.addItem("item "+i, i);
lbi.setColorBackground(0xffff0000);
}
}
void keyPressed() {
if (key=='0') {
// will activate the listbox item with value 5
l.setValue(5);
}
if (key=='1') {
// set the height of a listBox should always be a multiple of itemHeight
l.setHeight(210);
}
else if (key=='2') {
// set the height of a listBox should always be a multiple of itemHeight
l.setHeight(120);
}
else if (key=='3') {
// set the width of a listBox
l.setWidth(200);
}
else if (key=='i') {
// set the height of a listBoxItem, should always be a fraction of the listBox
l.setItemHeight(30);
}
else if (key=='u') {
// set the height of a listBoxItem, should always be a fraction of the listBox
l.setItemHeight(10);
l.setBackgroundColor(color(100, 0, 0));
}
else if (key=='a') {
int n = (int)(random(100000));
l.addItem("item "+n, n);
}
else if (key=='d') {
l.removeItem("item "+cnt);
cnt++;
} else if (key=='c') {
l.clear();
}
}
void controlEvent(ControlEvent theEvent) {
// ListBox is if type ControlGroup.
// 1 controlEvent will be executed, where the event
// originates from a ControlGroup. therefore
// you need to check the Event with
// if (theEvent.isGroup())
// to avoid an error message from controlP5.
if (theEvent.isGroup()) {
// an event from a group e.g. scrollList
println(theEvent.group().value()+" from "+theEvent.group());
}
if(theEvent.isGroup() && theEvent.name().equals("myList")){
int test = (int)theEvent.group().value();
println("test "+test);
}
}
void draw() {
background(128);
// scroll the scroll List according to the mouseX position
// when holding down SPACE.
if (keyPressed && key==' ') {
//l.scroll(mouseX/((float)width)); // scroll taks values between 0 and 1
}
if (keyPressed && key==' ') {
l.setWidth(mouseX);
}
}
/*
a list of all methods available for the ListBox Controller
use ControlP5.printPublicMethodsFor(ListBox.class);
to print the following list into the console.
You can find further details about class ListBox in the javadoc.
Format:
ClassName : returnType methodName(parameter type)
controlP5.ControlGroup : ControlGroup activateEvent(boolean)
controlP5.ControlGroup : ControlGroup addListener(ControlListener)
controlP5.ControlGroup : ControlGroup hideBar()
controlP5.ControlGroup : ControlGroup removeListener(ControlListener)
controlP5.ControlGroup : ControlGroup setBackgroundColor(int)
controlP5.ControlGroup : ControlGroup setBackgroundHeight(int)
controlP5.ControlGroup : ControlGroup setBarHeight(int)
controlP5.ControlGroup : ControlGroup showBar()
controlP5.ControlGroup : ControllerGroup updateInternalEvents(PApplet)
controlP5.ControlGroup : String info()
controlP5.ControlGroup : String toString()
controlP5.ControlGroup : boolean isBarVisible()
controlP5.ControlGroup : int getBackgroundHeight()
controlP5.ControlGroup : int getBarHeight()
controlP5.ControlGroup : int listenerSize()
controlP5.ControllerGroup : CColor getColor()
controlP5.ControllerGroup : ControlWindow getWindow()
controlP5.ControllerGroup : ControlWindowCanvas addCanvas(ControlWindowCanvas)
controlP5.ControllerGroup : Controller getController(String)
controlP5.ControllerGroup : ControllerGroup add(ControllerInterface)
controlP5.ControllerGroup : ControllerGroup close()
controlP5.ControllerGroup : ControllerGroup disableCollapse()
controlP5.ControllerGroup : ControllerGroup enableCollapse()
controlP5.ControllerGroup : ControllerGroup hide()
controlP5.ControllerGroup : ControllerGroup moveTo(ControlWindow)
controlP5.ControllerGroup : ControllerGroup open()
controlP5.ControllerGroup : ControllerGroup registerProperty(String)
controlP5.ControllerGroup : ControllerGroup registerProperty(String, String)
controlP5.ControllerGroup : ControllerGroup remove(CDrawable)
controlP5.ControllerGroup : ControllerGroup remove(ControllerInterface)
controlP5.ControllerGroup : ControllerGroup removeCanvas(ControlWindowCanvas)
controlP5.ControllerGroup : ControllerGroup removeProperty(String)
controlP5.ControllerGroup : ControllerGroup removeProperty(String, String)
controlP5.ControllerGroup : ControllerGroup setAddress(String)
controlP5.ControllerGroup : ControllerGroup setArrayValue(float[])
controlP5.ControllerGroup : ControllerGroup setColor(CColor)
controlP5.ControllerGroup : ControllerGroup setColorActive(int)
controlP5.ControllerGroup : ControllerGroup setColorBackground(int)
controlP5.ControllerGroup : ControllerGroup setColorForeground(int)
controlP5.ControllerGroup : ControllerGroup setColorLabel(int)
controlP5.ControllerGroup : ControllerGroup setColorValue(int)
controlP5.ControllerGroup : ControllerGroup setHeight(int)
controlP5.ControllerGroup : ControllerGroup setId(int)
controlP5.ControllerGroup : ControllerGroup setLabel(String)
controlP5.ControllerGroup : ControllerGroup setMoveable(boolean)
controlP5.ControllerGroup : ControllerGroup setOpen(boolean)
controlP5.ControllerGroup : ControllerGroup setPosition(PVector)
controlP5.ControllerGroup : ControllerGroup setPosition(float, float)
controlP5.ControllerGroup : ControllerGroup setStringValue(String)
controlP5.ControllerGroup : ControllerGroup setUpdate(boolean)
controlP5.ControllerGroup : ControllerGroup setValue(float)
controlP5.ControllerGroup : ControllerGroup setVisible(boolean)
controlP5.ControllerGroup : ControllerGroup setWidth(int)
controlP5.ControllerGroup : ControllerGroup show()
controlP5.ControllerGroup : ControllerGroup update()
controlP5.ControllerGroup : ControllerGroup updateAbsolutePosition()
controlP5.ControllerGroup : ControllerProperty getProperty(String)
controlP5.ControllerGroup : ControllerProperty getProperty(String, String)
controlP5.ControllerGroup : Label captionLabel()
controlP5.ControllerGroup : Label valueLabel()
controlP5.ControllerGroup : PVector getPosition()
controlP5.ControllerGroup : String getAddress()
controlP5.ControllerGroup : String getName()
controlP5.ControllerGroup : String getStringValue()
controlP5.ControllerGroup : String info()
controlP5.ControllerGroup : String toString()
controlP5.ControllerGroup : Tab getTab()
controlP5.ControllerGroup : boolean isCollapse()
controlP5.ControllerGroup : boolean isMouseOver()
controlP5.ControllerGroup : boolean isMoveable()
controlP5.ControllerGroup : boolean isOpen()
controlP5.ControllerGroup : boolean isUpdate()
controlP5.ControllerGroup : boolean isVisible()
controlP5.ControllerGroup : boolean setMousePressed(boolean)
controlP5.ControllerGroup : float getValue()
controlP5.ControllerGroup : float[] getArrayValue()
controlP5.ControllerGroup : int getHeight()
controlP5.ControllerGroup : int getId()
controlP5.ControllerGroup : int getWidth()
controlP5.ControllerGroup : void remove()
controlP5.ListBox : ListBox actAsPulldownMenu(boolean)
controlP5.ListBox : ListBox addItems(List)
controlP5.ListBox : ListBox addItems(List, int)
controlP5.ListBox : ListBox addItems(String[])
controlP5.ListBox : ListBox clear()
controlP5.ListBox : ListBox hideScrollbar()
controlP5.ListBox : ListBox removeItem(String)
controlP5.ListBox : ListBox scroll(float)
controlP5.ListBox : ListBox setColorActive(int)
controlP5.ListBox : ListBox setColorBackground(int)
controlP5.ListBox : ListBox setColorForeground(int)
controlP5.ListBox : ListBox setColorLabel(int)
controlP5.ListBox : ListBox setHeight(int)
controlP5.ListBox : ListBox setItemHeight(int)
controlP5.ListBox : ListBox setListBoxItems(String[][])
controlP5.ListBox : ListBox setWidth(int)
controlP5.ListBox : ListBox showScrollbar()
controlP5.ListBox : ListBox toUpperCase(boolean)
controlP5.ListBox : ListBoxItem addItem(String, int)
controlP5.ListBox : ListBoxItem getItem(Controller)
controlP5.ListBox : ListBoxItem getItem(String)
controlP5.ListBox : ListBoxItem getItem(int)
controlP5.ListBox : String[][] getListBoxItems()
controlP5.ListBox : boolean isScrollbarVisible()
java.lang.Object : String toString()
java.lang.Object : String toString()
java.lang.Object : boolean equals(Object)
*/
Field Summary |
---|
Fields inherited from interface controlP5.ControlP5Constants |
---|
acceptClassList, ACTION_BROADCAST, ACTION_ENTER, ACTION_LEAVE, ACTION_PRESSED, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, ACTIVE, ALL, ALT, ARC, ARRAY, BACKSPACE, BASELINE, BITFONT, BOOLEAN, BOTTOM, BOTTOM_OUTSIDE, CAPTIONLABEL, CENTER, COMMANDKEY, CONTROL, controlEventClass, CUSTOM, DECREASE, DEFAULT, DELETE, DONE, DOWN, ELLIPSE, ENTER, ESCAPE, EVENT, eventMethod, FADEIN, FADEOUT, FIELD, FLOAT, HALF_PI, HIDE, HIGHLIGHT, HORIZONTAL, IDLE, IMAGE, INACTIVE, INCREASE, INTEGER, INVALID, KEYCONTROL, LEFT, LEFT_OUTSIDE, LINE, LOAD, MENU, METHOD, MOVE, MULTI, MULTIPLES, OVER, PI, PRESSED, PRINT, RELEASE, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, SHIFT, SINGLE, SINGLE_COLUMN, SINGLE_ROW, SPRITE, STRING, SWITCH, SWITCH_BACK, SWITCH_FORE, TAB, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT |
Constructor Summary | |
---|---|
ListBox(ControlP5 theControlP5,
java.lang.String theName)
Convenience constructor to extend ListBox. |
Method Summary | |
---|---|
ListBox |
actAsPulldownMenu(boolean theValue)
Enables a ListBox to act as a pulldown menu. |
ListBoxItem |
addItem(java.lang.String theName,
int theValue)
Adds an item to the ListBox. |
ListBox |
addItems(java.util.List theItems)
|
ListBox |
addItems(java.util.List theItems,
int theOffset)
|
ListBox |
addItems(java.lang.String[] theItems)
adds a list of items from a string array. |
void |
beginItems()
|
ListBox |
clear()
Removes all items from a list box |
void |
endItems()
|
ListBoxItem |
getItem(Controller theButton)
returns a ListBoxItem based on its Button reference. |
ListBoxItem |
getItem(int theIndex)
returns a listBoxItem by index in the list of items. |
ListBoxItem |
getItem(java.lang.String theItemName)
TODO faulty returns a listBoxItem by name. |
java.lang.String[][] |
getListBoxItems()
|
float |
getScrollPosition()
|
ListBox |
hideScrollbar()
|
boolean |
isScrollable()
|
boolean |
isScrollbarEnabled()
|
ListBox |
removeItem(java.lang.String theItemName)
Removes an item from the ListBox using the unique name of the item given when added to the list. |
ListBox |
scroll(float theValue)
scroll the scrollList remotely. |
void |
scrolled(int theStep)
|
ListBox |
setColor(CColor theColor)
|
ListBox |
setColorActive(int theColor)
|
ListBox |
setColorBackground(int theColor)
|
ListBox |
setColorForeground(int theColor)
|
ListBox |
setColorLabel(int theColor)
|
ListBox |
setColorValue(int theColor)
|
ListBox |
setHeight(int theHeight)
|
ListBox |
setItemHeight(int theHeight)
|
ListBox |
setListBoxItems(java.lang.String[][] l)
|
ListBox |
setScrollbarVisible(boolean theValue)
|
ListBox |
setSize(int theWidth,
int theHeight)
|
ListBox |
setValue(float theValue)
|
ListBox |
setWidth(int theWidth)
|
ListBox |
showScrollbar()
|
ListBox |
toUpperCase(boolean theFlag)
|
ListBox |
updateListBoxItems()
|
Methods inherited from class controlP5.ControlGroup |
---|
activateEvent, addListener, controlEvent, getBackgroundHeight, getBarHeight, getInfo, listenerSize, mousePressed, removeListener, setBackgroundColor, setBackgroundHeight, setBarHeight, stringValue, toString, updateInternalEvents |
Methods inherited from class controlP5.ControllerGroup |
---|
add, addCanvas, addCloseButton, addDrawable, bringToFront, bringToFront, close, disableCollapse, enableCollapse, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getCaptionLabel, getColor, getController, getHeight, getId, getName, getPosition, getProperty, getProperty, getStringValue, getTab, getValue, getValueLabel, getWidth, getWindow, hide, hideArrow, hideBar, isBarVisible, isCollapse, isMouseOver, isMoveable, isOpen, isUpdate, isVisible, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, open, registerProperty, registerProperty, remove, remove, remove, removeCanvas, removeCloseButton, removeProperty, removeProperty, setAddress, setArrayValue, setArrayValue, setCaptionLabel, setGroup, setGroup, setId, setLabel, setMouseOver, setMoveable, setOpen, setPosition, setPosition, setStringValue, setTab, setTab, setTab, setTitle, setUpdate, setVisible, show, showArrow, showBar, updateAbsolutePosition |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface controlP5.ControlListener |
---|
controlEvent |
Methods inherited from interface controlP5.ControllerInterface |
---|
continuousUpdateEvents, draw, getParent, getPickingColor, init, keyEvent, parent, setAbsolutePosition, setMousePressed, update, updateEvents |
Constructor Detail |
---|
public ListBox(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;
}
}
Method Detail |
---|
public ListBox actAsPulldownMenu(boolean theValue)
public ListBoxItem addItem(java.lang.String theName, int theValue)
theName
- StringtheValue
- intcontrolP5.ListBox#removeItem(String,int)
public ListBox addItems(java.util.List theItems)
public ListBox addItems(java.util.List theItems, int theOffset)
public ListBox addItems(java.lang.String[] theItems)
theItems
- public void beginItems()
public ListBox clear()
public void endItems()
public ListBoxItem getItem(Controller theButton)
theButton
-
public ListBoxItem getItem(int theIndex)
theIndex
-
public ListBoxItem getItem(java.lang.String theItemName)
theItemName
-
public java.lang.String[][] getListBoxItems()
public float getScrollPosition()
public ListBox hideScrollbar()
public boolean isScrollable()
public boolean isScrollbarEnabled()
public ListBox removeItem(java.lang.String theItemName)
theItemName
- StringListBox.addItem(String,int)
public ListBox scroll(float theValue)
public void scrolled(int theStep)
public ListBox setColor(CColor theColor)
setColor
in interface ControllerInterface
setColor
in class ControllerGroup
public ListBox setColorActive(int theColor)
setColorActive
in interface ControllerInterface
setColorActive
in class ControllerGroup
public ListBox setColorBackground(int theColor)
setColorBackground
in interface ControllerInterface
setColorBackground
in class ControllerGroup
public ListBox setColorForeground(int theColor)
setColorForeground
in interface ControllerInterface
setColorForeground
in class ControllerGroup
public ListBox setColorLabel(int theColor)
setColorLabel
in interface ControllerInterface
setColorLabel
in class ControllerGroup
public ListBox setColorValue(int theColor)
setColorValue
in interface ControllerInterface
setColorValue
in class ControllerGroup
public ListBox setHeight(int theHeight)
setHeight
in class ControllerGroup
public ListBox setItemHeight(int theHeight)
public ListBox setListBoxItems(java.lang.String[][] l)
public ListBox setScrollbarVisible(boolean theValue)
public ListBox setSize(int theWidth, int theHeight)
setSize
in class ControlGroup
public ListBox setValue(float theValue)
ControllerGroup
setValue
in interface ControllerInterface
setValue
in class ControllerGroup
public ListBox setWidth(int theWidth)
setWidth
in class ControllerGroup
public ListBox showScrollbar()
public ListBox toUpperCase(boolean theFlag)
public ListBox updateListBoxItems()
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |