finch/libgnt/gntwidget.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 22959
d46b0ee7f44b
child 29049
ea3c1e7d47f4
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.

18114
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
1 /**
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
2 * GNT - The GLib Ncurses Toolkit
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
3 *
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
4 * GNT is the legal property of its developers, whose names are too numerous
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
6 * source distribution.
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
7 *
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
8 * This library is free software; you can redistribute it and/or modify
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
9 * it under the terms of the GNU General Public License as published by
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
11 * (at your option) any later version.
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
12 *
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
13 * This program is distributed in the hope that it will be useful,
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
16 * GNU General Public License for more details.
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
17 *
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
18 * You should have received a copy of the GNU General Public License
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
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: 18832
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
18114
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
21 */
adb3cfadc125 Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 16005
diff changeset
22
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
23 /* Stuff brutally ripped from Gflib */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
24
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
25 #include "gntwidget.h"
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
26 #include "gntstyle.h"
13997
546ca912cb25 [gaim-migrate @ 16466]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13992
diff changeset
27 #include "gntmarshal.h"
15221
38cf23175c4a [gaim-migrate @ 17945]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15070
diff changeset
28 #include "gntutils.h"
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
29 #include "gnt.h"
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
30
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
31 enum
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
32 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
33 SIG_DESTROY,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
34 SIG_DRAW,
14675
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
35 SIG_HIDE,
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
36 SIG_GIVE_FOCUS,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
37 SIG_LOST_FOCUS,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
38 SIG_KEY_PRESSED,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
39 SIG_MAP,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
40 SIG_ACTIVATE,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
41 SIG_EXPOSE,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
42 SIG_SIZE_REQUEST,
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
43 SIG_CONFIRM_SIZE,
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
44 SIG_SIZE_CHANGED,
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
45 SIG_POSITION,
14405
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
46 SIG_CLICKED,
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
47 SIG_CONTEXT_MENU,
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
48 SIGS
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
49 };
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
50
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
51 static GObjectClass *parent_class = NULL;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
52 static guint signals[SIGS] = { 0 };
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
53
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
54 static void init_widget(GntWidget *widget);
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
55
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
56 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
57 gnt_widget_init(GTypeInstance *instance, gpointer class)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
58 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
59 GntWidget *widget = GNT_WIDGET(instance);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
60 widget->priv.name = NULL;
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14405
diff changeset
61 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
62 }
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 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
65 gnt_widget_map(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
66 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
67 /* Get some default size for the widget */
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14405
diff changeset
68 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
69 g_signal_emit(widget, signals[SIG_MAP], 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
70 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_MAPPED);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
71 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
72
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
73 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
74 gnt_widget_dispose(GObject *obj)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
75 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
76 GntWidget *self = GNT_WIDGET(obj);
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18302
diff changeset
77 g_signal_emit(self, signals[SIG_DESTROY], 0);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
78 parent_class->dispose(obj);
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14405
diff changeset
79 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
80 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
81
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
82 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
83 gnt_widget_focus_change(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
84 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
85 if (GNT_WIDGET_FLAGS(widget) & GNT_WIDGET_MAPPED)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
86 gnt_widget_draw(widget);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
87 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
88
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
89 static gboolean
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
90 gnt_widget_dummy_confirm_size(GntWidget *widget, int width, int height)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
91 {
16005
d5dad8af5a6f A few more fixes for resizing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15995
diff changeset
92 gboolean shadow;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
93 if (width < widget->priv.minw || height < widget->priv.minh)
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
94 return FALSE;
16005
d5dad8af5a6f A few more fixes for resizing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15995
diff changeset
95 shadow = gnt_widget_has_shadow(widget);
d5dad8af5a6f A few more fixes for resizing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15995
diff changeset
96 if (widget->priv.width + shadow != width && !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_GROW_X))
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
97 return FALSE;
16005
d5dad8af5a6f A few more fixes for resizing.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15995
diff changeset
98 if (widget->priv.height + shadow != height && !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_GROW_Y))
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
99 return FALSE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
100 return TRUE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
101 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
102
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
103 static gboolean
14962
abfaa2e03ac7 [gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14943
diff changeset
104 context_menu(GntBindable *bind, GList *null)
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
105 {
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
106 gboolean ret = FALSE;
14962
abfaa2e03ac7 [gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14943
diff changeset
107 g_signal_emit(bind, signals[SIG_CONTEXT_MENU], 0, &ret);
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
108 return ret;
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
109 }
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
110
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
111 static void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
112 gnt_widget_class_init(GntWidgetClass *klass)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
113 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
114 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
115
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
116 parent_class = g_type_class_peek_parent(klass);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
117
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
118 obj_class->dispose = gnt_widget_dispose;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
119
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
120 klass->destroy = gnt_widget_destroy;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
121 klass->show = gnt_widget_show;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
122 klass->draw = gnt_widget_draw;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
123 klass->expose = gnt_widget_expose;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
124 klass->map = gnt_widget_map;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
125 klass->lost_focus = gnt_widget_focus_change;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
126 klass->gained_focus = gnt_widget_focus_change;
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
127 klass->confirm_size = gnt_widget_dummy_confirm_size;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
128
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
129 klass->key_pressed = NULL;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
130 klass->activate = NULL;
14405
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
131 klass->clicked = NULL;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
132
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
133 signals[SIG_DESTROY] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
134 g_signal_new("destroy",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
135 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
136 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
137 G_STRUCT_OFFSET(GntWidgetClass, destroy),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
138 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
139 g_cclosure_marshal_VOID__VOID,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
140 G_TYPE_NONE, 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
141 signals[SIG_GIVE_FOCUS] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
142 g_signal_new("gained-focus",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
143 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
144 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
145 G_STRUCT_OFFSET(GntWidgetClass, gained_focus),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
146 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
147 g_cclosure_marshal_VOID__VOID,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
148 G_TYPE_NONE, 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
149 signals[SIG_LOST_FOCUS] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
150 g_signal_new("lost-focus",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
151 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
152 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
153 G_STRUCT_OFFSET(GntWidgetClass, lost_focus),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
154 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
155 g_cclosure_marshal_VOID__VOID,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
156 G_TYPE_NONE, 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
157 signals[SIG_ACTIVATE] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
158 g_signal_new("activate",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
159 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
160 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
161 G_STRUCT_OFFSET(GntWidgetClass, activate),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
162 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
163 g_cclosure_marshal_VOID__VOID,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
164 G_TYPE_NONE, 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
165 signals[SIG_MAP] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
166 g_signal_new("map",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
167 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
168 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
169 G_STRUCT_OFFSET(GntWidgetClass, map),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
170 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
171 g_cclosure_marshal_VOID__VOID,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
172 G_TYPE_NONE, 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
173 signals[SIG_DRAW] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
174 g_signal_new("draw",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
175 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
176 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
177 G_STRUCT_OFFSET(GntWidgetClass, draw),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
178 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
179 g_cclosure_marshal_VOID__VOID,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
180 G_TYPE_NONE, 0);
14675
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
181 signals[SIG_HIDE] =
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
182 g_signal_new("hide",
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
183 G_TYPE_FROM_CLASS(klass),
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
184 G_SIGNAL_RUN_LAST,
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
185 G_STRUCT_OFFSET(GntWidgetClass, hide),
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
186 NULL, NULL,
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
187 g_cclosure_marshal_VOID__VOID,
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
188 G_TYPE_NONE, 0);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
189 signals[SIG_EXPOSE] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
190 g_signal_new("expose",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
191 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
192 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
193 G_STRUCT_OFFSET(GntWidgetClass, expose),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
194 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
195 gnt_closure_marshal_VOID__INT_INT_INT_INT,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
196 G_TYPE_NONE, 4, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
197 signals[SIG_POSITION] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
198 g_signal_new("position-set",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
199 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
200 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
201 G_STRUCT_OFFSET(GntWidgetClass, set_position),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
202 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
203 gnt_closure_marshal_VOID__INT_INT,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
204 G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
205 signals[SIG_SIZE_REQUEST] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
206 g_signal_new("size_request",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
207 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
208 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
209 G_STRUCT_OFFSET(GntWidgetClass, size_request),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
210 NULL, NULL,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
211 g_cclosure_marshal_VOID__VOID,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
212 G_TYPE_NONE, 0);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
213 signals[SIG_SIZE_CHANGED] =
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
214 g_signal_new("size_changed",
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
215 G_TYPE_FROM_CLASS(klass),
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
216 G_SIGNAL_RUN_LAST,
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
217 G_STRUCT_OFFSET(GntWidgetClass, size_changed),
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
218 NULL, NULL,
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
219 gnt_closure_marshal_VOID__INT_INT,
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
220 G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
221 signals[SIG_CONFIRM_SIZE] =
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
222 g_signal_new("confirm_size",
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
223 G_TYPE_FROM_CLASS(klass),
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
224 G_SIGNAL_RUN_LAST,
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
225 G_STRUCT_OFFSET(GntWidgetClass, confirm_size),
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
226 NULL, NULL,
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
227 gnt_closure_marshal_BOOLEAN__INT_INT,
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
228 G_TYPE_BOOLEAN, 2, G_TYPE_INT, G_TYPE_INT);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
229 signals[SIG_KEY_PRESSED] =
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
230 g_signal_new("key_pressed",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
231 G_TYPE_FROM_CLASS(klass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
232 G_SIGNAL_RUN_LAST,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
233 G_STRUCT_OFFSET(GntWidgetClass, key_pressed),
14153
9da98052a4e1 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14073
diff changeset
234 gnt_boolean_handled_accumulator, NULL,
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
235 gnt_closure_marshal_BOOLEAN__STRING,
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
236 G_TYPE_BOOLEAN, 1, G_TYPE_STRING);
14301
b47bf28806d1 [gaim-migrate @ 16921]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14153
diff changeset
237
14405
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
238 signals[SIG_CLICKED] =
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
239 g_signal_new("clicked",
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
240 G_TYPE_FROM_CLASS(klass),
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
241 G_SIGNAL_RUN_LAST,
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
242 G_STRUCT_OFFSET(GntWidgetClass, clicked),
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
243 gnt_boolean_handled_accumulator, NULL,
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
244 gnt_closure_marshal_BOOLEAN__INT_INT_INT,
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
245 G_TYPE_BOOLEAN, 3, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT);
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
246
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
247 signals[SIG_CONTEXT_MENU] =
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
248 g_signal_new("context-menu",
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
249 G_TYPE_FROM_CLASS(klass),
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
250 G_SIGNAL_RUN_LAST,
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
251 0,
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
252 gnt_boolean_handled_accumulator, NULL,
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
253 gnt_closure_marshal_BOOLEAN__VOID,
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
254 G_TYPE_BOOLEAN, 0);
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
255
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
256 /* This is relevant for all widgets */
14962
abfaa2e03ac7 [gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14943
diff changeset
257 gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "context-menu", context_menu,
14938
ee27e45919ef [gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14909
diff changeset
258 GNT_KEY_POPUP, NULL);
15070
9f16d253a3c3 [gaim-migrate @ 17789]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14994
diff changeset
259 gnt_bindable_register_binding(GNT_BINDABLE_CLASS(klass), "context-menu", GNT_KEY_F11, NULL);
22959
d46b0ee7f44b ctrl-x to open context menus. F11 was such a poor choice for this.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22431
diff changeset
260 gnt_bindable_register_binding(GNT_BINDABLE_CLASS(klass), "context-menu", GNT_KEY_CTRL_X, NULL);
14896
bcc0f594ed15 [gaim-migrate @ 17601]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14891
diff changeset
261
14962
abfaa2e03ac7 [gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14943
diff changeset
262 gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass));
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14405
diff changeset
263 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
264 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
265
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
266 /******************************************************************************
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
267 * GntWidget API
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
268 *****************************************************************************/
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
269 GType
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
270 gnt_widget_get_gtype(void)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
271 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
272 static GType type = 0;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
273
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
274 if(type == 0) {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
275 static const GTypeInfo info = {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
276 sizeof(GntWidgetClass),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
277 NULL, /* base_init */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
278 NULL, /* base_finalize */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
279 (GClassInitFunc)gnt_widget_class_init,
14301
b47bf28806d1 [gaim-migrate @ 16921]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14153
diff changeset
280 NULL,
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
281 NULL, /* class_data */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
282 sizeof(GntWidget),
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
283 0, /* n_preallocs */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
284 gnt_widget_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: 15853
diff changeset
285 NULL /* value_table */
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
286 };
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
287
14962
abfaa2e03ac7 [gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14943
diff changeset
288 type = g_type_register_static(GNT_TYPE_BINDABLE,
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
289 "GntWidget",
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
290 &info, G_TYPE_FLAG_ABSTRACT);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
291 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
292
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
293 return type;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
294 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
295
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
296 void gnt_widget_set_take_focus(GntWidget *widget, gboolean can)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
297 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
298 if (can)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
299 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_CAN_TAKE_FOCUS);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
300 else
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
301 GNT_WIDGET_UNSET_FLAGS(widget, GNT_WIDGET_CAN_TAKE_FOCUS);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
302 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
303
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
304 /**
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
305 * gnt_widget_destroy:
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
306 * @obj: The #GntWidget instance.
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
307 *
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
308 * Emits the "destroy" signal notifying all reference holders that they
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
309 * should release @obj.
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
310 */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
311 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
312 gnt_widget_destroy(GntWidget *obj)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
313 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
314 g_return_if_fail(GNT_IS_WIDGET(obj));
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
315
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18302
diff changeset
316 if(!(GNT_WIDGET_FLAGS(obj) & GNT_WIDGET_DESTROYING)) {
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18302
diff changeset
317 GNT_WIDGET_SET_FLAGS(obj, GNT_WIDGET_DESTROYING);
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18302
diff changeset
318 gnt_widget_hide(obj);
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18302
diff changeset
319 delwin(obj->window);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
320 g_object_run_dispose(G_OBJECT(obj));
18831
ed4592c036ec Fix a crash Eric found. These parameters were in reverse order.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18302
diff changeset
321 }
14494
3575eac3a518 [gaim-migrate @ 17146]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14405
diff changeset
322 GNTDEBUG;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
323 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
324
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
325 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
326 gnt_widget_show(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
327 {
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
328 gnt_widget_draw(widget);
14981
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
329 gnt_screen_occupy(widget);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
330 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
331
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
332 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
333 gnt_widget_draw(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
334 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
335 /* Draw the widget */
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
336 if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_DRAWING))
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
337 return;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
338
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
339 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_DRAWING);
14962
abfaa2e03ac7 [gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14943
diff changeset
340 if (!(GNT_WIDGET_FLAGS(widget) & GNT_WIDGET_MAPPED)) {
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
341 gnt_widget_map(widget);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
342 }
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
343
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
344 if (widget->window == NULL)
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
345 {
15804
a06705e0130e Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15221
diff changeset
346 #if 0
14981
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
347 int x, y, maxx, maxy, w, h;
14994
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
348 int oldw, oldh;
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
349 gboolean shadow = TRUE;
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
350
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
351 if (!gnt_widget_has_shadow(widget))
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
352 shadow = FALSE;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
353
14981
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
354 x = widget->priv.x;
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
355 y = widget->priv.y;
14994
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
356 w = oldw = widget->priv.width + shadow;
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
357 h = oldh = widget->priv.height + shadow;
14981
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
358
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
359 getmaxyx(stdscr, maxy, maxx);
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
360 maxy -= 1; /* room for the taskbar */
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
361
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
362 x = MAX(0, x);
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
363 y = MAX(0, y);
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
364 if (x + w >= maxx)
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
365 x = MAX(0, maxx - w);
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
366 if (y + h >= maxy)
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
367 y = MAX(0, maxy - h);
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
368
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
369 w = MIN(w, maxx);
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
370 h = MIN(h, maxy);
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
371
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
372 widget->priv.x = x;
2db0dea6fc9e [gaim-migrate @ 17691]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14962
diff changeset
373 widget->priv.y = y;
14994
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
374 if (w != oldw || h != oldh) {
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
375 widget->priv.width = w - shadow;
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
376 widget->priv.height = h - shadow;
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
377 g_signal_emit(widget, signals[SIG_SIZE_CHANGED], 0, oldw, oldh);
f88de16a7266 [gaim-migrate @ 17704]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14981
diff changeset
378 }
15804
a06705e0130e Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15221
diff changeset
379 #else
15853
2592ffd4d921 This takes way too much memory, especially with ncursesw. I hadn't noticed, because apparently I was using ncurses.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15804
diff changeset
380 widget->window = newpad(widget->priv.height + 20, widget->priv.width + 20); /* XXX: */
15804
a06705e0130e Better handle large windows that don't fit into the screen (eg. the preference
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15221
diff changeset
381 #endif
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
382 init_widget(widget);
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
383 }
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
384
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
385 g_signal_emit(widget, signals[SIG_DRAW], 0);
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
386 gnt_widget_queue_update(widget);
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
387 GNT_WIDGET_UNSET_FLAGS(widget, GNT_WIDGET_DRAWING);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
388 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
389
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
390 gboolean
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
391 gnt_widget_key_pressed(GntWidget *widget, const char *keys)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
392 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
393 gboolean ret;
13917
7c435cf1ee60 [gaim-migrate @ 16314]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
394 if (!GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_CAN_TAKE_FOCUS))
7c435cf1ee60 [gaim-migrate @ 16314]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13852
diff changeset
395 return FALSE;
14301
b47bf28806d1 [gaim-migrate @ 16921]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14153
diff changeset
396
18832
177a16b4b9f3 Allow disabling the widget actions on specific widgets. This allows, for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18831
diff changeset
397 if (!GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_DISABLE_ACTIONS) &&
177a16b4b9f3 Allow disabling the widget actions on specific widgets. This allows, for
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18831
diff changeset
398 gnt_bindable_perform_action_key(GNT_BINDABLE(widget), keys))
14855
84c869823944 [gaim-migrate @ 17558]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14675
diff changeset
399 return TRUE;
84c869823944 [gaim-migrate @ 17558]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14675
diff changeset
400
14962
abfaa2e03ac7 [gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14943
diff changeset
401 keys = gnt_bindable_remap_keys(GNT_BINDABLE(widget), keys);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
402 g_signal_emit(widget, signals[SIG_KEY_PRESSED], 0, keys, &ret);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
403 return ret;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
404 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
405
14405
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
406 gboolean
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
407 gnt_widget_clicked(GntWidget *widget, GntMouseEvent event, int x, int y)
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
408 {
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
409 gboolean ret;
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
410 g_signal_emit(widget, signals[SIG_CLICKED], 0, event, x, y, &ret);
22431
06ae5eb33844 Right-clicking on a widget should trigger the context-menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21471
diff changeset
411 if (!ret && event == GNT_RIGHT_MOUSE_DOWN)
06ae5eb33844 Right-clicking on a widget should trigger the context-menu.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21471
diff changeset
412 ret = gnt_bindable_perform_action_named(GNT_BINDABLE(widget), "context-menu", NULL);
14405
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
413 return ret;
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
414 }
4398121ce889 [gaim-migrate @ 17044]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14397
diff changeset
415
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
416 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
417 gnt_widget_expose(GntWidget *widget, int x, int y, int width, int height)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
418 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
419 g_signal_emit(widget, signals[SIG_EXPOSE], 0, x, y, width, height);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
420 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
421
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
422 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
423 gnt_widget_hide(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
424 {
14675
be8af28d1980 [gaim-migrate @ 17341]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14494
diff changeset
425 g_signal_emit(widget, signals[SIG_HIDE], 0);
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
426 wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_NORMAL));
14360
805db54c06a8 [gaim-migrate @ 16988]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14354
diff changeset
427 #if 0
805db54c06a8 [gaim-migrate @ 16988]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14354
diff changeset
428 /* XXX: I have no clue why, but this seemed to be necessary. */
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
429 if (gnt_widget_has_shadow(widget))
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
430 mvwvline(widget->window, 1, widget->priv.width, ' ', widget->priv.height);
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
431 #endif
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
432 gnt_screen_release(widget);
14042
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
433 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_INVISIBLE);
13969
0541f389442e [gaim-migrate @ 16402]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13958
diff changeset
434 GNT_WIDGET_UNSET_FLAGS(widget, GNT_WIDGET_MAPPED);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
435 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
436
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
437 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
438 gnt_widget_set_position(GntWidget *wid, int x, int y)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
439 {
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
440 g_signal_emit(wid, signals[SIG_POSITION], 0, x, y);
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
441 /* XXX: Need to install properties for these and g_object_notify */
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
442 wid->priv.x = x;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
443 wid->priv.y = y;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
444 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
445
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
446 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
447 gnt_widget_get_position(GntWidget *wid, int *x, int *y)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
448 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
449 if (x)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
450 *x = wid->priv.x;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
451 if (y)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
452 *y = wid->priv.y;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
453 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
454
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
455 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
456 gnt_widget_size_request(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
457 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
458 g_signal_emit(widget, signals[SIG_SIZE_REQUEST], 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
459 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
460
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
461 void
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
462 gnt_widget_get_size(GntWidget *wid, int *width, int *height)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
463 {
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
464 gboolean shadow = TRUE;
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
465 if (!gnt_widget_has_shadow(wid))
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
466 shadow = FALSE;
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
467
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
468 if (width)
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
469 *width = wid->priv.width + shadow;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
470 if (height)
13989
9a647311c9ac [gaim-migrate @ 16447]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13978
diff changeset
471 *height = wid->priv.height + shadow;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
472 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
473
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
474 static void
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
475 init_widget(GntWidget *widget)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
476 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
477 gboolean shadow = TRUE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
478
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
479 if (!gnt_widget_has_shadow(widget))
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
480 shadow = FALSE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
481
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
482 wbkgd(widget->window, gnt_color_pair(GNT_COLOR_NORMAL));
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
483 werase(widget->window);
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
484
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
485 if (!(GNT_WIDGET_FLAGS(widget) & GNT_WIDGET_NO_BORDER))
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
486 {
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
487 /* - This is ugly. */
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
488 /* - What's your point? */
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
489 mvwvline(widget->window, 0, 0, ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL), widget->priv.height);
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
490 mvwvline(widget->window, 0, widget->priv.width - 1,
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
491 ACS_VLINE | gnt_color_pair(GNT_COLOR_NORMAL), widget->priv.height);
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
492 mvwhline(widget->window, widget->priv.height - 1, 0,
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
493 ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), widget->priv.width);
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
494 mvwhline(widget->window, 0, 0, ACS_HLINE | gnt_color_pair(GNT_COLOR_NORMAL), widget->priv.width);
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
495 mvwaddch(widget->window, 0, 0, ACS_ULCORNER | gnt_color_pair(GNT_COLOR_NORMAL));
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
496 mvwaddch(widget->window, 0, widget->priv.width - 1,
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
497 ACS_URCORNER | gnt_color_pair(GNT_COLOR_NORMAL));
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
498 mvwaddch(widget->window, widget->priv.height - 1, 0,
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
499 ACS_LLCORNER | gnt_color_pair(GNT_COLOR_NORMAL));
14073
db4207d73bd7 [gaim-migrate @ 16603]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14072
diff changeset
500 mvwaddch(widget->window, widget->priv.height - 1, widget->priv.width - 1,
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
501 ACS_LRCORNER | gnt_color_pair(GNT_COLOR_NORMAL));
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
502 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
503
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
504 if (shadow)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
505 {
21240
b78eaddaae02 Add gnt_color_pair, which will replace color codes with 'appropriate' text
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 19859
diff changeset
506 wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_SHADOW));
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
507 mvwvline(widget->window, 1, widget->priv.width, ' ', widget->priv.height);
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
508 mvwhline(widget->window, widget->priv.height, 1, ' ', widget->priv.width);
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
509 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
510 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
511
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
512 gboolean
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
513 gnt_widget_set_size(GntWidget *widget, int width, int height)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
514 {
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
515 gboolean ret = TRUE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
516
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
517 if (gnt_widget_has_shadow(widget))
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
518 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
519 width--;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
520 height--;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
521 }
14909
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14898
diff changeset
522 if (width <= 0)
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14898
diff changeset
523 width = widget->priv.width;
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14898
diff changeset
524 if (height <= 0)
d72792eb7575 [gaim-migrate @ 17616]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14898
diff changeset
525 height = widget->priv.height;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
526
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
527 if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_MAPPED))
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
528 {
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
529 ret = gnt_widget_confirm_size(widget, width, height);
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
530 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
531
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
532 if (ret)
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
533 {
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
534 gboolean shadow = TRUE;
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
535 int oldw, oldh;
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
536
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
537 if (!gnt_widget_has_shadow(widget))
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
538 shadow = FALSE;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
539
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
540 oldw = widget->priv.width;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
541 oldh = widget->priv.height;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
542
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
543 widget->priv.width = width;
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
544 widget->priv.height = height;
15995
e2234eeb8c21 Do not crash when resizing with shadows turned on.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15886
diff changeset
545 if (width + shadow >= getmaxx(widget->window) || height + shadow >= getmaxy(widget->window)) {
15853
2592ffd4d921 This takes way too much memory, especially with ncursesw. I hadn't noticed, because apparently I was using ncurses.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15804
diff changeset
546 delwin(widget->window);
2592ffd4d921 This takes way too much memory, especially with ncursesw. I hadn't noticed, because apparently I was using ncurses.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15804
diff changeset
547 widget->window = newpad(height + 20, width + 20);
2592ffd4d921 This takes way too much memory, especially with ncursesw. I hadn't noticed, because apparently I was using ncurses.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15804
diff changeset
548 }
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
549
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
550 g_signal_emit(widget, signals[SIG_SIZE_CHANGED], 0, oldw, oldh);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
551
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
552 if (widget->window)
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
553 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
554 init_widget(widget);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
555 }
13992
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
556 if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_MAPPED))
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
557 init_widget(widget);
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
558 else
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
559 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_MAPPED);
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
560 }
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
561
a6bbcc09c4eb [gaim-migrate @ 16457]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13989
diff changeset
562 return ret;
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
563 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
564
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
565 gboolean
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
566 gnt_widget_set_focus(GntWidget *widget, gboolean set)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
567 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
568 if (!(GNT_WIDGET_FLAGS(widget) & GNT_WIDGET_CAN_TAKE_FOCUS))
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
569 return FALSE;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
570
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
571 if (set && !GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_HAS_FOCUS))
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
572 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
573 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_HAS_FOCUS);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
574 g_signal_emit(widget, signals[SIG_GIVE_FOCUS], 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
575 }
18302
44267a021f2d Notify a window when it loses focus because another window was moved to
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18114
diff changeset
576 else if (!set && GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_HAS_FOCUS))
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
577 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
578 GNT_WIDGET_UNSET_FLAGS(widget, GNT_WIDGET_HAS_FOCUS);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
579 g_signal_emit(widget, signals[SIG_LOST_FOCUS], 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
580 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
581 else
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
582 return FALSE;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
583
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
584 return TRUE;
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
585 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
586
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
587 void gnt_widget_set_name(GntWidget *widget, const char *name)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
588 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
589 g_free(widget->priv.name);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
590 widget->priv.name = g_strdup(name);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
591 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
592
14397
e53755c4dcab [gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14360
diff changeset
593 const char *gnt_widget_get_name(GntWidget *widget)
e53755c4dcab [gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14360
diff changeset
594 {
e53755c4dcab [gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14360
diff changeset
595 return widget->priv.name;
e53755c4dcab [gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14360
diff changeset
596 }
e53755c4dcab [gaim-migrate @ 17031]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14360
diff changeset
597
13852
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
598 void gnt_widget_activate(GntWidget *widget)
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
599 {
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
600 g_signal_emit(widget, signals[SIG_ACTIVATE], 0);
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
601 }
1d3ae9f34d42 [gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff changeset
602
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
603 static gboolean
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
604 update_queue_callback(gpointer data)
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
605 {
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
606 GntWidget *widget = GNT_WIDGET(data);
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
607
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
608 if (!g_object_get_data(G_OBJECT(widget), "gnt:queue_update"))
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
609 return FALSE;
15853
2592ffd4d921 This takes way too much memory, especially with ncursesw. I hadn't noticed, because apparently I was using ncurses.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15804
diff changeset
610 if (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_MAPPED))
2592ffd4d921 This takes way too much memory, especially with ncursesw. I hadn't noticed, because apparently I was using ncurses.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 15804
diff changeset
611 gnt_screen_update(widget);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
612 g_object_set_data(G_OBJECT(widget), "gnt:queue_update", NULL);
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
613 return FALSE;
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
614 }
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
615
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
616 void gnt_widget_queue_update(GntWidget *widget)
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
617 {
14041
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
618 if (widget->window == NULL)
6afba85cfc30 [gaim-migrate @ 16540]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14005
diff changeset
619 return;
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
620 while (widget->parent)
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
621 widget = widget->parent;
20293
81d324f460bd applied changes from 1f57ebe4e6d16159c74db823ecff2ec0f4c46936
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19859
diff changeset
622
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
623 if (!g_object_get_data(G_OBJECT(widget), "gnt:queue_update"))
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
624 {
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
625 int id = g_timeout_add(0, update_queue_callback, widget);
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
626 g_object_set_data_full(G_OBJECT(widget), "gnt:queue_update", GINT_TO_POINTER(id),
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
627 (GDestroyNotify)g_source_remove);
13940
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
628 }
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
629 }
26ed45b11483 [gaim-migrate @ 16355]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13931
diff changeset
630
14005
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
631 gboolean gnt_widget_confirm_size(GntWidget *widget, int width, int height)
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
632 {
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
633 gboolean ret = FALSE;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
634 g_signal_emit(widget, signals[SIG_CONFIRM_SIZE], 0, width, height, &ret);
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
635 return ret;
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
636 }
198d1658b390 [gaim-migrate @ 16480]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 13997
diff changeset
637
14042
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
638 void gnt_widget_set_visible(GntWidget *widget, gboolean set)
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
639 {
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
640 if (set)
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
641 GNT_WIDGET_UNSET_FLAGS(widget, GNT_WIDGET_INVISIBLE);
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
642 else
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
643 GNT_WIDGET_SET_FLAGS(widget, GNT_WIDGET_INVISIBLE);
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
644 }
71aaaf85aead [gaim-migrate @ 16542]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14041
diff changeset
645
14072
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
646 gboolean gnt_widget_has_shadow(GntWidget *widget)
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
647 {
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
648 return (!GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_SHADOW) &&
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
649 gnt_style_get_bool(GNT_STYLE_SHADOW, FALSE));
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
650 }
4e64a4f18686 [gaim-migrate @ 16602]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 14042
diff changeset
651

mercurial