本文整理汇总了C++中gd::Variable类的典型用法代码示例。如果您正苦于以下问题:C++ Variable类的具体用法?C++ Variable怎么用?C++ Variable使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Variable类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SendHttpRequest
void GD_API SendHttpRequest(const gd::String & host, const gd::String & uri, const gd::String & body,
const gd::String & method, const gd::String & contentType, gd::Variable & responseVar)
{
// Separate the host and the port number
auto hostInfo = host.Split(U':');
if(hostInfo.size() < 2)
return; //Invalid address (there should be two elements: "http" and "//the.domain.com")
// Create Http
sf::Http http;
http.setHost(hostInfo[0].ToUTF8() + ":" + hostInfo[1].ToUTF8(), hostInfo.size() > 2 ? hostInfo[2].To<unsigned short>() : 0);
// Create request
sf::Http::Request request;
request.setMethod(method == "POST" ? sf::Http::Request::Post : sf::Http::Request::Get);
request.setField("Content-Type", contentType.empty() ? "application/x-www-form-urlencoded" : contentType.ToUTF8());
request.setUri(uri.ToUTF8());
request.setBody(body.ToUTF8());
// Send request & Get response
sf::Http::Response response = http.sendRequest(request);
if (response.getStatus() == sf::Http::Response::Ok)
{
responseVar.SetString(gd::String::FromUTF8(response.getBody()));
}
//else request failed.
}
示例2: ReadStringFromFile
void GD_API ReadStringFromFile( const gd::String & filename, const gd::String & group, RuntimeScene & scene, gd::Variable & variable )
{
std::shared_ptr<XmlFile> file = XmlFilesManager::GetFile(filename, false);
TiXmlHandle hdl( &file->GetTinyXmlDocument() );
//D�coupage des groupes
istringstream groupsStr( group.Raw() );
std::string str;
vector < gd::String > groups;
while ( std::getline( groupsStr, str, '/' ) )
{
groups.push_back(gd::String::FromUTF8(str));
}
groups.erase(std::remove_if(groups.begin(), groups.end(), StringEmpty()), groups.end());
//On avance petit � petit dans le fichier
for (std::size_t i =0;i<groups.size();i++)
{
if ( !hdl.FirstChildElement(groups.at(i).c_str()).ToElement())
{
return;
}
hdl = hdl.FirstChildElement(groups.at(i).c_str());
}
//On stocke la valeur
if ( hdl.ToElement()->Attribute("texte") == NULL ) return;
//Update variable texte
variable.SetString(hdl.ToElement()->Attribute("texte"));
return;
}
示例3: ShowTextInput
/**
* Show a dialog so as to get a text from user
*/
bool GD_EXTENSION_API ShowTextInput( RuntimeScene & scene, gd::Variable & variable, const gd::String & message, const gd::String & title )
{
sf::Clock timeSpent;
gd::String result;
//Display the box
#if defined(WINDOWS)
CInputBox ibox(NULL);
if (ibox.DoModal(title.ToWide().c_str(), message.ToWide().c_str()))
result = gd::String::FromWide(ibox.Text);
#endif
#if defined(LINUX) || defined(MACOS)
std::string strResult;
nw::TextInput dialog(title.ToLocale(), message.ToLocale(), strResult);
dialog.wait_until_closed();
result = gd::String::FromLocale(strResult); //Convert from locale
#endif
scene.GetTimeManager().NotifyPauseWasMade(timeSpent.getElapsedTime().asMicroseconds());//Don't take the time spent in this function in account.
//Update the variable
variable.SetString(result);
return true;
}
示例4: ShowOpenFile
/**
* Display an "open file" dialog
*/
void GD_EXTENSION_API ShowOpenFile( RuntimeScene & scene, gd::Variable & variable, const gd::String & title, gd::String filters )
{
sf::Clock timeSpent;
gd::String result;
//Display the dialog
#if defined(WINDOWS)
//Process filters to match windows dialogs filters style.
filters.Raw() = filters.Raw()+'\0';
std::replace(filters.Raw().begin(), filters.Raw().end(), '|', '\0');
OPENFILENAMEW toGetFileName; //Struct for the dialog
wchar_t filePath[MAX_PATH];
_wgetcwd(filePath, MAX_PATH);
ZeroMemory(&toGetFileName, sizeof(OPENFILENAMEW));
toGetFileName.lStructSize = sizeof(OPENFILENAMEW);
toGetFileName.hwndOwner = NULL;
toGetFileName.lpstrFile = filePath;
toGetFileName.nMaxFile = MAX_PATH;
toGetFileName.lpstrFilter = filters == "\0" ? NULL : filters.ToWide().c_str();
toGetFileName.nFilterIndex = 1;
toGetFileName.Flags = OFN_PATHMUSTEXIST | OFN_NOCHANGEDIR;;
if(GetOpenFileNameW(&toGetFileName) == TRUE)
result = gd::String::FromWide(filePath);
#endif
#if defined(LINUX) || defined(MACOS)
std::string strResult;
nw::OpenFile * dialog = new nw::OpenFile(title.ToLocale(), true, strResult);
dialog->wait_until_closed();
result = gd::String::FromLocale(strResult);
#endif
scene.GetTimeManager().NotifyPauseWasMade(timeSpent.getElapsedTime().asMicroseconds());//Don't take the time spent in this function in account.
//Update the variable
variable.SetString(result);
}
示例5: ShowYesNoMsgBox
/**
* Show a message box with Yes/No buttons
*/
void GD_EXTENSION_API ShowYesNoMsgBox( RuntimeScene & scene, gd::Variable & variable, const gd::String & message, const gd::String & title )
{
sf::Clock timeSpent;
gd::String result;
//Display the box
#if defined(WINDOWS)
if( MessageBoxW(NULL, message.ToWide().c_str(), title.ToWide().c_str(), MB_ICONQUESTION | MB_YESNO) == IDYES)
result = "yes";
else
result = "no";
#endif
#if defined(LINUX) || defined(MACOS)
nw::YesNoMsgBox dialog(title.ToLocale(), message.ToLocale(), result.Raw());
dialog.wait_until_closed();
#endif
scene.GetTimeManager().NotifyPauseWasMade(timeSpent.getElapsedTime().asMicroseconds());//Don't take the time spent in this function in account.
//Update the variable
variable.SetString(result); //Can only be "yes" or "no", no need to encode in UTF8
}
示例6: SendHttpRequest
void GD_API SendHttpRequest(const std::string & host, const std::string & uri, const std::string & body,
const std::string & method, const std::string & contentType, gd::Variable & responseVar)
{
// Create Http
sf::Http Http;
Http.setHost(host);
// Create request
sf::Http::Request request;
request.setMethod(method == "POST" ? sf::Http::Request::Post : sf::Http::Request::Get);
request.setField("Content-Type", contentType.empty() ? "application/x-www-form-urlencoded" : contentType);
request.setUri(uri);
request.setBody(body);
// Send request & Get response
sf::Http::Response response = Http.sendRequest(request);
if (response.getStatus() == sf::Http::Response::Ok)
{
responseVar.SetString(response.getBody());
}
//else request failed.
}
示例7: VariableStructureToJSON
std::string GD_API VariableStructureToJSON(const gd::Variable & variable)
{
if ( !variable.IsStructure() ) {
if ( variable.IsNumber() )
return ToString(variable.GetValue());
else
return StringToQuotedJSONString(variable.GetString().c_str());
}
std::string str = "{";
bool firstChild = true;
for(std::map<std::string, gd::Variable>::const_iterator i = variable.GetAllChildren().begin();
i != variable.GetAllChildren().end();++i)
{
if ( !firstChild ) str += ",";
str += StringToQuotedJSONString(i->first.c_str())+": "+VariableStructureToJSON(i->second);
firstChild = false;
}
str += "}";
return str;
}
示例8: GetVariableString
const std::string& GD_API GetVariableString(const gd::Variable & variable)
{
return variable.GetString();
};
示例9: GetVariableValue
double GD_API GetVariableValue(const gd::Variable & variable)
{
return variable.GetValue();
};
示例10: VariableRemoveChild
void GD_API VariableRemoveChild(gd::Variable & variable, const std::string & childName)
{
variable.RemoveChild(childName);
}
示例11: VariableChildExists
bool RuntimeObject::VariableChildExists(const gd::Variable &variable,
const gd::String &childName) {
return variable.HasChild(childName);
}
示例12: TEST_CASE
*/
/**
* @file Tests covering events of GDevelop Core.
*/
#include "catch.hpp"
#include <algorithm>
#include <initializer_list>
#include <map>
#include "GDCore/CommonTools.h"
#include "GDCore/Project/VariablesContainer.h"
TEST_CASE("Variable", "[common][variables]") {
SECTION("Basics") {
gd::Variable variable;
variable.SetValue(50);
REQUIRE(variable.GetValue() == 50);
REQUIRE(variable == 50);
REQUIRE(variable.IsNumber() == true);
REQUIRE(variable.IsStructure() == false);
variable.SetString("MyString");
REQUIRE(variable.GetString() == "MyString");
REQUIRE(variable == "MyString");
REQUIRE(variable.IsNumber() == false);
REQUIRE(variable.IsStructure() == false);
}
SECTION("Conversions") {
gd::Variable variable;
variable.SetValue(50);
示例13: GetVariableChildCount
unsigned int RuntimeObject::GetVariableChildCount(gd::Variable &variable) {
if (variable.IsStructure() == false) return 0;
return variable.GetChildrenCount();
}
示例14: VariableClearChildren
void RuntimeObject::VariableClearChildren(gd::Variable &variable) {
variable.ClearChildren();
}
示例15: VariableRemoveChild
void RuntimeObject::VariableRemoveChild(gd::Variable &variable,
const gd::String &childName) {
variable.RemoveChild(childName);
}