コード例 #1
0
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);
}
コード例 #2
0
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);
}
コード例 #3
0
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);
}
コード例 #4
0
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;
}
コード例 #5
0
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));
}
コード例 #6
0
size_t wxsItemResDataObject::GetDataSize(cb_unused const wxDataFormat& format) const
{
    wxString XmlData = GetXmlData();
    const wxWX2MBbuf str = cbU2C(XmlData);
    return strlen(str)+1;
}