std::string AweString::std_str(const awe_string* awe_str){ int str_size = awe_string_to_utf8(awe_str, NULL, 0) + 1; char* str_char = new char[str_size]; awe_string_to_utf8(awe_str, str_char, str_size); return std::string(str_char); }
inline const std::string AWE2STL(const awe_string* awes) { std::string str; const size_t slen = awe_string_get_length( awes ); str.resize( slen ); awe_string_to_utf8( awes, &str[0], slen ); return str; }
void callback_UI(awe_webview *view, const awe_string *object_name, const awe_string *callback_name, const awe_jsarray *args) { char buff_object_name[BUFFER_LEN_CALLBACKS] = {0}; char buff_callback_name[BUFFER_LEN_CALLBACKS] = {0}; char buff_args[BUFFER_LEN_CALLBACKS] = {0}; const awe_jsvalue *temp = awe_jsarray_get_element(args,0); // Get the strings awe_string_to_utf8(object_name, buff_object_name, BUFFER_LEN_CALLBACKS); awe_string_to_utf8(callback_name, buff_callback_name, BUFFER_LEN_CALLBACKS); awe_string_to_utf8(awe_jsvalue_to_string(temp), buff_args, BUFFER_LEN_CALLBACKS); std::string s_obj_name(buff_object_name); std::string s_call_name(buff_callback_name); std::string s_args(buff_args); // Callback example: Javascript triggered this function -> chat.message("Test message") -> the output is the following: add_logA("Callback executed"); add_logA((char*)s_obj_name.c_str()); // s_obj_name == name of the callback object ( chat ) add_logA((char*)s_call_name.c_str()); // s_call_name == the function used by the callback object ( message ) add_logA((char*)s_args.c_str()); // s_args == arguments given to the callback method ( Test message ) // do whatever you like with the arguments ( s_args ) but check which GUI window triggered the callback by comparing s_obj_name with the object names defined while initializing the GUI }