Exemple #1
0
LabelCanvas * LabelCanvas::read(char *& st, UmlCanvas * canvas, char * k)
{
    if (strcmp(k, "label"))
        return 0;

    QString s = read_string(st);
    bool bold = FALSE;
    bool italic = FALSE;
    bool underlined = FALSE;

    for (;;) {
        k = read_keyword(st);

        if (!strcmp(k, "bold"))
            bold = TRUE;
        else if (!strcmp(k, "italic"))
            italic = TRUE;
        else if (!strcmp(k, "underlined"))
            underlined = TRUE;
        else
            break;
    }

    int x = (int) read_double(st);

    LabelCanvas * result =
        new LabelCanvas(s, canvas, x, (int) read_double(st),
                        bold, italic, underlined);

    if (!strcmp(k, "xyz"))
        result->setZValue(read_double(st));
    else if (!strcmp(k, "xy"))
        // old version
        ;//result->setZValue(OLD_LABEL_Z);
    else
        wrong_keyword(k, "xyz");

    return result;
}