PROP_PADDING_RIGHT,
PROP_PADDING_BOTTOM,
PROP_PADDING_LEFT,
- PROP_ELLIPSIZE
+ PROP_ELLIPSIZE,
+ PROP_LETTER_SPACING
};
static void rpt_obj_text_class_init (RptObjTextClass *klass);
gdouble padding_bottom;
gdouble padding_left;
eRptEllipsize ellipsize;
+ guint letter_spacing;
};
G_DEFINE_TYPE (RptObjText, rpt_obj_text, TYPE_RPT_OBJECT)
"Ellipsize",
RPT_ELLIPSIZE_NONE, RPT_ELLIPSIZE_END, RPT_ELLIPSIZE_NONE,
G_PARAM_READWRITE));
+ g_object_class_install_property (object_class, PROP_LETTER_SPACING,
+ g_param_spec_uint ("letter-spacing",
+ "Letter spacing",
+ "Amount of extra space to add between graphemes of the text.",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE));
}
static void
priv->background_color = NULL;
priv->ellipsize = RPT_ELLIPSIZE_NONE;
+
+ priv->letter_spacing = 0;
}
/**
rpt_obj_text = RPT_OBJECT (g_object_new (rpt_obj_text_get_type (), NULL));
g_object_set (G_OBJECT (rpt_obj_text),
- "name", name_,
- "position", &position,
- NULL);
+ "name", name_,
+ "position", &position,
+ NULL);
}
+ g_free (name_);
return rpt_obj_text;
}
prop = (gchar *)xmlGetProp (xnode, "padding-top");
if (prop != NULL)
{
- g_object_set (rpt_obj_text, "padding-top", strtod (prop, NULL), NULL);
+ g_object_set (rpt_obj_text, "padding-top", g_strtod (prop, NULL), NULL);
xmlFree (prop);
}
prop = (gchar *)xmlGetProp (xnode, "padding-right");
if (prop != NULL)
{
- g_object_set (rpt_obj_text, "padding-right", strtod (prop, NULL), NULL);
+ g_object_set (rpt_obj_text, "padding-right", g_strtod (prop, NULL), NULL);
xmlFree (prop);
}
prop = (gchar *)xmlGetProp (xnode, "padding-bottom");
if (prop != NULL)
{
- g_object_set (rpt_obj_text, "padding-bottom", strtod (prop, NULL), NULL);
+ g_object_set (rpt_obj_text, "padding-bottom", g_strtod (prop, NULL), NULL);
xmlFree (prop);
}
prop = (gchar *)xmlGetProp (xnode, "padding-left");
if (prop != NULL)
{
- g_object_set (rpt_obj_text, "padding-left", strtod (prop, NULL), NULL);
+ g_object_set (rpt_obj_text, "padding-left", g_strtod (prop, NULL), NULL);
xmlFree (prop);
}
prop = (gchar *)xmlGetProp (xnode, "ellipsize");
g_object_set (rpt_obj_text, "ellipsize", rpt_common_strellipsize_to_enum (prop), NULL);
xmlFree (prop);
}
+ prop = (gchar *)xmlGetProp (xnode, "letter-spacing");
+ if (prop != NULL)
+ {
+ g_object_set (rpt_obj_text, "letter-spacing", strtol (prop, NULL, 10), NULL);
+ xmlFree (prop);
+ }
}
}
{
xmlSetProp (xnode, "ellipsize", rpt_common_enum_to_strellipsize (priv->ellipsize));
}
+ if (priv->letter_spacing > 0)
+ {
+ xmlSetProp (xnode, "letter-spacing", g_strdup_printf ("%d", priv->letter_spacing));
+ }
}
static void
priv->ellipsize = g_value_get_uint (value);
break;
+ case PROP_LETTER_SPACING:
+ priv->letter_spacing = g_value_get_uint (value);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
g_value_set_uint (value, priv->ellipsize);
break;
+ case PROP_LETTER_SPACING:
+ g_value_set_uint (value, priv->letter_spacing);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;