mirror of
https://github.com/sojamo/controlp5
synced 2024-12-22 11:23:48 +01:00
2.2.6 release
This commit is contained in:
parent
665b0c1aa5
commit
1f7cb64986
@ -471,7 +471,7 @@ convey the exclusion of warranty; and each file should have at least the
|
|||||||
"copyright" line and a pointer to where the full notice is found.
|
"copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
controlP5 is a processing gui library.
|
controlP5 is a processing gui library.
|
||||||
Copyright (C) 2006-2014 andreas schlegel
|
Copyright (C) 2006-2015 andreas schlegel
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -42,13 +42,13 @@ public void controlEvent(ControlEvent c) {
|
|||||||
int b = int(c.getArrayValue(2));
|
int b = int(c.getArrayValue(2));
|
||||||
int a = int(c.getArrayValue(3));
|
int a = int(c.getArrayValue(3));
|
||||||
color col = color(r,g,b,a);
|
color col = color(r,g,b,a);
|
||||||
println("event\talpha:"+a+"\tred:"+r+"\tgreen:"+g+"\tblue:"+b+"\tcol"+col);
|
println("event \talpha:"+a+"\tred:"+r+"\tgreen:"+g+"\tblue:"+b+"\tcol"+col);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// color information from ColorPicker 'picker' are forwarded to the picker(int) function
|
// color information from ColorPicker 'picker' are forwarded to the picker(int) function
|
||||||
void picker(int col) {
|
void picker(int col) {
|
||||||
println("picker\talpha:"+alpha(col)+"\tred:"+red(col)+"\tgreen:"+green(col)+"\tblue:"+blue(col)+"\tcol"+col);
|
println("picker\talpha:"+int(alpha(col))+"\tred:"+int(red(col))+"\tgreen:"+int(green(col))+"\tblue:"+int(blue(col))+"\tcol"+col);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -184,5 +184,3 @@ java.lang.Object : boolean equals(Object)
|
|||||||
created: 2015/03/24 12:20:58
|
created: 2015/03/24 12:20:58
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,98 +1,112 @@
|
|||||||
/**
|
/**
|
||||||
* ControlP5 Controlframe
|
* ControlP5 Controlframe
|
||||||
* with controlP5 2.0 all java.awt dependencies have been removed
|
|
||||||
* as a consequence the option to display controllers in a separate
|
|
||||||
* window had to be removed as well.
|
|
||||||
* this example shows you how to create a java.awt.frame and use controlP5
|
|
||||||
*
|
*
|
||||||
* by Andreas Schlegel, 2012
|
* this example shows you how to create separate window to
|
||||||
|
* display and use controllers with processing 3
|
||||||
|
*
|
||||||
|
* by Andreas Schlegel, 2016
|
||||||
* www.sojamo.de/libraries/controlp5
|
* www.sojamo.de/libraries/controlp5
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.awt.Frame;
|
|
||||||
import java.awt.BorderLayout;
|
|
||||||
import controlP5.*;
|
import controlP5.*;
|
||||||
|
|
||||||
private ControlP5 cp5;
|
|
||||||
|
|
||||||
ControlFrame cf;
|
ControlFrame cf;
|
||||||
|
|
||||||
int def;
|
float speed;
|
||||||
|
float pos;
|
||||||
|
float c0, c1, c2, c3;
|
||||||
|
boolean auto;
|
||||||
|
|
||||||
|
void settings() {
|
||||||
|
size(400, 400, P3D);
|
||||||
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
size(400, 400);
|
cf = new ControlFrame(this, 400, 800, "Controls");
|
||||||
cp5 = new ControlP5(this);
|
surface.setLocation(420, 10);
|
||||||
|
noStroke();
|
||||||
// by calling function addControlFrame() a
|
|
||||||
// new frame is created and an instance of class
|
|
||||||
// ControlFrame is instanziated.
|
|
||||||
cf = addControlFrame("extra", 200,200);
|
|
||||||
|
|
||||||
// add Controllers to the 'extra' Frame inside
|
|
||||||
// the ControlFrame class setup() method below.
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw() {
|
void draw() {
|
||||||
background(def);
|
if (auto) pos += speed;
|
||||||
}
|
background(0);
|
||||||
|
translate(width/2, height/2);
|
||||||
ControlFrame addControlFrame(String theName, int theWidth, int theHeight) {
|
rotateY(pos);
|
||||||
Frame f = new Frame(theName);
|
lights();
|
||||||
ControlFrame p = new ControlFrame(this, theWidth, theHeight);
|
fill(c0, c1, c2, c3);
|
||||||
f.add(p);
|
box(100);
|
||||||
p.init();
|
|
||||||
f.setTitle(theName);
|
|
||||||
f.setSize(p.w, p.h);
|
|
||||||
f.setLocation(100, 100);
|
|
||||||
f.setResizable(false);
|
|
||||||
f.setVisible(true);
|
|
||||||
return p;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// the ControlFrame class extends PApplet, so we
|
|
||||||
// are creating a new processing applet inside a
|
|
||||||
// new frame with a controlP5 object loaded
|
class ControlFrame extends PApplet {
|
||||||
public class ControlFrame extends PApplet {
|
|
||||||
|
|
||||||
int w, h;
|
int w, h;
|
||||||
|
PApplet parent;
|
||||||
int abc = 100;
|
|
||||||
|
|
||||||
public void setup() {
|
|
||||||
size(w, h);
|
|
||||||
frameRate(25);
|
|
||||||
cp5 = new ControlP5(this);
|
|
||||||
cp5.addSlider("abc").setRange(0, 255).setPosition(10,10);
|
|
||||||
cp5.addSlider("def").plugTo(parent,"def").setRange(0, 255).setPosition(10,30);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void draw() {
|
|
||||||
background(abc);
|
|
||||||
}
|
|
||||||
|
|
||||||
private ControlFrame() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public ControlFrame(Object theParent, int theWidth, int theHeight) {
|
|
||||||
parent = theParent;
|
|
||||||
w = theWidth;
|
|
||||||
h = theHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public ControlP5 control() {
|
|
||||||
return cp5;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ControlP5 cp5;
|
ControlP5 cp5;
|
||||||
|
|
||||||
Object parent;
|
public ControlFrame(PApplet _parent, int _w, int _h, String _name) {
|
||||||
|
super();
|
||||||
|
parent = _parent;
|
||||||
|
w=_w;
|
||||||
|
h=_h;
|
||||||
|
PApplet.runSketch(new String[]{this.getClass().getName()}, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void settings() {
|
||||||
|
size(w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setup() {
|
||||||
|
surface.setLocation(10, 10);
|
||||||
|
cp5 = new ControlP5(this);
|
||||||
|
|
||||||
|
cp5.addToggle("auto")
|
||||||
|
.plugTo(parent, "auto")
|
||||||
|
.setPosition(10, 70)
|
||||||
|
.setSize(50, 50)
|
||||||
|
.setValue(true);
|
||||||
|
|
||||||
|
cp5.addKnob("blend")
|
||||||
|
.plugTo(parent, "c3")
|
||||||
|
.setPosition(100, 300)
|
||||||
|
.setSize(200, 200)
|
||||||
|
.setRange(0, 255)
|
||||||
|
.setValue(200);
|
||||||
|
|
||||||
|
cp5.addNumberbox("color-red")
|
||||||
|
.plugTo(parent, "c0")
|
||||||
|
.setRange(0, 255)
|
||||||
|
.setValue(255)
|
||||||
|
.setPosition(100, 10)
|
||||||
|
.setSize(100, 20);
|
||||||
|
|
||||||
|
cp5.addNumberbox("color-green")
|
||||||
|
.plugTo(parent, "c1")
|
||||||
|
.setRange(0, 255)
|
||||||
|
.setValue(128)
|
||||||
|
.setPosition(100, 70)
|
||||||
|
.setSize(100, 20);
|
||||||
|
|
||||||
|
cp5.addNumberbox("color-blue")
|
||||||
|
.plugTo(parent, "c2")
|
||||||
|
.setRange(0, 255)
|
||||||
|
.setValue(0)
|
||||||
|
.setPosition(100, 130)
|
||||||
|
.setSize(100, 20);
|
||||||
|
|
||||||
|
cp5.addSlider("speed")
|
||||||
|
.plugTo(parent, "speed")
|
||||||
|
.setRange(0, 0.1)
|
||||||
|
.setValue(0.01)
|
||||||
|
.setPosition(100, 240)
|
||||||
|
.setSize(200, 30);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw() {
|
||||||
|
background(190);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,13 +13,13 @@
|
|||||||
</path>
|
</path>
|
||||||
<property name="javaVersion" value="1.6"/>
|
<property name="javaVersion" value="1.6"/>
|
||||||
<property name="author" value="Andreas Schlegel"/>
|
<property name="author" value="Andreas Schlegel"/>
|
||||||
<property name="copyright" value="(c) 2006-2015"/>
|
<property name="copyright" value="(c) 2006-2016"/>
|
||||||
<property name="libraryName" value="controlP5"/>
|
<property name="libraryName" value="controlP5"/>
|
||||||
<property name="versionNumber" value="2.2.5"/>
|
<property name="versionNumber" value="2.2.6"/>
|
||||||
<property name="yourLink" value="http://www.sojamo.de" />
|
<property name="yourLink" value="http://www.sojamo.de" />
|
||||||
<property name="keywords" value="gui, ui, controller, interface, user interface" />
|
<property name="keywords" value="gui, ui, controller, interface, user interface" />
|
||||||
<property name="tested:platform" value="osx, windows, linux" />
|
<property name="tested:platform" value="osx, windows, linux" />
|
||||||
<property name="tested:processingVersion" value="2.2.1" />
|
<property name="tested:processingVersion" value="3.0.2" />
|
||||||
<property name="tested:dependencies" value="none" />
|
<property name="tested:dependencies" value="none" />
|
||||||
<property name="source:host" value="github" />
|
<property name="source:host" value="github" />
|
||||||
<property name="source:url" value="https://github.com/sojamo/controlp5" />
|
<property name="source:url" value="https://github.com/sojamo/controlp5" />
|
||||||
@ -334,4 +334,3 @@
|
|||||||
<replaceregexp file="${file}" match="##date##" replace="${date}" flags="g" />
|
<replaceregexp file="${file}" match="##date##" replace="${date}" flags="g" />
|
||||||
</target>
|
</target>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
cd $HOME/Documents/workspace/controlp5/bin
|
cd $HOME/Documents/workspace/controlp5/bin
|
||||||
jar cf ../test/controlP5.jar .
|
jar cf ../test/controlP5.jar .
|
||||||
cp ../test/controlP5.jar $HOME/Documents/Processing/libraries/controlP5/library
|
cp ../test/controlP5.jar $HOME/Documents/Processing3/libraries/controlP5/library
|
||||||
echo "controlP5 compiled on $(date)"
|
echo "controlP5 compiled on $(date)"
|
||||||
|
@ -38,7 +38,7 @@ paragraph = Includes interface elements such as slider, button, knob, toggle, te
|
|||||||
# is used to compare different versions of the same library, and
|
# is used to compare different versions of the same library, and
|
||||||
# check if an update is available. You should think of it as a
|
# check if an update is available. You should think of it as a
|
||||||
# counter, counting the total number of releases you've had.
|
# counter, counting the total number of releases you've had.
|
||||||
version = 84 # This must be parsable as an int
|
version = 85 # This must be parsable as an int
|
||||||
|
|
||||||
# The version as the user will see it. If blank, the version attribute will be used here
|
# The version as the user will see it. If blank, the version attribute will be used here
|
||||||
prettyVersion = 2.2.5 # This is treated as a String
|
prettyVersion = 2.2.6 # This is treated as a String
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2014 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
public class Background extends ControlGroup< Background > {
|
public class Background extends ControlGroup< Background > {
|
||||||
|
|
||||||
public Background( ControlP5 theControlP5 , ControllerGroup< ? > theParent , String theName , int theX , int theY , int theW , int theH ) {
|
public Background( ControlP5 theControlP5 , ControllerGroup< ? > theParent , String theName , int theX , int theY , int theW , int theH ) {
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2014 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2014 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2014 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it
|
* This library is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
* and/or modify it under the terms of the GNU Lesser
|
||||||
|
@ -1,5 +1,32 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
import static controlP5.ControlP5.b;
|
import static controlP5.ControlP5.b;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify it under
|
* This library is free software; you can redistribute it and/or modify it under
|
||||||
* the terms of the GNU Lesser General Public License as published by the Free
|
* the terms of the GNU Lesser General Public License as published by the Free
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.lang.reflect.Array;
|
import java.lang.reflect.Array;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
@ -7,8 +32,6 @@ import java.text.CharacterIterator;
|
|||||||
import java.text.StringCharacterIterator;
|
import java.text.StringCharacterIterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import processing.core.PVector;
|
|
||||||
|
|
||||||
public class CP {
|
public class CP {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -224,9 +247,6 @@ public class CP {
|
|||||||
return c.toString( ).startsWith( pattern ) ? c.toString( ).substring( pattern.length( ) ) : c.toString( );
|
return c.toString( ).startsWith( pattern ) ? c.toString( ).substring( pattern.length( ) ) : c.toString( );
|
||||||
}
|
}
|
||||||
|
|
||||||
static public boolean inside( int[] theRect , PVector theVector ) {
|
|
||||||
return inside( theRect , theVector.x , theVector.y );
|
|
||||||
}
|
|
||||||
|
|
||||||
static public boolean inside( int[] theRect , float theX , float theY ) {
|
static public boolean inside( int[] theRect , float theX , float theY ) {
|
||||||
if ( theRect.length == 4 ) {
|
if ( theRect.length == 4 ) {
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2014 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
|
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used by Chart, single chart data is stored here including value, (label) text, and color.
|
* Used by Chart, single chart data is stored here including value, (label) text, and color.
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.ListIterator;
|
import java.util.ListIterator;
|
||||||
|
|
||||||
|
@ -1,16 +1,9 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import processing.core.PImage;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -32,6 +25,13 @@ import processing.core.PImage;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import processing.core.PImage;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A multiple-choice radioButton. items are added to a checkBox and can be organized in rows and
|
* A multiple-choice radioButton. items are added to a checkBox and can be organized in rows and
|
||||||
* columns. items of a checkBox are of type Toggle.
|
* columns. items of a checkBox are of type Toggle.
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
class ColorPalette extends ControlGroup< ColorPalette > {
|
class ColorPalette extends ControlGroup< ColorPalette > {
|
||||||
|
|
||||||
protected ColorPalette( ControlP5 theControlP5 , ControllerGroup< ? > theParent , String theName , int theX , int theY , int theWidth , int theHeight ) {
|
protected ColorPalette( ControlP5 theControlP5 , ControllerGroup< ? > theParent , String theName , int theX , int theY , int theWidth , int theHeight ) {
|
||||||
|
@ -3,19 +3,21 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify it under
|
* This library is free software; you can redistribute it and/or
|
||||||
* the terms of the GNU Lesser General Public License as published by the Free
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
* Software Foundation; either version 2.1 of the License, or (at your option)
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
* any later version. This library is distributed in the hope that it will be
|
* of the License, or (at your option) any later version.
|
||||||
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* This library is distributed in the hope that it will be useful,
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* General Public License for more details.
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU Lesser General
|
||||||
* along with this library; if not, write to the Free Software Foundation, Inc.,
|
* Public License along with this library; if not, write to the
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
* @modified ##date##
|
* @modified ##date##
|
||||||
@ -169,7 +171,7 @@ public class ColorPicker extends ControlGroup< ColorPicker > {
|
|||||||
if ( _myPlug != null ) {
|
if ( _myPlug != null ) {
|
||||||
try {
|
try {
|
||||||
Method method = _myPlug.getClass( ).getMethod( _myPlugName , int.class );
|
Method method = _myPlug.getClass( ).getMethod( _myPlugName , int.class );
|
||||||
method.invoke( _myPlug , ( int ) _myValue );
|
method.invoke( _myPlug , ( int ) getColorValue( ) );
|
||||||
} catch ( SecurityException ex ) {
|
} catch ( SecurityException ex ) {
|
||||||
ex.printStackTrace( );
|
ex.printStackTrace( );
|
||||||
} catch ( NoSuchMethodException ex ) {
|
} catch ( NoSuchMethodException ex ) {
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -175,9 +200,9 @@ public class ColorWheel extends Controller< ColorWheel > {
|
|||||||
buffer.ellipse( buffer.width / 2 , buffer.height / 2 , ( inner_radius + 1 ) * 2 , ( inner_radius + 1 ) * 2 );
|
buffer.ellipse( buffer.width / 2 , buffer.height / 2 , ( inner_radius + 1 ) * 2 , ( inner_radius + 1 ) * 2 );
|
||||||
|
|
||||||
for ( int y = 0 ; y < h ; y++ ) {
|
for ( int y = 0 ; y < h ; y++ ) {
|
||||||
int dy = ( int ) ( y(center) - y );
|
int dy = ( int ) ( y( center ) - y );
|
||||||
for ( int x = 0 ; x < w ; x++ ) {
|
for ( int x = 0 ; x < w ; x++ ) {
|
||||||
int dx = ( int ) ( x(center) - x );
|
int dx = ( int ) ( x( center ) - x );
|
||||||
double dist = Math.sqrt( dx * dx + dy * dy );
|
double dist = Math.sqrt( dx * dx + dy * dy );
|
||||||
if ( dist >= inner_radius && dist <= outer_radius ) {
|
if ( dist >= inner_radius && dist <= outer_radius ) {
|
||||||
double theta = Math.atan2( dy , dx );
|
double theta = Math.atan2( dy , dx );
|
||||||
@ -234,9 +259,9 @@ public class ColorWheel extends Controller< ColorWheel > {
|
|||||||
float y = _myColorResources.get( "default" ).height / 2 - ( float ) Math.sin( theta ) * s;
|
float y = _myColorResources.get( "default" ).height / 2 - ( float ) Math.sin( theta ) * s;
|
||||||
set( _myCursor , x , y );
|
set( _myCursor , x , y );
|
||||||
setSaturation( t[ 1 ] );
|
setSaturation( t[ 1 ] );
|
||||||
|
// TODO resolve rounding error issue as reported here https://github.com/sojamo/controlp5/issues/21
|
||||||
_myColorValue = HSLtoRGB( hsl );
|
_myColorValue = HSLtoRGB( hsl );
|
||||||
setValue( _myColorValue );
|
setValue( _myColorValue );
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,23 +3,21 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it
|
* This library is free software; you can redistribute it and/or
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
* General Public License as published by the Free Software
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
* Foundation; either version 2.1 of the License, or (at
|
* of the License, or (at your option) any later version.
|
||||||
* your option) any later version. This library is
|
* This library is distributed in the hope that it will be useful,
|
||||||
* distributed in the hope that it will be useful, but
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
* Lesser General Public License for more details.
|
||||||
* See the GNU Lesser General Public License for more
|
|
||||||
* details.
|
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General
|
* You should have received a copy of the GNU Lesser General
|
||||||
* Public License along with this library; if not, write to
|
* Public License along with this library; if not, write to the
|
||||||
* the Free Software Foundation, Inc., 59 Temple Place,
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
* Suite 330, Boston, MA 02111-1307 USA
|
* Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
* @modified ##date##
|
* @modified ##date##
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
public interface ControlKey {
|
public interface ControlKey {
|
||||||
|
|
||||||
public void keyEvent();
|
public void keyEvent();
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,23 +3,21 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it
|
* This library is free software; you can redistribute it and/or
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
* General Public License as published by the Free Software
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
* Foundation; either version 2.1 of the License, or (at
|
* of the License, or (at your option) any later version.
|
||||||
* your option) any later version. This library is
|
* This library is distributed in the hope that it will be useful,
|
||||||
* distributed in the hope that it will be useful, but
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
* Lesser General Public License for more details.
|
||||||
* See the GNU Lesser General Public License for more
|
|
||||||
* details.
|
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General
|
* You should have received a copy of the GNU Lesser General
|
||||||
* Public License along with this library; if not, write to
|
* Public License along with this library; if not, write to the
|
||||||
* the Free Software Foundation, Inc., 59 Temple Place,
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
* Suite 330, Boston, MA 02111-1307 USA
|
* Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
* @modified ##date##
|
* @modified ##date##
|
||||||
@ -98,7 +96,7 @@ public class ControlP5 extends ControlP5Base {
|
|||||||
/**
|
/**
|
||||||
* @exclude
|
* @exclude
|
||||||
*/
|
*/
|
||||||
@ControlP5.Invisible public static final String VERSION = "2.2.5";// "##version##";
|
@ControlP5.Invisible public static final String VERSION = "2.2.6";// "##version##";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @exclude
|
* @exclude
|
||||||
@ -954,7 +952,8 @@ public class ControlP5 extends ControlP5Base {
|
|||||||
public boolean loadProperties( final String theFilePath ) {
|
public boolean loadProperties( final String theFilePath ) {
|
||||||
String path = theFilePath.endsWith( _myProperties.format.getExtension( ) ) ? theFilePath : theFilePath + "." + _myProperties.format.getExtension( );
|
String path = theFilePath.endsWith( _myProperties.format.getExtension( ) ) ? theFilePath : theFilePath + "." + _myProperties.format.getExtension( );
|
||||||
path = checkPropertiesPath( path );
|
path = checkPropertiesPath( path );
|
||||||
File f = new File( path );
|
File f = new File( path);
|
||||||
|
|
||||||
if ( f.exists( ) ) {
|
if ( f.exists( ) ) {
|
||||||
return _myProperties.load( path );
|
return _myProperties.load( path );
|
||||||
}
|
}
|
||||||
@ -1226,8 +1225,14 @@ public class ControlP5 extends ControlP5Base {
|
|||||||
/* static helper functions including Object-to-Type
|
/* static helper functions including Object-to-Type
|
||||||
* conversions, invokes */
|
* conversions, invokes */
|
||||||
|
|
||||||
static public Object invoke( Object theObject , String theMember , Object ... theParams ) {
|
static public Object invoke( final Object theObject , final String theMember , final Object ... theParams ) {
|
||||||
|
return invoke( theObject , theObject.getClass( ) , theMember , theParams );
|
||||||
|
}
|
||||||
|
|
||||||
|
static public Object invoke( final Object theObject , final Class< ? > theClass , final String theMember , final Object ... theParams ) {
|
||||||
|
if ( theClass == null ) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
Class[] cs = new Class[ theParams.length ];
|
Class[] cs = new Class[ theParams.length ];
|
||||||
|
|
||||||
for ( int i = 0 ; i < theParams.length ; i++ ) {
|
for ( int i = 0 ; i < theParams.length ; i++ ) {
|
||||||
@ -1235,7 +1240,7 @@ public class ControlP5 extends ControlP5Base {
|
|||||||
cs[ i ] = classmap.containsKey( c ) ? classmap.get( c ) : c;
|
cs[ i ] = classmap.containsKey( c ) ? classmap.get( c ) : c;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
final Field f = theObject.getClass( ).getDeclaredField( theMember );
|
final Field f = theClass.getDeclaredField( theMember );
|
||||||
/* TODO check super */
|
/* TODO check super */
|
||||||
f.setAccessible( true );
|
f.setAccessible( true );
|
||||||
Object o = theParams[ 0 ];
|
Object o = theParams[ 0 ];
|
||||||
@ -1257,8 +1262,7 @@ public class ControlP5 extends ControlP5Base {
|
|||||||
}
|
}
|
||||||
} catch ( NoSuchFieldException e1 ) {
|
} catch ( NoSuchFieldException e1 ) {
|
||||||
try {
|
try {
|
||||||
final Method m = theObject.getClass( ).getDeclaredMethod( theMember , cs );
|
final Method m = theClass.getDeclaredMethod( theMember , cs );
|
||||||
/* TODO check super */
|
|
||||||
m.setAccessible( true );
|
m.setAccessible( true );
|
||||||
try {
|
try {
|
||||||
return m.invoke( theObject , theParams );
|
return m.invoke( theObject , theParams );
|
||||||
@ -1273,7 +1277,7 @@ public class ControlP5 extends ControlP5Base {
|
|||||||
} catch ( SecurityException e ) {
|
} catch ( SecurityException e ) {
|
||||||
System.err.println( e );
|
System.err.println( e );
|
||||||
} catch ( NoSuchMethodException e ) {
|
} catch ( NoSuchMethodException e ) {
|
||||||
System.err.println( e );
|
invoke( theObject , theClass.getSuperclass( ) , theMember , theParams );
|
||||||
}
|
}
|
||||||
} catch ( IllegalArgumentException e ) {
|
} catch ( IllegalArgumentException e ) {
|
||||||
System.err.println( e );
|
System.err.println( e );
|
||||||
|
@ -3,23 +3,21 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it
|
* This library is free software; you can redistribute it and/or
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
* General Public License as published by the Free Software
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
* Foundation; either version 2.1 of the License, or (at
|
* of the License, or (at your option) any later version.
|
||||||
* your option) any later version. This library is
|
* This library is distributed in the hope that it will be useful,
|
||||||
* distributed in the hope that it will be useful, but
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
* Lesser General Public License for more details.
|
||||||
* See the GNU Lesser General Public License for more
|
|
||||||
* details.
|
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General
|
* You should have received a copy of the GNU Lesser General
|
||||||
* Public License along with this library; if not, write to
|
* Public License along with this library; if not, write to the
|
||||||
* the Free Software Foundation, Inc., 59 Temple Place,
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
* Suite 330, Boston, MA 02111-1307 USA
|
* Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
* @modified ##date##
|
* @modified ##date##
|
||||||
@ -39,7 +37,6 @@ import java.util.Set;
|
|||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PVector;
|
|
||||||
import processing.event.Event;
|
import processing.event.Event;
|
||||||
|
|
||||||
import static controlP5.Controller.*;
|
import static controlP5.Controller.*;
|
||||||
|
@ -3,29 +3,28 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it
|
* This library is free software; you can redistribute it and/or
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
* General Public License as published by the Free Software
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
* Foundation; either version 2.1 of the License, or (at
|
* of the License, or (at your option) any later version.
|
||||||
* your option) any later version. This library is
|
* This library is distributed in the hope that it will be useful,
|
||||||
* distributed in the hope that it will be useful, but
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
* Lesser General Public License for more details.
|
||||||
* See the GNU Lesser General Public License for more
|
|
||||||
* details.
|
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General
|
* You should have received a copy of the GNU Lesser General
|
||||||
* Public License along with this library; if not, write to
|
* Public License along with this library; if not, write to the
|
||||||
* the Free Software Foundation, Inc., 59 Temple Place,
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
* Suite 330, Boston, MA 02111-1307 USA
|
* Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
* @modified ##date##
|
* @modified ##date##
|
||||||
* @version ##version##
|
* @version ##version##
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2014 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it
|
* This library is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
* and/or modify it under the terms of the GNU Lesser
|
||||||
@ -34,7 +34,6 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PConstants;
|
import processing.core.PConstants;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
import processing.core.PVector;
|
|
||||||
import processing.event.KeyEvent;
|
import processing.event.KeyEvent;
|
||||||
import processing.event.MouseEvent;
|
import processing.event.MouseEvent;
|
||||||
import controlP5.ControlP5Base.KeyCode;
|
import controlP5.ControlP5Base.KeyCode;
|
||||||
@ -62,10 +61,10 @@ public final class ControlWindow {
|
|||||||
protected List< Canvas > _myCanvas;
|
protected List< Canvas > _myCanvas;
|
||||||
protected boolean isDrawBackground = true;
|
protected boolean isDrawBackground = true;
|
||||||
protected boolean isUndecorated = false;
|
protected boolean isUndecorated = false;
|
||||||
protected PVector autoPosition = new PVector( 10 , 30 , 0 );
|
protected float[] autoPosition = new float[]{ 10 , 30 , 0 };
|
||||||
protected float tempAutoPositionHeight = 0;
|
protected float tempAutoPositionHeight = 0;
|
||||||
protected boolean rendererNotification = false;
|
protected boolean rendererNotification = false;
|
||||||
protected PVector positionOfTabs = new PVector( 0 , 0 , 0 );
|
protected float[] positionOfTabs = new float[]{ 0 , 0 , 0 };
|
||||||
private int _myFrameCount = 0;
|
private int _myFrameCount = 0;
|
||||||
private boolean isMouse = true;
|
private boolean isMouse = true;
|
||||||
private Pointer _myPointer;
|
private Pointer _myPointer;
|
||||||
@ -82,7 +81,8 @@ public final class ControlWindow {
|
|||||||
protected boolean mouselock;
|
protected boolean mouselock;
|
||||||
protected char key;
|
protected char key;
|
||||||
protected int keyCode;
|
protected int keyCode;
|
||||||
private boolean[] keys = new boolean[ 525 ];
|
private final int numKeys = 1024;
|
||||||
|
private boolean[] keys = new boolean[ numKeys ];
|
||||||
private int numOfActiveKeys = 0;
|
private int numOfActiveKeys = 0;
|
||||||
private boolean focused = true;
|
private boolean focused = true;
|
||||||
|
|
||||||
@ -195,29 +195,18 @@ public final class ControlWindow {
|
|||||||
/**
|
/**
|
||||||
* Sets the position of the tab bar which is set to 0,0
|
* Sets the position of the tab bar which is set to 0,0
|
||||||
* by default. to move the tabs to y-position 100, use
|
* by default. to move the tabs to y-position 100, use
|
||||||
* cp5.getWindow().setPositionOfTabs(new PVector(0,100,0));
|
* cp5.getWindow().setPositionOfTabs(0,100);
|
||||||
*
|
*
|
||||||
* @param thePVector
|
|
||||||
*/
|
*/
|
||||||
public ControlWindow setPositionOfTabs( PVector thePVector ) {
|
|
||||||
positionOfTabs.set( thePVector );
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ControlWindow setPositionOfTabs( int theX , int theY ) {
|
public ControlWindow setPositionOfTabs( int theX , int theY ) {
|
||||||
positionOfTabs.set( theX , theY , positionOfTabs.z );
|
positionOfTabs[0] = theX;
|
||||||
|
positionOfTabs[1] = theY;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the position of the tab bar as PVector. to
|
public float[] getPositionOfTabs( ) {
|
||||||
* move the tabs to y-position 100, use
|
|
||||||
* cp5.window().getPositionOfTabs().y = 100; or
|
|
||||||
* cp5.window().setPositionOfTabs(new PVector(0,100,0));
|
|
||||||
*
|
|
||||||
* @return PVector
|
|
||||||
*/
|
|
||||||
public PVector getPositionOfTabs( ) {
|
|
||||||
return positionOfTabs;
|
return positionOfTabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -508,7 +497,7 @@ public final class ControlWindow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void clearKeys( ) {
|
public void clearKeys( ) {
|
||||||
keys = new boolean[ 525 ];
|
keys = new boolean[ numKeys ];
|
||||||
numOfActiveKeys = 0;
|
numOfActiveKeys = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -566,8 +555,8 @@ public final class ControlWindow {
|
|||||||
|
|
||||||
pg.noStroke( );
|
pg.noStroke( );
|
||||||
pg.noFill( );
|
pg.noFill( );
|
||||||
int myOffsetX = ( int ) getPositionOfTabs( ).x;
|
int myOffsetX = ( int ) getPositionOfTabs( )[0];
|
||||||
int myOffsetY = ( int ) getPositionOfTabs( ).y;
|
int myOffsetY = ( int ) getPositionOfTabs( )[1];
|
||||||
int myHeight = 0;
|
int myHeight = 0;
|
||||||
|
|
||||||
if ( _myTabs.size( ) > 0 ) {
|
if ( _myTabs.size( ) > 0 ) {
|
||||||
|
@ -4,7 +4,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,17 +1,23 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2013 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General
|
* This library is free software; you can redistribute it and/or
|
||||||
* Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option)
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
* any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
* of the License, or (at your option) any later version.
|
||||||
* License for more details.
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to
|
* You should have received a copy of the GNU Lesser General
|
||||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
* @modified ##date##
|
* @modified ##date##
|
||||||
@ -26,9 +32,9 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
|
import processing.core.PFont;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
import processing.core.PImage;
|
import processing.core.PImage;
|
||||||
import processing.core.PVector;
|
|
||||||
import processing.event.KeyEvent;
|
import processing.event.KeyEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -270,8 +276,7 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void updateFont( ControlFont theControlFont ) {
|
protected void updateFont( ControlFont theControlFont ) {
|
||||||
_myCaptionLabel.updateFont( theControlFont );
|
setFont( theControlFont );
|
||||||
_myValueLabel.updateFont( theControlFont );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -413,15 +418,7 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
|
|||||||
return me;
|
return me;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return {@link PVector}
|
|
||||||
*/
|
|
||||||
public float[] getAbsolutePosition( ) {
|
public float[] getAbsolutePosition( ) {
|
||||||
// should return a mutable object of absolutePostion
|
|
||||||
// in a new PVector object to prevent
|
|
||||||
// absolutePosition from being
|
|
||||||
// modified by changing its field values. PVector
|
|
||||||
// should have getter and setters for x,y,z
|
|
||||||
return absolutePosition;
|
return absolutePosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2213,4 +2210,16 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
|
|||||||
return me;
|
return me;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public T setFont( PFont thePFont ) {
|
||||||
|
getValueLabel( ).setFont( thePFont );
|
||||||
|
getCaptionLabel( ).setFont( thePFont );
|
||||||
|
return me;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public T setFont( ControlFont theFont ) {
|
||||||
|
getValueLabel( ).setFont( theFont );
|
||||||
|
getCaptionLabel( ).setFont( theFont );
|
||||||
|
return me;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -104,16 +104,16 @@ class ControllerAutomator {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void addControllersFor( final String theAddressSpace , final Object t ) {
|
void addControllersFor( final String theAddressSpace , final Object t ) {
|
||||||
|
System.out.println("OKOK");
|
||||||
if ( t instanceof List< ? > ) {
|
if ( t instanceof List< ? > ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Class< ? > c = t.getClass( );
|
Class< ? > c = t.getClass( );
|
||||||
|
|
||||||
Field[] fs = c.getDeclaredFields( );
|
Field[] fs = c.getFields( );
|
||||||
|
|
||||||
Method[] ms = c.getDeclaredMethods( );
|
Method[] ms = c.getMethods( );
|
||||||
|
|
||||||
Map< ControllerInterface , Integer > controllersIndexed = new HashMap< ControllerInterface , Integer >( );
|
Map< ControllerInterface , Integer > controllersIndexed = new HashMap< ControllerInterface , Integer >( );
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -29,6 +29,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
|
import processing.core.PFont;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
import processing.event.KeyEvent;
|
import processing.event.KeyEvent;
|
||||||
|
|
||||||
@ -260,8 +261,8 @@ public abstract class ControllerGroup< T > implements ControllerInterface< T > ,
|
|||||||
return me;
|
return me;
|
||||||
}
|
}
|
||||||
|
|
||||||
public T setPosition( float[] thePVector ) {
|
public T setPosition( float[] thePosition ) {
|
||||||
setPosition( x( thePVector ) , y( thePVector ) );
|
setPosition( x( thePosition ) , y( thePosition ) );
|
||||||
return me;
|
return me;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -954,4 +955,16 @@ public abstract class ControllerGroup< T > implements ControllerInterface< T > ,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public T setFont( PFont thePFont ) {
|
||||||
|
getValueLabel( ).setFont( thePFont );
|
||||||
|
getCaptionLabel( ).setFont( thePFont );
|
||||||
|
return me;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public T setFont( ControlFont theFont ) {
|
||||||
|
getValueLabel( ).setFont( theFont );
|
||||||
|
getCaptionLabel( ).setFont( theFont );
|
||||||
|
return me;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -26,6 +26,7 @@ package controlP5;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
|
import processing.core.PFont;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
import processing.event.KeyEvent;
|
import processing.event.KeyEvent;
|
||||||
|
|
||||||
@ -64,11 +65,11 @@ public interface ControllerInterface< T > {
|
|||||||
|
|
||||||
@ControlP5.Invisible public T setPosition( float theX , float theY );
|
@ControlP5.Invisible public T setPosition( float theX , float theY );
|
||||||
|
|
||||||
@ControlP5.Invisible public T setPosition( float[] thePVector );
|
@ControlP5.Invisible public T setPosition( float[] thePosition );
|
||||||
|
|
||||||
public float[] getAbsolutePosition( );
|
public float[] getAbsolutePosition( );
|
||||||
|
|
||||||
public T setAbsolutePosition( float[] thePVector );
|
public T setAbsolutePosition( float[] thePosition );
|
||||||
|
|
||||||
public T updateAbsolutePosition( );
|
public T updateAbsolutePosition( );
|
||||||
|
|
||||||
@ -164,6 +165,10 @@ public interface ControllerInterface< T > {
|
|||||||
|
|
||||||
public T setMouseOver( boolean theFlag );
|
public T setMouseOver( boolean theFlag );
|
||||||
|
|
||||||
|
public T setFont( PFont theFont );
|
||||||
|
|
||||||
|
public T setFont( ControlFont theFont );
|
||||||
|
|
||||||
public T addListener( ControlListener theListener );
|
public T addListener( ControlListener theListener );
|
||||||
|
|
||||||
public T setCaptionLabel( String theValue );
|
public T setCaptionLabel( String theValue );
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.ObjectInputStream;
|
import java.io.ObjectInputStream;
|
||||||
@ -11,7 +36,6 @@ import java.util.HashSet;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import processing.core.PVector;
|
|
||||||
|
|
||||||
class ControllerLayout {
|
class ControllerLayout {
|
||||||
|
|
||||||
@ -28,7 +52,6 @@ class ControllerLayout {
|
|||||||
datatypes.put( Long.class , long.class );
|
datatypes.put( Long.class , long.class );
|
||||||
datatypes.put( Double.class , double.class );
|
datatypes.put( Double.class , double.class );
|
||||||
datatypes.put( Byte.class , byte.class );
|
datatypes.put( Byte.class , byte.class );
|
||||||
datatypes.put( PVector.class , PVector.class );
|
|
||||||
datatypes.put( CColor.class , CColor.class );
|
datatypes.put( CColor.class , CColor.class );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -35,6 +35,7 @@ import java.io.ObjectOutputStream;
|
|||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -70,6 +71,8 @@ public class ControllerProperties {
|
|||||||
public final static int OPEN = 0;
|
public final static int OPEN = 0;
|
||||||
public final static int CLOSE = 1;
|
public final static int CLOSE = 1;
|
||||||
public static String defaultName = "controlP5";
|
public static String defaultName = "controlP5";
|
||||||
|
|
||||||
|
|
||||||
PropertiesStorageFormat format;
|
PropertiesStorageFormat format;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -420,14 +423,7 @@ public class ControllerProperties {
|
|||||||
for ( ControllerProperty cp : l ) {
|
for ( ControllerProperty cp : l ) {
|
||||||
ControllerInterface< ? > ci = controlP5.getController( cp.getAddress( ) );
|
ControllerInterface< ? > ci = controlP5.getController( cp.getAddress( ) );
|
||||||
ci = ( ci == null ) ? controlP5.getGroup( cp.getAddress( ) ) : ci;
|
ci = ( ci == null ) ? controlP5.getGroup( cp.getAddress( ) ) : ci;
|
||||||
Method method;
|
ControlP5.invoke( ( Controller ) ci , cp.getSetter( ) , cp.getValue( ) );
|
||||||
try {
|
|
||||||
method = ci.getClass( ).getMethod( cp.getSetter( ) , new Class[] { cp.getType( ) } );
|
|
||||||
method.setAccessible( true );
|
|
||||||
method.invoke( ci , new Object[] { cp.getValue( ) } );
|
|
||||||
} catch ( Exception e ) {
|
|
||||||
logger.severe( e.toString( ) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
@ -473,7 +469,7 @@ public class ControllerProperties {
|
|||||||
* saves all registered properties into the default 'controlP5.properties' file into your sketch folder.
|
* saves all registered properties into the default 'controlP5.properties' file into your sketch folder.
|
||||||
*/
|
*/
|
||||||
public boolean save( ) {
|
public boolean save( ) {
|
||||||
System.out.println( "saving with format " + format + " (" + format.getExtension( ) + ") " + controlP5.papplet.sketchPath( defaultName ) );
|
System.out.println( "save properties using format " + format + " (" + format.getExtension( ) + ") " + controlP5.papplet.sketchPath( defaultName ) );
|
||||||
format.compile( allProperties.keySet( ) , getPathWithExtension( format , controlP5.papplet.sketchPath( defaultName ) ) );
|
format.compile( allProperties.keySet( ) , getPathWithExtension( format , controlP5.papplet.sketchPath( defaultName ) ) );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -688,11 +684,13 @@ public class ControllerProperties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class JSONFormat implements PropertiesStorageFormat {
|
public class JSONFormat implements PropertiesStorageFormat {
|
||||||
|
|
||||||
public void compile( Set< ControllerProperty > theProperties , String thePropertiesPath ) {
|
public void compile( Set< ControllerProperty > theProperties , String thePropertiesPath ) {
|
||||||
long t = System.currentTimeMillis( );
|
long t = System.currentTimeMillis( );
|
||||||
JSONObject json = new JSONObject( );
|
JSONObject json = new JSONObject( );
|
||||||
for ( ControllerProperty cp : theProperties ) {
|
for ( ControllerProperty cp : theProperties ) {
|
||||||
|
|
||||||
if ( cp.isActive( ) ) {
|
if ( cp.isActive( ) ) {
|
||||||
if ( updatePropertyValue( cp ) ) {
|
if ( updatePropertyValue( cp ) ) {
|
||||||
cp.setId( cp.getController( ).getId( ) );
|
cp.setId( cp.getController( ).getId( ) );
|
||||||
@ -714,11 +712,26 @@ public class ControllerProperties {
|
|||||||
} else if ( cp.getValue( ) instanceof Boolean ) {
|
} else if ( cp.getValue( ) instanceof Boolean ) {
|
||||||
item.setBoolean( key , ControlP5.b( cp.getValue( ) ) );
|
item.setBoolean( key , ControlP5.b( cp.getValue( ) ) );
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
if ( cp.getValue( ).getClass( ).isArray( ) ) {
|
||||||
|
JSONArray arr = new JSONArray( );
|
||||||
|
if ( cp.getValue( ) instanceof int[] ) {
|
||||||
|
for ( Object o : ( int[] ) cp.getValue( ) ) {
|
||||||
|
arr.append( ControlP5.i( o ) );
|
||||||
|
}
|
||||||
|
} else if ( cp.getValue( ) instanceof float[] ) {
|
||||||
|
for ( Object o : ( float[] ) cp.getValue( ) ) {
|
||||||
|
arr.append( ControlP5.f( o ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.setJSONArray( key , arr );
|
||||||
|
} else {
|
||||||
item.setString( key , cp.getValue( ).toString( ) );
|
item.setString( key , cp.getValue( ).toString( ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
json.save( new File( getPathWithExtension( this , thePropertiesPath ) ) , "" );
|
json.save( new File( getPathWithExtension( this , thePropertiesPath ) ) , "" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -741,9 +754,21 @@ public class ControllerProperties {
|
|||||||
ControlP5.invoke( c , member , ControlP5.f( value.getValue( ) ) );
|
ControlP5.invoke( c , member , ControlP5.f( value.getValue( ) ) );
|
||||||
} else if ( i1 instanceof String ) {
|
} else if ( i1 instanceof String ) {
|
||||||
ControlP5.invoke( c , member , ControlP5.s( value.getValue( ) ) );
|
ControlP5.invoke( c , member , ControlP5.s( value.getValue( ) ) );
|
||||||
|
} else if ( i1 instanceof float[] ) {
|
||||||
|
ControlP5.invoke( c , member , (float[])i1 );
|
||||||
|
} else {
|
||||||
|
if ( i1 instanceof List ) {
|
||||||
|
List l = ( List ) i1;
|
||||||
|
float[] arr = new float[ l.size( ) ];
|
||||||
|
for ( int i = 0 ; i < l.size( ) ; i++ ) {
|
||||||
|
arr[ i ] = ControlP5.f( l.get( i ) );
|
||||||
|
}
|
||||||
|
ControlP5.invoke( c , member , arr );
|
||||||
} else {
|
} else {
|
||||||
ControlP5.invoke( c , member , value.getValue( ) );
|
ControlP5.invoke( c , member , value.getValue( ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -818,7 +843,7 @@ public class ControllerProperties {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SerializedFormat implements PropertiesStorageFormat {
|
public class SerializedFormat implements PropertiesStorageFormat {
|
||||||
|
|
||||||
public boolean load( String thePropertiesPath ) {
|
public boolean load( String thePropertiesPath ) {
|
||||||
try {
|
try {
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -11,21 +36,13 @@ import java.io.Serializable;
|
|||||||
public class ControllerProperty implements Serializable , Cloneable {
|
public class ControllerProperty implements Serializable , Cloneable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 4506431150330867327L;
|
private static final long serialVersionUID = 4506431150330867327L;
|
||||||
|
|
||||||
private String setter;
|
private String setter;
|
||||||
|
|
||||||
private String getter;
|
private String getter;
|
||||||
|
|
||||||
private Class< ? > type;
|
private Class< ? > type;
|
||||||
|
|
||||||
private Object value;
|
private Object value;
|
||||||
|
|
||||||
private String address;
|
private String address;
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
|
|
||||||
private transient boolean active;
|
private transient boolean active;
|
||||||
|
|
||||||
private transient ControllerInterface< ? > controller;
|
private transient ControllerInterface< ? > controller;
|
||||||
|
|
||||||
ControllerProperty( ControllerInterface< ? > theController , String theSetter , String theGetter ) {
|
ControllerProperty( ControllerInterface< ? > theController , String theSetter , String theGetter ) {
|
||||||
@ -37,8 +54,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
|||||||
setId( theController.getId( ) );
|
setId( theController.getId( ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override protected Object clone( ) throws CloneNotSupportedException {
|
||||||
protected Object clone( ) throws CloneNotSupportedException {
|
|
||||||
ControllerProperty clone = ( ControllerProperty ) super.clone( );
|
ControllerProperty clone = ( ControllerProperty ) super.clone( );
|
||||||
clone.setSetter( getSetter( ) );
|
clone.setSetter( getSetter( ) );
|
||||||
clone.setGetter( getGetter( ) );
|
clone.setGetter( getGetter( ) );
|
||||||
@ -54,8 +70,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
|||||||
/**
|
/**
|
||||||
* @exclude {@inheritDoc}
|
* @exclude {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override public boolean equals( Object o ) {
|
||||||
public boolean equals( Object o ) {
|
|
||||||
|
|
||||||
if ( this == o ) {
|
if ( this == o ) {
|
||||||
return true;
|
return true;
|
||||||
@ -74,8 +89,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
|||||||
/**
|
/**
|
||||||
* @exclude {@inheritDoc}
|
* @exclude {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override public int hashCode( ) {
|
||||||
public int hashCode( ) {
|
|
||||||
int result = 17;
|
int result = 17;
|
||||||
result = 37 * result + ( address != null ? address.hashCode( ) : 0 );
|
result = 37 * result + ( address != null ? address.hashCode( ) : 0 );
|
||||||
result = 37 * result + ( setter != null ? setter.hashCode( ) : 0 );
|
result = 37 * result + ( setter != null ? setter.hashCode( ) : 0 );
|
||||||
@ -91,8 +105,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
|||||||
active = true;
|
active = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override public String toString( ) {
|
||||||
public String toString( ) {
|
|
||||||
return address + " " + setter + ", " + getter;
|
return address + " " + setter + ", " + getter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or modify it under
|
* This library is free software; you can redistribute it and/or
|
||||||
* the terms of the GNU Lesser General Public License as published by the Free
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
* Software Foundation; either version 2.1 of the License, or (at your option)
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
* any later version. This library is distributed in the hope that it will be
|
* of the License, or (at your option) any later version.
|
||||||
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* This library is distributed in the hope that it will be useful,
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* General Public License for more details.
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU Lesser General
|
||||||
* along with this library; if not, write to the Free Software Foundation, Inc.,
|
* Public License along with this library; if not, write to the
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
* @modified ##date##
|
* @modified ##date##
|
||||||
@ -25,6 +25,9 @@ import java.io.Serializable;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Labels use the ControllerStyle class to store margin and padding information.
|
* Labels use the ControllerStyle class to store margin and padding information.
|
||||||
*
|
*
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -16,7 +16,7 @@ import processing.event.KeyEvent;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -127,6 +127,7 @@ public class DropdownList extends Controller< DropdownList > implements ControlL
|
|||||||
// n += itemRange; /* UP */
|
// n += itemRange; /* UP */
|
||||||
int index = ( int ) n + itemIndexOffset;
|
int index = ( int ) n + itemIndexOffset;
|
||||||
|
|
||||||
|
if (index < items.size()) {
|
||||||
Map m = items.get( index );
|
Map m = items.get( index );
|
||||||
|
|
||||||
switch ( _myType ) {
|
switch ( _myType ) {
|
||||||
@ -146,6 +147,7 @@ public class DropdownList extends Controller< DropdownList > implements ControlL
|
|||||||
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
|
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
|
|
||||||
|
@ -1,5 +1,29 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Group extends ControlGroup< Group > {
|
public class Group extends ControlGroup< Group > {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PFont;
|
import processing.core.PFont;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it
|
* This library is free software; you can redistribute it
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
* and/or modify it under the terms of the GNU Lesser
|
||||||
@ -41,6 +41,7 @@ import processing.core.PGraphics;
|
|||||||
*/
|
*/
|
||||||
public class Label implements CDrawable {
|
public class Label implements CDrawable {
|
||||||
|
|
||||||
|
public static boolean isToUpperCaseDefault = true;
|
||||||
protected int _myLetterSpacing = 0;
|
protected int _myLetterSpacing = 0;
|
||||||
protected boolean isMultiline;
|
protected boolean isMultiline;
|
||||||
protected boolean isFixedSize;
|
protected boolean isFixedSize;
|
||||||
@ -48,7 +49,7 @@ public class Label implements CDrawable {
|
|||||||
protected boolean isVisible = true;
|
protected boolean isVisible = true;
|
||||||
protected int _myColor = 0xffffffff;
|
protected int _myColor = 0xffffffff;
|
||||||
protected boolean isColorBackground;
|
protected boolean isColorBackground;
|
||||||
protected boolean isToUpperCase = true;
|
protected boolean isToUpperCase = isToUpperCaseDefault;
|
||||||
protected boolean changed;
|
protected boolean changed;
|
||||||
protected int _myColorBackground = 0xffffffff;
|
protected int _myColorBackground = 0xffffffff;
|
||||||
protected int _myHeight = -1;
|
protected int _myHeight = -1;
|
||||||
@ -407,13 +408,23 @@ public class Label implements CDrawable {
|
|||||||
return new Label( this );
|
return new Label( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void setUpperCaseDefault( boolean theValue ) {
|
||||||
|
isToUpperCaseDefault = theValue;
|
||||||
|
}
|
||||||
|
|
||||||
interface Labeltype {
|
interface Labeltype {
|
||||||
|
|
||||||
public void draw( Label theLabel , PGraphics theGraphics , int theX , int theY , ControllerInterface< ? > theController );
|
public void draw( Label theLabel , PGraphics theGraphics , int theX , int theY , ControllerInterface< ? > theController );
|
||||||
|
|
||||||
public void draw( Label theLabel , PGraphics theGraphics , int theX , int theY , int theW , int theH );
|
public void draw( Label theLabel , PGraphics theGraphics , int theX , int theY , int theW , int theH );
|
||||||
|
|
||||||
public int getWidth( );
|
public int getWidth( );
|
||||||
|
|
||||||
public int getHeight( );
|
public int getHeight( );
|
||||||
|
|
||||||
public int getOverflow( );
|
public int getOverflow( );
|
||||||
|
|
||||||
public String getTextFormatted( );
|
public String getTextFormatted( );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
class Pad {
|
class Pad {
|
||||||
// pad for placing controllers, like matrix but without the grid
|
// pad for placing controllers, like matrix but without the grid
|
||||||
// a sequencer
|
// a sequencer
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
public interface Pointer {
|
public interface Pointer {
|
||||||
|
|
||||||
public int x();
|
public int x();
|
||||||
|
@ -1,6 +1,31 @@
|
|||||||
|
|
||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PipedInputStream;
|
import java.io.PipedInputStream;
|
||||||
import java.io.PipedOutputStream;
|
import java.io.PipedOutputStream;
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Backwards compatibility, cp5magic for example uses it.
|
* Backwards compatibility, cp5magic for example uses it.
|
||||||
* But if possible, upgrade to RadioButton
|
* But if possible, upgrade to RadioButton
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -29,8 +29,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
|
import processing.core.PFont;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
import processing.core.PVector;
|
|
||||||
import controlP5.ControlP5.Invisible;
|
import controlP5.ControlP5.Invisible;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,7 +66,7 @@ public class Range extends Controller< Range > {
|
|||||||
protected boolean isSnapToTickMarks;
|
protected boolean isSnapToTickMarks;
|
||||||
public static int autoWidth = 99;
|
public static int autoWidth = 99;
|
||||||
public static int autoHeight = 9;
|
public static int autoHeight = 9;
|
||||||
public static PVector autoSpacing = new PVector( 0 , 5 , 0 );
|
public static float[] autoSpacing = new float[]{ 0 , 5 , 0 };
|
||||||
public int alignValueLabel = CENTER;
|
public int alignValueLabel = CENTER;
|
||||||
protected int _myColorTickMark = 0xffffffff;
|
protected int _myColorTickMark = 0xffffffff;
|
||||||
private int mode = -1;
|
private int mode = -1;
|
||||||
@ -490,6 +490,16 @@ public class Range extends Controller< Range > {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public Range setFont( PFont thePFont ) {
|
||||||
|
_myHighValueLabel.setFont( thePFont );
|
||||||
|
return super.setFont( thePFont );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public Range setFont( ControlFont theFont ) {
|
||||||
|
_myHighValueLabel.setFont( theFont );
|
||||||
|
return super.setFont( theFont );
|
||||||
|
}
|
||||||
|
|
||||||
@Override @ControlP5.Invisible public String toString( ) {
|
@Override @ControlP5.Invisible public String toString( ) {
|
||||||
return "type:\tRange\n" + super.toString( );
|
return "type:\tRange\n" + super.toString( );
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import static controlP5.ControlP5.b;
|
import static controlP5.ControlP5.b;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -13,33 +38,6 @@ import processing.core.PApplet;
|
|||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
import processing.event.KeyEvent;
|
import processing.event.KeyEvent;
|
||||||
|
|
||||||
/**
|
|
||||||
* controlP5 is a processing gui library.
|
|
||||||
*
|
|
||||||
* 2006-2012 by Andreas Schlegel
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it
|
|
||||||
* and/or modify it under the terms of the GNU Lesser
|
|
||||||
* General Public License as published by the Free Software
|
|
||||||
* Foundation; either version 2.1 of the License, or (at
|
|
||||||
* your option) any later version. This library is
|
|
||||||
* distributed in the hope that it will be useful, but
|
|
||||||
* WITHOUT ANY WARRANTY; without even the implied warranty
|
|
||||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
* See the GNU Lesser General Public License for more
|
|
||||||
* details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General
|
|
||||||
* Public License along with this library; if not, write to
|
|
||||||
* the Free Software Foundation, Inc., 59 Temple Place,
|
|
||||||
* Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
*
|
|
||||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
|
||||||
* @modified ##date##
|
|
||||||
* @version ##version##
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A ScrollableList is a list of vertically aligned items
|
* A ScrollableList is a list of vertically aligned items
|
||||||
* which can be scrolled if required.
|
* which can be scrolled if required.
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
|
|
||||||
|
@ -1,5 +1,30 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
|
|
||||||
public class Spacer extends Controller< Spacer > {
|
public class Spacer extends Controller< Spacer > {
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,21 +1,9 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import processing.core.PApplet;
|
|
||||||
import processing.core.PFont;
|
|
||||||
import processing.core.PGraphics;
|
|
||||||
import processing.event.Event;
|
|
||||||
import processing.event.KeyEvent;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -37,6 +25,19 @@ import processing.event.KeyEvent;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import processing.core.PApplet;
|
||||||
|
import processing.core.PFont;
|
||||||
|
import processing.core.PGraphics;
|
||||||
|
import processing.event.Event;
|
||||||
|
import processing.event.KeyEvent;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A singleline input textfield, use arrow keys to go back and forth, use backspace to delete
|
* A singleline input textfield, use arrow keys to go back and forth, use backspace to delete
|
||||||
* characters. Using the up and down arrows lets you cycle through the history of the textfield.
|
* characters. Using the up and down arrows lets you cycle through the history of the textfield.
|
||||||
@ -109,7 +110,7 @@ public class Textfield extends Controller< Textfield > {
|
|||||||
public Textfield( ControlP5 theControlP5 , ControllerGroup< ? > theParent , String theName , String theDefaultValue , int theX , int theY , int theWidth , int theHeight ) {
|
public Textfield( ControlP5 theControlP5 , ControllerGroup< ? > theParent , String theName , String theDefaultValue , int theX , int theY , int theWidth , int theHeight ) {
|
||||||
super( theControlP5 , theParent , theName , theX , theY , theWidth , theHeight );
|
super( theControlP5 , theParent , theName , theX , theY , theWidth , theHeight );
|
||||||
|
|
||||||
_myCaptionLabel = new Label( cp5 , theName.toUpperCase( ) , 0 , 0 , color.getCaptionLabel( ) );
|
_myCaptionLabel = new Label( cp5 , theName , 0 , 0 , color.getCaptionLabel( ) );
|
||||||
_myValueLabel.setFont( cp5.controlFont == cp5.defaultFont ? cp5.defaultFontForText : cp5.controlFont );
|
_myValueLabel.setFont( cp5.controlFont == cp5.defaultFont ? cp5.defaultFontForText : cp5.controlFont );
|
||||||
_myCaptionLabel.align( ControlP5.LEFT , ControlP5.BOTTOM_OUTSIDE );
|
_myCaptionLabel.align( ControlP5.LEFT , ControlP5.BOTTOM_OUTSIDE );
|
||||||
_myCaptionLabel.setPaddingX( 0 );
|
_myCaptionLabel.setPaddingX( 0 );
|
||||||
@ -183,15 +184,15 @@ public class Textfield extends Controller< Textfield > {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Textfield setFont( PFont thePFont ) {
|
// public Textfield setFont( PFont thePFont ) {
|
||||||
getValueLabel( ).setFont( thePFont );
|
// getValueLabel( ).setFont( thePFont );
|
||||||
return this;
|
// return this;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public Textfield setFont( ControlFont theFont ) {
|
// public Textfield setFont( ControlFont theFont ) {
|
||||||
getValueLabel( ).setFont( theFont );
|
// getValueLabel( ).setFont( theFont );
|
||||||
return this;
|
// return this;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public Textfield setFont( int theFont ) {
|
public Textfield setFont( int theFont ) {
|
||||||
getValueLabel( ).setFont( theFont );
|
getValueLabel( ).setFont( theFont );
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
@ -24,7 +24,6 @@ package controlP5;
|
|||||||
* @version ##version##
|
* @version ##version##
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ package controlP5;
|
|||||||
/**
|
/**
|
||||||
* controlP5 is a processing gui library.
|
* controlP5 is a processing gui library.
|
||||||
*
|
*
|
||||||
* 2006-2012 by Andreas Schlegel
|
* 2006-2015 by Andreas Schlegel
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public License
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
@ -1,11 +1,35 @@
|
|||||||
package controlP5;
|
package controlP5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* controlP5 is a processing gui library.
|
||||||
|
*
|
||||||
|
* 2006-2015 by Andreas Schlegel
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2.1
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General
|
||||||
|
* Public License along with this library; if not, write to the
|
||||||
|
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||||
|
* Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||||
|
* @modified ##date##
|
||||||
|
* @version ##version##
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import processing.core.PApplet;
|
import processing.core.PApplet;
|
||||||
import processing.core.PGraphics;
|
import processing.core.PGraphics;
|
||||||
import processing.core.PVector;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A tooltip can be registered for individual controllers
|
* A tooltip can be registered for individual controllers
|
||||||
@ -17,10 +41,10 @@ import processing.core.PVector;
|
|||||||
public class Tooltip {
|
public class Tooltip {
|
||||||
|
|
||||||
private ControllerView< ? > _myView;
|
private ControllerView< ? > _myView;
|
||||||
private PVector position = new PVector( );
|
private float[] position = new float[3];
|
||||||
private PVector currentPosition = new PVector( );
|
private float[] currentPosition = new float[3];
|
||||||
private PVector previousPosition = new PVector( );
|
private float[] previousPosition = new float[3];
|
||||||
private PVector offset = new PVector( );
|
private float[] offset = new float[3];
|
||||||
private Controller< ? > _myController;
|
private Controller< ? > _myController;
|
||||||
private long startTime = 0;
|
private long startTime = 0;
|
||||||
private long _myDelayInMillis = 500;
|
private long _myDelayInMillis = 500;
|
||||||
@ -39,10 +63,11 @@ public class Tooltip {
|
|||||||
|
|
||||||
Tooltip( ControlP5 theControlP5 ) {
|
Tooltip( ControlP5 theControlP5 ) {
|
||||||
cp5 = theControlP5;
|
cp5 = theControlP5;
|
||||||
position = new PVector( -1000 , -1000 );
|
position[0] = -1000;
|
||||||
currentPosition = new PVector( );
|
position[1] = -1000;
|
||||||
previousPosition = new PVector( );
|
currentPosition = new float[3];
|
||||||
offset = new PVector( 0 , 24 , 0 );
|
previousPosition = new float[3];
|
||||||
|
offset = new float[] { 0 , 24 , 0 };
|
||||||
map = new HashMap< Controller< ? > , String >( );
|
map = new HashMap< Controller< ? > , String >( );
|
||||||
_myLabel = new Label( cp5 , "tooltip" );
|
_myLabel = new Label( cp5 , "tooltip" );
|
||||||
_myLabel.setColor( _myColor );
|
_myLabel.setColor( _myColor );
|
||||||
@ -103,83 +128,11 @@ public class Tooltip {
|
|||||||
* @param theWindow
|
* @param theWindow
|
||||||
*/
|
*/
|
||||||
void draw( ControlWindow theWindow ) {
|
void draw( ControlWindow theWindow ) {
|
||||||
/*
|
// TODO re-implement Tooltip
|
||||||
if ( enabled ) {
|
|
||||||
|
|
||||||
if ( _myMode >= ControlP5.WAIT ) {
|
|
||||||
|
|
||||||
previousPosition.set( currentPosition );
|
|
||||||
currentPosition.set( theWindow.mouseX , theWindow.mouseY , 0 );
|
|
||||||
|
|
||||||
if ( _myController != null ) {
|
|
||||||
if ( _myController.getControlWindow( ).equals( theWindow ) ) {
|
|
||||||
switch ( _myMode ) {
|
|
||||||
case ( ControlP5.WAIT ):
|
|
||||||
if ( moved( ) ) {
|
|
||||||
startTime = System.nanoTime( );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( System.nanoTime( ) > startTime + ( _myDelayInMillis * 1000000 ) ) {
|
|
||||||
|
|
||||||
position.set( currentPosition );
|
|
||||||
_myAlignH = ControlP5.RIGHT;
|
|
||||||
if ( position.x > ( _myController.getControlWindow( ).papplet( ).width - ( getWidth( ) + 20 ) ) ) {
|
|
||||||
position.sub( new PVector( getWidth( ) , 0 , 0 ) );
|
|
||||||
_myAlignH = ControlP5.LEFT;
|
|
||||||
}
|
|
||||||
_myMode = ControlP5.FADEIN;
|
|
||||||
startTime = System.nanoTime( );
|
|
||||||
_myAlpha = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ( ControlP5.FADEIN ):
|
|
||||||
float t1 = System.nanoTime( ) - startTime;
|
|
||||||
_myAlpha = ( int ) PApplet.map( t1 , 0 , 200 * 1000000 , 0 , _myMaxAlpha );
|
|
||||||
if ( _myAlpha >= 250 ) {
|
|
||||||
_myMode = ControlP5.IDLE;
|
|
||||||
_myAlpha = 255;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ( ControlP5.IDLE ):
|
|
||||||
break;
|
|
||||||
case ( ControlP5.FADEOUT ):
|
|
||||||
float t2 = System.nanoTime( ) - startTime;
|
|
||||||
_myAlpha = ( int ) PApplet.map( t2 , 0 , 200 * 1000000 , _myMaxAlpha , 0 );
|
|
||||||
if ( _myAlpha <= 0 ) {
|
|
||||||
_myMode = ControlP5.DONE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ( ControlP5.DONE ):
|
|
||||||
_myController = null;
|
|
||||||
_myMode = ControlP5.INACTIVE;
|
|
||||||
position.set( -1000 , -1000 , 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
_myAlpha = PApplet.max( 0 , PApplet.min( _myAlpha , _myMaxAlpha ) );
|
|
||||||
|
|
||||||
if ( _myMode >= ControlP5.WAIT ) {
|
|
||||||
_myAlpha = ( _myMode == ControlP5.WAIT ) ? 0 : _myAlpha;
|
|
||||||
theWindow.papplet( ).pushMatrix( );
|
|
||||||
theWindow.papplet( ).translate( position.x , position.y );
|
|
||||||
theWindow.papplet( ).translate( offset.x , offset.y );
|
|
||||||
// TODO should request the current PGraphics element, not only the PApplet context. What if we render into a PGraphics buffer?
|
|
||||||
_myView.display( theWindow.papplet( ).g , null );
|
|
||||||
theWindow.papplet( ).popMatrix( );
|
|
||||||
}
|
|
||||||
if ( _myMode < ControlP5.FADEOUT ) {
|
|
||||||
if ( moved( ) ) {
|
|
||||||
deactivate( 0 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean moved( ) {
|
private boolean moved( ) {
|
||||||
return PApplet.abs( PApplet.dist( previousPosition.x , previousPosition.y , currentPosition.x , currentPosition.y ) ) > 1;
|
return PApplet.abs( PApplet.dist( previousPosition[0] , previousPosition[1] , currentPosition[0] , currentPosition[1] ) ) > 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -206,7 +159,8 @@ public class Tooltip {
|
|||||||
if ( map.containsKey( theController ) ) {
|
if ( map.containsKey( theController ) ) {
|
||||||
startTime = System.nanoTime( );
|
startTime = System.nanoTime( );
|
||||||
_myController = theController;
|
_myController = theController;
|
||||||
currentPosition.set( theController.getControlWindow( ).mouseX , theController.getControlWindow( ).mouseY , 0 );
|
currentPosition[0] = theController.getControlWindow( ).mouseX;
|
||||||
|
currentPosition[1] = theController.getControlWindow( ).mouseY;
|
||||||
updateText( map.get( _myController ) );
|
updateText( map.get( _myController ) );
|
||||||
_myMode = ControlP5.WAIT;
|
_myMode = ControlP5.WAIT;
|
||||||
}
|
}
|
||||||
@ -329,8 +283,8 @@ public class Tooltip {
|
|||||||
* @return Tooltip
|
* @return Tooltip
|
||||||
*/
|
*/
|
||||||
public Tooltip setPositionOffset( float theX , float theY ) {
|
public Tooltip setPositionOffset( float theX , float theY ) {
|
||||||
offset.x = theX;
|
offset[0] = theX;
|
||||||
offset.y = theY;
|
offset[1] = theY;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
2016-14-04 Andreas Schlegel <andi at sojamo.de>
|
||||||
|
|
||||||
|
mostly bug fixes, see github issues
|
||||||
|
removed all PVector references, variables, and functions using processing.core.PVector
|
||||||
|
|
||||||
|
2015-08-02 Andreas Schlegel <andi at sojamo.de>
|
||||||
|
|
||||||
|
changes see github change log
|
||||||
|
|
||||||
2015-03-29 Andreas Schlegel <andi at sojamo.de>
|
2015-03-29 Andreas Schlegel <andi at sojamo.de>
|
||||||
|
|
||||||
* src controlP5.ScrollabelList:
|
* src controlP5.ScrollabelList:
|
||||||
|
Loading…
Reference in New Issue
Block a user