Files
OpenRA/api/lua/anttweakbar.lua
2012-08-11 15:36:19 +02:00

553 lines
23 KiB
Lua

--[[// tw tweakbar | AntTweakBar UI
enum { TW_VERSION = 114 }
typedef enum ETwType {
TW_TYPE_UNDEF,
TW_TYPE_BOOLCPP,
TW_TYPE_BOOL8,
TW_TYPE_BOOL16,
TW_TYPE_BOOL32,
TW_TYPE_CHAR,
TW_TYPE_INT8,
TW_TYPE_UINT8,
TW_TYPE_INT16,
TW_TYPE_UINT16,
TW_TYPE_INT32,
TW_TYPE_UINT32,
TW_TYPE_FLOAT,
TW_TYPE_DOUBLE,
TW_TYPE_COLOR32, // 32 bits color. Order is RGBA if API is OpenGL or Direct3D10, and inversed if API is Direct3D9 (can be modified by defining 'colorOrder=...', see doc)
TW_TYPE_COLOR3F, // 3 floats color. Order is RGB.
TW_TYPE_COLOR4F, // 4 floats color. Order is RGBA.
TW_TYPE_CDSTRING, // Null-terminated C Dynamic String (pointer to an array of char dynamically allocated with malloc/realloc/strdup)
TW_TYPE__TEMP1, //
TW_TYPE_QUAT4F, // 4 floats encoding a quaternion {qx,qy,qz,qs}
TW_TYPE_QUAT4D, // 4 doubles encoding a quaternion {qx,qy,qz,qs}
TW_TYPE_DIR3F, // direction vector represented by 3 floats
TW_TYPE_DIR3D, // direction vector represented by 3 doubles
TW_TYPE_CSSTRING_LEN0 = 0x30000000,
TW_TYPE_CSSTRING_LEN256 = 0x30000000 + 256,
} TwType;
typedef struct CTwEnumVal {
int Value;
const char * Label;
} TwEnumVal;
typedef struct CTwStructMember {
const char * Name;
TwType Type;
size_t Offset;
const char * DefString;
} TwStructMember;
typedef enum ETwParamValueType {
TW_PARAM_INT32,
TW_PARAM_FLOAT,
TW_PARAM_DOUBLE,
TW_PARAM_CSTRING // Null-terminated array of char (ie, c-string)
} TwParamValueType;
typedef enum ETwGraphAPI {
TW_OPENGL = 1,
TW_DIRECT3D9 = 2,
TW_DIRECT3D10 = 3,
TW_DIRECT3D11 = 4
} TwGraphAPI;
typedef enum ETwKeyModifier {
TW_KMOD_NONE = 0x0000, // same codes as SDL keysym.mod
TW_KMOD_SHIFT = 0x0003,
TW_KMOD_CTRL = 0x00c0,
TW_KMOD_ALT = 0x0100,
TW_KMOD_META = 0x0c00
} TwKeyModifier;
typedef enum EKeySpecial {
TW_KEY_BACKSPACE = '\b',
TW_KEY_TAB = '\t',
TW_KEY_CLEAR = 0x0c,
TW_KEY_RETURN = '\r',
TW_KEY_PAUSE = 0x13,
TW_KEY_ESCAPE = 0x1b,
TW_KEY_SPACE = ' ',
TW_KEY_DELETE = 0x7f,
TW_KEY_UP = 273,
TW_KEY_DOWN,
TW_KEY_RIGHT,
TW_KEY_LEFT,
TW_KEY_INSERT,
TW_KEY_HOME,
TW_KEY_END,
TW_KEY_PAGE_UP,
TW_KEY_PAGE_DOWN,
TW_KEY_F1,
TW_KEY_F2,
TW_KEY_F3,
TW_KEY_F4,
TW_KEY_F5,
TW_KEY_F6,
TW_KEY_F7,
TW_KEY_F8,
TW_KEY_F9,
TW_KEY_F10,
TW_KEY_F11,
TW_KEY_F12,
TW_KEY_F13,
TW_KEY_F14,
TW_KEY_F15,
TW_KEY_LAST
} TwKeySpecial;
typedef enum ETwMouseAction {
TW_MOUSE_RELEASED,
TW_MOUSE_PRESSED
} TwMouseAction;
typedef enum ETwMouseButtonID {
TW_MOUSE_LEFT = 1,
TW_MOUSE_MIDDLE = 2,
TW_MOUSE_RIGHT = 3
} TwMouseButtonID;
typedef void (*TwSetVarCallback) ( const void *value, void *clientData );
typedef void (*TwGetVarCallback) ( void *value, void *clientData );
typedef void (*TwButtonCallback) ( void *clientData );
typedef void (*TwSummaryCallback) ( char *summaryString, size_t summaryMaxLength, const void *value, void *clientData );
typedef void (*TwCopyCDStringToClient) ( char **destinationClientStringPtr, const char *sourceString );
typedef void (*TwErrorHandler) ( const char *errorMessage );
typedef void (*TwGLUTmousebuttonfun) ( int glutButton, int glutState, int mouseX, int mouseY );
typedef void (*TwGLUTmousemotionfun) ( int mouseX, int mouseY );
typedef void (*TwGLUTkeyboardfun) ( unsigned char glutKey, int mouseX, int mouseY );
typedef void (*TwGLUTspecialfun) ( int glutKey, int mouseX, int mouseY );
typedef struct CTwBar TwBar;
TwBar* TwNewBar( const char *barName );
int TwDeleteBar( TwBar *bar );
int TwDeleteAllBars( );
int TwSetTopBar( const TwBar *bar );
TwBar* TwGetTopBar( );
int TwSetBottomBar( const TwBar *bar );
TwBar* TwGetBottomBar( );
const char* TwGetBarName( TwBar *bar );
int TwGetBarCount( );
TwBar* TwGetBarByIndex( int barIndex );
TwBar* TwGetBarByName( const char *barName );
int TwRefreshBar( TwBar *bar );
int TwAddVarRW( TwBar *bar, const char *name, TwType type, void *var, const char *def );
int TwAddVarRO( TwBar *bar, const char *name, TwType type, const void *var, const char *def );
int TwAddVarCB( TwBar *bar, const char *name, TwType type, TwSetVarCallback setCallback, TwGetVarCallback getCallback, void *clientData, const char *def );
int TwAddButton( TwBar *bar, const char *name, TwButtonCallback callback, void *clientData, const char *def );
int TwAddSeparator( TwBar *bar, const char *name, const char *def );
int TwRemoveVar( TwBar *bar, const char *name );
int TwRemoveAllVars( TwBar *bar );
int TwDefine( const char *def );
TwType TwDefineEnum( const char *name, const TwEnumVal *enumValues, unsigned int nbValues );
TwType TwDefineEnumFromString( const char *name, const char *enumString );
TwType TwDefineStruct( const char *name, const TwStructMember *structMembers, unsigned int nbMembers, size_t structSize, TwSummaryCallback summaryCallback, void *summaryClientData );
void TwCopyCDStringToClientFunc( TwCopyCDStringToClient copyCDStringFunc );
void TwCopyCDStringToLibrary( char **destinationLibraryStringPtr, const char *sourceClientString );
int TwGetParam( TwBar *bar, const char *varName, const char *paramName, TwParamValueType paramValueType, unsigned int outValueMaxCount, void *outValues );
int TwSetParam( TwBar *bar, const char *varName, const char *paramName, TwParamValueType paramValueType, unsigned int inValueCount, const void *inValues );
int TwInit( TwGraphAPI graphAPI, void *device );
int TwTerminate();
int TwDraw();
int TwWindowSize( int width, int height);
int TwSetCurrentWindow( int windowID); // multi-windows support
int TwGetCurrentWindow();
int TwWindowExists( int windowID);
int TwKeyPressed( int key, int modifiers);
int TwKeyTest( int key, int modifiers);
int TwMouseButton( TwMouseAction action, TwMouseButtonID button);
int TwMouseMotion( int mouseX, int mouseY);
int TwMouseWheel( int pos);
const char* TwGetLastError( );
void TwHandleErrors( TwErrorHandler errorHandler);
int TwEventSDL( const void *sdlEvent, unsigned char sdlMajorVersion, unsigned char sdlMinorVersion);
int TwEventSDL12( const void *sdlEvent);
int TwEventSDL13( const void *sdlEvent);
int TwEventMouseButtonGLFW( int glfwButton, int glfwAction );
int TwEventKeyGLFW( int glfwKey, int glfwAction );
int TwEventCharGLFW( int glfwChar, int glfwAction );
int TwEventMouseButtonGLUT( int glutButton, int glutState, int mouseX, int mouseY);
int TwEventMouseMotionGLUT( int mouseX, int mouseY);
int TwEventKeyboardGLUT( unsigned char glutKey, int mouseX, int mouseY );
int TwEventSpecialGLUT( int glutKey, int mouseX, int mouseY );
int TwGLUTModifiersFunc( int (*glutGetModifiersFunc)(void) );
int TwEventSFML( const void *sfmlEvent, unsigned char sfmlMajorVersion, unsigned char sfmlMinorVersion);
]]
--auto-generated api from ffi headers
local api =
{
["TW_TYPE_UNDEF"] = { type ='value', },
["TW_TYPE_BOOLCPP"] = { type ='value', },
["TW_TYPE_BOOL8"] = { type ='value', },
["TW_TYPE_BOOL16"] = { type ='value', },
["TW_TYPE_BOOL32"] = { type ='value', },
["TW_TYPE_CHAR"] = { type ='value', },
["TW_TYPE_INT8"] = { type ='value', },
["TW_TYPE_UINT8"] = { type ='value', },
["TW_TYPE_INT16"] = { type ='value', },
["TW_TYPE_UINT16"] = { type ='value', },
["TW_TYPE_INT32"] = { type ='value', },
["TW_TYPE_UINT32"] = { type ='value', },
["TW_TYPE_FLOAT"] = { type ='value', },
["TW_TYPE_DOUBLE"] = { type ='value', },
["TW_TYPE_COLOR32"] = { type ='value', },
["TW_TYPE_COLOR3F"] = { type ='value', },
["TW_TYPE_COLOR4F"] = { type ='value', },
["TW_TYPE_CDSTRING"] = { type ='value', },
["TW_TYPE__TEMP1"] = { type ='value', },
["TW_TYPE_QUAT4F"] = { type ='value', },
["TW_TYPE_QUAT4D"] = { type ='value', },
["TW_TYPE_DIR3F"] = { type ='value', },
["TW_TYPE_DIR3D"] = { type ='value', },
["TW_TYPE_CSSTRING_LEN0"] = { type ='value', },
["TW_TYPE_CSSTRING_LEN256"] = { type ='value', },
["TW_PARAM_INT32"] = { type ='value', },
["TW_PARAM_FLOAT"] = { type ='value', },
["TW_PARAM_DOUBLE"] = { type ='value', },
["TW_PARAM_CSTRING"] = { type ='value', },
["TW_OPENGL"] = { type ='value', },
["TW_DIRECT3D9"] = { type ='value', },
["TW_DIRECT3D10"] = { type ='value', },
["TW_DIRECT3D11"] = { type ='value', },
["TW_KMOD_NONE"] = { type ='value', },
["TW_KMOD_SHIFT"] = { type ='value', },
["TW_KMOD_CTRL"] = { type ='value', },
["TW_KMOD_ALT"] = { type ='value', },
["TW_KMOD_META"] = { type ='value', },
["TW_KEY_BACKSPACE"] = { type ='value', },
["TW_KEY_TAB"] = { type ='value', },
["TW_KEY_CLEAR"] = { type ='value', },
["TW_KEY_RETURN"] = { type ='value', },
["TW_KEY_PAUSE"] = { type ='value', },
["TW_KEY_ESCAPE"] = { type ='value', },
["TW_KEY_SPACE"] = { type ='value', },
["TW_KEY_DELETE"] = { type ='value', },
["TW_KEY_UP"] = { type ='value', },
["TW_KEY_DOWN"] = { type ='value', },
["TW_KEY_RIGHT"] = { type ='value', },
["TW_KEY_LEFT"] = { type ='value', },
["TW_KEY_INSERT"] = { type ='value', },
["TW_KEY_HOME"] = { type ='value', },
["TW_KEY_END"] = { type ='value', },
["TW_KEY_PAGE_UP"] = { type ='value', },
["TW_KEY_PAGE_DOWN"] = { type ='value', },
["TW_KEY_F1"] = { type ='value', },
["TW_KEY_F2"] = { type ='value', },
["TW_KEY_F3"] = { type ='value', },
["TW_KEY_F4"] = { type ='value', },
["TW_KEY_F5"] = { type ='value', },
["TW_KEY_F6"] = { type ='value', },
["TW_KEY_F7"] = { type ='value', },
["TW_KEY_F8"] = { type ='value', },
["TW_KEY_F9"] = { type ='value', },
["TW_KEY_F10"] = { type ='value', },
["TW_KEY_F11"] = { type ='value', },
["TW_KEY_F12"] = { type ='value', },
["TW_KEY_F13"] = { type ='value', },
["TW_KEY_F14"] = { type ='value', },
["TW_KEY_F15"] = { type ='value', },
["TW_KEY_LAST"] = { type ='value', },
["TW_MOUSE_RELEASED"] = { type ='value', },
["TW_MOUSE_PRESSED"] = { type ='value', },
["TW_MOUSE_LEFT"] = { type ='value', },
["TW_MOUSE_MIDDLE"] = { type ='value', },
["TW_MOUSE_RIGHT"] = { type ='value', },
["TwNewBar"] = { type ='function',
description = "",
returns = "(TwBar*)",
valuetype = nil,
args = "(const char *barName)", },
["TwDeleteBar"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar)", },
["TwDeleteAllBars"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "()", },
["TwSetTopBar"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(const TwBar *bar)", },
["TwGetTopBar"] = { type ='function',
description = "",
returns = "(TwBar*)",
valuetype = nil,
args = "()", },
["TwSetBottomBar"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(const TwBar *bar)", },
["TwGetBottomBar"] = { type ='function',
description = "",
returns = "(TwBar*)",
valuetype = nil,
args = "()", },
["TwGetBarName"] = { type ='function',
description = "",
returns = "(const char*)",
valuetype = "string",
args = "(TwBar *bar)", },
["TwGetBarCount"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "()", },
["TwGetBarByIndex"] = { type ='function',
description = "",
returns = "(TwBar*)",
valuetype = nil,
args = "(int barIndex)", },
["TwGetBarByName"] = { type ='function',
description = "",
returns = "(TwBar*)",
valuetype = nil,
args = "(const char *barName)", },
["TwRefreshBar"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar)", },
["TwAddVarRW"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *name, TwType type, void *var, const char *def)", },
["TwAddVarRO"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *name, TwType type, const void *var, const char *def)", },
["TwAddVarCB"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *name, TwType type, TwSetVarCallback setCallback, TwGetVarCallback getCallback, void *clientData, const char *def)", },
["TwAddButton"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *name, TwButtonCallback callback, void *clientData, const char *def)", },
["TwAddSeparator"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *name, const char *def)", },
["TwRemoveVar"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *name)", },
["TwRemoveAllVars"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar)", },
["TwDefine"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(const char *def)", },
["TwDefineEnum"] = { type ='function',
description = "",
returns = "(TwType)",
valuetype = nil,
args = "(const char *name, const TwEnumVal *enumValues, unsigned int nbValues)", },
["TwDefineEnumFromString"] = { type ='function',
description = "",
returns = "(TwType)",
valuetype = nil,
args = "(const char *name, const char *enumString)", },
["TwDefineStruct"] = { type ='function',
description = "",
returns = "(TwType)",
valuetype = nil,
args = "(const char *name, const TwStructMember *structMembers, unsigned int nbMembers, size_t structSize, TwSummaryCallback summaryCallback, void *summaryClientData)", },
["TwCopyCDStringToClientFunc"] = { type ='function',
description = "",
returns = "(void)",
valuetype = nil,
args = "(TwCopyCDStringToClient copyCDStringFunc)", },
["TwCopyCDStringToLibrary"] = { type ='function',
description = "",
returns = "(void)",
valuetype = nil,
args = "(char **destinationLibraryStringPtr, const char *sourceClientString)", },
["TwGetParam"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *varName, const char *paramName, TwParamValueType paramValueType, unsigned int outValueMaxCount, void *outValues)", },
["TwSetParam"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwBar *bar, const char *varName, const char *paramName, TwParamValueType paramValueType, unsigned int inValueCount, const void *inValues)", },
["TwInit"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwGraphAPI graphAPI, void *device)", },
["TwTerminate"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "()", },
["TwDraw"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "()", },
["TwWindowSize"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int width, int height)", },
["TwSetCurrentWindow"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int windowID)", },
["TwGetCurrentWindow"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "()", },
["TwWindowExists"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int windowID)", },
["TwKeyPressed"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int key, int modifiers)", },
["TwKeyTest"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int key, int modifiers)", },
["TwMouseButton"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(TwMouseAction action, TwMouseButtonID button)", },
["TwMouseMotion"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int mouseX, int mouseY)", },
["TwMouseWheel"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int pos)", },
["TwGetLastError"] = { type ='function',
description = "",
returns = "(const char*)",
valuetype = "string",
args = "()", },
["TwHandleErrors"] = { type ='function',
description = "",
returns = "(void)",
valuetype = nil,
args = "(TwErrorHandler errorHandler)", },
["TwEventSDL"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(const void *sdlEvent, unsigned char sdlMajorVersion, unsigned char sdlMinorVersion)", },
["TwEventSDL12"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(const void *sdlEvent)", },
["TwEventSDL13"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(const void *sdlEvent)", },
["TwEventMouseButtonGLFW"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int glfwButton, int glfwAction)", },
["TwEventKeyGLFW"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int glfwKey, int glfwAction)", },
["TwEventCharGLFW"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int glfwChar, int glfwAction)", },
["TwEventMouseButtonGLUT"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int glutButton, int glutState, int mouseX, int mouseY)", },
["TwEventMouseMotionGLUT"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int mouseX, int mouseY)", },
["TwEventKeyboardGLUT"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(unsigned char glutKey, int mouseX, int mouseY)", },
["TwEventSpecialGLUT"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(int glutKey, int mouseX, int mouseY)", },
["glutGetModifiersFunc"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(void))", },
["TwEventSFML"] = { type ='function',
description = "",
returns = "(int)",
valuetype = nil,
args = "(const void *sfmlEvent, unsigned char sfmlMajorVersion, unsigned char sfmlMinorVersion)", },
["TwEnumVal"] = { type ='class',
description = "",
childs = {
["Value"] = { type ='value', description = "int ", valuetype = nil, },
["Label"] = { type ='value', description = "const char * ", valuetype = "string", },
}
},
["TwStructMember"] = { type ='class',
description = "",
childs = {
["Name"] = { type ='value', description = "const char * ", valuetype = "string", },
["Type"] = { type ='value', description = "TwType ", valuetype = nil, },
["Offset"] = { type ='value', description = "size_t ", valuetype = nil, },
["DefString"] = { type ='value', description = "const char * ", valuetype = "string", },
}
},
}
return {
tw = {
type = 'lib',
description = "AntTweakBar UI",
childs = api,
},
tweakbar = {
type = 'lib',
description = "AntTweakBar UI",
childs = api,
},
}