controlP5
Class DropdownList

java.lang.Object
  extended by controlP5.ControllerGroup
      extended by controlP5.ControlGroup
          extended by controlP5.DropdownList
All Implemented Interfaces:
ControllerInterface, ControlListener, ControlP5Constants

public class DropdownList
extends ControlGroup


Field Summary
 
Fields inherited from interface controlP5.ControlP5Constants
acceptClassList, ACTION_BROADCAST, ACTION_ENTER, ACTION_LEAVE, ACTION_PRESSED, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, ACTIVE, ALL, ALT, ARC, ARRAY, BACKSPACE, BASELINE, BITFONT, BOOLEAN, BOTTOM, BOTTOM_OUTSIDE, CAPTIONLABEL, CENTER, COMMANDKEY, CONTROL, controlEventClass, CUSTOM, DECREASE, DEFAULT, DELETE, DONE, DOWN, ELLIPSE, ENTER, ESCAPE, EVENT, eventMethod, FADEIN, FADEOUT, FIELD, FLOAT, HALF_PI, HIDE, HIGHLIGHT, HORIZONTAL, IDLE, IMAGE, INACTIVE, INCREASE, INTEGER, INVALID, KEYCONTROL, LEFT, LEFT_OUTSIDE, LINE, LOAD, MENU, METHOD, MOVE, MULTI, MULTIPLES, OVER, PI, PRESSED, PRINT, RELEASE, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, SHIFT, SINGLE, SINGLE_COLUMN, SINGLE_ROW, SPRITE, STRING, SWITCH, SWITCH_BACK, SWITCH_FORE, TAB, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT
 
Constructor Summary
DropdownList(ControlP5 theControlP5, java.lang.String theName)
          Convenience constructor to extend DropdownList.
 
Method Summary
 DropdownList actAsPulldownMenu(boolean theValue)
          Enables a ListBox to act as a pulldown menu.
 ListBoxItem addItem(java.lang.String theName, int theValue)
          Adds an item to the ListBox.
 DropdownList addItems(java.util.List theItems)
           
 DropdownList addItems(java.util.List theItems, int theOffset)
           
 DropdownList addItems(java.lang.String[] theItems)
          adds a list of items from a string array.
 void beginItems()
           
 DropdownList clear()
          Removes all items from a list box
 void endItems()
           
 ListBoxItem getItem(Controller theButton)
          returns a ListBoxItem based on its Button reference.
 ListBoxItem getItem(int theIndex)
          returns a listBoxItem by index in the list of items.
 ListBoxItem getItem(java.lang.String theItemName)
          TODO faulty returns a listBoxItem by name.
 java.lang.String[][] getListBoxItems()
           
 float getScrollPosition()
           
 DropdownList hideScrollbar()
           
 boolean isScrollable()
           
 boolean isScrollbarEnabled()
           
 DropdownList removeItem(java.lang.String theItemName)
          Removes an item from the ListBox using the unique name of the item given when added to the list.
 DropdownList scroll(float theValue)
          scroll the scrollList remotely.
 void scrolled(int theStep)
           
 DropdownList setColor(CColor theColor)
          
 DropdownList setColorActive(int theColor)
          
 DropdownList setColorBackground(int theColor)
          
 DropdownList setColorForeground(int theColor)
          
 DropdownList setColorLabel(int theColor)
          
 DropdownList setColorValue(int theColor)
          
 DropdownList setHeight(int theHeight)
           
 DropdownList setIndex(int theIndex)
           
 DropdownList setItemHeight(int theHeight)
           
 DropdownList setListBoxItems(java.lang.String[][] l)
           
 DropdownList setScrollbarVisible(boolean theValue)
           
 DropdownList setSize(int theWidth, int theHeight)
           
 DropdownList setValue(float theValue)
          
 DropdownList setWidth(int theWidth)
           
 DropdownList showScrollbar()
           
 DropdownList toUpperCase(boolean theFlag)
           
 DropdownList updateListBoxItems()
           
 
Methods inherited from class controlP5.ControlGroup
activateEvent, addListener, controlEvent, getBackgroundHeight, getBarHeight, getInfo, listenerSize, mousePressed, removeListener, setBackgroundColor, setBackgroundHeight, setBarHeight, stringValue, toString, updateInternalEvents
 
Methods inherited from class controlP5.ControllerGroup
add, addCanvas, addCloseButton, addDrawable, bringToFront, bringToFront, close, disableCollapse, enableCollapse, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getCaptionLabel, getColor, getController, getHeight, getId, getName, getPosition, getProperty, getProperty, getStringValue, getTab, getValue, getValueLabel, getWidth, getWindow, hide, hideArrow, hideBar, isBarVisible, isCollapse, isMouseOver, isMoveable, isOpen, isUpdate, isVisible, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, open, registerProperty, registerProperty, remove, remove, remove, removeCanvas, removeCloseButton, removeProperty, removeProperty, setAddress, setArrayValue, setArrayValue, setCaptionLabel, setGroup, setGroup, setId, setLabel, setMouseOver, setMoveable, setOpen, setPosition, setPosition, setStringValue, setTab, setTab, setTab, setTitle, setUpdate, setVisible, show, showArrow, showBar, updateAbsolutePosition
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface controlP5.ControllerInterface
continuousUpdateEvents, draw, getParent, getPickingColor, init, keyEvent, parent, setAbsolutePosition, setMousePressed, update, updateEvents
 

Constructor Detail

DropdownList

public DropdownList(ControlP5 theControlP5,
                    java.lang.String theName)
Convenience constructor to extend DropdownList.

Parameters:
theControlP5 -
theName -
+Example
/**
 * 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, 
// is an indicator for the super class about the type of 
// custom controller to be created.

class MyButton extends Controller {

  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;
  }
}

Method Detail

actAsPulldownMenu

public DropdownList actAsPulldownMenu(boolean theValue)
Enables a ListBox to act as a pulldown menu. Alternatively use class PulldownMenu instead.


addItem

public ListBoxItem addItem(java.lang.String theName,
                           int theValue)
Adds an item to the ListBox.

Parameters:
theName - String
theValue - int
See Also:
controlP5.ListBox#removeItem(String,int)

addItems

public DropdownList addItems(java.util.List theItems)

addItems

public DropdownList addItems(java.util.List theItems,
                             int theOffset)

addItems

public DropdownList addItems(java.lang.String[] theItems)
adds a list of items from a string array. when iterating through the array, the index of each item will be used as value.

Parameters:
theItems -

beginItems

public void beginItems()

clear

public DropdownList clear()
Removes all items from a list box


endItems

public void endItems()

getItem

public ListBoxItem getItem(Controller theButton)
returns a ListBoxItem based on its Button reference.

Parameters:
theButton -
Returns:

getItem

public ListBoxItem getItem(int theIndex)
returns a listBoxItem by index in the list of items.

Parameters:
theIndex -
Returns:

getItem

public ListBoxItem getItem(java.lang.String theItemName)
TODO faulty returns a listBoxItem by name.

Parameters:
theItemName -
Returns:

getListBoxItems

public java.lang.String[][] getListBoxItems()

getScrollPosition

public float getScrollPosition()

hideScrollbar

public DropdownList hideScrollbar()

isScrollable

public boolean isScrollable()

isScrollbarEnabled

public boolean isScrollbarEnabled()

removeItem

public DropdownList removeItem(java.lang.String theItemName)
Removes an item from the ListBox using the unique name of the item given when added to the list.

Parameters:
theItemName - String
See Also:
ListBox.addItem(String,int)

scroll

public DropdownList scroll(float theValue)
scroll the scrollList remotely. values must range between 0 and 1.


scrolled

public void scrolled(int theStep)

setColor

public DropdownList setColor(CColor theColor)

Specified by:
setColor in interface ControllerInterface
Overrides:
setColor in class ControllerGroup

setColorActive

public DropdownList setColorActive(int theColor)

Specified by:
setColorActive in interface ControllerInterface
Overrides:
setColorActive in class ControllerGroup

setColorBackground

public DropdownList setColorBackground(int theColor)

Specified by:
setColorBackground in interface ControllerInterface
Overrides:
setColorBackground in class ControllerGroup

setColorForeground

public DropdownList setColorForeground(int theColor)

Specified by:
setColorForeground in interface ControllerInterface
Overrides:
setColorForeground in class ControllerGroup

setColorLabel

public DropdownList setColorLabel(int theColor)

Specified by:
setColorLabel in interface ControllerInterface
Overrides:
setColorLabel in class ControllerGroup

setColorValue

public DropdownList setColorValue(int theColor)

Specified by:
setColorValue in interface ControllerInterface
Overrides:
setColorValue in class ControllerGroup

setHeight

public DropdownList setHeight(int theHeight)
Overrides:
setHeight in class ControllerGroup
Returns:
ControllerGroup

setIndex

public DropdownList setIndex(int theIndex)

setItemHeight

public DropdownList setItemHeight(int theHeight)

setListBoxItems

public DropdownList setListBoxItems(java.lang.String[][] l)

setScrollbarVisible

public DropdownList setScrollbarVisible(boolean theValue)

setSize

public DropdownList setSize(int theWidth,
                            int theHeight)
Overrides:
setSize in class ControlGroup

setValue

public DropdownList setValue(float theValue)
Description copied from class: ControllerGroup

Specified by:
setValue in interface ControllerInterface
Overrides:
setValue in class ControllerGroup

setWidth

public DropdownList setWidth(int theWidth)
Overrides:
setWidth in class ControllerGroup
Returns:
ControllerGroup

showScrollbar

public DropdownList showScrollbar()

toUpperCase

public DropdownList toUpperCase(boolean theFlag)

updateListBoxItems

public DropdownList updateListBoxItems()


processing library controlP5 by Andreas Schlegel. (c) 2006-2012