DWORD XmlParser::ParseColor(char **buffer, int id) { DWORD color = 0; char data[512]; CheckID(id); if (m_Success) { if (GetXmlData(buffer, data, sizeof(data))) { if (strlen(data) == 6) { // Convert hex to decimal char *endptr; color = strtoul(data, &endptr, 16); } else { printf("Invalid XML color value \"%s\" = %s\n", m_Tag, data); m_Success = false; } } else { printf("Error parsing XML data: \"%s\"\n", m_Tag); m_Success = false; } } return (color); }
double XmlParser::ParseDouble(char **buffer, int id, double min, double max, bool allow_minus_one) { double value = 0.0; char data[512]; CheckID(id); if (m_Success) { if (GetXmlData(buffer, data, sizeof(data))) { value = atof(data); if (allow_minus_one && (value == -1)) { // negative one is a legal value } else if ((value < min) || (value > max)) { printf("Invalid XML value \"%s\" = %s (min=%g max=%g)\n", m_Tag, data, min, max); m_Success = false; } } else { printf("Error parsing XML data: \"%s\"\n", m_Tag); m_Success = false; } } return (value); }
int XmlParser::ParseInt(char **buffer, int id, int min, int max) { int value = 0; char data[512]; CheckID(id); if (m_Success) { if (GetXmlData(buffer, data, sizeof(data))) { value = atoi(data); if ((value < min) || (value > max)) { printf("Invalid XML value \"%s\" = %s (min=%d max=%d)\n", m_Tag, data, min, max); m_Success = false; } } else { printf("Error parsing XML data: \"%s\"\n", m_Tag); m_Success = false; } } return (value); }
bool wxsItemResDataObject::GetDataHere(cb_unused const wxDataFormat& format,void *buf) const { wxString XmlData = GetXmlData(); const wxWX2MBbuf str = cbU2C(XmlData); memcpy(buf,str,strlen(str)+1); return true; }
char * XmlParser::ParseString(char **buffer, int id) { char data[512]; CheckID(id); if (m_Success) { if (!GetXmlData(buffer, data, sizeof(data))) { printf("Error parsing XML data: \"%s\"\n", m_Tag); m_Success = false; } } return (DecodeXmlString(data)); }
size_t wxsItemResDataObject::GetDataSize(cb_unused const wxDataFormat& format) const { wxString XmlData = GetXmlData(); const wxWX2MBbuf str = cbU2C(XmlData); return strlen(str)+1; }