Exemple #1
0
/**
 * cr_font_size_adjust_to_string:
 * @a_this: the instance of #CRFontSizeAdjust.
 *
 * Returns the serialized form of #CRFontSizeAdjust
 */
gchar *
cr_font_size_adjust_to_string (CRFontSizeAdjust const * a_this)
{
        gchar *str = NULL;

        if (!a_this) {
                str = g_strdup ("NULL");
                g_return_val_if_fail (str, NULL);
                return str;
        }

        switch (a_this->type) {
        case FONT_SIZE_ADJUST_NONE:
                str = g_strdup ("none");
                break;
        case FONT_SIZE_ADJUST_NUMBER:
                if (a_this->num)
                        str = (gchar *) cr_num_to_string (a_this->num);
                else
                        str = g_strdup ("unknow font-size-adjust property value"); /* Should raise an error no?*/
                break;
        case FONT_SIZE_ADJUST_INHERIT:
                str = g_strdup ("inherit");
        }
        return str;
}
Exemple #2
0
/**
 * cr_font_size_to_string:
 * @a_this: the current instance of #CRFontSize
 *
 * Returns the serialized form of #CRFontSize. The returned string
 * has to bee freed using g_free().
 */
gchar *
cr_font_size_to_string (CRFontSize const * a_this)
{
        gchar *str = NULL;

        if (!a_this) {
                str = g_strdup ("NULL");
                g_return_val_if_fail (str, NULL);
                return str;
        }
        switch (a_this->type) {
        case PREDEFINED_ABSOLUTE_FONT_SIZE:
                str = g_strdup (cr_predefined_absolute_font_size_to_string
                                (a_this->value.predefined));
                break;
        case ABSOLUTE_FONT_SIZE:
                str = (gchar *) cr_num_to_string (&a_this->value.absolute);
                break;
        case RELATIVE_FONT_SIZE:
                str = g_strdup (cr_relative_font_size_to_string
                                (a_this->value.relative));
                break;
        case INHERITED_FONT_SIZE:
                str = g_strdup ("inherit");
                break;
        default:
                break;
        }
        return str;
}
Exemple #3
0
guchar *
cr_term_one_to_string (CRTerm * a_this)
{
    GString *str_buf = NULL;
    guchar *result = NULL;
    gchar *content = NULL;

    g_return_val_if_fail (a_this, NULL);

    str_buf = g_string_new (NULL);
    g_return_val_if_fail (str_buf, NULL);

    if ((a_this->content.str == NULL)
            && (a_this->content.num == NULL)
            && (a_this->content.str == NULL)
            && (a_this->content.rgb == NULL))
        return NULL ;

    switch (a_this->the_operator) {
    case DIVIDE:
        g_string_append_printf (str_buf, " / ");
        break;

    case COMMA:
        g_string_append_printf (str_buf, ", ");
        break;

    case NO_OP:
        if (a_this->prev) {
            g_string_append_printf (str_buf, " ");
        }
        break;
    default:

        break;
    }

    switch (a_this->unary_op) {
    case PLUS_UOP:
        g_string_append_printf (str_buf, "+");
        break;

    case MINUS_UOP:
        g_string_append_printf (str_buf, "-");
        break;

    default:
        break;
    }

    switch (a_this->type) {
    case TERM_NUMBER:
        if (a_this->content.num) {
            content = (gchar *)cr_num_to_string (a_this->content.num);
        }

        if (content) {
            g_string_append (str_buf, content);
            g_free (content);
            content = NULL;
        }

        break;

    case TERM_FUNCTION:
        if (a_this->content.str) {
            content = g_strndup
                      (a_this->content.str->stryng->str,
                       a_this->content.str->stryng->len);
        }

        if (content) {
            g_string_append_printf (str_buf, "%s(",
                                    content);

            if (a_this->ext_content.func_param) {
                guchar *tmp_str = NULL;

                tmp_str = cr_term_to_string
                          (a_this->
                           ext_content.func_param);

                if (tmp_str) {
                    g_string_append_printf
                    (str_buf,
                     "%s", tmp_str);
                    g_free (tmp_str);
                    tmp_str = NULL;
                }

                g_string_append_printf (str_buf, ")");
                g_free (content);
                content = NULL;
            }
        }

        break;

    case TERM_STRING:
        if (a_this->content.str) {
            content = g_strndup
                      (a_this->content.str->stryng->str,
                       a_this->content.str->stryng->len);
        }

        if (content) {
            g_string_append_printf (str_buf,
                                    "\"%s\"", content);
            g_free (content);
            content = NULL;
        }
        break;

    case TERM_IDENT:
        if (a_this->content.str) {
            content = g_strndup
                      (a_this->content.str->stryng->str,
                       a_this->content.str->stryng->len);
        }

        if (content) {
            g_string_append (str_buf, content);
            g_free (content);
            content = NULL;
        }
        break;

    case TERM_URI:
        if (a_this->content.str) {
            content = g_strndup
                      (a_this->content.str->stryng->str,
                       a_this->content.str->stryng->len);
        }

        if (content) {
            g_string_append_printf
            (str_buf, "url(%s)", content);
            g_free (content);
            content = NULL;
        }
        break;

    case TERM_RGB:
        if (a_this->content.rgb) {

            g_string_append_printf (str_buf, "rgb(");
            gchar *tmp_str = (gchar *)cr_rgb_to_string (a_this->content.rgb);

            if (tmp_str) {
                g_string_append (str_buf, tmp_str);
                g_free (tmp_str);
                tmp_str = NULL;
            }
            g_string_append_printf (str_buf, ")");
        }

        break;

    case TERM_UNICODERANGE:
        g_string_append_printf
        (str_buf,
         "?found unicoderange: dump not supported yet?");
        break;

    case TERM_HASH:
        if (a_this->content.str) {
            content = g_strndup
                      (a_this->content.str->stryng->str,
                       a_this->content.str->stryng->len);
        }

        if (content) {
            g_string_append_printf (str_buf,
                                    "#%s", content);
            g_free (content);
            content = NULL;
        }
        break;

    default:
        g_string_append_printf (str_buf,
                                "%s",
                                "Unrecognized Term type");
        break;
    }

    if (str_buf) {
        result = (guchar *)str_buf->str;
        g_string_free (str_buf, FALSE);
        str_buf = NULL;
    }

    return result;
}