controlP5
Class CallbackEvent

java.lang.Object
  extended by controlP5.CallbackEvent

public class CallbackEvent
extends java.lang.Object

A CallbackEvent is send when a controller action such as enter, leave, press, etc has occurs.

+Example
/**
 * ControlP5 Callback
 *
 * The following example demonstrates the CallbackListener and CallbackEvent. 
 * Here additional information about each available slider will be show when
 * hovering the controller with the mouse. The info will fade out when leaving
 * the controller. 
 *
 * When hovering a controller, the mouse pointer will change as well.
 * 
 * find a list of public methods available for the CallbackEvent Controller
 * at the bottom of this sketch.
 *
 * by Andreas Schlegel, 2012
 * www.sojamo.de/libraries/controlp5
 *
 */

import controlP5.*;

ControlP5 cp5;
Slider s1, s2;
Info info;
CallbackListener cb;

void setup() {
  size(800, 400);

  cp5 = new ControlP5(this);

  
  // create a new instance of class Info
  // info will be used to display a controller's information and
  // will fade in when a CallbackEvent is invoked.
  info = new Info();


  // add 2 sliders
  s1 = cp5.addSlider("hello")
          .setRange(0, 100)
          .setValue(50)
          .setPosition(40, 40)
          .setSize(100, 20);
          
  s2 = cp5.addSlider("world")
          .setRange(0, 100)
          .setValue(10)
          .setPosition(40, 70)
          .setSize(100, 20);


  // the following CallbackListener will listen to any controlP5 
  // action such as enter, leave, pressed, released, releasedoutside, broadcast
  // see static variables starting with ACTION_ inside class controlP5.ControlP5Constants

  cb = new CallbackListener() {
    public void controlEvent(CallbackEvent theEvent) {
      switch(theEvent.getAction()) {
        case(ControlP5.ACTION_ENTER):
        info.n = 1;
        info.label.setText(theEvent.getController().getInfo());
        cursor(HAND);
        break;
        case(ControlP5.ACTION_LEAVE):
        case(ControlP5.ACTION_RELEASEDOUTSIDE):
        info.n = 0;
        cursor(ARROW);
        break;
      }
    }
  };

  // add the above callback to controlP5
  cp5.addCallback(cb);

  // add another callback to slider s1, callback event will only be invoked for this 
  // particular controller.
  s1.addCallback(new CallbackListener() {
    public void controlEvent(CallbackEvent theEvent) {
      if (theEvent.getAction()==ControlP5.ACTION_BROADCAST) {
        s2.setValue(s2.getMax() - s1.getValue());
      }
    }
  }
  );
}

void draw() {
  background(0);
  info.update();
}


void controlEvent(ControlEvent theEvent) {
  println("Got a ControlEvent for "+theEvent.name()+" = "+theEvent.value());
  info.label.setText(theEvent.getController().getInfo());
}

void keyPressed() {
  // uncomment the line below to remove callback cb from controlP5
  // when a key is pressed.
  //controlP5.removeCallback(cb);
}

// controlEvent(CallbackEvent) is called whenever a callback 
// has been triggered. controlEvent(CallbackEvent) is detected by 
// controlP5 automatically.
void controlEvent(CallbackEvent theEvent) {
  if (theEvent.getController().equals(s2)) {
    switch(theEvent.getAction()) {
      case(ControlP5.ACTION_ENTER): 
      println("Action:ENTER");
      break;
      case(ControlP5.ACTION_LEAVE): 
      println("Action:LEAVE");
      break;
      case(ControlP5.ACTION_PRESSED): 
      println("Action:PRESSED");
      break;
      case(ControlP5.ACTION_RELEASED): 
      println("Action:RELEASED");
      break;
      case(ControlP5.ACTION_RELEASEDOUTSIDE): 
      println("Action:RELEASED OUTSIDE");
      break;
      case(ControlP5.ACTION_BROADCAST): 
      println("Action:BROADCAST");
      break;
    }
  }
}



class Info {
  float a;
  float n = 0;
  String txt = "";
  Textarea label;
  
  Info() {
    label = cp5.addTextarea("Hello\nWorld")
               .setSize(200,200)
               .setPosition(300,40)
               .setFont(ControlP5.standard56)
               .setColor(color(255))
               .setColorBackground(color(100,0));
  }
  
  void update() {
    a += (n-a)*0.1;
    label.setColorBackground(color(100,255*a));
  }
}















/*
a list of all methods available for the CallbackEvent Controller
 use ControlP5.printPublicMethodsFor(CallbackEvent.class);
 to print the following list into the console.
 
 You can find further details about class CallbackEvent in the javadoc.
 
 Format:
 ClassName : returnType methodName(parameter type)
 
 
 controlP5.CallbackEvent : Controller getController() 
 controlP5.CallbackEvent : int getAction() 
 java.lang.Object : String toString() 
 java.lang.Object : boolean equals(Object) 
 
 
 */




Method Summary
 int getAction()
           
 Controller getController()
          Returns the Controller that triggered the Callback Event.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getAction

public int getAction()
Returns:
int Returns an int value of either one of the following static variables ControlP5.ACTION_PRESSED, ControlP5.ACTION_ENTER, ControlP5.ACTION_LEAVE, ControlP5.ACTION_RELEASED, ControlP5.ACTION_RELEASEDOUTSIDE, ControlP5.ACTION_BROADCAST

getController

public Controller getController()
Returns the Controller that triggered the Callback Event.

Returns:
Controller


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