00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 #include "cinder/Color.h"
00026 #include "cinder/Quaternion.h"
00027 #include "cinder/Function.h"
00028
00029 #include <string>
00030
00031 typedef struct CTwBar TwBar;
00032
00033 namespace cinder { namespace params {
00034
00035 class InterfaceGl {
00036 public:
00037 InterfaceGl() {}
00038 InterfaceGl( const std::string &title, const Vec2i &size, const ColorA = ColorA( 0.3f, 0.3f, 0.3f, 0.4f ) );
00039
00040 static void draw();
00041
00042 void show( bool visible = true );
00043 void hide();
00044 bool isVisible() const;
00045
00046 void addParam( const std::string &name, bool *boolParam, const std::string &optionsStr = "", bool readOnly = false );
00047 void addParam( const std::string &name, float *floatParam, const std::string &optionsStr = "", bool readOnly = false );
00048 void addParam( const std::string &name, double *doubleParam, const std::string &optionsStr = "", bool readOnly = false );
00049 void addParam( const std::string &name, int32_t *intParam, const std::string &optionsStr = "", bool readOnly = false );
00050 void addParam( const std::string &name, Vec3f *vectorParam, const std::string &optionsStr = "", bool readOnly = false );
00051 void addParam( const std::string &name, Quatf *quatParam, const std::string &optionsStr = "", bool readOnly = false );
00052 void addParam( const std::string &name, Color *quatParam, const std::string &optionsStr = "", bool readOnly = false );
00053 void addParam( const std::string &name, ColorA *quatParam, const std::string &optionsStr = "", bool readOnly = false );
00054 void addParam( const std::string &name, std::string *strParam, const std::string &optionsStr = "", bool readOnly = false );
00056 void addParam( const std::string &name, const std::vector<std::string> &enumNames, int *param, const std::string &optionsStr = "", bool readOnly = false );
00057 void addSeparator( const std::string &name = "", const std::string &optionsStr = "" );
00058 void addText( const std::string &name = "", const std::string &optionsStr = "" );
00059 void addButton( const std::string &name, const std::function<void()> &callback, const std::string &optionsStr = "" );
00060 void removeParam( const std::string &name );
00061 void setOptions( const std::string &name = "", const std::string &optionsStr = "" );
00062
00063 protected:
00064 void implAddParam( const std::string &name, void *param, int type, const std::string &optionsStr, bool readOnly );
00065
00066 std::shared_ptr<TwBar> mBar;
00067 std::vector<std::shared_ptr<std::function<void()> > > mButtonCallbacks;
00068 };
00069
00070 } }