finch/libgnt/gntlabel.c

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 21575
34c1086fcd5a
child 28937
5f87e66597d9
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

17586
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
1 /**
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
2 * GNT - The GLib Ncurses Toolkit
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
3 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
4 * GNT is the legal property of its developers, whose names are too numerous
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
6 * source distribution.
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
7 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
8 * This library is free software; you can redistribute it and/or modify
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
9 * it under the terms of the GNU General Public License as published by
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
11 * (at your option) any later version.
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
12 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
13 * This program is distributed in the hope that it will be useful,
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
16 * GNU General Public License for more details.
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
17 *
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
18 * You should have received a copy of the GNU General Public License
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19235
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
17586
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
21 */
5beb8d987e84 applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents: 15886
diff changeset
22
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
23 #include "gntlabel.h"
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
24 #include "gntutils.h"
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
25
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
26 #include <string.h>
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
27
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
28 enum
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29 {
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
30 PROP_0,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
31 PROP_TEXT,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
32 PROP_TEXT_FLAG
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
33 };
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
34
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
35 enum
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
36 {
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
37 SIGS = 1,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
38 };
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
39
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
40 static GntWidgetClass *parent_class = NULL;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
41
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
42 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
43 gnt_label_destroy(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
44 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
45 GntLabel *label = GNT_LABEL(widget);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
46 g_free(label->text);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
47 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
48
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
49 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
50 gnt_label_draw(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
51 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
52 GntLabel *label = GNT_LABEL(widget);
14014
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
53 chtype flag = gnt_text_format_flag_to_chtype(label->flags);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
54
14014
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
55 wbkgdset(widget->window, '\0' | flag);
15647
60181abae898 Patch from Richard 'wabz' Nelson. This fixes some possible crashes/exploits.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14898
diff changeset
56 mvwaddstr(widget->window, 0, 0, label->text);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
57
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14485
diff changeset
58 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
59 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
60
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
61 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
62 gnt_label_size_request(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
63 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
64 GntLabel *label = GNT_LABEL(widget);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
65
14121
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
66 gnt_util_get_text_bound(label->text,
3d8804b82150 [gaim-migrate @ 16674]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14026
diff changeset
67 &widget->priv.width, &widget->priv.height);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
68 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
69
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
70 static void
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
71 gnt_label_set_property(GObject *obj, guint prop_id, const GValue *value,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
72 GParamSpec *spec)
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
73 {
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
74 GntLabel *label = GNT_LABEL(obj);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
75 switch (prop_id) {
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
76 case PROP_TEXT:
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
77 g_free(label->text);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
78 label->text = gnt_util_onscreen_fit_string(g_value_get_string(value), -1);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
79 break;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
80 case PROP_TEXT_FLAG:
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
81 label->flags = g_value_get_int(value);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
82 break;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
83 default:
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
84 g_return_if_reached();
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
85 break;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
86 }
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
87 }
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
88
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
89 static void
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
90 gnt_label_get_property(GObject *obj, guint prop_id, GValue *value,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
91 GParamSpec *spec)
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
92 {
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
93 GntLabel *label = GNT_LABEL(obj);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
94 switch (prop_id) {
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
95 case PROP_TEXT:
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
96 g_value_set_string(value, label->text);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
97 break;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
98 case PROP_TEXT_FLAG:
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
99 g_value_set_int(value, label->flags);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
100 break;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
101 default:
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
102 break;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
103 }
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
104 }
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
105
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
106 static void
13922
7195a6fe2416 [gaim-migrate @ 16321]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
107 gnt_label_class_init(GntLabelClass *klass)
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
108 {
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
109 GObjectClass *gclass = G_OBJECT_CLASS(klass);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
110
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
111 parent_class = GNT_WIDGET_CLASS(klass);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
112 parent_class->destroy = gnt_label_destroy;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
113 parent_class->draw = gnt_label_draw;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
114 parent_class->map = NULL;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
115 parent_class->size_request = gnt_label_size_request;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
116
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
117 gclass->set_property = gnt_label_set_property;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
118 gclass->get_property = gnt_label_get_property;
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
119
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
120 g_object_class_install_property(gclass,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
121 PROP_TEXT,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
122 g_param_spec_string("text", "Text",
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
123 "The text for the label.",
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
124 NULL,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
125 G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
126 )
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
127 );
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
128
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
129 g_object_class_install_property(gclass,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
130 PROP_TEXT_FLAG,
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
131 g_param_spec_int("text-flag", "Text flag",
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
132 "Text attribute to use when displaying the text in the label.",
21575
34c1086fcd5a Fix the max value for gntlabel's text-flag property
Richard Nelson <wabz@pidgin.im>
parents: 21272
diff changeset
133 GNT_TEXT_FLAG_NORMAL,
34c1086fcd5a Fix the max value for gntlabel's text-flag property
Richard Nelson <wabz@pidgin.im>
parents: 21272
diff changeset
134 GNT_TEXT_FLAG_NORMAL|GNT_TEXT_FLAG_BOLD|GNT_TEXT_FLAG_UNDERLINE|
34c1086fcd5a Fix the max value for gntlabel's text-flag property
Richard Nelson <wabz@pidgin.im>
parents: 21272
diff changeset
135 GNT_TEXT_FLAG_BLINK|GNT_TEXT_FLAG_DIM|GNT_TEXT_FLAG_HIGHLIGHT,
34c1086fcd5a Fix the max value for gntlabel's text-flag property
Richard Nelson <wabz@pidgin.im>
parents: 21272
diff changeset
136 GNT_TEXT_FLAG_NORMAL,
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
137 G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
138 )
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
139 );
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14485
diff changeset
140 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
141 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
142
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
143 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
144 gnt_label_init(GTypeInstance *instance, gpointer class)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
145 {
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
146 GntWidget *widget = GNT_WIDGET(instance);
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
147 gnt_widget_set_take_focus(widget, FALSE);
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
148 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_NO_BORDER | GNT_WIDGET_NO_SHADOW);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
149 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_GROW_X);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
150 widget->priv.minw = 3;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
151 widget->priv.minh = 1;
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14485
diff changeset
152 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
153 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
154
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
155 /******************************************************************************
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
156 * GntLabel API
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
157 *****************************************************************************/
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
158 GType
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
159 gnt_label_get_gtype(void)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
160 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
161 static GType type = 0;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
162
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
163 if(type == 0)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
164 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
165 static const GTypeInfo info = {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
166 sizeof(GntLabelClass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
167 NULL, /* base_init */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
168 NULL, /* base_finalize */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
169 (GClassInitFunc)gnt_label_class_init,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
170 NULL, /* class_finalize */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
171 NULL, /* class_data */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
172 sizeof(GntLabel),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
173 0, /* n_preallocs */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
174 gnt_label_init, /* instance_init */
15874
46df7421a1b5 Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15647
diff changeset
175 NULL /* value_table */
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
176 };
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
177
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
178 type = g_type_register_static(GNT_TYPE_WIDGET,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
179 "GntLabel",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
180 &info, 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
181 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
182
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
183 return type;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
184 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
185
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
186 GntWidget *gnt_label_new(const char *text)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
187 {
14014
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
188 return gnt_label_new_with_format(text, 0);
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
189 }
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
190
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
191 GntWidget *gnt_label_new_with_format(const char *text, GntTextFormatFlags flags)
223d99ce2f06 [gaim-migrate @ 16500]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
192 {
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
193 GntWidget *widget = g_object_new(GNT_TYPE_LABEL, "text-flag", flags, "text", text, NULL);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
194 return widget;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
195 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
196
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
197 void gnt_label_set_text(GntLabel *label, const char *text)
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
198 {
21272
2226d681d245 Use gobject properties for labels.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
199 g_object_set(label, "text", text, NULL);
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
200
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
201 if (GNT_WIDGET(label)->window)
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
202 {
18405
3f3fbda44c68 Erase the old text when the text in a label changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 17586
diff changeset
203 werase(GNT_WIDGET(label)->window);
14026
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
204 gnt_widget_draw(GNT_WIDGET(label));
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
205 }
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
206 }
ad91ce0effe2 [gaim-migrate @ 16520]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14014
diff changeset
207

mercurial