Add FromCodePoint string expression to get a character from its codepoint

This commit is contained in:
Victor Levasseur
2015-08-20 12:21:16 +02:00
parent 896e82c236
commit 67c32f0e7d
6 changed files with 28 additions and 1 deletions

View File

@@ -25,6 +25,13 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsStringInstructionsExten
_("Manipulation on text"),
"res/conditions/toujours24.png");
extension.AddStrExpression("FromCodePoint",
_("Get character from code point"),
_("Get character from code point"),
_("Manipulation on text"),
"res/conditions/toujours24.png")
.AddParameter("expression", _("Code point"));
extension.AddStrExpression("SubStr",
_("Get a portion of a text"),
_("Get a portion of a text"),

View File

@@ -17,6 +17,7 @@ StringInstructionsExtension::StringInstructionsExtension()
#if defined(GD_IDE_ONLY)
GetAllStrExpressions()["NewLine"].SetFunctionName("GDpriv::StringTools::NewLine").SetIncludeFile("GDCpp/BuiltinExtensions/StringTools.h");
GetAllStrExpressions()["FromCodePoint"].SetFunctionName("GDpriv::StringTools::FromCodePoint").SetIncludeFile("GDCpp/BuiltinExtensions/StringTools.h");
GetAllStrExpressions()["SubStr"].SetFunctionName("GDpriv::StringTools::SubStr").SetIncludeFile("GDCpp/BuiltinExtensions/StringTools.h");
GetAllStrExpressions()["StrAt"].SetFunctionName("GDpriv::StringTools::StrAt").SetIncludeFile("GDCpp/BuiltinExtensions/StringTools.h");
GetAllExpressions()["StrLength"].SetFunctionName("GDpriv::StringTools::StrLen").SetIncludeFile("GDCpp/BuiltinExtensions/StringTools.h");
@@ -26,4 +27,3 @@ StringInstructionsExtension::StringInstructionsExtension()
GetAllExpressions()["StrRFindFrom"].SetFunctionName("GDpriv::StringTools::StrRFindFrom").SetIncludeFile("GDCpp/BuiltinExtensions/StringTools.h");
#endif
}

View File

@@ -36,6 +36,14 @@ gd::String GD_API StrAt(const gd::String & str, size_t pos )
return "";
}
/**
* Expression function for getting a character from its codepoint
*/
gd::String GD_API FromCodePoint(int32_t codepoint)
{
return gd::String::FromUTF32( std::u32string( 1, static_cast<char32_t>(codepoint) ) );
}
/**
* Expression function for getting a substring from a string
*/

View File

@@ -21,6 +21,7 @@ namespace StringTools
gd::String GD_API SubStr(const gd::String & str, size_t start, size_t length );
gd::String GD_API StrAt(const gd::String & str, size_t pos );
gd::String GD_API NewLine();
gd::String GD_API FromCodePoint(int32_t codepoint);
unsigned int GD_API StrLen(const gd::String & str);
int GD_API StrFind(const gd::String & str, const gd::String & findwhat);
int GD_API StrRFind(const gd::String & str, const gd::String & findwhat);

View File

@@ -25,6 +25,8 @@ StringInstructionsExtension::StringInstructionsExtension()
GetAllStrExpressions()["NewLine"]
.SetFunctionName("gdjs.evtTools.string.newLine");
GetAllStrExpressions()["FromCodePoint"]
.SetFunctionName("gdjs.evtTools.string.fromCodePoint");
GetAllStrExpressions()["SubStr"]
.SetFunctionName("gdjs.evtTools.string.subStr");
GetAllStrExpressions()["StrAt"]

View File

@@ -23,6 +23,15 @@ gdjs.evtTools.string.newLine = function() {
return "\n";
};
/**
* Return a character from its codepoint
* @method fromCodePoint
* @private
*/
gdjs.evtTools.string.fromCodePoint = function(codePoint) {
return String.fromCodePoint(codePoint);
};
/**
* Return a new string containing the substring of the original string.
* @method subStr