Sun, 03 Nov 2024 00:05:44 -0500
remove purple3-url-handler.desktop.in.in
The application that did the launching was removed long ago. Also this should
be implemented by the user interfaces and they might provide separate files to
groups schemas as well.
Testing Done:
Called in the turtles.
Reviewed at https://reviews.imfreedom.org/r/3640/
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #include <glib/gi18n-lib.h> |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #include "pidgin/pidginavatar.h" |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | struct _PidginAvatar { |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
28 | GtkBox parent; |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | GtkWidget *icon; |
|
42353
5381c5c9affa
Move PidginAvatar to a single resource file
Gary Kramlich <grim@reaperworld.com>
parents:
42352
diff
changeset
|
31 | GMenuModel *menu; |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | GdkPixbufAnimation *animation; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | gboolean animate; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
36 | PurpleContactInfo *info; |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | PurpleConversation *conversation; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | }; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | enum { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | PROP_0, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | PROP_ANIMATE, |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
43 | PROP_CONTACT_INFO, |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | PROP_CONVERSATION, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | N_PROPERTIES, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | }; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | static GParamSpec *properties[N_PROPERTIES] = {NULL, }; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | |
|
42575
580339aa47cc
Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents:
42353
diff
changeset
|
49 | G_DEFINE_FINAL_TYPE(PidginAvatar, pidgin_avatar, GTK_TYPE_BOX) |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | /****************************************************************************** |
|
41628
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
52 | * Helpers |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | *****************************************************************************/ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | static void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | pidgin_avatar_update(PidginAvatar *avatar) { |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
56 | PurpleAvatar *purple_avatar = NULL; |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | GdkPixbufAnimation *animation = NULL; |
|
41600
5fbe92363b76
Make PidginAvatar use a GtkPicture instead of GtkImage
Gary Kramlich <grim@reaperworld.com>
parents:
41564
diff
changeset
|
58 | GdkPixbuf *pixbuf = NULL; |
|
42979
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
59 | GdkTexture *texture = NULL; |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
61 | if(PURPLE_IS_CONTACT_INFO(avatar->info)) { |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
62 | purple_avatar = purple_contact_info_get_avatar(avatar->info); |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
63 | } else if(PURPLE_IS_CONVERSATION(avatar->conversation)) { |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
64 | purple_avatar = purple_conversation_get_avatar(avatar->conversation); |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
65 | } |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
66 | |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
67 | if(PURPLE_IS_AVATAR(purple_avatar)) { |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
68 | animation = purple_avatar_get_animation(purple_avatar); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | g_set_object(&avatar->animation, animation); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 | if(GDK_IS_PIXBUF_ANIMATION(avatar->animation)) { |
|
41628
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
74 | if(avatar->animate && |
|
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
75 | !gdk_pixbuf_animation_is_static_image(avatar->animation)) { |
|
41600
5fbe92363b76
Make PidginAvatar use a GtkPicture instead of GtkImage
Gary Kramlich <grim@reaperworld.com>
parents:
41564
diff
changeset
|
76 | pixbuf = GDK_PIXBUF(avatar->animation); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
77 | } else { |
|
41600
5fbe92363b76
Make PidginAvatar use a GtkPicture instead of GtkImage
Gary Kramlich <grim@reaperworld.com>
parents:
41564
diff
changeset
|
78 | pixbuf = gdk_pixbuf_animation_get_static_image(avatar->animation); |
|
5fbe92363b76
Make PidginAvatar use a GtkPicture instead of GtkImage
Gary Kramlich <grim@reaperworld.com>
parents:
41564
diff
changeset
|
79 | } |
|
5fbe92363b76
Make PidginAvatar use a GtkPicture instead of GtkImage
Gary Kramlich <grim@reaperworld.com>
parents:
41564
diff
changeset
|
80 | } |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 | |
|
42979
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
82 | texture = gdk_texture_new_for_pixbuf(pixbuf); |
|
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
83 | gtk_picture_set_paintable(GTK_PICTURE(avatar->icon), |
|
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
84 | GDK_PAINTABLE(texture)); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | |
|
42979
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
86 | g_clear_object(&texture); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | g_clear_object(&animation); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
88 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 | /****************************************************************************** |
|
41628
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
91 | * Actions |
|
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
92 | *****************************************************************************/ |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
93 | static GActionEntry actions[] = {}; |
|
41628
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
94 | |
|
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
95 | /****************************************************************************** |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 | * Callbacks |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 | *****************************************************************************/ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | static gboolean |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
99 | pidgin_avatar_button_press_handler(G_GNUC_UNUSED GtkGestureClick *event, |
|
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
100 | G_GNUC_UNUSED gint n_press, |
|
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
101 | gdouble x, |
|
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
102 | gdouble y, |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 | gpointer data) |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 | { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 | PidginAvatar *avatar = PIDGIN_AVATAR(data); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 | GtkWidget *menu = NULL; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
107 | |
|
42353
5381c5c9affa
Move PidginAvatar to a single resource file
Gary Kramlich <grim@reaperworld.com>
parents:
42352
diff
changeset
|
108 | menu = gtk_popover_menu_new_from_model(avatar->menu); |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
109 | gtk_widget_set_parent(menu, GTK_WIDGET(avatar)); |
|
41273
ef8cfc432444
Use GtkPopoverMenu in PidginAvatar
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41030
diff
changeset
|
110 | gtk_popover_set_pointing_to(GTK_POPOVER(menu), |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
111 | &(const GdkRectangle){(int)x, (int)y, 0, 0}); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 | |
|
41273
ef8cfc432444
Use GtkPopoverMenu in PidginAvatar
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41030
diff
changeset
|
113 | gtk_popover_popup(GTK_POPOVER(menu)); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 | return TRUE; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
116 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
118 | /* |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
119 | * This function is a callback for when properties change on the contact info |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
120 | * we're tracking. It should not be reused for the conversation we're tracking |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
121 | * because we have to disconnect old handlers and reuse of this function will |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
122 | * cause issues if a contact info is changed but a conversation is not and vice |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
123 | * versa. |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 | */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 | static void |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
126 | pidgin_avatar_contact_info_updated(G_GNUC_UNUSED GObject *obj, |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
127 | G_GNUC_UNUSED GParamSpec *pspec, |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
128 | gpointer d) |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41733
diff
changeset
|
129 | { |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | PidginAvatar *avatar = PIDGIN_AVATAR(d); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 | pidgin_avatar_update(avatar); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 | /* |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 | * This function is a callback for when properties change on the conversation |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 | * we're tracking. It should not be reused for the buddy we're tracking |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
138 | * because we have to disconnect old handlers and reuse of this function will |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
139 | * cause issues if a buddy is changed but a conversation is not and vice versa. |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
140 | */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
141 | static void |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41733
diff
changeset
|
142 | pidgin_avatar_conversation_updated(G_GNUC_UNUSED GObject *obj, |
|
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41733
diff
changeset
|
143 | G_GNUC_UNUSED GParamSpec *pspec, gpointer d) |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 | { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 | PidginAvatar *avatar = PIDGIN_AVATAR(d); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
147 | pidgin_avatar_update(avatar); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 | static gboolean |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
151 | pidgin_avatar_enter_notify_handler(G_GNUC_UNUSED GtkEventControllerMotion *event, |
|
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
152 | G_GNUC_UNUSED gdouble x, |
|
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
153 | G_GNUC_UNUSED gdouble y, |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 | gpointer data) |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 | { |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
156 | PidginAvatar *avatar = PIDGIN_AVATAR(data); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 | pidgin_avatar_set_animate(avatar, TRUE); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 | return FALSE; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
162 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 | static gboolean |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
164 | pidgin_avatar_leave_notify_handler(G_GNUC_UNUSED GtkEventControllerMotion *event, |
|
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
165 | gpointer data) |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 | { |
|
41536
ba0797a477e7
Convert PidginAvatar to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41479
diff
changeset
|
167 | PidginAvatar *avatar = PIDGIN_AVATAR(data); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 | |
|
40821
1cfdaf481246
Remove the old avatar from the infopane.
Gary Kramlich <grim@reaperworld.com>
parents:
40810
diff
changeset
|
169 | pidgin_avatar_set_animate(avatar, FALSE); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 | return FALSE; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 | /****************************************************************************** |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 | * GObject Implementation |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 | *****************************************************************************/ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 | static void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 | pidgin_avatar_get_property(GObject *obj, guint param_id, GValue *value, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
179 | GParamSpec *pspec) |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 | { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 | PidginAvatar *avatar = PIDGIN_AVATAR(obj); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 | switch(param_id) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 | case PROP_ANIMATE: |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 | g_value_set_boolean(value, pidgin_avatar_get_animate(avatar)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 | break; |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
187 | case PROP_CONTACT_INFO: |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
188 | g_value_set_object(value, pidgin_avatar_get_contact_info(avatar)); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 | break; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 | case PROP_CONVERSATION: |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 | g_value_set_object(value, pidgin_avatar_get_conversation(avatar)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 | break; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 | default: |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 | break; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
199 | static void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 | pidgin_avatar_set_property(GObject *obj, guint param_id, const GValue *value, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 | GParamSpec *pspec) |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 | { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
203 | PidginAvatar *avatar = PIDGIN_AVATAR(obj); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
204 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
205 | switch(param_id) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
206 | case PROP_ANIMATE: |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
207 | pidgin_avatar_set_animate(avatar, g_value_get_boolean(value)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
208 | break; |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
209 | case PROP_CONTACT_INFO: |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
210 | pidgin_avatar_set_contact_info(avatar, g_value_get_object(value)); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
211 | break; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
212 | case PROP_CONVERSATION: |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
213 | pidgin_avatar_set_conversation(avatar, g_value_get_object(value)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
214 | break; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
215 | default: |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
216 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
217 | break; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
218 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
219 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
220 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
221 | static void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
222 | pidgin_avatar_dispose(GObject *obj) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
223 | PidginAvatar *avatar = PIDGIN_AVATAR(obj); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
224 | |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
225 | g_clear_object(&avatar->info); |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
226 | g_clear_object(&avatar->conversation); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
227 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
228 | g_clear_object(&avatar->animation); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
229 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
230 | G_OBJECT_CLASS(pidgin_avatar_parent_class)->dispose(obj); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
231 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
232 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
233 | static void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
234 | pidgin_avatar_init(PidginAvatar *avatar) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
235 | GSimpleActionGroup *group = NULL; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
236 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
237 | gtk_widget_init_template(GTK_WIDGET(avatar)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
238 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
239 | /* Now setup our actions. */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
240 | group = g_simple_action_group_new(); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
241 | g_action_map_add_action_entries(G_ACTION_MAP(group), actions, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
242 | G_N_ELEMENTS(actions), avatar); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
243 | |
|
40821
1cfdaf481246
Remove the old avatar from the infopane.
Gary Kramlich <grim@reaperworld.com>
parents:
40810
diff
changeset
|
244 | gtk_widget_insert_action_group(GTK_WIDGET(avatar), "avatar", |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
245 | G_ACTION_GROUP(group)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
246 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
247 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
248 | static void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
249 | pidgin_avatar_class_init(PidginAvatarClass *klass) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
250 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
251 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
252 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
253 | obj_class->get_property = pidgin_avatar_get_property; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
254 | obj_class->set_property = pidgin_avatar_set_property; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
255 | obj_class->dispose = pidgin_avatar_dispose; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
256 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
257 | /** |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41273
diff
changeset
|
258 | * PidginAvatar:animate: |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
259 | * |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
260 | * Whether or not an animated avatar should be animated. |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
261 | */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
262 | properties[PROP_ANIMATE] = g_param_spec_boolean( |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
263 | "animate", "animate", |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
264 | "Whether or not to animate an animated avatar", |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
265 | FALSE, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
266 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
267 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
268 | /** |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
269 | * PidginAvatar:contact-info: |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
270 | * |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
271 | * The contact info whose avatar will be displayed. |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
272 | */ |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
273 | properties[PROP_CONTACT_INFO] = g_param_spec_object( |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
274 | "contact-info", "contact-info", |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
275 | "The contact info whose avatar to display", |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
276 | PURPLE_TYPE_CONTACT_INFO, |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
277 | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
278 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
279 | /** |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41273
diff
changeset
|
280 | * PidginAvatar:conversation: |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
281 | * |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
282 | * The conversation which will be used to find the correct avatar. |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
283 | */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
284 | properties[PROP_CONVERSATION] = g_param_spec_object( |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
285 | "conversation", "conversation", |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
286 | "The conversation used to find the correct avatar.", |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
287 | PURPLE_TYPE_CONVERSATION, |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
288 | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
289 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
290 | g_object_class_install_properties(obj_class, N_PROPERTIES, properties); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
291 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
292 | gtk_widget_class_set_template_from_resource( |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
293 | widget_class, |
|
42353
5381c5c9affa
Move PidginAvatar to a single resource file
Gary Kramlich <grim@reaperworld.com>
parents:
42352
diff
changeset
|
294 | "/im/pidgin/Pidgin3/avatar.ui" |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
295 | ); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
296 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
297 | gtk_widget_class_bind_template_child(widget_class, PidginAvatar, icon); |
|
42353
5381c5c9affa
Move PidginAvatar to a single resource file
Gary Kramlich <grim@reaperworld.com>
parents:
42352
diff
changeset
|
298 | gtk_widget_class_bind_template_child(widget_class, PidginAvatar, menu); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
299 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
300 | gtk_widget_class_bind_template_callback(widget_class, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
301 | pidgin_avatar_button_press_handler); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
302 | gtk_widget_class_bind_template_callback(widget_class, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
303 | pidgin_avatar_enter_notify_handler); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
304 | gtk_widget_class_bind_template_callback(widget_class, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
305 | pidgin_avatar_leave_notify_handler); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
306 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
307 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
308 | /****************************************************************************** |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
309 | * API |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
310 | *****************************************************************************/ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
311 | GtkWidget * |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
312 | pidgin_avatar_new(void) { |
|
42592
6b65c0e4ba15
Remove unnecessary casts for GObject methods
Gary Kramlich <grim@reaperworld.com>
parents:
42575
diff
changeset
|
313 | return g_object_new(PIDGIN_TYPE_AVATAR, NULL); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
314 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
315 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
316 | void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
317 | pidgin_avatar_set_animate(PidginAvatar *avatar, gboolean animate) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
318 | g_return_if_fail(PIDGIN_IS_AVATAR(avatar)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
319 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
320 | avatar->animate = animate; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
321 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
322 | if(GDK_IS_PIXBUF_ANIMATION(avatar->animation)) { |
|
42979
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
323 | GdkTexture *texture = NULL; |
|
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
324 | |
|
41628
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
325 | if(avatar->animate && |
|
90f3621f94a5
Fix several issues with PidginAvatar in a conversation
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41600
diff
changeset
|
326 | !gdk_pixbuf_animation_is_static_image(avatar->animation)) { |
|
42979
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
327 | texture = gdk_texture_new_for_pixbuf(GDK_PIXBUF(avatar->animation)); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
328 | } else { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
329 | GdkPixbuf *frame = NULL; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
330 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
331 | frame = gdk_pixbuf_animation_get_static_image(avatar->animation); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
332 | |
|
42979
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
333 | texture = gdk_texture_new_for_pixbuf(frame); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
334 | } |
|
42979
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
335 | |
|
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
336 | gtk_picture_set_paintable(GTK_PICTURE(avatar->icon), |
|
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
337 | GDK_PAINTABLE(texture)); |
|
d9f973ac3afd
Use GdkTexture to wrap GdkPixbuf
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42723
diff
changeset
|
338 | g_object_unref(texture); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
339 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
340 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
341 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
342 | gboolean |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
343 | pidgin_avatar_get_animate(PidginAvatar *avatar) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
344 | g_return_val_if_fail(PIDGIN_IS_AVATAR(avatar), FALSE); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
345 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
346 | return avatar->animate; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
347 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
348 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
349 | void |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
350 | pidgin_avatar_set_contact_info(PidginAvatar *avatar, PurpleContactInfo *info) { |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
351 | g_return_if_fail(PIDGIN_IS_AVATAR(avatar)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
352 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
353 | /* Remove our old signal handler. */ |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
354 | if(PURPLE_IS_CONTACT_INFO(avatar->info)) { |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
355 | g_signal_handlers_disconnect_by_func(avatar->info, |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
356 | pidgin_avatar_contact_info_updated, |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
357 | avatar); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
358 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
359 | |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
360 | if(g_set_object(&avatar->info, info)) { |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
361 | pidgin_avatar_update(avatar); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
362 | |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
363 | g_object_notify_by_pspec(G_OBJECT(avatar), |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
364 | properties[PROP_CONTACT_INFO]); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
365 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
366 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
367 | /* Add the notify signal so we can update when the icon changes. */ |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
368 | if(PURPLE_IS_CONTACT_INFO(avatar->info)) { |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
369 | g_signal_connect_object(G_OBJECT(avatar->info), "notify::avatar", |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
370 | G_CALLBACK(pidgin_avatar_contact_info_updated), |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
371 | avatar, 0); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
372 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
373 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
374 | |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
375 | PurpleContactInfo * |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
376 | pidgin_avatar_get_contact_info(PidginAvatar *avatar) { |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
377 | g_return_val_if_fail(PIDGIN_IS_AVATAR(avatar), NULL); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
378 | |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
379 | return avatar->info; |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
380 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
381 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
382 | void |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
383 | pidgin_avatar_set_conversation(PidginAvatar *avatar, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
384 | PurpleConversation *conversation) |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
385 | { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
386 | g_return_if_fail(PIDGIN_IS_AVATAR(avatar)); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
387 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
388 | /* Remove our old signal handler. */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
389 | if(PURPLE_IS_CONVERSATION(avatar->conversation)) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
390 | g_signal_handlers_disconnect_by_func(avatar->conversation, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
391 | pidgin_avatar_conversation_updated, |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
392 | avatar); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
393 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
394 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
395 | if(g_set_object(&avatar->conversation, conversation)) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
396 | g_object_notify_by_pspec(G_OBJECT(avatar), |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
397 | properties[PROP_CONVERSATION]); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
398 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
399 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
400 | /* Add the notify signal so we can update when the icon changes. */ |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
401 | if(PURPLE_IS_CONVERSATION(avatar->conversation)) { |
|
42723
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
402 | g_signal_connect_object(G_OBJECT(avatar->conversation), "notify", |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
403 | G_CALLBACK(pidgin_avatar_conversation_updated), |
|
3761ba966eed
Stop using PurpleBuddy in Pidgin
Gary Kramlich <grim@reaperworld.com>
parents:
42714
diff
changeset
|
404 | avatar, 0); |
|
40810
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
405 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
406 | } |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
407 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
408 | PurpleConversation * |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
409 | pidgin_avatar_get_conversation(PidginAvatar *avatar) { |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
410 | g_return_val_if_fail(PIDGIN_IS_AVATAR(avatar), NULL); |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
411 | |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
412 | return avatar->conversation; |
|
28d50eece92d
Create a PidginAvatar widget.
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
413 | } |