Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
e244db203This file is pinned to the selected release. Download the original to open it in your design tool.
import java.awt.*;
import java.awt.event.*;
import controlP5.*;
private ControlP5 cp5;
ControlFrame cf1, cf2;
int bgColor;
void setup() {
size(400, 400 ,P3D );
/* add a controlP5 instance for the main sketch window (not required for other ControlFrames to work) */
cp5 = new ControlP5( this );
cp5.addSlider( "s2" );
/* Add a controlframe */
cf1 = addControlFrame( "hello", 200, 200, 20, 20, color( 100 ) );
// add a slider with an EventListener. When dragging the slider,
// variable bgColor will change accordingly.
cf1.control().addSlider( "s1" ).setRange( 0, 255 ).addListener( new ControlListener() {
public void controlEvent( ControlEvent ev ) {
bgColor = color( ev.getValue() );
}
}
);
/* Add a second controlframe */
cf2 = addControlFrame( "world", 200, 200, 20, 240, color( 100 ) );
// add a button with an EventListener. When releasing the button,
// variable bgColor will change to color( 255 );
cf2.control().addButton( "b1" ).addListener( new ControlListener() {
public void controlEvent( ControlEvent ev ) {
bgColor = color( 255 );
}
}
);
cf2.control().addButton( "b2" ).addListener( new ControlListener() {
public void controlEvent(ControlEvent ev) {
bgColor = color( random( 255 ), random( 255 ), random( 255 ) );
}
}
);
}
void draw() {
background( bgColor );
}
/* no changes required below */
ControlFrame addControlFrame(String theName, int theWidth, int theHeight) {
return addControlFrame(theName, theWidth, theHeight, 100, 100, color( 0 ) );
}
ControlFrame addControlFrame(String theName, int theWidth, int theHeight, int theX, int theY, int theColor ) {
final Frame f = new Frame( theName );
final ControlFrame p = new ControlFrame( this, theWidth, theHeight, theColor );
f.add( p );
p.init();
f.setTitle(theName);
f.setSize( p.w, p.h );
f.setLocation( theX, theY );
f.addWindowListener( new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
p.dispose();
f.dispose();
}
}
);
f.setResizable( false );
f.setVisible( true );
// sleep a little bit to allow p to call setup.
// otherwise a nullpointerexception might be caused.
try {
Thread.sleep( 100 );
}
catch(Exception e) {
}
return p;
}
// the ControlFrame class extends PApplet, so we
// are creating a new processing applet inside a
// new frame with a controlP5 object loaded
public class ControlFrame extends PApplet {
int w, h;
int bg;
public void setup() {
size(w, h);
frameRate(25);
cp5 = new ControlP5( this );
}
public void draw() {
background( bg );
}
private ControlFrame() {
}
public ControlFrame(Object theParent, int theWidth, int theHeight, int theColor) {
parent = theParent;
w = theWidth;
h = theHeight;
bg = theColor;
}
public ControlP5 control() {
return this.cp5;
}
ControlP5 cp5;
Object parent;
}