im.pidgin.pidgin.next.minor: eb98a9d415b707f51d82a14c06c9b2314199a4b8
sadrul at pidgin.im
sadrul at pidgin.im
Fri Nov 9 22:25:36 EST 2007
-----------------------------------------------------------------
Revision: eb98a9d415b707f51d82a14c06c9b2314199a4b8
Ancestor: c21f2ec4d6e64ef5c63f09a0624aa59bb78f6df3
Author: sadrul at pidgin.im
Date: 2007-11-09T01:45:10
Branch: im.pidgin.pidgin.next.minor
Modified files:
finch/libgnt/gntlabel.c
ChangeLog:
Use gobject properties for labels.
-------------- next part --------------
============================================================
--- finch/libgnt/gntlabel.c bc3ac6c580055c82b5d038b2ea6b3b87d0512208
+++ finch/libgnt/gntlabel.c a0a86a12b54be5c5fb31892e2910fb4f1d20208f
@@ -27,6 +27,13 @@ enum
enum
{
+ PROP_0,
+ PROP_TEXT,
+ PROP_TEXT_FLAG
+};
+
+enum
+{
SIGS = 1,
};
@@ -61,14 +68,72 @@ static void
}
static void
+gnt_label_set_property(GObject *obj, guint prop_id, const GValue *value,
+ GParamSpec *spec)
+{
+ GntLabel *label = GNT_LABEL(obj);
+ switch (prop_id) {
+ case PROP_TEXT:
+ g_free(label->text);
+ label->text = gnt_util_onscreen_fit_string(g_value_get_string(value), -1);
+ break;
+ case PROP_TEXT_FLAG:
+ label->flags = g_value_get_int(value);
+ break;
+ default:
+ g_return_if_reached();
+ break;
+ }
+}
+
+static void
+gnt_label_get_property(GObject *obj, guint prop_id, GValue *value,
+ GParamSpec *spec)
+{
+ GntLabel *label = GNT_LABEL(obj);
+ switch (prop_id) {
+ case PROP_TEXT:
+ g_value_set_string(value, label->text);
+ break;
+ case PROP_TEXT_FLAG:
+ g_value_set_int(value, label->flags);
+ break;
+ default:
+ break;
+ }
+}
+
+static void
gnt_label_class_init(GntLabelClass *klass)
{
+ GObjectClass *gclass = G_OBJECT_CLASS(klass);
+
parent_class = GNT_WIDGET_CLASS(klass);
parent_class->destroy = gnt_label_destroy;
parent_class->draw = gnt_label_draw;
parent_class->map = NULL;
parent_class->size_request = gnt_label_size_request;
+ gclass->set_property = gnt_label_set_property;
+ gclass->get_property = gnt_label_get_property;
+
+ g_object_class_install_property(gclass,
+ PROP_TEXT,
+ g_param_spec_string("text", "Text",
+ "The text for the label.",
+ NULL,
+ G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
+ )
+ );
+
+ g_object_class_install_property(gclass,
+ PROP_TEXT_FLAG,
+ g_param_spec_int("text-flag", "Text flag",
+ "Text attribute to use when displaying the text in the label.",
+ GNT_TEXT_FLAG_NORMAL, GNT_TEXT_FLAG_HIGHLIGHT, GNT_TEXT_FLAG_NORMAL,
+ G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
+ )
+ );
GNTDEBUG;
}
@@ -76,6 +141,8 @@ gnt_label_init(GTypeInstance *instance,
gnt_label_init(GTypeInstance *instance, gpointer class)
{
GntWidget *widget = GNT_WIDGET(instance);
+ gnt_widget_set_take_focus(widget, FALSE);
+ GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_NO_BORDER | GNT_WIDGET_NO_SHADOW);
GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_GROW_X);
widget->priv.minw = 3;
widget->priv.minh = 1;
@@ -120,21 +187,13 @@ GntWidget *gnt_label_new_with_format(con
GntWidget *gnt_label_new_with_format(const char *text, GntTextFormatFlags flags)
{
- GntWidget *widget = g_object_new(GNT_TYPE_LABEL, NULL);
- GntLabel *label = GNT_LABEL(widget);
-
- label->text = gnt_util_onscreen_fit_string(text, -1);
- label->flags = flags;
- gnt_widget_set_take_focus(widget, FALSE);
- GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_NO_BORDER | GNT_WIDGET_NO_SHADOW);
-
+ GntWidget *widget = g_object_new(GNT_TYPE_LABEL, "text-flag", flags, "text", text, NULL);
return widget;
}
void gnt_label_set_text(GntLabel *label, const char *text)
{
- g_free(label->text);
- label->text = gnt_util_onscreen_fit_string(text, -1);
+ g_object_set(label, "text", text, NULL);
if (GNT_WIDGET(label)->window)
{
More information about the Commits
mailing list