ソースを参照

Generated scripts from merged pull request

Ivan Safrin 9 年 前
コミット
dfc779f79b

+ 6 - 2
bindings/javascript/Polycode/CoreInput.js

@@ -164,8 +164,8 @@ CoreInput.prototype.setMousePosition = function(x,y,ticks) {
 	Polycode.CoreInput_setMousePosition(this.__ptr, x, y, ticks)
 }
 
-CoreInput.prototype.setKeyState = function(keyCode,code,newState,ticks) {
-	Polycode.CoreInput_setKeyState(this.__ptr, keyCode, code, newState, ticks)
+CoreInput.prototype.setKeyState = function(keyCode,newState,ticks) {
+	Polycode.CoreInput_setKeyState(this.__ptr, keyCode, newState, ticks)
 }
 
 CoreInput.prototype.setDeltaPosition = function(x,y) {
@@ -184,6 +184,10 @@ CoreInput.prototype.touchesEnded = function(touch,touches,ticks) {
 	Polycode.CoreInput_touchesEnded(this.__ptr, touch, touches, ticks)
 }
 
+CoreInput.prototype.textInput = function(text) {
+	Polycode.CoreInput_textInput(this.__ptr, text)
+}
+
 CoreInput.prototype.createEvent = function(event) {
 	var retVal = new InputEvent()
 	retVal.__ptr = Polycode.CoreInput_createEvent(event.__ptr)

+ 9 - 17
bindings/javascript/Polycode/InputEvent.js

@@ -8,8 +8,8 @@ function InputEvent() {
 		'mouseButton': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_mouseButton, set: InputEvent.prototype.__set_mouseButton},
 		'mousePosition': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_mousePosition, set: InputEvent.prototype.__set_mousePosition},
 		'key': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_key, set: InputEvent.prototype.__set_key},
-		'charCode': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_charCode, set: InputEvent.prototype.__set_charCode},
 		'timestamp': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_timestamp, set: InputEvent.prototype.__set_timestamp},
+		'text': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_text, set: InputEvent.prototype.__set_text},
 		'touch': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_touch, set: InputEvent.prototype.__set_touch},
 		'touchType': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_touchType, set: InputEvent.prototype.__set_touchType},
 		'joystickDeviceID': { enumerable: true, configurable: true, get: InputEvent.prototype.__get_joystickDeviceID, set: InputEvent.prototype.__set_joystickDeviceID},
@@ -49,16 +49,6 @@ InputEvent.prototype.__set_key = function(val) {
 	Polycode.InputEvent__set_key(this.__ptr, val)
 }
 
-InputEvent.prototype.__get_charCode = function() {
-	var retVal = new wchar_t()
-	retVal.__ptr = 	Polycode.InputEvent__get_charCode(this.__ptr)
-	return retVal
-}
-
-InputEvent.prototype.__set_charCode = function(val) {
-	Polycode.InputEvent__set_charCode(this.__ptr, val.__ptr)
-}
-
 InputEvent.prototype.__get_timestamp = function() {
 	return Polycode.InputEvent__get_timestamp(this.__ptr)
 }
@@ -67,6 +57,14 @@ InputEvent.prototype.__set_timestamp = function(val) {
 	Polycode.InputEvent__set_timestamp(this.__ptr, val)
 }
 
+InputEvent.prototype.__get_text = function() {
+	return Polycode.InputEvent__get_text(this.__ptr)
+}
+
+InputEvent.prototype.__set_text = function(val) {
+	Polycode.InputEvent__set_text(this.__ptr, val)
+}
+
 InputEvent.prototype.__get_touch = function() {
 	var retVal = new TouchInfo()
 	retVal.__ptr = 	Polycode.InputEvent__get_touch(this.__ptr)
@@ -154,12 +152,6 @@ InputEvent.prototype.getMouseButton = function() {
 	return Polycode.InputEvent_getMouseButton(this.__ptr)
 }
 
-InputEvent.prototype.getCharCode = function() {
-	var retVal = new wchar_t()
-	retVal.__ptr = Polycode.InputEvent_getCharCode(this.__ptr)
-	return retVal
-}
-
 InputEvent.prototype.keyCode = function() {
 	return Polycode.InputEvent_keyCode(this.__ptr)
 }

+ 10 - 0
bindings/javascript/Polycode/String.js

@@ -75,6 +75,12 @@ String.prototype.find_first_of = function(str,pos) {
 	return retVal
 }
 
+String.prototype.find_first_not_of = function(str,pos) {
+	var retVal = new size_t()
+	retVal.__ptr = Polycode.String_find_first_not_of(this.__ptr, str, pos)
+	return retVal
+}
+
 String.prototype.toLowerCase = function() {
 	return Polycode.String_toLowerCase(this.__ptr)
 }
@@ -142,3 +148,7 @@ String.prototype.setDataWithEncoding = function(data,encoding) {
 String.prototype.isNumber = function() {
 	return Polycode.String_isNumber(this.__ptr)
 }
+
+String.prototype.isInteger = function() {
+	return Polycode.String_isInteger(this.__ptr)
+}

BIN
bindings/javascript/js_Polycode.pak


+ 6 - 2
bindings/lua/Polycode/CoreInput.lua

@@ -177,8 +177,8 @@ function CoreInput:setMousePosition(x, y, ticks)
 	local retVal = Polycode.CoreInput_setMousePosition(self.__ptr, x, y, ticks)
 end
 
-function CoreInput:setKeyState(keyCode, code, newState, ticks)
-	local retVal = Polycode.CoreInput_setKeyState(self.__ptr, keyCode, code.__ptr, newState, ticks)
+function CoreInput:setKeyState(keyCode, newState, ticks)
+	local retVal = Polycode.CoreInput_setKeyState(self.__ptr, keyCode, newState, ticks)
 end
 
 function CoreInput:setDeltaPosition(x, y)
@@ -197,6 +197,10 @@ function CoreInput:touchesEnded(touch, touches, ticks)
 	local retVal = Polycode.CoreInput_touchesEnded(self.__ptr, touch.__ptr, touches.__ptr, ticks)
 end
 
+function CoreInput:textInput(text)
+	local retVal = Polycode.CoreInput_textInput(self.__ptr, text)
+end
+
 function CoreInput:createEvent(event)
 	local retVal = Polycode.CoreInput_createEvent(self.__ptr, event.__ptr)
 	if retVal == nil then return nil end

+ 6 - 17
bindings/lua/Polycode/InputEvent.lua

@@ -22,6 +22,7 @@ InputEvent.EVENT_JOYDEVICE_DETACHED = InputEvent.EVENTBASE_INPUTEVENT + 19
 InputEvent.EVENT_TOUCHES_BEGAN = InputEvent.EVENTBASE_INPUTEVENT + 20
 InputEvent.EVENT_TOUCHES_MOVED = InputEvent.EVENTBASE_INPUTEVENT + 21
 InputEvent.EVENT_TOUCHES_ENDED = InputEvent.EVENTBASE_INPUTEVENT + 22
+InputEvent.EVENT_TEXTINPUT = InputEvent.EVENTBASE_INPUTEVENT + 23
 
 function InputEvent:__getvar(name)
 	if name == "mouseButton" then
@@ -34,14 +35,10 @@ function InputEvent:__getvar(name)
 		return __c
 	elseif name == "key" then
 		return Polycode.InputEvent_get_key(self.__ptr)
-	elseif name == "charCode" then
-		local retVal = Polycode.InputEvent_get_charCode(self.__ptr)
-		if retVal == nil then return nil end
-		local __c = _G["wchar_t"]("__skip_ptr__")
-		__c.__ptr = retVal
-		return __c
 	elseif name == "timestamp" then
 		return Polycode.InputEvent_get_timestamp(self.__ptr)
+	elseif name == "text" then
+		return Polycode.InputEvent_get_text(self.__ptr)
 	elseif name == "touch" then
 		local retVal = Polycode.InputEvent_get_touch(self.__ptr)
 		if retVal == nil then return nil end
@@ -78,12 +75,12 @@ function InputEvent:__setvar(name,value)
 	elseif name == "key" then
 		Polycode.InputEvent_set_key(self.__ptr, value)
 		return true
-	elseif name == "charCode" then
-		Polycode.InputEvent_set_charCode(self.__ptr, value.__ptr)
-		return true
 	elseif name == "timestamp" then
 		Polycode.InputEvent_set_timestamp(self.__ptr, value)
 		return true
+	elseif name == "text" then
+		Polycode.InputEvent_set_text(self.__ptr, value)
+		return true
 	elseif name == "touch" then
 		Polycode.InputEvent_set_touch(self.__ptr, value.__ptr)
 		return true
@@ -153,14 +150,6 @@ function InputEvent:getMouseButton()
 	return retVal
 end
 
-function InputEvent:getCharCode()
-	local retVal =  Polycode.InputEvent_getCharCode(self.__ptr)
-	if retVal == nil then return nil end
-	local __c = _G["wchar_t"]("__skip_ptr__")
-	__c.__ptr = retVal
-	return __c
-end
-
 function InputEvent:keyCode()
 	local retVal =  Polycode.InputEvent_keyCode(self.__ptr)
 	return retVal

+ 13 - 0
bindings/lua/Polycode/String.lua

@@ -95,6 +95,14 @@ function String:find_first_of(str, pos)
 	return __c
 end
 
+function String:find_first_not_of(str, pos)
+	local retVal = Polycode.String_find_first_not_of(self.__ptr, str, pos.__ptr)
+	if retVal == nil then return nil end
+	local __c = _G["size_t"]("__skip_ptr__")
+	__c.__ptr = retVal
+	return __c
+end
+
 function String:toLowerCase()
 	local retVal =  Polycode.String_toLowerCase(self.__ptr)
 	return retVal
@@ -186,6 +194,11 @@ function String:isNumber()
 	return retVal
 end
 
+function String:isInteger()
+	local retVal =  Polycode.String_isInteger(self.__ptr)
+	return retVal
+end
+
 function String:__delete()
 	if self then Polycode.delete_String(self.__ptr) end
 end

BIN
bindings/lua/lua_Polycode.pak


+ 45 - 33
include/polycode/bindings/javascript/PolycodeJSWrappers.h

@@ -849,7 +849,7 @@ namespace Polycode {
 
 	duk_ret_t Polycode_Camera_setViewport(duk_context *context) {
 		Camera *inst = (Camera*)duk_to_pointer(context, 0);
-		Polycode::Rectangle viewport = *(Polycode::Rectangle*)duk_to_pointer(context, 1);
+		Rectangle viewport = *(Rectangle*)duk_to_pointer(context, 1);
 		inst->setViewport(viewport);
 		return 0;
 	}
@@ -883,7 +883,7 @@ namespace Polycode {
 	duk_ret_t Polycode_Camera_projectRayFrom2DCoordinate(duk_context *context) {
 		Camera *inst = (Camera*)duk_to_pointer(context, 0);
 		Vector2 coordinate = *(Vector2*)duk_to_pointer(context, 1);
-		Polycode::Rectangle viewport = *(Polycode::Rectangle*)duk_to_pointer(context, 2);
+		Rectangle viewport = *(Rectangle*)duk_to_pointer(context, 2);
 		Vector3 *retInst = new Vector3();
 		*retInst = inst->projectRayFrom2DCoordinate(coordinate,viewport);
 		duk_push_pointer(context, (void*)retInst);
@@ -2590,10 +2590,9 @@ namespace Polycode {
 	duk_ret_t Polycode_CoreInput_setKeyState(duk_context *context) {
 		CoreInput *inst = (CoreInput*)duk_to_pointer(context, 0);
 		PolyKEY keyCode = (PolyKEY)duk_to_int(context, 1);
-		wchar_t code = *(wchar_t*)duk_to_pointer(context, 2);
-		bool newState = duk_to_boolean(context, 3);
-		int ticks = duk_to_int(context, 4);
-		inst->setKeyState(keyCode,code,newState,ticks);
+		bool newState = duk_to_boolean(context, 2);
+		int ticks = duk_to_int(context, 3);
+		inst->setKeyState(keyCode,newState,ticks);
 		return 0;
 	}
 
@@ -2632,6 +2631,13 @@ namespace Polycode {
 		return 0;
 	}
 
+	duk_ret_t Polycode_CoreInput_textInput(duk_context *context) {
+		CoreInput *inst = (CoreInput*)duk_to_pointer(context, 0);
+		String text = duk_to_string(context, 1);
+		inst->textInput(text);
+		return 0;
+	}
+
 	duk_ret_t Polycode_CoreInput_createEvent(duk_context *context) {
 		Event* event = (Event*)duk_to_pointer(context, 0);
 		PolyBase *ptrRetVal = (PolyBase*)CoreInput::createEvent(event);
@@ -2739,7 +2745,7 @@ namespace Polycode {
 
 	duk_ret_t Polycode_CoreServices_Render(duk_context *context) {
 		CoreServices *inst = (CoreServices*)duk_to_pointer(context, 0);
-		Polycode::Rectangle viewport = *(Polycode::Rectangle*)duk_to_pointer(context, 1);
+		Rectangle viewport = *(Rectangle*)duk_to_pointer(context, 1);
 		inst->Render(viewport);
 		return 0;
 	}
@@ -3322,7 +3328,7 @@ namespace Polycode {
 	duk_ret_t Polycode_Entity_transformAndRender(duk_context *context) {
 		Entity *inst = (Entity*)duk_to_pointer(context, 0);
 		GPUDrawBuffer* drawBuffer = (GPUDrawBuffer*)duk_to_pointer(context, 1);
-		Polycode::Rectangle* parentScissorBox = (Polycode::Rectangle*)duk_to_pointer(context, 2);
+		Rectangle* parentScissorBox = (Rectangle*)duk_to_pointer(context, 2);
 		inst->transformAndRender(drawBuffer,parentScissorBox);
 		return 0;
 	}
@@ -3330,7 +3336,7 @@ namespace Polycode {
 	duk_ret_t Polycode_Entity_renderChildren(duk_context *context) {
 		Entity *inst = (Entity*)duk_to_pointer(context, 0);
 		GPUDrawBuffer* buffer = (GPUDrawBuffer*)duk_to_pointer(context, 1);
-		Polycode::Rectangle* parentScissorBox = (Polycode::Rectangle*)duk_to_pointer(context, 2);
+		Rectangle* parentScissorBox = (Rectangle*)duk_to_pointer(context, 2);
 		inst->renderChildren(buffer,parentScissorBox);
 		return 0;
 	}
@@ -4068,7 +4074,7 @@ namespace Polycode {
 		Entity *inst = (Entity*)duk_to_pointer(context, 0);
 		Matrix4 projectionMatrix = *(Matrix4*)duk_to_pointer(context, 1);
 		Matrix4 cameraMatrix = *(Matrix4*)duk_to_pointer(context, 2);
-		Polycode::Rectangle viewport = *(Polycode::Rectangle*)duk_to_pointer(context, 3);
+		Rectangle viewport = *(Rectangle*)duk_to_pointer(context, 3);
 		Vector2 *retInst = new Vector2();
 		*retInst = inst->getScreenPosition(projectionMatrix,cameraMatrix,viewport);
 		duk_push_pointer(context, (void*)retInst);
@@ -5081,7 +5087,7 @@ namespace Polycode {
 
 	duk_ret_t Polycode_Image_getImagePart(duk_context *context) {
 		Image *inst = (Image*)duk_to_pointer(context, 0);
-		Polycode::Rectangle subRect = *(Polycode::Rectangle*)duk_to_pointer(context, 1);
+		Rectangle subRect = *(Rectangle*)duk_to_pointer(context, 1);
 		PolyBase *ptrRetVal = (PolyBase*)inst->getImagePart(subRect);
 		duk_push_pointer(context, (void*)ptrRetVal);
 		return 1;
@@ -5237,29 +5243,27 @@ namespace Polycode {
 		return 0;
 	}
 
-	duk_ret_t Polycode_InputEvent__get_charCode(duk_context *context) {
+	duk_ret_t Polycode_InputEvent__get_timestamp(duk_context *context) {
 		InputEvent *inst = (InputEvent*)duk_to_pointer(context, 0);
-		wchar_t *retInst = new wchar_t();
-		*retInst = inst->charCode;
-		duk_push_pointer(context, (void*)retInst);
+		duk_push_int(context, inst->timestamp);
 		return 1;
 	}
 
-	duk_ret_t Polycode_InputEvent__set_charCode(duk_context *context) {
+	duk_ret_t Polycode_InputEvent__set_timestamp(duk_context *context) {
 		InputEvent *inst = (InputEvent*)duk_to_pointer(context, 0);
-		inst->charCode = *(wchar_t*)duk_to_pointer(context, 1);
+		inst->timestamp = duk_to_int(context, 1);
 		return 0;
 	}
 
-	duk_ret_t Polycode_InputEvent__get_timestamp(duk_context *context) {
+	duk_ret_t Polycode_InputEvent__get_text(duk_context *context) {
 		InputEvent *inst = (InputEvent*)duk_to_pointer(context, 0);
-		duk_push_int(context, inst->timestamp);
+		duk_push_string(context, inst->text.c_str());
 		return 1;
 	}
 
-	duk_ret_t Polycode_InputEvent__set_timestamp(duk_context *context) {
+	duk_ret_t Polycode_InputEvent__set_text(duk_context *context) {
 		InputEvent *inst = (InputEvent*)duk_to_pointer(context, 0);
-		inst->timestamp = duk_to_int(context, 1);
+		inst->text = duk_to_string(context, 1);
 		return 0;
 	}
 
@@ -5387,14 +5391,6 @@ namespace Polycode {
 		return 1;
 	}
 
-	duk_ret_t Polycode_InputEvent_getCharCode(duk_context *context) {
-		InputEvent *inst = (InputEvent*)duk_to_pointer(context, 0);
-		wchar_t *retInst = new wchar_t();
-		*retInst = inst->getCharCode();
-		duk_push_pointer(context, (void*)retInst);
-		return 1;
-	}
-
 	duk_ret_t Polycode_InputEvent_keyCode(duk_context *context) {
 		InputEvent *inst = (InputEvent*)duk_to_pointer(context, 0);
 		duk_push_int(context, inst->keyCode());
@@ -8043,7 +8039,7 @@ namespace Polycode {
 
 	duk_ret_t Polycode_Rectangle_Clipped(duk_context *context) {
 		Rectangle *inst = (Rectangle*)duk_to_pointer(context, 0);
-		Polycode::Rectangle rect = *(Polycode::Rectangle*)duk_to_pointer(context, 1);
+		Rectangle rect = *(Rectangle*)duk_to_pointer(context, 1);
 		Polycode::Rectangle *retInst = new Polycode::Rectangle();
 		*retInst = inst->Clipped(rect);
 		duk_push_pointer(context, (void*)retInst);
@@ -8455,7 +8451,7 @@ namespace Polycode {
 		Vector3 position = *(Vector3*)duk_to_pointer(context, 0);
 		Matrix4 modelMatrix = *(Matrix4*)duk_to_pointer(context, 1);
 		Matrix4 projectionMatrix = *(Matrix4*)duk_to_pointer(context, 2);
-		Polycode::Rectangle viewport = *(Polycode::Rectangle*)duk_to_pointer(context, 3);
+		Rectangle viewport = *(Rectangle*)duk_to_pointer(context, 3);
 		Vector3 *retInst = new Vector3();
 		*retInst = Renderer::unProject(position,modelMatrix,projectionMatrix,viewport);
 		duk_push_pointer(context, (void*)retInst);
@@ -8466,7 +8462,7 @@ namespace Polycode {
 		Vector3 position = *(Vector3*)duk_to_pointer(context, 0);
 		Matrix4 modelMatrix = *(Matrix4*)duk_to_pointer(context, 1);
 		Matrix4 projectionMatrix = *(Matrix4*)duk_to_pointer(context, 2);
-		Polycode::Rectangle viewport = *(Polycode::Rectangle*)duk_to_pointer(context, 3);
+		Rectangle viewport = *(Rectangle*)duk_to_pointer(context, 3);
 		Vector3 *retInst = new Vector3();
 		*retInst = Renderer::project(position,modelMatrix,projectionMatrix,viewport);
 		duk_push_pointer(context, (void*)retInst);
@@ -10146,7 +10142,7 @@ namespace Polycode {
 
 	duk_ret_t Polycode_SceneManager_Render(duk_context *context) {
 		SceneManager *inst = (SceneManager*)duk_to_pointer(context, 0);
-		Polycode::Rectangle viewport = *(Polycode::Rectangle*)duk_to_pointer(context, 1);
+		Rectangle viewport = *(Rectangle*)duk_to_pointer(context, 1);
 		inst->Render(viewport);
 		return 0;
 	}
@@ -13171,6 +13167,16 @@ namespace Polycode {
 		return 1;
 	}
 
+	duk_ret_t Polycode_String_find_first_not_of(duk_context *context) {
+		String *inst = (String*)duk_to_pointer(context, 0);
+		String str = duk_to_string(context, 1);
+		size_t pos = *(size_t*)duk_to_pointer(context, 2);
+		size_t *retInst = new size_t();
+		*retInst = inst->find_first_not_of(str,pos);
+		duk_push_pointer(context, (void*)retInst);
+		return 1;
+	}
+
 	duk_ret_t Polycode_String_toLowerCase(duk_context *context) {
 		String *inst = (String*)duk_to_pointer(context, 0);
 		duk_push_string(context, inst->toLowerCase().c_str());
@@ -13275,6 +13281,12 @@ namespace Polycode {
 		return 1;
 	}
 
+	duk_ret_t Polycode_String_isInteger(duk_context *context) {
+		String *inst = (String*)duk_to_pointer(context, 0);
+		duk_push_boolean(context, inst->isInteger());
+		return 1;
+	}
+
 	duk_ret_t Polycode_RenderBuffer(duk_context *context) {
 		int width = duk_to_int(context, 0);
 		int height = duk_to_int(context, 1);

+ 44 - 30
include/polycode/bindings/lua/PolycodeLuaWrappers.h

@@ -3243,13 +3243,11 @@ static int Polycode_CoreInput_set_deltaMousePosition(lua_State *L) {
 		CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1));
 		luaL_checktype(L, 2, LUA_TNUMBER);
 		PolyKEY keyCode = (PolyKEY)lua_tointeger(L, 2);
-		luaL_checktype(L, 3, LUA_TUSERDATA);
-		wchar_t code = *(wchar_t*) *((PolyBase**)lua_touserdata(L, 3));
-		luaL_checktype(L, 4, LUA_TBOOLEAN);
-		bool newState = lua_toboolean(L, 4) != 0;
-		luaL_checktype(L, 5, LUA_TNUMBER);
-		int ticks = lua_tointeger(L, 5);
-		inst->setKeyState(keyCode, code, newState, ticks);
+		luaL_checktype(L, 3, LUA_TBOOLEAN);
+		bool newState = lua_toboolean(L, 3) != 0;
+		luaL_checktype(L, 4, LUA_TNUMBER);
+		int ticks = lua_tointeger(L, 4);
+		inst->setKeyState(keyCode, newState, ticks);
 		return 0;
 	}
 	static int Polycode_CoreInput_setDeltaPosition(lua_State *L) {
@@ -3298,6 +3296,14 @@ static int Polycode_CoreInput_set_deltaMousePosition(lua_State *L) {
 		inst->touchesEnded(touch, touches, ticks);
 		return 0;
 	}
+	static int Polycode_CoreInput_textInput(lua_State *L) {
+		luaL_checktype(L, 1, LUA_TUSERDATA);
+		CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1));
+		luaL_checktype(L, 2, LUA_TSTRING);
+		String text = String(lua_tostring(L, 2));
+		inst->textInput(text);
+		return 0;
+	}
 	static int Polycode_CoreInput_createEvent(lua_State *L) {
 		luaL_checktype(L, 1, LUA_TUSERDATA);
 		Event* event = (Event*) *((PolyBase**)lua_touserdata(L, 1));
@@ -6576,18 +6582,17 @@ static int Polycode_InputEvent_get_key(lua_State *L) {
 	return 1;
 }
 
-static int Polycode_InputEvent_get_charCode(lua_State *L) {
+static int Polycode_InputEvent_get_timestamp(lua_State *L) {
 	luaL_checktype(L, 1, LUA_TUSERDATA);
 	InputEvent *inst = (InputEvent*) *((PolyBase**)lua_touserdata(L, 1));
-	PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*));
-	*userdataPtr = (PolyBase*)&inst->charCode;
+	lua_pushinteger(L, inst->timestamp);
 	return 1;
 }
 
-static int Polycode_InputEvent_get_timestamp(lua_State *L) {
+static int Polycode_InputEvent_get_text(lua_State *L) {
 	luaL_checktype(L, 1, LUA_TUSERDATA);
 	InputEvent *inst = (InputEvent*) *((PolyBase**)lua_touserdata(L, 1));
-	lua_pushinteger(L, inst->timestamp);
+	lua_pushstring(L, inst->text.c_str());
 	return 1;
 }
 
@@ -6673,20 +6678,19 @@ static int Polycode_InputEvent_set_key(lua_State *L) {
 	return 0;
 }
 
-static int Polycode_InputEvent_set_charCode(lua_State *L) {
+static int Polycode_InputEvent_set_timestamp(lua_State *L) {
 	luaL_checktype(L, 1, LUA_TUSERDATA);
 	InputEvent *inst = (InputEvent*) *((PolyBase**)lua_touserdata(L, 1));
-	luaL_checktype(L, 2, LUA_TUSERDATA);
-	wchar_t *argInst = (wchar_t*) *((PolyBase**)lua_touserdata(L, 2));
-	inst->charCode = *argInst;
+	int param = lua_tointeger(L, 2);
+	inst->timestamp = param;
 	return 0;
 }
 
-static int Polycode_InputEvent_set_timestamp(lua_State *L) {
+static int Polycode_InputEvent_set_text(lua_State *L) {
 	luaL_checktype(L, 1, LUA_TUSERDATA);
 	InputEvent *inst = (InputEvent*) *((PolyBase**)lua_touserdata(L, 1));
-	int param = lua_tointeger(L, 2);
-	inst->timestamp = param;
+	String param = lua_tostring(L, 2);
+	inst->text = param;
 	return 0;
 }
 
@@ -6786,17 +6790,6 @@ static int Polycode_InputEvent_set_hitDistance(lua_State *L) {
 		lua_pushinteger(L, inst->getMouseButton());
 		return 1;
 	}
-	static int Polycode_InputEvent_getCharCode(lua_State *L) {
-		luaL_checktype(L, 1, LUA_TUSERDATA);
-		InputEvent *inst = (InputEvent*) *((PolyBase**)lua_touserdata(L, 1));
-		wchar_t *retInst = new wchar_t();
-		*retInst = inst->getCharCode();
-		PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*));
-		luaL_getmetatable(L, "Polycode.wchar_t");
-		lua_setmetatable(L, -2);
-		*userdataPtr = (PolyBase*)retInst;
-		return 1;
-	}
 	static int Polycode_InputEvent_keyCode(lua_State *L) {
 		luaL_checktype(L, 1, LUA_TUSERDATA);
 		InputEvent *inst = (InputEvent*) *((PolyBase**)lua_touserdata(L, 1));
@@ -16955,6 +16948,21 @@ static int Polycode_String_set_w_contents(lua_State *L) {
 		*userdataPtr = (PolyBase*)retInst;
 		return 1;
 	}
+	static int Polycode_String_find_first_not_of(lua_State *L) {
+		luaL_checktype(L, 1, LUA_TUSERDATA);
+		String *inst = (String*) *((PolyBase**)lua_touserdata(L, 1));
+		luaL_checktype(L, 2, LUA_TSTRING);
+		String str = String(lua_tostring(L, 2));
+		luaL_checktype(L, 3, LUA_TUSERDATA);
+		size_t pos = *(size_t*) *((PolyBase**)lua_touserdata(L, 3));
+		size_t *retInst = new size_t();
+		*retInst = inst->find_first_not_of(str, pos);
+		PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*));
+		luaL_getmetatable(L, "Polycode.size_t");
+		lua_setmetatable(L, -2);
+		*userdataPtr = (PolyBase*)retInst;
+		return 1;
+	}
 	static int Polycode_String_toLowerCase(lua_State *L) {
 		luaL_checktype(L, 1, LUA_TUSERDATA);
 		String *inst = (String*) *((PolyBase**)lua_touserdata(L, 1));
@@ -17091,6 +17099,12 @@ static int Polycode_String_set_w_contents(lua_State *L) {
 		lua_pushboolean(L, inst->isNumber());
 		return 1;
 	}
+	static int Polycode_String_isInteger(lua_State *L) {
+		luaL_checktype(L, 1, LUA_TUSERDATA);
+		String *inst = (String*) *((PolyBase**)lua_touserdata(L, 1));
+		lua_pushboolean(L, inst->isInteger());
+		return 1;
+	}
 	static int Polycode_delete_String(lua_State *L) {
 		luaL_checktype(L, 1, LUA_TUSERDATA);
 		PolyBase **inst = (PolyBase**)lua_touserdata(L, 1);

+ 1 - 1
lib

@@ -1 +1 @@
-Subproject commit 5fe8534491efb52b6fe0d7e47274916eeceffc58
+Subproject commit cbd0b400c695ee6626d562365990846bc74cfc99

+ 6 - 4
src/bindings/javascript/PolycodeJS.cpp

@@ -369,11 +369,12 @@ int jsopen_Polycode(duk_context *ctx) {
 			{"CoreInput_mouseWheelDown", Polycode_CoreInput_mouseWheelDown, 2},
 			{"CoreInput_setMouseButtonState", Polycode_CoreInput_setMouseButtonState, 4},
 			{"CoreInput_setMousePosition", Polycode_CoreInput_setMousePosition, 4},
-			{"CoreInput_setKeyState", Polycode_CoreInput_setKeyState, 5},
+			{"CoreInput_setKeyState", Polycode_CoreInput_setKeyState, 4},
 			{"CoreInput_setDeltaPosition", Polycode_CoreInput_setDeltaPosition, 3},
 			{"CoreInput_touchesBegan", Polycode_CoreInput_touchesBegan, 4},
 			{"CoreInput_touchesMoved", Polycode_CoreInput_touchesMoved, 4},
 			{"CoreInput_touchesEnded", Polycode_CoreInput_touchesEnded, 4},
+			{"CoreInput_textInput", Polycode_CoreInput_textInput, 2},
 			{"CoreInput_createEvent", Polycode_CoreInput_createEvent, 2},
 			{"CoreInput_clearInput", Polycode_CoreInput_clearInput, 1},
 			{"JoystickInfo", Polycode_JoystickInfo, 0},
@@ -756,10 +757,10 @@ int jsopen_Polycode(duk_context *ctx) {
 			{"InputEvent__set_mousePosition", Polycode_InputEvent__set_mousePosition, 2},
 			{"InputEvent__get_key", Polycode_InputEvent__get_key, 1},
 			{"InputEvent__set_key", Polycode_InputEvent__set_key, 2},
-			{"InputEvent__get_charCode", Polycode_InputEvent__get_charCode, 1},
-			{"InputEvent__set_charCode", Polycode_InputEvent__set_charCode, 2},
 			{"InputEvent__get_timestamp", Polycode_InputEvent__get_timestamp, 1},
 			{"InputEvent__set_timestamp", Polycode_InputEvent__set_timestamp, 2},
+			{"InputEvent__get_text", Polycode_InputEvent__get_text, 1},
+			{"InputEvent__set_text", Polycode_InputEvent__set_text, 2},
 			{"InputEvent__get_touch", Polycode_InputEvent__get_touch, 1},
 			{"InputEvent__set_touch", Polycode_InputEvent__set_touch, 2},
 			{"InputEvent__get_touchType", Polycode_InputEvent__get_touchType, 1},
@@ -780,7 +781,6 @@ int jsopen_Polycode(duk_context *ctx) {
 			{"InputEvent_getMousePosition", Polycode_InputEvent_getMousePosition, 1},
 			{"InputEvent_getKey", Polycode_InputEvent_getKey, 1},
 			{"InputEvent_getMouseButton", Polycode_InputEvent_getMouseButton, 1},
-			{"InputEvent_getCharCode", Polycode_InputEvent_getCharCode, 1},
 			{"InputEvent_keyCode", Polycode_InputEvent_keyCode, 1},
 			{"GlyphData", Polycode_GlyphData, 0},
 			{"GlyphData__get_glyphs", Polycode_GlyphData__get_glyphs, 1},
@@ -1892,6 +1892,7 @@ int jsopen_Polycode(duk_context *ctx) {
 			{"String_find", Polycode_String_find, 3},
 			{"String_find_last_of", Polycode_String_find_last_of, 3},
 			{"String_find_first_of", Polycode_String_find_first_of, 3},
+			{"String_find_first_not_of", Polycode_String_find_first_not_of, 3},
 			{"String_toLowerCase", Polycode_String_toLowerCase, 1},
 			{"String_toUpperCase", Polycode_String_toUpperCase, 1},
 			{"String_split", Polycode_String_split, 2},
@@ -1907,6 +1908,7 @@ int jsopen_Polycode(duk_context *ctx) {
 			{"String_getDataSizeWithEncoding", Polycode_String_getDataSizeWithEncoding, 2},
 			{"String_setDataWithEncoding", Polycode_String_setDataWithEncoding, 3},
 			{"String_isNumber", Polycode_String_isNumber, 1},
+			{"String_isInteger", Polycode_String_isInteger, 1},
 			{"RenderBuffer", Polycode_RenderBuffer, 4},
 			{"RenderBuffer__delete", Polycode_RenderBuffer__delete, 1},
 			{"RenderBuffer_getWidth", Polycode_RenderBuffer_getWidth, 1},

+ 5 - 3
src/bindings/lua/PolycodeLua.cpp

@@ -371,6 +371,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"CoreInput_touchesBegan", Polycode_CoreInput_touchesBegan},
 		{"CoreInput_touchesMoved", Polycode_CoreInput_touchesMoved},
 		{"CoreInput_touchesEnded", Polycode_CoreInput_touchesEnded},
+		{"CoreInput_textInput", Polycode_CoreInput_textInput},
 		{"CoreInput_createEvent", Polycode_CoreInput_createEvent},
 		{"CoreInput_clearInput", Polycode_CoreInput_clearInput},
 		{"delete_CoreInput", Polycode_delete_CoreInput},
@@ -744,8 +745,8 @@ int luaopen_Polycode(lua_State *L) {
 		{"InputEvent_get_mouseButton", Polycode_InputEvent_get_mouseButton},
 		{"InputEvent_get_mousePosition", Polycode_InputEvent_get_mousePosition},
 		{"InputEvent_get_key", Polycode_InputEvent_get_key},
-		{"InputEvent_get_charCode", Polycode_InputEvent_get_charCode},
 		{"InputEvent_get_timestamp", Polycode_InputEvent_get_timestamp},
+		{"InputEvent_get_text", Polycode_InputEvent_get_text},
 		{"InputEvent_get_touch", Polycode_InputEvent_get_touch},
 		{"InputEvent_get_touchType", Polycode_InputEvent_get_touchType},
 		{"InputEvent_get_joystickDeviceID", Polycode_InputEvent_get_joystickDeviceID},
@@ -757,8 +758,8 @@ int luaopen_Polycode(lua_State *L) {
 		{"InputEvent_set_mouseButton", Polycode_InputEvent_set_mouseButton},
 		{"InputEvent_set_mousePosition", Polycode_InputEvent_set_mousePosition},
 		{"InputEvent_set_key", Polycode_InputEvent_set_key},
-		{"InputEvent_set_charCode", Polycode_InputEvent_set_charCode},
 		{"InputEvent_set_timestamp", Polycode_InputEvent_set_timestamp},
+		{"InputEvent_set_text", Polycode_InputEvent_set_text},
 		{"InputEvent_set_touch", Polycode_InputEvent_set_touch},
 		{"InputEvent_set_touchType", Polycode_InputEvent_set_touchType},
 		{"InputEvent_set_joystickDeviceID", Polycode_InputEvent_set_joystickDeviceID},
@@ -771,7 +772,6 @@ int luaopen_Polycode(lua_State *L) {
 		{"InputEvent_getMousePosition", Polycode_InputEvent_getMousePosition},
 		{"InputEvent_getKey", Polycode_InputEvent_getKey},
 		{"InputEvent_getMouseButton", Polycode_InputEvent_getMouseButton},
-		{"InputEvent_getCharCode", Polycode_InputEvent_getCharCode},
 		{"InputEvent_keyCode", Polycode_InputEvent_keyCode},
 		{"delete_InputEvent", Polycode_delete_InputEvent},
 		{"GlyphData_get_glyphs", Polycode_GlyphData_get_glyphs},
@@ -1872,6 +1872,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"String_find", Polycode_String_find},
 		{"String_find_last_of", Polycode_String_find_last_of},
 		{"String_find_first_of", Polycode_String_find_first_of},
+		{"String_find_first_not_of", Polycode_String_find_first_not_of},
 		{"String_toLowerCase", Polycode_String_toLowerCase},
 		{"String_toUpperCase", Polycode_String_toUpperCase},
 		{"String_split", Polycode_String_split},
@@ -1887,6 +1888,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"String_getDataSizeWithEncoding", Polycode_String_getDataSizeWithEncoding},
 		{"String_setDataWithEncoding", Polycode_String_setDataWithEncoding},
 		{"String_isNumber", Polycode_String_isNumber},
+		{"String_isInteger", Polycode_String_isInteger},
 		{"delete_String", Polycode_delete_String},
 		{"RenderBuffer", Polycode_RenderBuffer},
 		{"RenderBuffer_getWidth", Polycode_RenderBuffer_getWidth},