controlp5/reference/controlP5/Accordion.html

995 lines
56 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Sun Apr 27 21:39:45 SGT 2014 -->
<title>Accordion (Javadocs: controlP5)</title>
<meta name="date" content="2014-04-27">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Accordion (Javadocs: controlP5)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../controlP5/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../controlP5/Bang.html" title="class in controlP5"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?controlP5/Accordion.html" target="_top">Frames</a></li>
<li><a href="Accordion.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">controlP5</div>
<h2 title="Class Accordion" class="title">Class Accordion</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../controlP5/ControllerGroup.html" title="class in controlP5">controlP5.ControllerGroup</a>&lt;T&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../controlP5/ControlGroup.html" title="class in controlP5">controlP5.ControlGroup</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</li>
<li>
<ul class="inheritance">
<li>controlP5.Accordion</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../controlP5/ControllerInterface.html" title="interface in controlP5">ControllerInterface</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;, <a href="../controlP5/ControlListener.html" title="interface in controlP5">ControlListener</a>, <a href="../controlP5/ControlP5Constants.html" title="interface in controlP5">ControlP5Constants</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">Accordion</span>
extends <a href="../controlP5/ControlGroup.html" title="class in controlP5">ControlGroup</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</pre>
<div class="block"><p>
The Accordion is a list of ControlGroups which can be expanded and collapsed. Only one item can
be open at a time.
</p></div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../controlP5/ControllerGroup.html" title="class in controlP5"><code>ControllerGroup</code></a>,
<a href="../controlP5/ControlGroup.html" title="class in controlP5"><code>ControlGroup</code></a></dd><script type="text/javascript">
<!--
document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
-->
</script>
<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><code><pre>/**
* ControlP5 Accordion
* arrange controller groups in an accordion like style.
*
* find a list of public methods available for the Accordion Controller
* at the bottom of this sketch. In the example below 3 groups with controllers
* are created and added to an accordion controller. Furthermore several key
* combinations are mapped to control individual settings of the accordion.
* An accordion comes in 2 modes, Accordion.SINGLE and Accordion.MULTI where the
* latter allows to open multiple groups of an accordion and the SINGLE mode only
* allows 1 group to be opened at a time.
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlp5
*
*/
import controlP5.*;
ControlP5 cp5;
Accordion accordion;
color c = color(0, 160, 100);
void setup() {
size(400, 600);
noStroke();
smooth();
gui();
}
void gui() {
cp5 = new ControlP5(this);
// group number 1, contains 2 bangs
Group g1 = cp5.addGroup("myGroup1")
.setBackgroundColor(color(0, 64))
.setBackgroundHeight(150)
;
cp5.addBang("bang")
.setPosition(10,20)
.setSize(100,100)
.moveTo(g1)
.plugTo(this,"shuffle");
;
// group number 2, contains a radiobutton
Group g2 = cp5.addGroup("myGroup2")
.setBackgroundColor(color(0, 64))
.setBackgroundHeight(150)
;
cp5.addRadioButton("radio")
.setPosition(10,20)
.setItemWidth(20)
.setItemHeight(20)
.addItem("black", 0)
.addItem("red", 1)
.addItem("green", 2)
.addItem("blue", 3)
.addItem("grey", 4)
.setColorLabel(color(255))
.activate(2)
.moveTo(g2)
;
// group number 3, contains a bang and a slider
Group g3 = cp5.addGroup("myGroup3")
.setBackgroundColor(color(0, 64))
.setBackgroundHeight(150)
;
cp5.addBang("shuffle")
.setPosition(10,20)
.setSize(40,50)
.moveTo(g3)
;
cp5.addSlider("hello")
.setPosition(60,20)
.setSize(100,20)
.setRange(100,500)
.setValue(100)
.moveTo(g3)
;
cp5.addSlider("world")
.setPosition(60,50)
.setSize(100,20)
.setRange(100,500)
.setValue(200)
.moveTo(g3)
;
// create a new accordion
// add g1, g2, and g3 to the accordion.
accordion = cp5.addAccordion("acc")
.setPosition(40,40)
.setWidth(200)
.addItem(g1)
.addItem(g2)
.addItem(g3)
;
cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.open(0,1,2);}}, 'o');
cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.close(0,1,2);}}, 'c');
cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setWidth(300);}}, '1');
cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setPosition(0,0);accordion.setItemHeight(190);}}, '2');
cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setCollapseMode(ControlP5.ALL);}}, '3');
cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setCollapseMode(ControlP5.SINGLE);}}, '4');
cp5.mapKeyFor(new ControlKey() {public void keyEvent() {cp5.remove("myGroup1");}}, '0');
accordion.open(0,1,2);
// use Accordion.MULTI to allow multiple group
// to be open at a time.
accordion.setCollapseMode(Accordion.MULTI);
// when in SINGLE mode, only 1 accordion
// group can be open at a time.
// accordion.setCollapseMode(Accordion.SINGLE);
}
void radio(int theC) {
switch(theC) {
case(0):c=color(0,200);break;
case(1):c=color(255,0,0,200);break;
case(2):c=color(0, 200, 140,200);break;
case(3):c=color(0, 128, 255,200);break;
case(4):c=color(50,128);break;
}
}
void shuffle() {
c = color(random(255),random(255),random(255),random(128,255));
}
void draw() {
background(220);
fill(c);
float s1 = cp5.getController("hello").getValue();
ellipse(200,400,s1,s1);
float s2 = cp5.getController("world").getValue();
ellipse(300,100,s2,s2);
}
/*
a list of all methods available for the Accordion Controller
use ControlP5.printPublicMethodsFor(Accordion.class);
to print the following list into the console.
You can find further details about class Accordion in the javadoc.
Format:
ClassName : returnType methodName(parameter type)
controlP5.Accordion : Accordion addItem(ControlGroup)
controlP5.Accordion : Accordion remove(ControllerInterface)
controlP5.Accordion : Accordion removeItem(ControlGroup)
controlP5.Accordion : Accordion setItemHeight(int)
controlP5.Accordion : Accordion setMinItemHeight(int)
controlP5.Accordion : Accordion setWidth(int)
controlP5.Accordion : Accordion updateItems()
controlP5.Accordion : int getItemHeight()
controlP5.Accordion : int getMinItemHeight()
controlP5.ControlGroup : Accordion activateEvent(boolean)
controlP5.ControlGroup : Accordion addListener(ControlListener)
controlP5.ControlGroup : Accordion hideBar()
controlP5.ControlGroup : Accordion removeListener(ControlListener)
controlP5.ControlGroup : Accordion setBackgroundColor(int)
controlP5.ControlGroup : Accordion setBackgroundHeight(int)
controlP5.ControlGroup : Accordion setBarHeight(int)
controlP5.ControlGroup : Accordion showBar()
controlP5.ControlGroup : Accordion updateInternalEvents(PApplet)
controlP5.ControlGroup : String getInfo()
controlP5.ControlGroup : String toString()
controlP5.ControlGroup : boolean isBarVisible()
controlP5.ControlGroup : int getBackgroundHeight()
controlP5.ControlGroup : int getBarHeight()
controlP5.ControlGroup : int listenerSize()
controlP5.ControllerGroup : Accordion add(ControllerInterface)
controlP5.ControllerGroup : Accordion bringToFront()
controlP5.ControllerGroup : Accordion bringToFront(ControllerInterface)
controlP5.ControllerGroup : Accordion close()
controlP5.ControllerGroup : Accordion disableCollapse()
controlP5.ControllerGroup : Accordion enableCollapse()
controlP5.ControllerGroup : Accordion hide()
controlP5.ControllerGroup : Accordion moveTo(ControlWindow)
controlP5.ControllerGroup : Accordion moveTo(PApplet)
controlP5.ControllerGroup : Accordion open()
controlP5.ControllerGroup : Accordion registerProperty(String)
controlP5.ControllerGroup : Accordion registerProperty(String, String)
controlP5.ControllerGroup : Accordion remove(CDrawable)
controlP5.ControllerGroup : Accordion remove(ControllerInterface)
controlP5.ControllerGroup : Accordion removeCanvas(ControlWindowCanvas)
controlP5.ControllerGroup : Accordion removeProperty(String)
controlP5.ControllerGroup : Accordion removeProperty(String, String)
controlP5.ControllerGroup : Accordion setAddress(String)
controlP5.ControllerGroup : Accordion setArrayValue(float[])
controlP5.ControllerGroup : Accordion setColor(CColor)
controlP5.ControllerGroup : Accordion setColorActive(int)
controlP5.ControllerGroup : Accordion setColorBackground(int)
controlP5.ControllerGroup : Accordion setColorForeground(int)
controlP5.ControllerGroup : Accordion setColorLabel(int)
controlP5.ControllerGroup : Accordion setColorValue(int)
controlP5.ControllerGroup : Accordion setHeight(int)
controlP5.ControllerGroup : Accordion setId(int)
controlP5.ControllerGroup : Accordion setLabel(String)
controlP5.ControllerGroup : Accordion setMouseOver(boolean)
controlP5.ControllerGroup : Accordion setMoveable(boolean)
controlP5.ControllerGroup : Accordion setOpen(boolean)
controlP5.ControllerGroup : Accordion setPosition(PVector)
controlP5.ControllerGroup : Accordion setPosition(float, float)
controlP5.ControllerGroup : Accordion setStringValue(String)
controlP5.ControllerGroup : Accordion setUpdate(boolean)
controlP5.ControllerGroup : Accordion setValue(float)
controlP5.ControllerGroup : Accordion setVisible(boolean)
controlP5.ControllerGroup : Accordion setWidth(int)
controlP5.ControllerGroup : Accordion show()
controlP5.ControllerGroup : Accordion update()
controlP5.ControllerGroup : Accordion updateAbsolutePosition()
controlP5.ControllerGroup : CColor getColor()
controlP5.ControllerGroup : ControlWindow getWindow()
controlP5.ControllerGroup : ControlWindowCanvas addCanvas(ControlWindowCanvas)
controlP5.ControllerGroup : Controller getController(String)
controlP5.ControllerGroup : ControllerProperty getProperty(String)
controlP5.ControllerGroup : ControllerProperty getProperty(String, String)
controlP5.ControllerGroup : Label getCaptionLabel()
controlP5.ControllerGroup : Label getValueLabel()
controlP5.ControllerGroup : PVector getPosition()
controlP5.ControllerGroup : String getAddress()
controlP5.ControllerGroup : String getInfo()
controlP5.ControllerGroup : String getName()
controlP5.ControllerGroup : String getStringValue()
controlP5.ControllerGroup : String toString()
controlP5.ControllerGroup : Tab getTab()
controlP5.ControllerGroup : boolean isCollapse()
controlP5.ControllerGroup : boolean isMouseOver()
controlP5.ControllerGroup : boolean isMoveable()
controlP5.ControllerGroup : boolean isOpen()
controlP5.ControllerGroup : boolean isUpdate()
controlP5.ControllerGroup : boolean isVisible()
controlP5.ControllerGroup : boolean setMousePressed(boolean)
controlP5.ControllerGroup : float getValue()
controlP5.ControllerGroup : float[] getArrayValue()
controlP5.ControllerGroup : int getHeight()
controlP5.ControllerGroup : int getId()
controlP5.ControllerGroup : int getWidth()
controlP5.ControllerGroup : void remove()
java.lang.Object : String toString()
java.lang.Object : boolean equals(Object)
*/
</pre></code></dd></dl></div></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_controlP5.ControlP5Constants">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;controlP5.<a href="../controlP5/ControlP5Constants.html" title="interface in controlP5">ControlP5Constants</a></h3>
<code><a href="../controlP5/ControlP5Constants.html#acceptClassList">acceptClassList</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_BROADCAST">ACTION_BROADCAST</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_CLICK">ACTION_CLICK</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_DRAG">ACTION_DRAG</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_ENTER">ACTION_ENTER</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_EXIT">ACTION_EXIT</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_LEAVE">ACTION_LEAVE</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_MOVE">ACTION_MOVE</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_PRESS">ACTION_PRESS</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_PRESSED">ACTION_PRESSED</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_RELEASE">ACTION_RELEASE</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_RELEASED">ACTION_RELEASED</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_RELEASEDOUTSIDE">ACTION_RELEASEDOUTSIDE</a>, <a href="../controlP5/ControlP5Constants.html#ACTION_WHEEL">ACTION_WHEEL</a>, <a href="../controlP5/ControlP5Constants.html#ACTIVE">ACTIVE</a>, <a href="../controlP5/ControlP5Constants.html#ALL">ALL</a>, <a href="../controlP5/ControlP5Constants.html#ALT">ALT</a>, <a href="../controlP5/ControlP5Constants.html#AQUA">AQUA</a>, <a href="../controlP5/ControlP5Constants.html#ARC">ARC</a>, <a href="../controlP5/ControlP5Constants.html#ARRAY">ARRAY</a>, <a href="../controlP5/ControlP5Constants.html#BACKSPACE">BACKSPACE</a>, <a href="../controlP5/ControlP5Constants.html#BASELINE">BASELINE</a>, <a href="../controlP5/ControlP5Constants.html#BITFONT">BITFONT</a>, <a href="../controlP5/ControlP5Constants.html#BLACK">BLACK</a>, <a href="../controlP5/ControlP5Constants.html#BLUE">BLUE</a>, <a href="../controlP5/ControlP5Constants.html#BOOLEAN">BOOLEAN</a>, <a href="../controlP5/ControlP5Constants.html#BOTTOM">BOTTOM</a>, <a href="../controlP5/ControlP5Constants.html#BOTTOM_OUTSIDE">BOTTOM_OUTSIDE</a>, <a href="../controlP5/ControlP5Constants.html#CAPTIONLABEL">CAPTIONLABEL</a>, <a href="../controlP5/ControlP5Constants.html#CENTER">CENTER</a>, <a href="../controlP5/ControlP5Constants.html#CHECKBOX">CHECKBOX</a>, <a href="../controlP5/ControlP5Constants.html#COMMANDKEY">COMMANDKEY</a>, <a href="../controlP5/ControlP5Constants.html#CONTROL">CONTROL</a>, <a href="../controlP5/ControlP5Constants.html#controlEventClass">controlEventClass</a>, <a href="../controlP5/ControlP5Constants.html#CUSTOM">CUSTOM</a>, <a href="../controlP5/ControlP5Constants.html#DECREASE">DECREASE</a>, <a href="../controlP5/ControlP5Constants.html#DEFAULT">DEFAULT</a>, <a href="../controlP5/ControlP5Constants.html#DELETE">DELETE</a>, <a href="../controlP5/ControlP5Constants.html#DONE">DONE</a>, <a href="../controlP5/ControlP5Constants.html#DOWN">DOWN</a>, <a href="../controlP5/ControlP5Constants.html#DROPDOWN">DROPDOWN</a>, <a href="../controlP5/ControlP5Constants.html#ELLIPSE">ELLIPSE</a>, <a href="../controlP5/ControlP5Constants.html#ENTER">ENTER</a>, <a href="../controlP5/ControlP5Constants.html#ESCAPE">ESCAPE</a>, <a href="../controlP5/ControlP5Constants.html#EVENT">EVENT</a>, <a href="../controlP5/ControlP5Constants.html#eventMethod">eventMethod</a>, <a href="../controlP5/ControlP5Constants.html#FADEIN">FADEIN</a>, <a href="../controlP5/ControlP5Constants.html#FADEOUT">FADEOUT</a>, <a href="../controlP5/ControlP5Constants.html#FIELD">FIELD</a>, <a href="../controlP5/ControlP5Constants.html#FLOAT">FLOAT</a>, <a href="../controlP5/ControlP5Constants.html#FUCHSIA">FUCHSIA</a>, <a href="../controlP5/ControlP5Constants.html#GRAY">GRAY</a>, <a href="../controlP5/ControlP5Constants.html#GREEN">GREEN</a>, <a href="../controlP5/ControlP5Constants.html#grixel">grixel</a>, <a href="../controlP5/ControlP5Constants.html#HALF_PI">HALF_PI</a>, <a href="../controlP5/ControlP5Constants.html#HIDE">HIDE</a>, <a href="../controlP5/ControlP5Constants.html#HIGHLIGHT">HIGHLIGHT</a>, <a href="../controlP5/ControlP5Constants.html#HORIZONTAL">HORIZONTAL</a>, <a href="../controlP5/ControlP5Constants.html#IDLE">IDLE</a>, <a href="../controlP5/ControlP5Constants.html#IMAGE">IMAGE</a>, <a href="../controlP5/ControlP5Constants.html#INACTIVE">INACTIVE</a>, <a href="../controlP5/ControlP5Constants.html#INCREASE">INCREASE</a>, <a href="../controlP5/ControlP5Constants.html#INTEGER">INTEGER</a>, <a href="../controlP5/ControlP5Constants.html#INVALID">INVALID</a>, <a href="../controlP5/ControlP5Constants.html#J2D">J2D</a>, <a href="../controlP5/ControlP5Constants.html#KEYCONTROL">KEYCONTROL</a>, <a href="../controlP5/ControlP5Constants.html#LEFT">LEFT</a>, <a href="../controlP5/ControlP5Constants.html#LEFT_OUTSIDE">LEFT_OUTSIDE</a>, <a href="../controlP5/ControlP5Constants.html#LIME">LIME</a>, <a href="../controlP5/ControlP5Constants.html#LINE">LINE</a>, <a href="../controlP5/ControlP5Constants.html#LIST">LIST</a>, <a href="../controlP5/ControlP5Constants.html#LOAD">LOAD</a>, <a href="../controlP5/ControlP5Constants.html#MAROON">MAROON</a>, <a href="../controlP5/ControlP5Constants.html#MENU">MENU</a>, <a href="../controlP5/ControlP5Constants.html#METHOD">METHOD</a>, <a href="../controlP5/ControlP5Constants.html#MOVE">MOVE</a>, <a href="../controlP5/ControlP5Constants.html#MULTI">MULTI</a>, <a href="../controlP5/ControlP5Constants.html#MULTIPLES">MULTIPLES</a>, <a href="../controlP5/ControlP5Constants.html#NAVY">NAVY</a>, <a href="../controlP5/ControlP5Constants.html#OLIVE">OLIVE</a>, <a href="../controlP5/ControlP5Constants.html#ORANGE">ORANGE</a>, <a href="../controlP5/ControlP5Constants.html#OVER">OVER</a>, <a href="../controlP5/ControlP5Constants.html#P2D">P2D</a>, <a href="../controlP5/ControlP5Constants.html#P3D">P3D</a>, <a href="../controlP5/ControlP5Constants.html#PI">PI</a>, <a href="../controlP5/ControlP5Constants.html#PRESSED">PRESSED</a>, <a href="../controlP5/ControlP5Constants.html#PRINT">PRINT</a>, <a href="../controlP5/ControlP5Constants.html#PURPLE">PURPLE</a>, <a href="../controlP5/ControlP5Constants.html#RED">RED</a>, <a href="../controlP5/ControlP5Constants.html#RELEASE">RELEASE</a>, <a href="../controlP5/ControlP5Constants.html#RESET">RESET</a>, <a href="../controlP5/ControlP5Constants.html#RIGHT">RIGHT</a>, <a href="../controlP5/ControlP5Constants.html#RIGHT_OUTSIDE">RIGHT_OUTSIDE</a>, <a href="../controlP5/ControlP5Constants.html#SAVE">SAVE</a>, <a href="../controlP5/ControlP5Constants.html#SHIFT">SHIFT</a>, <a href="../controlP5/ControlP5Constants.html#SILVER">SILVER</a>, <a href="../controlP5/ControlP5Constants.html#SINGLE">SINGLE</a>, <a href="../controlP5/ControlP5Constants.html#SINGLE_COLUMN">SINGLE_COLUMN</a>, <a href="../controlP5/ControlP5Constants.html#SINGLE_ROW">SINGLE_ROW</a>, <a href="../controlP5/ControlP5Constants.html#SPRITE">SPRITE</a>, <a href="../controlP5/ControlP5Constants.html#standard56">standard56</a>, <a href="../controlP5/ControlP5Constants.html#standard58">standard58</a>, <a href="../controlP5/ControlP5Constants.html#STRING">STRING</a>, <a href="../controlP5/ControlP5Constants.html#SWITCH">SWITCH</a>, <a href="../controlP5/ControlP5Constants.html#SWITCH_BACK">SWITCH_BACK</a>, <a href="../controlP5/ControlP5Constants.html#SWITCH_FORE">SWITCH_FORE</a>, <a href="../controlP5/ControlP5Constants.html#synt24">synt24</a>, <a href="../controlP5/ControlP5Constants.html#TAB">TAB</a>, <a href="../controlP5/ControlP5Constants.html#TEAL">TEAL</a>, <a href="../controlP5/ControlP5Constants.html#THEME_A">THEME_A</a>, <a href="../controlP5/ControlP5Constants.html#THEME_CP52014">THEME_CP52014</a>, <a href="../controlP5/ControlP5Constants.html#THEME_CP5BLUE">THEME_CP5BLUE</a>, <a href="../controlP5/ControlP5Constants.html#THEME_RED">THEME_RED</a>, <a href="../controlP5/ControlP5Constants.html#THEME_RETRO">THEME_RETRO</a>, <a href="../controlP5/ControlP5Constants.html#THEME_WHITE">THEME_WHITE</a>, <a href="../controlP5/ControlP5Constants.html#TOP">TOP</a>, <a href="../controlP5/ControlP5Constants.html#TOP_OUTSIDE">TOP_OUTSIDE</a>, <a href="../controlP5/ControlP5Constants.html#TRANSITION_WAIT_FADEIN">TRANSITION_WAIT_FADEIN</a>, <a href="../controlP5/ControlP5Constants.html#TREE">TREE</a>, <a href="../controlP5/ControlP5Constants.html#TWO_PI">TWO_PI</a>, <a href="../controlP5/ControlP5Constants.html#UP">UP</a>, <a href="../controlP5/ControlP5Constants.html#VALUELABEL">VALUELABEL</a>, <a href="../controlP5/ControlP5Constants.html#VERBOSE">VERBOSE</a>, <a href="../controlP5/ControlP5Constants.html#VERTICAL">VERTICAL</a>, <a href="../controlP5/ControlP5Constants.html#WAIT">WAIT</a>, <a href="../controlP5/ControlP5Constants.html#WHITE">WHITE</a>, <a href="../controlP5/ControlP5Constants.html#YELLOW">YELLOW</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../controlP5/Accordion.html#Accordion(controlP5.ControlP5, java.lang.String)">Accordion</a></strong>(<a href="../controlP5/ControlP5.html" title="class in controlP5">ControlP5</a>&nbsp;theControlP5,
java.lang.String&nbsp;theName)</code>
<div class="block">Convenience constructor to extend Accordion.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#addItem(controlP5.ControlGroup)">addItem</a></strong>(<a href="../controlP5/ControlGroup.html" title="class in controlP5">ControlGroup</a>&lt;?&gt;&nbsp;theGroup)</code>
<div class="block">Adds items of type ControlGroup to the Accordion, only ControlGroups can be added.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#close()">close</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#close(int...)">close</a></strong>(int...&nbsp;theId)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#controlEvent(controlP5.ControlEvent)">controlEvent</a></strong>(<a href="../controlP5/ControlEvent.html" title="class in controlP5">ControlEvent</a>&nbsp;theEvent)</code>
<div class="block">controlEvent is called by controlP5's ControlBroadcaster to inform available listeners about
value changes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#getItemHeight()">getItemHeight</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#getMinItemHeight()">getMinItemHeight</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#open()">open</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#open(int...)">open</a></strong>(int...&nbsp;theId)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#remove(controlP5.ControllerInterface)">remove</a></strong>(<a href="../controlP5/ControllerInterface.html" title="interface in controlP5">ControllerInterface</a>&lt;?&gt;&nbsp;theGroup)</code>
<div class="block">Removes a ControlGroup from the accordion AND from controlP5 remove(ControllerInterface
theGroup) overwrites it's super method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#removeItem(controlP5.ControlGroup)">removeItem</a></strong>(<a href="../controlP5/ControlGroup.html" title="class in controlP5">ControlGroup</a>&lt;?&gt;&nbsp;theGroup)</code>
<div class="block">Removes a ControlGroup from the accordion and puts it back into the default tab of controlP5.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#setCollapseMode(int)">setCollapseMode</a></strong>(int&nbsp;theMode)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#setItemHeight(int)">setItemHeight</a></strong>(int&nbsp;theHeight)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#setMinItemHeight(int)">setMinItemHeight</a></strong>(int&nbsp;theHeight)</code>
<div class="block">Sets the minimum height of a collapsed item, default value is 100.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#setWidth(int)">setWidth</a></strong>(int&nbsp;theWidth)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a></code></td>
<td class="colLast"><code><strong><a href="../controlP5/Accordion.html#updateItems()">updateItems</a></strong>()</code>
<div class="block">UpdateItems is called when changes such as remove, change of height is performed on an
accordion.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_controlP5.ControlGroup">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;controlP5.<a href="../controlP5/ControlGroup.html" title="class in controlP5">ControlGroup</a></h3>
<code><a href="../controlP5/ControlGroup.html#activateEvent(boolean)">activateEvent</a>, <a href="../controlP5/ControlGroup.html#addListener(controlP5.ControlListener)">addListener</a>, <a href="../controlP5/ControlGroup.html#getBackgroundHeight()">getBackgroundHeight</a>, <a href="../controlP5/ControlGroup.html#getBarHeight()">getBarHeight</a>, <a href="../controlP5/ControlGroup.html#getInfo()">getInfo</a>, <a href="../controlP5/ControlGroup.html#listenerSize()">listenerSize</a>, <a href="../controlP5/ControlGroup.html#mousePressed()">mousePressed</a>, <a href="../controlP5/ControlGroup.html#removeListener(controlP5.ControlListener)">removeListener</a>, <a href="../controlP5/ControlGroup.html#setBackgroundColor(int)">setBackgroundColor</a>, <a href="../controlP5/ControlGroup.html#setBackgroundHeight(int)">setBackgroundHeight</a>, <a href="../controlP5/ControlGroup.html#setBarHeight(int)">setBarHeight</a>, <a href="../controlP5/ControlGroup.html#setSize(int, int)">setSize</a>, <a href="../controlP5/ControlGroup.html#stringValue()">stringValue</a>, <a href="../controlP5/ControlGroup.html#toString()">toString</a>, <a href="../controlP5/ControlGroup.html#updateInternalEvents(processing.core.PApplet)">updateInternalEvents</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_controlP5.ControllerGroup">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;controlP5.<a href="../controlP5/ControllerGroup.html" title="class in controlP5">ControllerGroup</a></h3>
<code><a href="../controlP5/ControllerGroup.html#absolutePosition()">absolutePosition</a>, <a href="../controlP5/ControllerGroup.html#add(controlP5.ControllerInterface)">add</a>, <a href="../controlP5/ControllerGroup.html#addCanvas(controlP5.Canvas)">addCanvas</a>, <a href="../controlP5/ControllerGroup.html#addCloseButton()">addCloseButton</a>, <a href="../controlP5/ControllerGroup.html#addDrawable(controlP5.CDrawable)">addDrawable</a>, <a href="../controlP5/ControllerGroup.html#arrayValue()">arrayValue</a>, <a href="../controlP5/ControllerGroup.html#bringToFront()">bringToFront</a>, <a href="../controlP5/ControllerGroup.html#bringToFront(controlP5.ControllerInterface)">bringToFront</a>, <a href="../controlP5/ControllerGroup.html#color()">color</a>, <a href="../controlP5/ControllerGroup.html#continuousUpdateEvents()">continuousUpdateEvents</a>, <a href="../controlP5/ControllerGroup.html#controller(java.lang.String)">controller</a>, <a href="../controlP5/ControllerGroup.html#disableCollapse()">disableCollapse</a>, <a href="../controlP5/ControllerGroup.html#draw(processing.core.PGraphics)">draw</a>, <a href="../controlP5/ControllerGroup.html#enableCollapse()">enableCollapse</a>, <a href="../controlP5/ControllerGroup.html#getAbsolutePosition()">getAbsolutePosition</a>, <a href="../controlP5/ControllerGroup.html#getAddress()">getAddress</a>, <a href="../controlP5/ControllerGroup.html#getArrayValue()">getArrayValue</a>, <a href="../controlP5/ControllerGroup.html#getArrayValue(int)">getArrayValue</a>, <a href="../controlP5/ControllerGroup.html#getCaptionLabel()">getCaptionLabel</a>, <a href="../controlP5/ControllerGroup.html#getColor()">getColor</a>, <a href="../controlP5/ControllerGroup.html#getController(java.lang.String)">getController</a>, <a href="../controlP5/ControllerGroup.html#getHeight()">getHeight</a>, <a href="../controlP5/ControllerGroup.html#getId()">getId</a>, <a href="../controlP5/ControllerGroup.html#getName()">getName</a>, <a href="../controlP5/ControllerGroup.html#getParent()">getParent</a>, <a href="../controlP5/ControllerGroup.html#getPickingColor()">getPickingColor</a>, <a href="../controlP5/ControllerGroup.html#getPosition()">getPosition</a>, <a href="../controlP5/ControllerGroup.html#getProperty(java.lang.String)">getProperty</a>, <a href="../controlP5/ControllerGroup.html#getProperty(java.lang.String, java.lang.String)">getProperty</a>, <a href="../controlP5/ControllerGroup.html#getStringValue()">getStringValue</a>, <a href="../controlP5/ControllerGroup.html#getTab()">getTab</a>, <a href="../controlP5/ControllerGroup.html#getValue()">getValue</a>, <a href="../controlP5/ControllerGroup.html#getValueLabel()">getValueLabel</a>, <a href="../controlP5/ControllerGroup.html#getWidth()">getWidth</a>, <a href="../controlP5/ControllerGroup.html#getWindow()">getWindow</a>, <a href="../controlP5/ControllerGroup.html#hide()">hide</a>, <a href="../controlP5/ControllerGroup.html#hideArrow()">hideArrow</a>, <a href="../controlP5/ControllerGroup.html#hideBar()">hideBar</a>, <a href="../controlP5/ControllerGroup.html#id()">id</a>, <a href="../controlP5/ControllerGroup.html#init()">init</a>, <a href="../controlP5/ControllerGroup.html#isBarVisible()">isBarVisible</a>, <a href="../controlP5/ControllerGroup.html#isCollapse()">isCollapse</a>, <a href="../controlP5/ControllerGroup.html#isMouseOver()">isMouseOver</a>, <a href="../controlP5/ControllerGroup.html#isMoveable()">isMoveable</a>, <a href="../controlP5/ControllerGroup.html#isOpen()">isOpen</a>, <a href="../controlP5/ControllerGroup.html#isUpdate()">isUpdate</a>, <a href="../controlP5/ControllerGroup.html#isVisible()">isVisible</a>, <a href="../controlP5/ControllerGroup.html#keyEvent(processing.event.KeyEvent)">keyEvent</a>, <a href="../controlP5/ControllerGroup.html#moveTo(controlP5.ControllerGroup)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(controlP5.ControllerGroup, controlP5.Tab, controlP5.ControlWindow)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(controlP5.ControlWindow)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(controlP5.ControlWindow, java.lang.String)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(processing.core.PApplet)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(java.lang.String)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(java.lang.String, controlP5.ControlWindow)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(controlP5.Tab)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#moveTo(controlP5.Tab, controlP5.ControlWindow)">moveTo</a>, <a href="../controlP5/ControllerGroup.html#name()">name</a>, <a href="../controlP5/ControllerGroup.html#parent()">parent</a>, <a href="../controlP5/ControllerGroup.html#position()">position</a>, <a href="../controlP5/ControllerGroup.html#registerProperty(java.lang.String)">registerProperty</a>, <a href="../controlP5/ControllerGroup.html#registerProperty(java.lang.String, java.lang.String)">registerProperty</a>, <a href="../controlP5/ControllerGroup.html#remove()">remove</a>, <a href="../controlP5/ControllerGroup.html#remove(controlP5.CDrawable)">remove</a>, <a href="../controlP5/ControllerGroup.html#removeCanvas(controlP5.Canvas)">removeCanvas</a>, <a href="../controlP5/ControllerGroup.html#removeCloseButton()">removeCloseButton</a>, <a href="../controlP5/ControllerGroup.html#removeProperty(java.lang.String)">removeProperty</a>, <a href="../controlP5/ControllerGroup.html#removeProperty(java.lang.String, java.lang.String)">removeProperty</a>, <a href="../controlP5/ControllerGroup.html#setAbsolutePosition(processing.core.PVector)">setAbsolutePosition</a>, <a href="../controlP5/ControllerGroup.html#setAddress(java.lang.String)">setAddress</a>, <a href="../controlP5/ControllerGroup.html#setArrayValue(float[])">setArrayValue</a>, <a href="../controlP5/ControllerGroup.html#setArrayValue(int, float)">setArrayValue</a>, <a href="../controlP5/ControllerGroup.html#setCaptionLabel(java.lang.String)">setCaptionLabel</a>, <a href="../controlP5/ControllerGroup.html#setColor(controlP5.CColor)">setColor</a>, <a href="../controlP5/ControllerGroup.html#setColorActive(int)">setColorActive</a>, <a href="../controlP5/ControllerGroup.html#setColorBackground(int)">setColorBackground</a>, <a href="../controlP5/ControllerGroup.html#setColorForeground(int)">setColorForeground</a>, <a href="../controlP5/ControllerGroup.html#setColorLabel(int)">setColorLabel</a>, <a href="../controlP5/ControllerGroup.html#setColorValue(int)">setColorValue</a>, <a href="../controlP5/ControllerGroup.html#setGroup(controlP5.ControllerGroup)">setGroup</a>, <a href="../controlP5/ControllerGroup.html#setGroup(java.lang.String)">setGroup</a>, <a href="../controlP5/ControllerGroup.html#setHeight(int)">setHeight</a>, <a href="../controlP5/ControllerGroup.html#setId(int)">setId</a>, <a href="../controlP5/ControllerGroup.html#setLabel(java.lang.String)">setLabel</a>, <a href="../controlP5/ControllerGroup.html#setMouseOver(boolean)">setMouseOver</a>, <a href="../controlP5/ControllerGroup.html#setMousePressed(boolean)">setMousePressed</a>, <a href="../controlP5/ControllerGroup.html#setMoveable(boolean)">setMoveable</a>, <a href="../controlP5/ControllerGroup.html#setOpen(boolean)">setOpen</a>, <a href="../controlP5/ControllerGroup.html#setPosition(float, float)">setPosition</a>, <a href="../controlP5/ControllerGroup.html#setPosition(processing.core.PVector)">setPosition</a>, <a href="../controlP5/ControllerGroup.html#setStringValue(java.lang.String)">setStringValue</a>, <a href="../controlP5/ControllerGroup.html#setTab(controlP5.ControlWindow, java.lang.String)">setTab</a>, <a href="../controlP5/ControllerGroup.html#setTab(java.lang.String)">setTab</a>, <a href="../controlP5/ControllerGroup.html#setTab(controlP5.Tab)">setTab</a>, <a href="../controlP5/ControllerGroup.html#setTitle(java.lang.String)">setTitle</a>, <a href="../controlP5/ControllerGroup.html#setUpdate(boolean)">setUpdate</a>, <a href="../controlP5/ControllerGroup.html#setValue(float)">setValue</a>, <a href="../controlP5/ControllerGroup.html#setVisible(boolean)">setVisible</a>, <a href="../controlP5/ControllerGroup.html#show()">show</a>, <a href="../controlP5/ControllerGroup.html#showArrow()">showArrow</a>, <a href="../controlP5/ControllerGroup.html#showBar()">showBar</a>, <a href="../controlP5/ControllerGroup.html#update()">update</a>, <a href="../controlP5/ControllerGroup.html#updateAbsolutePosition()">updateAbsolutePosition</a>, <a href="../controlP5/ControllerGroup.html#updateEvents()">updateEvents</a>, <a href="../controlP5/ControllerGroup.html#value()">value</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Accordion(controlP5.ControlP5, java.lang.String)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Accordion</h4>
<pre>public&nbsp;Accordion(<a href="../controlP5/ControlP5.html" title="class in controlP5">ControlP5</a>&nbsp;theControlP5,
java.lang.String&nbsp;theName)</pre>
<div class="block">Convenience constructor to extend Accordion.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>theControlP5</code> - </dd><dd><code>theName</code> - </dd><script type="text/javascript">
<!--
document.getElementsByTagName('html')[0].className = 'isjs';function toggle(dt) { var display, dd=dt; do{ dd = dd.nextSibling } while(dd.tagName!='DD'); toOpen =!dd.style.display;dd.style.display = toOpen? 'block':''; dt.getElementsByTagName('span')[0].innerHTML = toOpen? '-':'+' ; }
-->
</script>
<div id="test" class="toggleList"><dl><dt onclick="toggle(this);"><span>+</span>Example</dt><dd><code><pre>/**
* ControlP5 extending Controllers
*
* the following example shows how to extend the Controller class to
* create customizable Controllers. You can either extend the Controller class itself,
* or any class that extends Controller itself like the Slider, Button, DropdownList, etc.
*
* How to:
*
* 1) do a super call to the convenience constructor requiring
* 2 parameter (ControlP5 instance, name)
*
* 2) the Controller class has a set of empty methods that allow you to capture
* inputs from the mouse including
* onEnter(), onLeave(), onPress(), onRelease(), onClick(), onScroll(int), onDrag()
* These you can override and include functionality as needed.
*
* 3) use method getPointer() to return the local (relative)
* xy-coordinates of the controller
*
* 4) after instantiation custom controllers are treated the same
* as default controlP5 controllers.
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlp5
*
*/
import controlP5.*;
ControlP5 cp5;
PApplet p;
void setup() {
size(400, 400);
cp5 = new ControlP5(this);
// create 2 groups to show nesting of custom controllers and
//
Group g1 = cp5.addGroup("a").setPosition(0,100).setWidth(180);
Group g2 = cp5.addGroup("b").setPosition(0,10).setWidth(180);
g2.moveTo(g1);
// create 2 custom Controllers from class MyButton
// MyButton extends Controller and inherits all methods accordingly.
new MyButton(cp5, "b1").setPosition(0, 0).setSize(180, 200).moveTo(g2);
new MyButton(cp5, "b2").setPosition(205, 15).setSize(180, 200);
}
void draw() {
background(0);
}
// b1 will be called from Controller b1
public void b1(float theValue) {
println("yay button "+theValue);
}
public void controlEvent(ControlEvent theEvent) {
println("controlEvent : "+theEvent);
}
// Create a custom Controller, please not that
// MyButton extends Controller<MyButton>, <MyButton>
// is an indicator for the super class about the type of
// custom controller to be created.
class MyButton extends Controller<MyButton> {
int current = 0xffff0000;
float a = 128;
float na;
int y;
// use the convenience constructor of super class Controller
// MyButton will automatically registered and move to the
// default controlP5 tab.
MyButton(ControlP5 cp5, String theName) {
super(cp5, theName);
// replace the default view with a custom view.
setView(new ControllerView() {
public void display(PApplet p, Object b) {
// draw button background
na += (a-na) * 0.1;
p.fill(current,na);
p.rect(0, 0, getWidth(), getHeight());
// draw horizontal line which can be moved on the x-axis
// using the scroll wheel.
p.fill(0,255,0);
p.rect(0,y,width,10);
// draw the custom label
p.fill(128);
translate(0,getHeight()+14);
p.text(getName(),0,0);
p.text(getName(),0,0);
}
}
);
}
// override various input methods for mouse input control
void onEnter() {
cursor(HAND);
println("enter");
a = 255;
}
void onScroll(int n) {
println("scrolling");
y -= n;
y = constrain(y,0,getHeight()-10);
}
void onPress() {
println("press");
current = 0xffffff00;
}
void onClick() {
Pointer p1 = getPointer();
println("clicked at "+p1.x()+", "+p1.y());
current = 0xffffff00;
setValue(y);
}
void onRelease() {
println("release");
current = 0xffffffff;
}
void onMove() {
println("moving "+this+" "+_myControlWindow.getMouseOverList());
}
void onDrag() {
current = 0xff0000ff;
Pointer p1 = getPointer();
float dif = dist(p1.px(),p1.py(),p1.x(),p1.y());
println("dragging at "+p1.x()+", "+p1.y()+" "+dif);
}
void onReleaseOutside() {
onLeave();
}
void onLeave() {
println("leave");
cursor(ARROW);
a = 128;
}
}
</pre></code></dd></dl></div></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="addItem(controlP5.ControlGroup)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addItem</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;addItem(<a href="../controlP5/ControlGroup.html" title="class in controlP5">ControlGroup</a>&lt;?&gt;&nbsp;theGroup)</pre>
<div class="block">Adds items of type ControlGroup to the Accordion, only ControlGroups can be added.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>theGroup</code> - </dd>
<dt><span class="strong">Returns:</span></dt><dd>Accordion</dd></dl>
</li>
</ul>
<a name="close()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;close()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../controlP5/ControllerGroup.html#close()">close</a></code>&nbsp;in class&nbsp;<code><a href="../controlP5/ControllerGroup.html" title="class in controlP5">ControllerGroup</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="close(int...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;close(int...&nbsp;theId)</pre>
</li>
</ul>
<a name="controlEvent(controlP5.ControlEvent)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>controlEvent</h4>
<pre>public&nbsp;void&nbsp;controlEvent(<a href="../controlP5/ControlEvent.html" title="class in controlP5">ControlEvent</a>&nbsp;theEvent)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../controlP5/ControlListener.html#controlEvent(controlP5.ControlEvent)">ControlListener</a></code></strong></div>
<div class="block">controlEvent is called by controlP5's ControlBroadcaster to inform available listeners about
value changes. Use the CallbackListener to get informed when actions such as pressed,
release, drag, etc are performed.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../controlP5/ControlListener.html#controlEvent(controlP5.ControlEvent)">controlEvent</a></code>&nbsp;in interface&nbsp;<code><a href="../controlP5/ControlListener.html" title="interface in controlP5">ControlListener</a></code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../controlP5/ControlGroup.html#controlEvent(controlP5.ControlEvent)">controlEvent</a></code>&nbsp;in class&nbsp;<code><a href="../controlP5/ControlGroup.html" title="class in controlP5">ControlGroup</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>theEvent</code> - ControlEvent</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../controlP5/CallbackListener.html" title="interface in controlP5"><code>CallbackListener</code></a>,
<a href="../controlP5/CallbackEvent.html" title="class in controlP5"><code>CallbackEvent</code></a></dd></dl>
</li>
</ul>
<a name="getItemHeight()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItemHeight</h4>
<pre>public&nbsp;int&nbsp;getItemHeight()</pre>
</li>
</ul>
<a name="getMinItemHeight()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinItemHeight</h4>
<pre>public&nbsp;int&nbsp;getMinItemHeight()</pre>
</li>
</ul>
<a name="open()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;open()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../controlP5/ControllerGroup.html#open()">open</a></code>&nbsp;in class&nbsp;<code><a href="../controlP5/ControllerGroup.html" title="class in controlP5">ControllerGroup</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="open(int...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;open(int...&nbsp;theId)</pre>
</li>
</ul>
<a name="remove(controlP5.ControllerInterface)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;remove(<a href="../controlP5/ControllerInterface.html" title="interface in controlP5">ControllerInterface</a>&lt;?&gt;&nbsp;theGroup)</pre>
<div class="block">Removes a ControlGroup from the accordion AND from controlP5 remove(ControllerInterface
theGroup) overwrites it's super method. if you want to remove a ControlGroup only from the
accordion, use removeItem(ControlGroup).</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../controlP5/ControllerInterface.html#remove(controlP5.ControllerInterface)">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../controlP5/ControllerInterface.html" title="interface in controlP5">ControllerInterface</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../controlP5/ControllerGroup.html#remove(controlP5.ControllerInterface)">remove</a></code>&nbsp;in class&nbsp;<code><a href="../controlP5/ControllerGroup.html" title="class in controlP5">ControllerGroup</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>theGroup</code> - ControllerInterface</dd>
<dt><span class="strong">Returns:</span></dt><dd>ControllerInterface</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../controlP5/Accordion.html#removeItem(controlP5.ControlGroup)"><code>removeItem(ControlGroup)</code></a></dd></dl>
</li>
</ul>
<a name="removeItem(controlP5.ControlGroup)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeItem</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;removeItem(<a href="../controlP5/ControlGroup.html" title="class in controlP5">ControlGroup</a>&lt;?&gt;&nbsp;theGroup)</pre>
<div class="block">Removes a ControlGroup from the accordion and puts it back into the default tab of controlP5.
if you dont have access to a ControlGroup via a variable, use
controlP5.group("theNameOfTheGroup") which will return a</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Accordion</dd></dl>
</li>
</ul>
<a name="setCollapseMode(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCollapseMode</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;setCollapseMode(int&nbsp;theMode)</pre>
</li>
</ul>
<a name="setItemHeight(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setItemHeight</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;setItemHeight(int&nbsp;theHeight)</pre>
</li>
</ul>
<a name="setMinItemHeight(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMinItemHeight</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;setMinItemHeight(int&nbsp;theHeight)</pre>
<div class="block">Sets the minimum height of a collapsed item, default value is 100.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>theHeight</code> - </dd>
<dt><span class="strong">Returns:</span></dt><dd>Accordion</dd></dl>
</li>
</ul>
<a name="setWidth(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWidth</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;setWidth(int&nbsp;theWidth)</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../controlP5/ControllerGroup.html#setWidth(int)">setWidth</a></code>&nbsp;in class&nbsp;<code><a href="../controlP5/ControllerGroup.html" title="class in controlP5">ControllerGroup</a>&lt;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>ControllerGroup</dd></dl>
</li>
</ul>
<a name="updateItems()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>updateItems</h4>
<pre>public&nbsp;<a href="../controlP5/Accordion.html" title="class in controlP5">Accordion</a>&nbsp;updateItems()</pre>
<div class="block">UpdateItems is called when changes such as remove, change of height is performed on an
accordion. updateItems() is called automatically for such cases, but by calling updateItems
manually an update will be forced.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Accordion</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../controlP5/package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../index-all.html">Index</a></li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../controlP5/Bang.html" title="class in controlP5"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?controlP5/Accordion.html" target="_top">Frames</a></li>
<li><a href="Accordion.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>processing library controlP5 by Andreas Schlegel. (c) 2006-2014</small></p>
</body>
</html>