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.
|
||||
|
||||
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
|
||||
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 a = int(c.getArrayValue(3));
|
||||
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
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@ -183,6 +183,4 @@ java.lang.Object : boolean equals(Object)
|
||||
|
||||
created: 2015/03/24 12:20:58
|
||||
|
||||
*/
|
||||
|
||||
|
||||
*/
|
@ -1,98 +1,112 @@
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
*/
|
||||
|
||||
import java.awt.Frame;
|
||||
import java.awt.BorderLayout;
|
||||
import controlP5.*;
|
||||
|
||||
private ControlP5 cp5;
|
||||
|
||||
ControlFrame cf;
|
||||
|
||||
int def;
|
||||
float speed;
|
||||
float pos;
|
||||
float c0, c1, c2, c3;
|
||||
boolean auto;
|
||||
|
||||
void settings() {
|
||||
size(400, 400, P3D);
|
||||
}
|
||||
|
||||
void setup() {
|
||||
size(400, 400);
|
||||
cp5 = new ControlP5(this);
|
||||
|
||||
// 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.
|
||||
|
||||
|
||||
cf = new ControlFrame(this, 400, 800, "Controls");
|
||||
surface.setLocation(420, 10);
|
||||
noStroke();
|
||||
}
|
||||
|
||||
void draw() {
|
||||
background(def);
|
||||
}
|
||||
|
||||
ControlFrame addControlFrame(String theName, int theWidth, int theHeight) {
|
||||
Frame f = new Frame(theName);
|
||||
ControlFrame p = new ControlFrame(this, theWidth, theHeight);
|
||||
f.add(p);
|
||||
p.init();
|
||||
f.setTitle(theName);
|
||||
f.setSize(p.w, p.h);
|
||||
f.setLocation(100, 100);
|
||||
f.setResizable(false);
|
||||
f.setVisible(true);
|
||||
return p;
|
||||
if (auto) pos += speed;
|
||||
background(0);
|
||||
translate(width/2, height/2);
|
||||
rotateY(pos);
|
||||
lights();
|
||||
fill(c0, c1, c2, c3);
|
||||
box(100);
|
||||
}
|
||||
|
||||
|
||||
// the ControlFrame class extends PApplet, so we
|
||||
// are creating a new processing applet inside a
|
||||
// new frame with a controlP5 object loaded
|
||||
public class ControlFrame extends PApplet {
|
||||
|
||||
|
||||
class ControlFrame extends PApplet {
|
||||
|
||||
int w, h;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
PApplet parent;
|
||||
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);
|
||||
}
|
||||
}
|
@ -1,102 +1,102 @@
|
||||
<project name="controlP5" default="build" basedir="../">
|
||||
|
||||
|
||||
<description>
|
||||
ant build file for controlP5, a gui processing library.
|
||||
</description>
|
||||
|
||||
<property name="processing" location="${user.home}/Documents/Processing/libraries"/>
|
||||
<property name="libraryClasspath" location="../libs"/>
|
||||
<property name="libraryClasspath" location="../libs"/>
|
||||
<path id="library-classpath">
|
||||
<fileset dir="${libraryClasspath}" >
|
||||
<fileset dir="${libraryClasspath}" >
|
||||
<include name="core.jar"/>
|
||||
</fileset>
|
||||
</path>
|
||||
</path>
|
||||
<property name="javaVersion" value="1.6"/>
|
||||
<property name="author" value="Andreas Schlegel"/>
|
||||
<property name="copyright" value="(c) 2006-2015"/>
|
||||
<property name="author" value="Andreas Schlegel"/>
|
||||
<property name="copyright" value="(c) 2006-2016"/>
|
||||
<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="keywords" value="gui, ui, controller, interface, user interface" />
|
||||
<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="source:host" value="github" />
|
||||
<property name="source:url" value="https://github.com/sojamo/controlp5" />
|
||||
<property name="source:repository" value="https://github.com/sojamo/controlp5/tree/master/src" />
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- no changes or adjustments required below -->
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Create the time stamp -->
|
||||
<tstamp>
|
||||
<tstamp>
|
||||
<format property="date" pattern="MM/dd/yyyy" offset="0" unit="hour"/>
|
||||
</tstamp>
|
||||
|
||||
|
||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
|
||||
<classpath>
|
||||
<pathelement location="./resources/code/ant-contrib-1.0b3.jar"/>
|
||||
</classpath>
|
||||
</taskdef>
|
||||
|
||||
|
||||
<property name="jarFile" value="${libraryName}.jar"/>
|
||||
<property name="src" location="src"/>
|
||||
<property name="bin" location="bin"/>
|
||||
<property name="reference" location="reference"/>
|
||||
<property name="dist" location="distribution"/>
|
||||
<property name="resources" location="resources"/>
|
||||
|
||||
|
||||
|
||||
<target name="init">
|
||||
|
||||
|
||||
<echo>
|
||||
--------------------------------------------------------------------------------------------
|
||||
${date} compiling ${libraryName} ${versionNumber}
|
||||
--------------------------------------------------------------------------------------------
|
||||
Properties initialized
|
||||
--------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
src path ${src}
|
||||
bin path ${bin}
|
||||
libraryClasspath ${libraryClasspath}
|
||||
processing Libraries ${processing}
|
||||
java version ${javaVersion}
|
||||
</echo>
|
||||
|
||||
</echo>
|
||||
|
||||
<echo>
|
||||
--------------------------------------------------------------------------------------------
|
||||
building library ...
|
||||
</echo>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<delete dir="${bin}"/>
|
||||
<mkdir dir="${bin}"/>
|
||||
<delete dir="${dist}"/>
|
||||
<delete dir="${dist}"/>
|
||||
<mkdir dir="${dist}"/>
|
||||
|
||||
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- compile the library -->
|
||||
<target name="compile" depends="init" description="compile the source" >
|
||||
<target name="compile" depends="init" description="compile the source" >
|
||||
<javac srcdir="${src}" destdir="${bin}" source="${javaVersion}" target="${javaVersion}">
|
||||
<classpath>
|
||||
<path refid="library-classpath"/>
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- build the distribution of the library -->
|
||||
<target name="prepare" depends="compile" description="generate the distribution" >
|
||||
<!-- delete the previous content of the ${dist} folder -->
|
||||
<delete dir="${dist}" />
|
||||
|
||||
|
||||
<!-- build the structure for ${dist} -->
|
||||
<mkdir dir="${dist}" />
|
||||
<mkdir dir="${dist}/library" />
|
||||
@ -109,48 +109,48 @@
|
||||
</copy>
|
||||
<copy todir="${dist}/src">
|
||||
<fileset dir="src"/>
|
||||
</copy>
|
||||
|
||||
|
||||
</copy>
|
||||
|
||||
|
||||
<path id="src.contents"><fileset dir="${dist}/src" includes="**/*.java" /></path>
|
||||
<property name="src.list" refid="src.contents" />
|
||||
<foreach list="${src.list}" param="file" target="versionSourcefile" delimiter=":" />
|
||||
|
||||
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<target name="build" depends="prepare" description="generate the reference" >
|
||||
<!-- create the java reference of the library -->
|
||||
<echo>Generating JavaDoc Reference</echo>
|
||||
<mkdir dir="${reference}" />
|
||||
|
||||
|
||||
<javadoc bottom="processing library ${libraryName} by ${author}. ${copyright}"
|
||||
classpath="${libraryClasspath}/core.jar"
|
||||
destdir="${reference}"
|
||||
verbose="false"
|
||||
nodeprecated="true"
|
||||
|
||||
|
||||
<javadoc bottom="processing library ${libraryName} by ${author}. ${copyright}"
|
||||
classpath="${libraryClasspath}/core.jar"
|
||||
destdir="${reference}"
|
||||
verbose="false"
|
||||
nodeprecated="true"
|
||||
stylesheetfile="resources/stylesheet.css"
|
||||
doctitle="Javadocs: ${libraryName}"
|
||||
public="true" version="false"
|
||||
doctitle="Javadocs: ${libraryName}"
|
||||
public="true" version="false"
|
||||
windowtitle="Javadocs: ${libraryName}">
|
||||
<taglet name="ExampleTaglet" path="resources/code" />
|
||||
<fileset dir="${src}" defaultexcludes="yes">
|
||||
<include name="**/*.java"/>
|
||||
</fileset>
|
||||
</javadoc>
|
||||
|
||||
|
||||
|
||||
|
||||
<copy todir="${dist}/reference">
|
||||
<fileset dir="${reference}" />
|
||||
</copy>
|
||||
|
||||
|
||||
<!-- copy the jar file to processing's libraries -->
|
||||
<mkdir dir="${processing}/${libraryName}" />
|
||||
<copy todir="${processing}/${libraryName}">
|
||||
<fileset dir="${dist}"/>
|
||||
</copy>
|
||||
</copy>
|
||||
|
||||
<mkdir dir="${dist}/${libraryName}-${versionNumber}" />
|
||||
<mkdir dir="${dist}/${libraryName}-${versionNumber}/controlP5" />
|
||||
@ -165,7 +165,7 @@
|
||||
<copy todir="${dist}/${libraryName}-${versionNumber}/controlP5/examples"><fileset dir="${dist}/examples"/></copy>
|
||||
<copy todir="${dist}/${libraryName}-${versionNumber}/controlP5/reference"><fileset dir="${dist}/reference"/></copy>
|
||||
<copy todir="${dist}/${libraryName}-${versionNumber}/controlP5/library"><fileset dir="${dist}/library"/></copy>
|
||||
|
||||
|
||||
<copyfile src="${resources}/install_instructions.txt" dest="${dist}/tmp/install_instructions.txt"/>
|
||||
<copyfile src="${resources}/library.properties" dest="${dist}/tmp/controlP5/library.properties"/>
|
||||
|
||||
@ -178,64 +178,64 @@
|
||||
basedir="${dist}/tmp"
|
||||
excludes="**/.DS_Store"
|
||||
/>
|
||||
|
||||
|
||||
<!-- <rename src="${dist}/${libraryName}.zip" dest="${dist}/${libraryName}_${versionNumber}.zip" /> -->
|
||||
|
||||
|
||||
<!-- organize the ${dist} folder -->
|
||||
<mkdir dir="${dist}/web" />
|
||||
<move todir="${dist}/web/reference">
|
||||
<fileset dir="${dist}/reference" />
|
||||
</move>
|
||||
|
||||
|
||||
<move todir="${dist}/web/examples">
|
||||
<fileset dir="${dist}/examples" />
|
||||
</move>
|
||||
|
||||
|
||||
<delete dir="${dist}/library" />
|
||||
|
||||
|
||||
<copy todir="${dist}/web">
|
||||
<fileset dir="web" />
|
||||
</copy>
|
||||
|
||||
|
||||
<!--
|
||||
format the index.html file.
|
||||
regular expressions are used to parse the web index.html file.
|
||||
key words starting and ending with ## are replaced by values
|
||||
format the index.html file.
|
||||
regular expressions are used to parse the web index.html file.
|
||||
key words starting and ending with ## are replaced by values
|
||||
defined earlier in the beginning of this build file.
|
||||
-->
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##yourLibrary##"
|
||||
replace="${libraryName}"
|
||||
flags="g" />
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##author##"
|
||||
replace="${author}"
|
||||
flags="g" />
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##versionNumber##"
|
||||
replace="${versionNumber}"
|
||||
flags="g" />
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##yourLink##"
|
||||
replace="${yourLink}"
|
||||
flags="g" />
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##date##"
|
||||
replace="${date}"
|
||||
flags="g" />
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##keywords##"
|
||||
replace="${keywords}"
|
||||
flags="g" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##tested:platform##"
|
||||
replace="${tested:platform}"
|
||||
@ -261,34 +261,34 @@
|
||||
replace="${source:repository}"
|
||||
flags="g" />
|
||||
|
||||
|
||||
|
||||
<echo>--------------------------------------------------------------------------------------------</echo>
|
||||
<antcall target="processExamples" />
|
||||
<echo>--------------------------------------------------------------------------------------------</echo>
|
||||
|
||||
|
||||
<replaceregexp file="${dist}/web/index.html"
|
||||
match="##examples##"
|
||||
replace=""
|
||||
flags="g" />
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- finish organizing library's distribution -->
|
||||
<mkdir dir="${dist}/web/download" />
|
||||
<copy file="${dist}/${libraryName}-${versionNumber}.zip" todir="${dist}/web/download" />
|
||||
|
||||
|
||||
<copy todir="${processing}/${libraryName}/reference">
|
||||
<fileset dir="${reference}" />
|
||||
</copy>
|
||||
|
||||
|
||||
<!-- done, finished. -->
|
||||
<echo>--------------------------------------------------------------------------------------------
|
||||
done, finished compiling ${libraryName} ${versionNumber}
|
||||
--------------------------------------------------------------------------------------------
|
||||
</echo>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- parsing the examples folder -->
|
||||
<target name="processExamples">
|
||||
<dirset id="examples.contents" dir="examples" />
|
||||
@ -296,7 +296,7 @@
|
||||
<foreach list="${examples.list}" target="addExamples" param="exampleDir" delimiter=";">
|
||||
</foreach>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="addExamples">
|
||||
<echo>${exampleDir}</echo>
|
||||
<propertyregex property="pde"
|
||||
@ -326,12 +326,11 @@
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
|
||||
<target name="versionSourcefile">
|
||||
<echo>${file}</echo>
|
||||
<replaceregexp file="${file}" match="##version##" replace="${versionNumber}" flags="g" />
|
||||
<replaceregexp file="${file}" match="##date##" replace="${date}" flags="g" />
|
||||
</target>
|
||||
</project>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
cd $HOME/Documents/workspace/controlp5/bin
|
||||
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)"
|
||||
|
@ -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
|
||||
# check if an update is available. You should think of it as a
|
||||
# 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
|
||||
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.
|
||||
*
|
||||
* 2006-2014 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 Public License
|
||||
|
@ -1,5 +1,30 @@
|
||||
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 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.
|
||||
*
|
||||
* 2006-2014 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 Public License
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 modify it under the terms of the GNU Lesser
|
||||
|
@ -1,5 +1,32 @@
|
||||
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 java.util.ArrayList;
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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
|
||||
* 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.
|
||||
*
|
||||
* 2006-2012 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 Public License
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.lang.reflect.Array;
|
||||
import java.net.URLEncoder;
|
||||
@ -7,8 +32,6 @@ import java.text.CharacterIterator;
|
||||
import java.text.StringCharacterIterator;
|
||||
import java.util.List;
|
||||
|
||||
import processing.core.PVector;
|
||||
|
||||
public class CP {
|
||||
|
||||
/**
|
||||
@ -224,10 +247,7 @@ public class CP {
|
||||
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 ) {
|
||||
if ( theRect.length == 4 ) {
|
||||
return ( theX > theRect[ 0 ] && theX < theRect[ 2 ] && theY > theRect[ 1 ] && theY < theRect[ 3 ] );
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.PGraphics;
|
||||
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.LinkedHashMap;
|
||||
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.
|
||||
*/
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.ListIterator;
|
||||
|
||||
|
@ -1,16 +1,9 @@
|
||||
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.
|
||||
*
|
||||
* 2006-2012 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 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
|
||||
* columns. items of a checkBox are of type Toggle.
|
||||
|
@ -1,5 +1,30 @@
|
||||
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 > {
|
||||
|
||||
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.
|
||||
*
|
||||
* 2006-2012 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 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.
|
||||
* 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
|
||||
* 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##
|
||||
@ -169,7 +171,7 @@ public class ColorPicker extends ControlGroup< ColorPicker > {
|
||||
if ( _myPlug != null ) {
|
||||
try {
|
||||
Method method = _myPlug.getClass( ).getMethod( _myPlugName , int.class );
|
||||
method.invoke( _myPlug , ( int ) _myValue );
|
||||
method.invoke( _myPlug , ( int ) getColorValue( ) );
|
||||
} catch ( SecurityException ex ) {
|
||||
ex.printStackTrace( );
|
||||
} catch ( NoSuchMethodException ex ) {
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.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 );
|
||||
|
||||
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++ ) {
|
||||
int dx = ( int ) ( x(center) - x );
|
||||
int dx = ( int ) ( x( center ) - x );
|
||||
double dist = Math.sqrt( dx * dx + dy * dy );
|
||||
if ( dist >= inner_radius && dist <= outer_radius ) {
|
||||
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;
|
||||
set( _myCursor , x , y );
|
||||
setSaturation( t[ 1 ] );
|
||||
// TODO resolve rounding error issue as reported here https://github.com/sojamo/controlp5/issues/21
|
||||
_myColorValue = HSLtoRGB( hsl );
|
||||
setValue( _myColorValue );
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.RetentionPolicy;
|
||||
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -3,23 +3,21 @@ package controlP5;
|
||||
/**
|
||||
* 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 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.
|
||||
* 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
|
||||
* 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##
|
||||
|
@ -1,5 +1,30 @@
|
||||
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 void keyEvent();
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -3,23 +3,21 @@ package controlP5;
|
||||
/**
|
||||
* 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 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.
|
||||
* 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
|
||||
* 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##
|
||||
@ -98,7 +96,7 @@ public class ControlP5 extends ControlP5Base {
|
||||
/**
|
||||
* @exclude
|
||||
*/
|
||||
@ControlP5.Invisible public static final String VERSION = "2.2.5";// "##version##";
|
||||
@ControlP5.Invisible public static final String VERSION = "2.2.6";// "##version##";
|
||||
|
||||
/**
|
||||
* @exclude
|
||||
@ -954,7 +952,8 @@ public class ControlP5 extends ControlP5Base {
|
||||
public boolean loadProperties( final String theFilePath ) {
|
||||
String path = theFilePath.endsWith( _myProperties.format.getExtension( ) ) ? theFilePath : theFilePath + "." + _myProperties.format.getExtension( );
|
||||
path = checkPropertiesPath( path );
|
||||
File f = new File( path );
|
||||
File f = new File( path);
|
||||
|
||||
if ( f.exists( ) ) {
|
||||
return _myProperties.load( path );
|
||||
}
|
||||
@ -1226,8 +1225,14 @@ public class ControlP5 extends ControlP5Base {
|
||||
/* static helper functions including Object-to-Type
|
||||
* 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 ];
|
||||
|
||||
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;
|
||||
}
|
||||
try {
|
||||
final Field f = theObject.getClass( ).getDeclaredField( theMember );
|
||||
final Field f = theClass.getDeclaredField( theMember );
|
||||
/* TODO check super */
|
||||
f.setAccessible( true );
|
||||
Object o = theParams[ 0 ];
|
||||
@ -1257,8 +1262,7 @@ public class ControlP5 extends ControlP5Base {
|
||||
}
|
||||
} catch ( NoSuchFieldException e1 ) {
|
||||
try {
|
||||
final Method m = theObject.getClass( ).getDeclaredMethod( theMember , cs );
|
||||
/* TODO check super */
|
||||
final Method m = theClass.getDeclaredMethod( theMember , cs );
|
||||
m.setAccessible( true );
|
||||
try {
|
||||
return m.invoke( theObject , theParams );
|
||||
@ -1273,7 +1277,7 @@ public class ControlP5 extends ControlP5Base {
|
||||
} catch ( SecurityException e ) {
|
||||
System.err.println( e );
|
||||
} catch ( NoSuchMethodException e ) {
|
||||
System.err.println( e );
|
||||
invoke( theObject , theClass.getSuperclass( ) , theMember , theParams );
|
||||
}
|
||||
} catch ( IllegalArgumentException e ) {
|
||||
System.err.println( e );
|
||||
|
@ -3,23 +3,21 @@ package controlP5;
|
||||
/**
|
||||
* 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 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.
|
||||
* 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
|
||||
* 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##
|
||||
@ -39,7 +37,6 @@ import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PVector;
|
||||
import processing.event.Event;
|
||||
|
||||
import static controlP5.Controller.*;
|
||||
|
@ -3,29 +3,28 @@ package controlP5;
|
||||
/**
|
||||
* 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 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.
|
||||
* 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
|
||||
* 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;
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,30 @@
|
||||
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 processing.core.PApplet;
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 modify it under the terms of the GNU Lesser
|
||||
* General Public License as published by the Free Software
|
||||
@ -15,16 +15,16 @@ package controlP5;
|
||||
* 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;
|
||||
@ -34,7 +34,6 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PConstants;
|
||||
import processing.core.PGraphics;
|
||||
import processing.core.PVector;
|
||||
import processing.event.KeyEvent;
|
||||
import processing.event.MouseEvent;
|
||||
import controlP5.ControlP5Base.KeyCode;
|
||||
@ -62,10 +61,10 @@ public final class ControlWindow {
|
||||
protected List< Canvas > _myCanvas;
|
||||
protected boolean isDrawBackground = true;
|
||||
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 boolean rendererNotification = false;
|
||||
protected PVector positionOfTabs = new PVector( 0 , 0 , 0 );
|
||||
protected float[] positionOfTabs = new float[]{ 0 , 0 , 0 };
|
||||
private int _myFrameCount = 0;
|
||||
private boolean isMouse = true;
|
||||
private Pointer _myPointer;
|
||||
@ -82,7 +81,8 @@ public final class ControlWindow {
|
||||
protected boolean mouselock;
|
||||
protected char key;
|
||||
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 boolean focused = true;
|
||||
|
||||
@ -195,29 +195,18 @@ public final class ControlWindow {
|
||||
/**
|
||||
* Sets the position of the tab bar which is set to 0,0
|
||||
* by default. to move the tabs to y-position 100, use
|
||||
* cp5.getWindow().setPositionOfTabs(new PVector(0,100,0));
|
||||
*
|
||||
* @param thePVector
|
||||
* cp5.getWindow().setPositionOfTabs(0,100);
|
||||
*
|
||||
*/
|
||||
public ControlWindow setPositionOfTabs( PVector thePVector ) {
|
||||
positionOfTabs.set( thePVector );
|
||||
return this;
|
||||
}
|
||||
|
||||
public ControlWindow setPositionOfTabs( int theX , int theY ) {
|
||||
positionOfTabs.set( theX , theY , positionOfTabs.z );
|
||||
positionOfTabs[0] = theX;
|
||||
positionOfTabs[1] = theY;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the position of the tab bar as PVector. to
|
||||
* 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( ) {
|
||||
|
||||
public float[] getPositionOfTabs( ) {
|
||||
return positionOfTabs;
|
||||
}
|
||||
|
||||
@ -341,7 +330,7 @@ public final class ControlWindow {
|
||||
/**
|
||||
* updates all controllers inside the control window if
|
||||
* update is enabled.
|
||||
*
|
||||
*
|
||||
* @exclude
|
||||
*/
|
||||
public void update( ) {
|
||||
@ -508,7 +497,7 @@ public final class ControlWindow {
|
||||
}
|
||||
|
||||
public void clearKeys( ) {
|
||||
keys = new boolean[ 525 ];
|
||||
keys = new boolean[ numKeys ];
|
||||
numOfActiveKeys = 0;
|
||||
}
|
||||
|
||||
@ -566,8 +555,8 @@ public final class ControlWindow {
|
||||
|
||||
pg.noStroke( );
|
||||
pg.noFill( );
|
||||
int myOffsetX = ( int ) getPositionOfTabs( ).x;
|
||||
int myOffsetY = ( int ) getPositionOfTabs( ).y;
|
||||
int myOffsetX = ( int ) getPositionOfTabs( )[0];
|
||||
int myOffsetY = ( int ) getPositionOfTabs( )[1];
|
||||
int myHeight = 0;
|
||||
|
||||
if ( _myTabs.size( ) > 0 ) {
|
||||
@ -632,7 +621,7 @@ public final class ControlWindow {
|
||||
/**
|
||||
* Adds a custom context to a ControlWindow. Use a
|
||||
* custom class which implements the CDrawable interface
|
||||
*
|
||||
*
|
||||
* @see controlP5.CDrawable
|
||||
* @param theDrawable CDrawable
|
||||
*/
|
||||
@ -795,7 +784,7 @@ public final class ControlWindow {
|
||||
|
||||
/**
|
||||
* sets the frame rate of the control window.
|
||||
*
|
||||
*
|
||||
* @param theFrameRate
|
||||
* @return ControlWindow
|
||||
*/
|
||||
@ -814,7 +803,7 @@ public final class ControlWindow {
|
||||
* filled with a background color every frame. to enable
|
||||
* or disable the background from drawing, use
|
||||
* setDrawBackgorund(true/false).
|
||||
*
|
||||
*
|
||||
* @param theFlag
|
||||
* @return ControlWindow
|
||||
*/
|
||||
|
@ -4,7 +4,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -1,17 +1,23 @@
|
||||
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
|
||||
* 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.
|
||||
* 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
|
||||
* 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##
|
||||
@ -26,9 +32,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PFont;
|
||||
import processing.core.PGraphics;
|
||||
import processing.core.PImage;
|
||||
import processing.core.PVector;
|
||||
import processing.event.KeyEvent;
|
||||
|
||||
/**
|
||||
@ -270,8 +276,7 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
|
||||
}
|
||||
|
||||
protected void updateFont( ControlFont theControlFont ) {
|
||||
_myCaptionLabel.updateFont( theControlFont );
|
||||
_myValueLabel.updateFont( theControlFont );
|
||||
setFont( theControlFont );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -413,15 +418,7 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
|
||||
return me;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@link PVector}
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
@ -2213,4 +2210,16 @@ public abstract class Controller< T > implements ControllerInterface< T > , CDra
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
@ -104,16 +104,16 @@ class ControllerAutomator {
|
||||
*
|
||||
*/
|
||||
void addControllersFor( final String theAddressSpace , final Object t ) {
|
||||
|
||||
System.out.println("OKOK");
|
||||
if ( t instanceof List< ? > ) {
|
||||
return;
|
||||
}
|
||||
|
||||
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 >( );
|
||||
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import processing.core.PApplet;
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
@ -29,6 +29,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PFont;
|
||||
import processing.core.PGraphics;
|
||||
import processing.event.KeyEvent;
|
||||
|
||||
@ -260,8 +261,8 @@ public abstract class ControllerGroup< T > implements ControllerInterface< T > ,
|
||||
return me;
|
||||
}
|
||||
|
||||
public T setPosition( float[] thePVector ) {
|
||||
setPosition( x( thePVector ) , y( thePVector ) );
|
||||
public T setPosition( float[] thePosition ) {
|
||||
setPosition( x( thePosition ) , y( thePosition ) );
|
||||
return me;
|
||||
}
|
||||
|
||||
@ -954,4 +955,16 @@ public abstract class ControllerGroup< T > implements ControllerInterface< T > ,
|
||||
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.
|
||||
*
|
||||
* 2006-2012 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 Public License
|
||||
@ -26,6 +26,7 @@ package controlP5;
|
||||
*/
|
||||
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PFont;
|
||||
import processing.core.PGraphics;
|
||||
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[] thePVector );
|
||||
@ControlP5.Invisible public T setPosition( float[] thePosition );
|
||||
|
||||
public float[] getAbsolutePosition( );
|
||||
|
||||
public T setAbsolutePosition( float[] thePVector );
|
||||
public T setAbsolutePosition( float[] thePosition );
|
||||
|
||||
public T updateAbsolutePosition( );
|
||||
|
||||
@ -163,7 +164,11 @@ public interface ControllerInterface< T > {
|
||||
public boolean isMouseOver( );
|
||||
|
||||
public T setMouseOver( boolean theFlag );
|
||||
|
||||
|
||||
public T setFont( PFont theFont );
|
||||
|
||||
public T setFont( ControlFont theFont );
|
||||
|
||||
public T addListener( ControlListener theListener );
|
||||
|
||||
public T setCaptionLabel( String theValue );
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.FileOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
@ -11,7 +36,6 @@ import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import processing.core.PVector;
|
||||
|
||||
class ControllerLayout {
|
||||
|
||||
@ -28,7 +52,6 @@ class ControllerLayout {
|
||||
datatypes.put( Long.class , long.class );
|
||||
datatypes.put( Double.class , double.class );
|
||||
datatypes.put( Byte.class , byte.class );
|
||||
datatypes.put( PVector.class , PVector.class );
|
||||
datatypes.put( CColor.class , CColor.class );
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import java.util.List;
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
@ -35,6 +35,7 @@ import java.io.ObjectOutputStream;
|
||||
import java.io.StringReader;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
@ -70,6 +71,8 @@ public class ControllerProperties {
|
||||
public final static int OPEN = 0;
|
||||
public final static int CLOSE = 1;
|
||||
public static String defaultName = "controlP5";
|
||||
|
||||
|
||||
PropertiesStorageFormat format;
|
||||
|
||||
/**
|
||||
@ -420,14 +423,7 @@ public class ControllerProperties {
|
||||
for ( ControllerProperty cp : l ) {
|
||||
ControllerInterface< ? > ci = controlP5.getController( cp.getAddress( ) );
|
||||
ci = ( ci == null ) ? controlP5.getGroup( cp.getAddress( ) ) : ci;
|
||||
Method method;
|
||||
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( ) );
|
||||
}
|
||||
ControlP5.invoke( ( Controller ) ci , cp.getSetter( ) , cp.getValue( ) );
|
||||
}
|
||||
}
|
||||
return this;
|
||||
@ -451,7 +447,7 @@ public class ControllerProperties {
|
||||
public boolean load( String thePropertiesPath ) {
|
||||
return format.load( getPathWithExtension( format , controlP5.checkPropertiesPath( thePropertiesPath ) ) );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* use ControllerProperties.SERIALIZED, ControllerProperties.XML or ControllerProperties.JSON as parameter.
|
||||
*/
|
||||
@ -473,7 +469,7 @@ public class ControllerProperties {
|
||||
* saves all registered properties into the default 'controlP5.properties' file into your sketch folder.
|
||||
*/
|
||||
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 ) ) );
|
||||
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 ) {
|
||||
long t = System.currentTimeMillis( );
|
||||
JSONObject json = new JSONObject( );
|
||||
for ( ControllerProperty cp : theProperties ) {
|
||||
|
||||
if ( cp.isActive( ) ) {
|
||||
if ( updatePropertyValue( cp ) ) {
|
||||
cp.setId( cp.getController( ).getId( ) );
|
||||
@ -714,7 +712,22 @@ public class ControllerProperties {
|
||||
} else if ( cp.getValue( ) instanceof Boolean ) {
|
||||
item.setBoolean( key , ControlP5.b( cp.getValue( ) ) );
|
||||
} else {
|
||||
item.setString( key , cp.getValue( ).toString( ) );
|
||||
|
||||
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( ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -741,8 +754,20 @@ public class ControllerProperties {
|
||||
ControlP5.invoke( c , member , ControlP5.f( value.getValue( ) ) );
|
||||
} else if ( i1 instanceof String ) {
|
||||
ControlP5.invoke( c , member , ControlP5.s( value.getValue( ) ) );
|
||||
} else if ( i1 instanceof float[] ) {
|
||||
ControlP5.invoke( c , member , (float[])i1 );
|
||||
} else {
|
||||
ControlP5.invoke( c , member , value.getValue( ) );
|
||||
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 {
|
||||
ControlP5.invoke( c , member , value.getValue( ) );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -818,7 +843,7 @@ public class ControllerProperties {
|
||||
|
||||
}
|
||||
|
||||
class SerializedFormat implements PropertiesStorageFormat {
|
||||
public class SerializedFormat implements PropertiesStorageFormat {
|
||||
|
||||
public boolean load( String thePropertiesPath ) {
|
||||
try {
|
||||
|
@ -1,5 +1,30 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
@ -11,21 +36,13 @@ import java.io.Serializable;
|
||||
public class ControllerProperty implements Serializable , Cloneable {
|
||||
|
||||
private static final long serialVersionUID = 4506431150330867327L;
|
||||
|
||||
private String setter;
|
||||
|
||||
private String getter;
|
||||
|
||||
private Class< ? > type;
|
||||
|
||||
private Object value;
|
||||
|
||||
private String address;
|
||||
|
||||
private int id;
|
||||
|
||||
private transient boolean active;
|
||||
|
||||
private transient ControllerInterface< ? > controller;
|
||||
|
||||
ControllerProperty( ControllerInterface< ? > theController , String theSetter , String theGetter ) {
|
||||
@ -37,8 +54,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
||||
setId( theController.getId( ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object clone( ) throws CloneNotSupportedException {
|
||||
@Override protected Object clone( ) throws CloneNotSupportedException {
|
||||
ControllerProperty clone = ( ControllerProperty ) super.clone( );
|
||||
clone.setSetter( getSetter( ) );
|
||||
clone.setGetter( getGetter( ) );
|
||||
@ -54,8 +70,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
||||
/**
|
||||
* @exclude {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean equals( Object o ) {
|
||||
@Override public boolean equals( Object o ) {
|
||||
|
||||
if ( this == o ) {
|
||||
return true;
|
||||
@ -74,8 +89,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
||||
/**
|
||||
* @exclude {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public int hashCode( ) {
|
||||
@Override public int hashCode( ) {
|
||||
int result = 17;
|
||||
result = 37 * result + ( address != null ? address.hashCode( ) : 0 );
|
||||
result = 37 * result + ( setter != null ? setter.hashCode( ) : 0 );
|
||||
@ -91,8 +105,7 @@ public class ControllerProperty implements Serializable , Cloneable {
|
||||
active = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString( ) {
|
||||
@Override public String toString( ) {
|
||||
return address + " " + setter + ", " + getter;
|
||||
}
|
||||
|
||||
|
@ -1,23 +1,23 @@
|
||||
package controlP5;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 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
|
||||
* 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.
|
||||
* 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
|
||||
* 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##
|
||||
@ -25,6 +25,9 @@ import java.io.Serializable;
|
||||
*
|
||||
*/
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* Labels use the ControllerStyle class to store margin and padding information.
|
||||
*
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import processing.core.PGraphics;
|
||||
|
@ -16,7 +16,7 @@ import processing.event.KeyEvent;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
@ -127,24 +127,26 @@ public class DropdownList extends Controller< DropdownList > implements ControlL
|
||||
// n += itemRange; /* UP */
|
||||
int index = ( int ) n + itemIndexOffset;
|
||||
|
||||
Map m = items.get( index );
|
||||
|
||||
switch ( _myType ) {
|
||||
case ( LIST ):
|
||||
setValue( index );
|
||||
for ( Object o : items ) {
|
||||
( ( Map ) o ).put( "state" , false );
|
||||
if (index < items.size()) {
|
||||
Map m = items.get( index );
|
||||
|
||||
switch ( _myType ) {
|
||||
case ( LIST ):
|
||||
setValue( index );
|
||||
for ( Object o : items ) {
|
||||
( ( Map ) o ).put( "state" , false );
|
||||
}
|
||||
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
|
||||
break;
|
||||
case ( DROPDOWN ):
|
||||
setValue( index );
|
||||
setOpen( false );
|
||||
getCaptionLabel( ).setText( ( m.get( "text" ).toString( ) ) );
|
||||
break;
|
||||
case ( CHECKBOX ):
|
||||
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
|
||||
break;
|
||||
}
|
||||
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
|
||||
break;
|
||||
case ( DROPDOWN ):
|
||||
setValue( index );
|
||||
setOpen( false );
|
||||
getCaptionLabel( ).setText( ( m.get( "text" ).toString( ) ) );
|
||||
break;
|
||||
case ( CHECKBOX ):
|
||||
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
@ -461,4 +463,4 @@ public class DropdownList extends Controller< DropdownList > implements ControlL
|
||||
}
|
||||
/* TODO keycontrol: arrows, return dragging moving items
|
||||
* sorting custom view custom event types */
|
||||
}
|
||||
}
|
@ -1,5 +1,30 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.PGraphics;
|
||||
|
||||
|
@ -1,5 +1,29 @@
|
||||
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 > {
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.PFont;
|
||||
import processing.core.PGraphics;
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser
|
||||
@ -41,6 +41,7 @@ import processing.core.PGraphics;
|
||||
*/
|
||||
public class Label implements CDrawable {
|
||||
|
||||
public static boolean isToUpperCaseDefault = true;
|
||||
protected int _myLetterSpacing = 0;
|
||||
protected boolean isMultiline;
|
||||
protected boolean isFixedSize;
|
||||
@ -48,7 +49,7 @@ public class Label implements CDrawable {
|
||||
protected boolean isVisible = true;
|
||||
protected int _myColor = 0xffffffff;
|
||||
protected boolean isColorBackground;
|
||||
protected boolean isToUpperCase = true;
|
||||
protected boolean isToUpperCase = isToUpperCaseDefault;
|
||||
protected boolean changed;
|
||||
protected int _myColorBackground = 0xffffffff;
|
||||
protected int _myHeight = -1;
|
||||
@ -407,13 +408,23 @@ public class Label implements CDrawable {
|
||||
return new Label( this );
|
||||
}
|
||||
|
||||
|
||||
public static void setUpperCaseDefault( boolean theValue ) {
|
||||
isToUpperCaseDefault = theValue;
|
||||
}
|
||||
|
||||
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 , int theW , int theH );
|
||||
|
||||
public int getWidth( );
|
||||
|
||||
public int getHeight( );
|
||||
|
||||
public int getOverflow( );
|
||||
|
||||
public String getTextFormatted( );
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,16 +13,16 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import processing.core.PApplet;
|
||||
|
@ -1,5 +1,30 @@
|
||||
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 {
|
||||
// pad for placing controllers, like matrix but without the grid
|
||||
// a sequencer
|
||||
|
@ -1,5 +1,30 @@
|
||||
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 int x();
|
||||
|
@ -1,6 +1,31 @@
|
||||
|
||||
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.PipedInputStream;
|
||||
import java.io.PipedOutputStream;
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.
|
||||
* But if possible, upgrade to RadioButton
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
@ -29,8 +29,8 @@ import java.util.ArrayList;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PFont;
|
||||
import processing.core.PGraphics;
|
||||
import processing.core.PVector;
|
||||
import controlP5.ControlP5.Invisible;
|
||||
|
||||
/**
|
||||
@ -66,7 +66,7 @@ public class Range extends Controller< Range > {
|
||||
protected boolean isSnapToTickMarks;
|
||||
public static int autoWidth = 99;
|
||||
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;
|
||||
protected int _myColorTickMark = 0xffffffff;
|
||||
private int mode = -1;
|
||||
@ -489,7 +489,17 @@ 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( ) {
|
||||
return "type:\tRange\n" + super.toString( );
|
||||
}
|
||||
|
@ -1,5 +1,30 @@
|
||||
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 java.util.ArrayList;
|
||||
@ -13,33 +38,6 @@ import processing.core.PApplet;
|
||||
import processing.core.PGraphics;
|
||||
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
|
||||
* which can be scrolled if required.
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -1,5 +1,30 @@
|
||||
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.PGraphics;
|
||||
|
||||
|
@ -1,5 +1,30 @@
|
||||
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;
|
||||
|
||||
public class Spacer extends Controller< Spacer > {
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -1,21 +1,9 @@
|
||||
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.
|
||||
*
|
||||
* 2006-2012 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 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
|
||||
* 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 ) {
|
||||
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 );
|
||||
_myCaptionLabel.align( ControlP5.LEFT , ControlP5.BOTTOM_OUTSIDE );
|
||||
_myCaptionLabel.setPaddingX( 0 );
|
||||
@ -183,15 +184,15 @@ public class Textfield extends Controller< Textfield > {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Textfield setFont( PFont thePFont ) {
|
||||
getValueLabel( ).setFont( thePFont );
|
||||
return this;
|
||||
}
|
||||
|
||||
public Textfield setFont( ControlFont theFont ) {
|
||||
getValueLabel( ).setFont( theFont );
|
||||
return this;
|
||||
}
|
||||
// public Textfield setFont( PFont thePFont ) {
|
||||
// getValueLabel( ).setFont( thePFont );
|
||||
// return this;
|
||||
// }
|
||||
//
|
||||
// public Textfield setFont( ControlFont theFont ) {
|
||||
// getValueLabel( ).setFont( theFont );
|
||||
// return this;
|
||||
// }
|
||||
|
||||
public Textfield setFont( int theFont ) {
|
||||
getValueLabel( ).setFont( theFont );
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -2,9 +2,9 @@ package controlP5;
|
||||
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
@ -13,18 +13,17 @@ package controlP5;
|
||||
* 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##
|
||||
*
|
||||
*
|
||||
* @author Andreas Schlegel (http://www.sojamo.de)
|
||||
* @modified ##date##
|
||||
* @version ##version##
|
||||
*
|
||||
*/
|
||||
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PGraphics;
|
||||
|
||||
|
@ -3,7 +3,7 @@ package controlP5;
|
||||
/**
|
||||
* 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 the terms of the GNU Lesser General Public License
|
||||
|
@ -1,11 +1,35 @@
|
||||
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.Map;
|
||||
|
||||
import processing.core.PApplet;
|
||||
import processing.core.PGraphics;
|
||||
import processing.core.PVector;
|
||||
|
||||
/**
|
||||
* A tooltip can be registered for individual controllers
|
||||
@ -17,10 +41,10 @@ import processing.core.PVector;
|
||||
public class Tooltip {
|
||||
|
||||
private ControllerView< ? > _myView;
|
||||
private PVector position = new PVector( );
|
||||
private PVector currentPosition = new PVector( );
|
||||
private PVector previousPosition = new PVector( );
|
||||
private PVector offset = new PVector( );
|
||||
private float[] position = new float[3];
|
||||
private float[] currentPosition = new float[3];
|
||||
private float[] previousPosition = new float[3];
|
||||
private float[] offset = new float[3];
|
||||
private Controller< ? > _myController;
|
||||
private long startTime = 0;
|
||||
private long _myDelayInMillis = 500;
|
||||
@ -39,10 +63,11 @@ public class Tooltip {
|
||||
|
||||
Tooltip( ControlP5 theControlP5 ) {
|
||||
cp5 = theControlP5;
|
||||
position = new PVector( -1000 , -1000 );
|
||||
currentPosition = new PVector( );
|
||||
previousPosition = new PVector( );
|
||||
offset = new PVector( 0 , 24 , 0 );
|
||||
position[0] = -1000;
|
||||
position[1] = -1000;
|
||||
currentPosition = new float[3];
|
||||
previousPosition = new float[3];
|
||||
offset = new float[] { 0 , 24 , 0 };
|
||||
map = new HashMap< Controller< ? > , String >( );
|
||||
_myLabel = new Label( cp5 , "tooltip" );
|
||||
_myLabel.setColor( _myColor );
|
||||
@ -103,83 +128,11 @@ public class Tooltip {
|
||||
* @param theWindow
|
||||
*/
|
||||
void draw( ControlWindow theWindow ) {
|
||||
/*
|
||||
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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
// TODO re-implement Tooltip
|
||||
}
|
||||
|
||||
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 ) ) {
|
||||
startTime = System.nanoTime( );
|
||||
_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 ) );
|
||||
_myMode = ControlP5.WAIT;
|
||||
}
|
||||
@ -329,8 +283,8 @@ public class Tooltip {
|
||||
* @return Tooltip
|
||||
*/
|
||||
public Tooltip setPositionOffset( float theX , float theY ) {
|
||||
offset.x = theX;
|
||||
offset.y = theY;
|
||||
offset[0] = theX;
|
||||
offset[1] = theY;
|
||||
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>
|
||||
|
||||
* src controlP5.ScrollabelList:
|
||||
|
Loading…
Reference in New Issue
Block a user