# Tab (Javadocs: controlP5)
Date: 2014-04-27

controlP5

## Class Tab

- java.lang.Object
- - controlP5.ControllerGroup<Tab>
  - - controlP5.Tab

All Implemented Interfaces:
  ControllerInterface<Tab>, ControlListener, ControlP5Constants

    public class Tab
    extends ControllerGroup<Tab>

Tabs are used to organize controllers. Tabs are arranged horizontally from the top-left corner by default, Tab extends ControllerGroup, for more available methods see the ControllerGroup documentation. Reposition tabs with `ControlWindow.setPositionOfTabs(int, int)`

+Example
  `

      /**
      * ControlP5 Tab
      *
      *
      * find a list of public methods available for the Tab Controller
      * at the bottom of this sketch.
      *
      * by Andreas Schlegel, 2012
      * www.sojamo.de/libraries/controlp5
      *
      */

      import controlP5.*;

      ControlP5 cp5;

      int myColorBackground = color(128);

      int sliderValue = 100;

      void setup() {
        size(700,400);
        noStroke();
        cp5 = new ControlP5(this);

        // By default all controllers are stored inside Tab 'default'
        // add a second tab with name 'extra'

        cp5.addTab("extra")
           .setColorBackground(color(0, 160, 100))
           .setColorLabel(color(255))
           .setColorActive(color(255,128,0))
           ;

        // if you want to receive a controlEvent when
        // a  tab is clicked, use activeEvent(true)

        cp5.getTab("default")
           .activateEvent(true)
           .setLabel("my default tab")
           .setId(1)
           ;

        cp5.getTab("extra")
           .activateEvent(true)
           .setId(2)
           ;

        // create a few controllers

        cp5.addButton("button")
           .setBroadcast(false)
           .setPosition(100,100)
           .setSize(80,40)
           .setValue(1)
           .setBroadcast(true)
           .getCaptionLabel().align(CENTER,CENTER)
           ;

        cp5.addButton("buttonValue")
           .setBroadcast(false)
           .setPosition(220,100)
           .setSize(80,40)
           .setValue(2)
           .setBroadcast(true)
           .getCaptionLabel().align(CENTER,CENTER)
           ;

        cp5.addSlider("slider")
           .setBroadcast(false)
           .setRange(100,200)
           .setValue(128)
           .setPosition(100,160)
           .setSize(200,20)
           .setBroadcast(true)
           ;

        cp5.addSlider("sliderValue")
           .setBroadcast(false)
           .setRange(0,255)
           .setValue(128)
           .setPosition(100,200)
           .setSize(200,20)
           .setBroadcast(true)
           ;

        // arrange controller in separate tabs

        cp5.getController("sliderValue").moveTo("extra");
        cp5.getController("slider").moveTo("global");

        // Tab 'global' is a tab that lies on top of any
        // other tab and is always visible

      }

      void draw() {
        background(myColorBackground);
        fill(sliderValue);
        rect(0,0,width,100);
      }

      void controlEvent(ControlEvent theControlEvent) {
        if (theControlEvent.isTab()) {
          println("got an event from tab : "+theControlEvent.getTab().getName()+" with id "+theControlEvent.getTab().getId());
        }
      }

      void slider(int theColor) {
        myColorBackground = color(theColor);
        println("a slider event. setting background to "+theColor);
      }

      void keyPressed() {
        if(keyCode==TAB) {
          cp5.getTab("extra").bringToFront();
        }
      }

      /*
      a list of all methods available for the Tab Controller
      use ControlP5.printPublicMethodsFor(Tab.class);
      to print the following list into the console.

      You can find further details about class Tab in the javadoc.

      Format:
      ClassName : returnType methodName(parameter type)

      controlP5.Tab : String getStringValue()
      controlP5.Tab : Tab activateEvent(boolean)
      controlP5.Tab : Tab bringToFront()
      controlP5.Tab : Tab moveTo(ControlWindow)
      controlP5.Tab : Tab setActive(boolean)
      controlP5.Tab : Tab setHeight(int)
      controlP5.Tab : Tab setLabel(String)
      controlP5.Tab : Tab setValue(float)
      controlP5.Tab : Tab setWidth(int)
      controlP5.Tab : float getValue()
      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 add(ControllerInterface)
      controlP5.ControllerGroup : Tab bringToFront()
      controlP5.ControllerGroup : Tab bringToFront(ControllerInterface)
      controlP5.ControllerGroup : Tab close()
      controlP5.ControllerGroup : Tab disableCollapse()
      controlP5.ControllerGroup : Tab enableCollapse()
      controlP5.ControllerGroup : Tab getTab()
      controlP5.ControllerGroup : Tab hide()
      controlP5.ControllerGroup : Tab moveTo(ControlWindow)
      controlP5.ControllerGroup : Tab moveTo(PApplet)
      controlP5.ControllerGroup : Tab open()
      controlP5.ControllerGroup : Tab registerProperty(String)
      controlP5.ControllerGroup : Tab registerProperty(String, String)
      controlP5.ControllerGroup : Tab remove(CDrawable)
      controlP5.ControllerGroup : Tab remove(ControllerInterface)
      controlP5.ControllerGroup : Tab removeCanvas(ControlWindowCanvas)
      controlP5.ControllerGroup : Tab removeProperty(String)
      controlP5.ControllerGroup : Tab removeProperty(String, String)
      controlP5.ControllerGroup : Tab setAddress(String)
      controlP5.ControllerGroup : Tab setArrayValue(float[])
      controlP5.ControllerGroup : Tab setColor(CColor)
      controlP5.ControllerGroup : Tab setColorActive(int)
      controlP5.ControllerGroup : Tab setColorBackground(int)
      controlP5.ControllerGroup : Tab setColorForeground(int)
      controlP5.ControllerGroup : Tab setColorLabel(int)
      controlP5.ControllerGroup : Tab setColorValue(int)
      controlP5.ControllerGroup : Tab setHeight(int)
      controlP5.ControllerGroup : Tab setId(int)
      controlP5.ControllerGroup : Tab setLabel(String)
      controlP5.ControllerGroup : Tab setMouseOver(boolean)
      controlP5.ControllerGroup : Tab setMoveable(boolean)
      controlP5.ControllerGroup : Tab setOpen(boolean)
      controlP5.ControllerGroup : Tab setPosition(PVector)
      controlP5.ControllerGroup : Tab setPosition(float, float)
      controlP5.ControllerGroup : Tab setStringValue(String)
      controlP5.ControllerGroup : Tab setUpdate(boolean)
      controlP5.ControllerGroup : Tab setValue(float)
      controlP5.ControllerGroup : Tab setVisible(boolean)
      controlP5.ControllerGroup : Tab setWidth(int)
      controlP5.ControllerGroup : Tab show()
      controlP5.ControllerGroup : Tab update()
      controlP5.ControllerGroup : Tab updateAbsolutePosition()
      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)

      */

  `

### Field Summary

Fields
`boolean` `autoWidth`
`static int` `padding`

### Fields inherited from interface controlP5.ControlP5Constants

`acceptClassList, ACTION_BROADCAST, ACTION_CLICK, ACTION_DRAG, ACTION_ENTER, ACTION_EXIT, ACTION_LEAVE, ACTION_MOVE, ACTION_PRESS, ACTION_PRESSED, ACTION_RELEASE, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, ACTION_WHEEL, ACTIVE, ALL, ALT, AQUA, ARC, ARRAY, BACKSPACE, BASELINE, BITFONT, BLACK, BLUE, BOOLEAN, BOTTOM, BOTTOM_OUTSIDE, CAPTIONLABEL, CENTER, CHECKBOX, COMMANDKEY, CONTROL, controlEventClass, CUSTOM, DECREASE, DEFAULT, DELETE, DONE, DOWN, DROPDOWN, ELLIPSE, ENTER, ESCAPE, EVENT, eventMethod, FADEIN, FADEOUT, FIELD, FLOAT, FUCHSIA, GRAY, GREEN, grixel, HALF_PI, HIDE, HIGHLIGHT, HORIZONTAL, IDLE, IMAGE, INACTIVE, INCREASE, INTEGER, INVALID, J2D, KEYCONTROL, LEFT, LEFT_OUTSIDE, LIME, LINE, LIST, LOAD, MAROON, MENU, METHOD, MOVE, MULTI, MULTIPLES, NAVY, OLIVE, ORANGE, OVER, P2D, P3D, PI, PRESSED, PRINT, PURPLE, RED, RELEASE, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, SHIFT, SILVER, SINGLE, SINGLE_COLUMN, SINGLE_ROW, SPRITE, standard56, standard58, STRING, SWITCH, SWITCH_BACK, SWITCH_FORE, synt24, TAB, TEAL, THEME_A, THEME_CP52014, THEME_CP5BLUE, THEME_RED, THEME_RETRO, THEME_WHITE, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TREE, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT, WHITE, YELLOW`

### Constructor Summary

Constructors
Constructor and Description
`Tab(ControlP5 theControlP5, ControlWindow theControlWindow, java.lang.String theName)`

### Method Summary

Methods
`Tab` `activateEvent(boolean theFlag)` activates or deactivates the Event status of a tab, When activated a tab will send a controlEvent to the main application.
`Tab` `bringToFront()`
`java.lang.String` `getStringValue()`
`float` `getValue()`
`boolean` `isActive()` checks if a tab is active.
`boolean` `isAlwaysActive()`
`void` `mousePressed()`
`Tab` `moveTo(ControlWindow theWindow)`
`Tab` `setActive(boolean theFlag)` Activates a tab.
`Tab` `setAlwaysActive(boolean theFlag)`
`Tab` `setHeight(int theHeight)`
`Tab` `setLabel(java.lang.String theLabel)` set the label of the group.
`Tab` `setValue(float theValue)`
`Tab` `setWidth(int theWidth)`
`java.lang.String` `stringValue()` Deprecated.
`float` `value()` Deprecated.

### Methods inherited from class controlP5.ControllerGroup

`absolutePosition, add, addCanvas, addCloseButton, addDrawable, addListener, arrayValue, bringToFront, close, color, continuousUpdateEvents, controlEvent, controller, disableCollapse, draw, enableCollapse, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getCaptionLabel, getColor, getController, getHeight, getId, getInfo, getName, getParent, getPickingColor, getPosition, getProperty, getProperty, getTab, getValueLabel, getWidth, getWindow, hide, hideArrow, hideBar, id, init, isBarVisible, isCollapse, isMouseOver, isMoveable, isOpen, isUpdate, isVisible, keyEvent, listenerSize, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, name, open, parent, position, registerProperty, registerProperty, remove, remove, remove, removeCanvas, removeCloseButton, removeListener, removeProperty, removeProperty, setAbsolutePosition, setAddress, setArrayValue, setArrayValue, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorForeground, setColorLabel, setColorValue, setGroup, setGroup, setId, setMouseOver, setMousePressed, setMoveable, setOpen, setPosition, setPosition, setSize, setStringValue, setTab, setTab, setTab, setTitle, setUpdate, setVisible, show, showArrow, showBar, toString, update, updateAbsolutePosition, updateEvents, updateInternalEvents`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### autoWidth

    public boolean autoWidth

#### padding

    public static int padding

### Constructor Detail

#### Tab

    public Tab(ControlP5 theControlP5,
       ControlWindow theControlWindow,
       java.lang.String theName)

Parameters:
  `theControlP5` - ControlP5
  `theControlWindow` - ControlWindow
  `theName` - String

### Method Detail

#### activateEvent

    public Tab activateEvent(boolean theFlag)

activates or deactivates the Event status of a tab, When activated a tab will send a controlEvent to the main application. By default this is disabled.

Parameters:
  `theFlag` - boolean
Returns:
  Tab

#### bringToFront

    public Tab bringToFront()

Specified by:
  `bringToFront` in interface `ControllerInterface<Tab>`
Overrides:
  `bringToFront` in class `ControllerGroup<Tab>`

#### getStringValue

    public java.lang.String getStringValue()

Specified by:
  `getStringValue` in interface `ControllerInterface<Tab>`
Overrides:
  `getStringValue` in class `ControllerGroup<Tab>`

#### getValue

    public float getValue()

Specified by:
  `getValue` in interface `ControllerInterface<Tab>`
Overrides:
  `getValue` in class `ControllerGroup<Tab>`

#### isActive

    public boolean isActive()

checks if a tab is active.

Returns:
  boolean

#### isAlwaysActive

    public boolean isAlwaysActive()

#### mousePressed

    public void mousePressed()

#### moveTo

    public Tab moveTo(ControlWindow theWindow)

Overrides:
  `moveTo` in class `ControllerGroup<Tab>`

#### setActive

    public Tab setActive(boolean theFlag)

Activates a tab.

Parameters:
  `theFlag` - boolean

#### setAlwaysActive

    public Tab setAlwaysActive(boolean theFlag)

#### setHeight

    public Tab setHeight(int theHeight)

Overrides:
  `setHeight` in class `ControllerGroup<Tab>`
Returns:
  ControllerGroup

#### setLabel

    public Tab setLabel(java.lang.String theLabel)

set the label of the group. TODO overwriting COntrollerGroup.setLabel to set the Width of a tab after renaming. this should be temporary and fixed in the future.

Specified by:
  `setLabel` in interface `ControllerInterface<Tab>`
Overrides:
  `setLabel` in class `ControllerGroup<Tab>`
Parameters:
  `theLabel` - String
Returns:
  Tab

#### setValue

    public Tab setValue(float theValue)

Specified by:
  `setValue` in interface `ControllerInterface<Tab>`
Overrides:
  `setValue` in class `ControllerGroup<Tab>`

#### setWidth

    public Tab setWidth(int theWidth)

Overrides:
  `setWidth` in class `ControllerGroup<Tab>`
Parameters:
  `theWidth` -
Returns:

#### stringValue

    @Deprecated
    public java.lang.String stringValue()

Deprecated.

Specified by:
  `stringValue` in interface `ControllerInterface<Tab>`
Overrides:
  `stringValue` in class `ControllerGroup<Tab>`

#### value

    @Deprecated
    public float value()

Deprecated.

Overrides:
  `value` in class `ControllerGroup<Tab>`