controlp5/examples/use/ControlP5propertiesCustom/ControlP5propertiesCustom.pde

107 lines
2.6 KiB
Plaintext

/**
* ControlP5 properties example (see keyPressed).
* by andreas schlegel, 2011
*
* status: experimental
* saves/loads controller values into/from a properties-file
* by default properties will be saved in a serialized format and use the .ser extension.
*
* taken from the changelog;
* adding saveProperties(String) and loadProperties(String) to
* save and load serialized controller properties.
* The range of controllers implementing save/load properties currently includes
* Slider, Knob, Numberbox, Toggle, Checkbox, RadioButton, Textlabel, Matrix,Range,
* textarea, ListBox, Dropdown, colorPicker.
* Properties are currently saved in the java serialization
* format but xml and possibly json alternatives are being worked on.
*
*
* default properties load/save key combinations are
* alt+shift+l to load properties
* alt+shift+s to save properties
*
*/
import controlP5.*;
ControlP5 cp5;
public int myColor = color(0,0,0);
public int sliderValue = 100;
public int sliderTicks1 = 100;
public int sliderTicks2 = 30;
void setup() {
size(400,400);
cp5 = new ControlP5(this);
noStroke();
// add a vertical slider
cp5.addSlider("slider")
.setRange(0,200)
.setValue(128)
.setPosition(20,100)
.setSize(20,100)
;
// create another slider with tick marks, now without
// default value, the initial value will be set according th
// the value of variable sliderTicks2 then.
cp5.addSlider("sliderTicks1")
.setRange(0,255)
.setPosition(100,100)
.setSize(20,100)
.setNumberOfTickMarks(5)
;
// add horizontal sliders
cp5.addSlider("sliderValue")
.setRange(0,255)
.setValue(128)
.setPosition(200,180)
.setSize(100,20)
;
cp5.addSlider("sliderTicks2")
.setRange(0,255)
.setValue(128)
.setPosition(200,220)
.setSize(100,20)
.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,300,width,70);
fill(sliderTicks2);
rect(0,370,width,30);
}
public void slider(float theColor) {
myColor = color(theColor);
println("a slider event. setting background to "+theColor);
}
void keyPressed() {
// default properties load/save key combinations are
// alt+shift+l to load properties
// alt+shift+s to save properties
if(key=='1') {
cp5.saveProperties(("hello.json"));
} else if(key=='2') {
cp5.loadProperties(("hello.json"));
}
}