Skip to content
A GUI system for OpenFrameworks, for desktop and iOS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A GUI system for OpenFrameworks, for desktop and iOS


  • high performance using FBOs
  • the same code for iOS and desktop
  • easily extendable with custom controls
  • rotatable controls
  • controls can follow screen rotation in iOS
  • graphical effects can be added to any control
  • handles multitouch, within single controls and across multiple controls

This project is currently under development, full documentation and a demo will follow.

In brief, this is an example of some code for iOS

--- in app.h

//add the listener to your app class
class GUIApp : public ofxiPhoneApp, public EAVIGUI::InterfaceListener {

--- in

enum guiIDS {BUTTON1};

void setup() {

    button = new EAVIGUI::ImageButton(callback, BUTTON1, 0, 0, "button.png", "buttonOver.png"); //initialise a button
    button->setRelativePositioning(0.5, -button->getScaledWidth()/2.0, 0.5, -button->getScaledHeight()/2.0); //relative position, for screen rotations
    EAVIGUI::InterfaceManager::addObject(button); //add to gui



void handleInterfaceEvent(int intid, int eventTypeId, EAVIGUI::InterfaceObject *object) {
    cout << "Interface: " << intid << ", " << eventTypeId << endl;

    if (intid == BUTTON1) {
        switch(eventTypeId) {
            case EAVIGUI::InterfaceObject::TOUCHDOWN:
                //do something
            case EAVIGUI::InterfaceObject::TOUCHUP:
            case EAVIGUI::InterfaceObject::TOUCHEXIT:
                //do something else
You can’t perform that action at this time.