I'm attempting to use ControlP5 for an arduino related project. I can't find an easy way to access the up/down arrow keys via the serial connection. Is there a way to switch the up/down arrow key inputs to regular letter keys on the keyboard? I'm looking specifically at the ControlP5listBox example. I'd like to be able to move up and down the list using letter keys and not the up/down arrows. Any thoughts?
Code:
import controlP5.*;
ControlP5 cp5;
ListBox l;
int cnt = 0;
void setup() {
size(700, 400);
ControlP5.printPublicMethodsFor(ListBox.class);
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))
;
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.