A GUI system for OpenFrameworks, for desktop and iOS
C++ C
Latest commit 51a3026 Mar 5, 2014 @chriskiefer misc
Permalink
Failed to load latest commit information.
src misc Mar 4, 2014
.gitignore tidying up Jun 19, 2013
README.md changed readme Jul 5, 2013

README.md

ofxEAVIGUI

A GUI system for OpenFrameworks, for desktop and iOS

Features:

  • 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 app.mm

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
    button->setVisible(true);

    EAVIGUI::InterfaceManager::setup();

}

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
                break;
            case EAVIGUI::InterfaceObject::TOUCHUP:
            case EAVIGUI::InterfaceObject::TOUCHEXIT:
                //do something else
                break;
        }
    }
}