| 
							- /*
 -  * DISTHRO Plugin Toolkit (DPT)
 -  * Copyright (C) 2012 Filipe Coelho <falktx@gmail.com>
 -  *
 -  * This program is free software; you can redistribute it and/or
 -  * modify it under the terms of the GNU General Public License as
 -  * published by the Free Software Foundation; either version 2 of
 -  * the License, or any later version.
 -  *
 -  * This program is distributed in the hope that it will be useful,
 -  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 -  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 -  * GNU General Public License for more details.
 -  *
 -  * For a full copy of the license see the GPL.txt file
 -  */
 - 
 - #ifndef __DISTRHO_UI_OPENGL_H__
 - #define __DISTRHO_UI_OPENGL_H__
 - 
 - #include "src/DistrhoDefines.h"
 - 
 - #ifdef DISTRHO_UI_OPENGL
 - 
 - #include "DistrhoUI.h"
 - 
 - #if DISTRHO_OS_MAC
 - # include <OpenGL/glu.h>
 - #else
 - # include <GL/glu.h>
 - #endif
 - 
 - START_NAMESPACE_DISTRHO
 - 
 - // -------------------------------------------------
 - 
 - enum Char {
 -     CHAR_BACKSPACE = 0x08,
 -     CHAR_ESCAPE    = 0x1B,
 -     CHAR_DELETE    = 0x7F
 - };
 - 
 - enum Key {
 -     KEY_F1 = 1,
 -     KEY_F2,
 -     KEY_F3,
 -     KEY_F4,
 -     KEY_F5,
 -     KEY_F6,
 -     KEY_F7,
 -     KEY_F8,
 -     KEY_F9,
 -     KEY_F10,
 -     KEY_F11,
 -     KEY_F12,
 -     KEY_LEFT,
 -     KEY_UP,
 -     KEY_RIGHT,
 -     KEY_DOWN,
 -     KEY_PAGE_UP,
 -     KEY_PAGE_DOWN,
 -     KEY_HOME,
 -     KEY_END,
 -     KEY_INSERT,
 -     KEY_SHIFT,
 -     KEY_CTRL,
 -     KEY_ALT,
 -     KEY_SUPER
 - };
 - 
 - enum Mod {
 -     MOD_SHIFT = 1 << 0, /**< Shift key */
 -     MOD_CTRL  = 1 << 1, /**< Control key */
 -     MOD_ALT   = 1 << 2, /**< Alt/Option key */
 -     MOD_SUPER = 1 << 3  /**< Mod4/Command/Windows key */
 - };
 - 
 - // -------------------------------------------------
 - 
 - class OpenGLUI : public UI
 - {
 - public:
 -     OpenGLUI();
 -     virtual ~OpenGLUI();
 - 
 -     // ---------------------------------------------
 - 
 -     // Host UI State (OpenGL)
 -     int  d_uiGetModifiers();
 -     void d_uiIgnoreKeyRepeat(bool ignore);
 -     void d_uiRepaint();
 - 
 -     // ---------------------------------------------
 - 
 - protected:
 -     // Information
 -     virtual unsigned int d_width() = 0;
 -     virtual unsigned int d_height() = 0;
 - 
 -     // DSP Callbacks
 -     virtual void d_parameterChanged(uint32_t index, float value) = 0;
 - #if DISTRHO_PLUGIN_WANT_PROGRAMS
 -     virtual void d_programChanged(uint32_t index) = 0;
 - #endif
 - #if DISTRHO_PLUGIN_WANT_STATE
 -     virtual void d_stateChanged(const char* key, const char* value) = 0;
 - #endif
 - 
 -     // UI Callbacks
 -     virtual void d_uiIdle();
 -     virtual void d_onInit() = 0;
 -     virtual void d_onDisplay() = 0;
 -     virtual void d_onKeyboard(bool press, uint32_t key) = 0;
 -     virtual void d_onMotion(int x, int y) = 0;
 -     virtual void d_onMouse(int button, bool press, int x, int y) = 0;
 -     virtual void d_onReshape(int width, int height) = 0;
 -     virtual void d_onScroll(float dx, float dy) = 0;
 -     virtual void d_onSpecial(bool press, Key key) = 0;
 -     virtual void d_onClose() = 0;
 - 
 - private:
 -     friend class UIInternal;
 - };
 - 
 - // -------------------------------------------------
 - 
 - END_NAMESPACE_DISTRHO
 - 
 - #endif // DISTRHO_UI_OPENGL
 - 
 - #endif // __DISTRHO_UI_OPENGL_H__
 
 
  |