Mercurial > pidgin.yaz
annotate pidgin/gtksmiley.c @ 23132:9c0a47402f7a
Unref some gdkpixbufs to plug some memory leaks. References #1187.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Wed, 07 May 2008 04:05:19 +0000 |
parents | a3b4a9061552 |
children | 6c4f47b9d201 |
rev | line source |
---|---|
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
1 /** |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
2 * @file gtksmiley.c GTK+ Smiley Manager API |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
3 * @ingroup pidgin |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
4 */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
5 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
6 /* |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
7 * pidgin |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
8 * |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
9 * Pidgin is the legal property of its developers, whose names are too numerous |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
10 * to list here. Please refer to the COPYRIGHT file distributed with this |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
11 * source distribution. |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
12 * |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
13 * This program is free software; you can redistribute it and/or modify |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
14 * it under the terms of the GNU General Public License as published by |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
15 * the Free Software Foundation; either version 2 of the License, or |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
16 * (at your option) any later version. |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
17 * |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
18 * This program is distributed in the hope that it will be useful, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
21 * GNU General Public License for more details. |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
22 * |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
23 * You should have received a copy of the GNU General Public License |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
24 * along with this program; if not, write to the Free Software |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
25 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
26 */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
27 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
28 #include "internal.h" |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
29 #include "pidgin.h" |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
30 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
31 #include "debug.h" |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
32 #include "notify.h" |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
33 #include "smiley.h" |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
34 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
35 #include "gtkimhtml.h" |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
36 #include "gtksmiley.h" |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
37 #include "gtkutils.h" |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
38 #include "pidginstock.h" |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
39 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
40 typedef struct |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
41 { |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
42 PurpleSmiley *smiley; |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
43 GtkWidget *parent; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
44 GtkWidget *smile; |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
45 GtkWidget *smiley_image; |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
46 gchar *filename; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
47 } PidginSmiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
48 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
49 typedef struct |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
50 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
51 GtkWidget *window; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
52 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
53 GtkWidget *treeview; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
54 GtkListStore *model; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
55 } SmileyManager; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
56 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
57 enum |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
58 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
59 ICON, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
60 SHORTCUT, |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
61 SMILEY, |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
62 N_COL |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
63 }; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
64 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
65 static SmileyManager *smiley_manager = NULL; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
66 static GSList *gtk_smileys = NULL; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
67 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
68 static void |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
69 pidgin_smiley_destroy(PidginSmiley *smiley) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
70 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
71 gtk_widget_destroy(smiley->parent); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
72 g_free(smiley->filename); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
73 g_free(smiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
74 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
75 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
76 /****************************************************************************** |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
77 * GtkIMHtmlSmileys stuff |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
78 *****************************************************************************/ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
79 static void add_gtkimhtml_to_list(GtkIMHtmlSmiley *gtksmiley) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
80 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
81 gtk_smileys = g_slist_prepend(gtk_smileys, gtksmiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
82 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
83 purple_debug_info("gtksmiley", "adding %s to gtk_smileys\n", gtksmiley->smile); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
84 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
85 |
22881
d1bcb54920f8
Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22880
diff
changeset
|
86 /* Perhaps this should be in gtkimhtml.c instead. -- sad */ |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
87 static GtkIMHtmlSmiley *smiley_purple_to_gtkimhtml(PurpleSmiley *smiley) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
88 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
89 GtkIMHtmlSmiley *gtksmiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
90 gchar *filename; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
91 const gchar *file; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
92 |
22880
2ab289f312d0
Hide PurpleSmiley internals.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22878
diff
changeset
|
93 file = purple_imgstore_get_filename(purple_smiley_get_stored_image(smiley)); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
94 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
95 filename = g_build_filename(purple_smileys_get_storing_dir(),file, NULL); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
96 |
22889
019052a807a3
Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22883
diff
changeset
|
97 gtksmiley = gtk_imhtml_smiley_create(filename, purple_smiley_get_shortcut(smiley), |
019052a807a3
Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22883
diff
changeset
|
98 FALSE, GTK_IMHTML_SMILEY_CUSTOM); |
019052a807a3
Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22883
diff
changeset
|
99 g_free(filename); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
100 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
101 return gtksmiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
102 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
103 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
104 void pidgin_smiley_add_to_list(PurpleSmiley *smiley) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
105 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
106 GtkIMHtmlSmiley *gtksmiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
107 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
108 gtksmiley = smiley_purple_to_gtkimhtml(smiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
109 add_gtkimhtml_to_list(gtksmiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
110 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
111 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
112 void pidgin_smiley_del_from_list(PurpleSmiley *smiley) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
113 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
114 GSList *list = NULL; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
115 GtkIMHtmlSmiley *gtksmiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
116 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
117 if (gtk_smileys == NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
118 return; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
119 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
120 list = gtk_smileys; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
121 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
122 for (; list; list = list->next) { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
123 gtksmiley = (GtkIMHtmlSmiley*)list->data; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
124 |
22880
2ab289f312d0
Hide PurpleSmiley internals.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22878
diff
changeset
|
125 if (strcmp(gtksmiley->smile, purple_smiley_get_shortcut(smiley))) |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
126 continue; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
127 |
22889
019052a807a3
Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22883
diff
changeset
|
128 gtk_imhtml_smiley_destroy(gtksmiley); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
129 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
130 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
131 |
22878
db31bbdf355b
Make sure deleting one smiley doesn't accidentally delete a few others.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22874
diff
changeset
|
132 if (list) |
db31bbdf355b
Make sure deleting one smiley doesn't accidentally delete a few others.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22874
diff
changeset
|
133 gtk_smileys = g_slist_delete_link(gtk_smileys, list); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
134 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
135 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
136 void pidgin_smileys_init(void) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
137 { |
22881
d1bcb54920f8
Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22880
diff
changeset
|
138 GList *smileys; |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
139 PurpleSmiley *smiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
140 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
141 if (gtk_smileys != NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
142 return; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
143 |
22881
d1bcb54920f8
Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22880
diff
changeset
|
144 smileys = purple_smileys_get_all(); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
145 |
22881
d1bcb54920f8
Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22880
diff
changeset
|
146 for (; smileys; smileys = g_list_delete_link(smileys, smileys)) { |
d1bcb54920f8
Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22880
diff
changeset
|
147 smiley = (PurpleSmiley*)smileys->data; |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
148 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
149 pidgin_smiley_add_to_list(smiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
150 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
151 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
152 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
153 void pidgin_smileys_uninit(void) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
154 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
155 GSList *list; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
156 GtkIMHtmlSmiley *gtksmiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
157 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
158 list = gtk_smileys; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
159 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
160 if (list == NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
161 return; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
162 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
163 for (; list; list = g_slist_delete_link(list, list)) { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
164 gtksmiley = (GtkIMHtmlSmiley*)list->data; |
22889
019052a807a3
Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22883
diff
changeset
|
165 gtk_imhtml_smiley_destroy(gtksmiley); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
166 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
167 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
168 gtk_smileys = NULL; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
169 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
170 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
171 GSList *pidgin_smileys_get_all(void) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
172 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
173 return gtk_smileys; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
174 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
175 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
176 /****************************************************************************** |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
177 * Manager stuff |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
178 *****************************************************************************/ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
179 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
180 static void refresh_list(void); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
181 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
182 /****************************************************************************** |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
183 * The Add dialog |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
184 ******************************************************************************/ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
185 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
186 static void do_add(GtkWidget *widget, PidginSmiley *s) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
187 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
188 const gchar *entry; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
189 PurpleSmiley *emoticon; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
190 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
191 entry = gtk_entry_get_text(GTK_ENTRY(s->smile)); |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
192 emoticon = purple_smileys_find_by_shortcut(entry); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
193 if (emoticon && emoticon != s->smiley) { |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
194 purple_notify_error(s->parent, _("Custom Smiley"), |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
195 _("Duplicate Shortcut"), |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
196 _("A custom smiley for the selected shortcut already exists. Please specify a different shortcut.")); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
197 return; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
198 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
199 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
200 if (s->smiley) { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
201 if (s->filename) { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
202 gchar *data = NULL; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
203 size_t len; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
204 GError *err = NULL; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
205 |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
206 if (!g_file_get_contents(s->filename, &data, &len, &err)) { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
207 purple_debug_error("gtksmiley", "Error reading %s: %s\n", |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
208 s->filename, err->message); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
209 g_error_free(err); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
210 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
211 return; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
212 } |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
213 purple_smiley_set_data(s->smiley, (guchar*)data, len, FALSE); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
214 } |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
215 purple_smiley_set_shortcut(s->smiley, entry); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
216 } else { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
217 if ((s->filename == NULL || *entry == 0)) { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
218 purple_notify_error(s->parent, _("Custom Smiley"), |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
219 _("More Data needed"), |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
220 s->filename ? _("Please provide a shortcut to associate with the smiley.") |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
221 : _("Please select an image for the smiley.")); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
222 return; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
223 } |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
224 |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
225 purple_debug_info("gtksmiley", "adding a new smiley\n"); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
226 emoticon = purple_smiley_new_from_file(entry, s->filename); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
227 purple_smileys_add(emoticon); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
228 if (gtk_smileys != NULL) |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
229 pidgin_smiley_add_to_list(emoticon); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
230 } |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
231 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
232 if (smiley_manager != NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
233 refresh_list(); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
234 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
235 gtk_widget_destroy(s->parent); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
236 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
237 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
238 static void do_add_select_cb(GtkWidget *widget, gint resp, PidginSmiley *s) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
239 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
240 switch (resp) { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
241 case GTK_RESPONSE_ACCEPT: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
242 do_add(widget, s); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
243 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
244 case GTK_RESPONSE_DELETE_EVENT: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
245 case GTK_RESPONSE_CANCEL: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
246 gtk_widget_destroy(s->parent); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
247 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
248 default: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
249 purple_debug_error("gtksmiley", "no valid response\n"); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
250 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
251 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
252 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
253 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
254 static void do_add_file_cb(const char *filename, gpointer data) |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
255 { |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
256 PidginSmiley *s = data; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
257 GdkPixbuf *pixbuf; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
258 |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
259 if (!filename) |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
260 return; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
261 |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
262 g_free(s->filename); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
263 s->filename = g_strdup(filename); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
264 pixbuf = gdk_pixbuf_new_from_file_at_scale(filename, 64, 64, FALSE, NULL); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
265 gtk_image_set_from_pixbuf(GTK_IMAGE(s->smiley_image), pixbuf); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
266 if (pixbuf) |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
267 gdk_pixbuf_unref(pixbuf); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
268 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
269 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
270 static void |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
271 open_image_selector(GtkWidget *widget, PidginSmiley *psmiley) |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
272 { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
273 GtkWidget *file_chooser; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
274 file_chooser = pidgin_buddy_icon_chooser_new(GTK_WINDOW(gtk_widget_get_toplevel(widget)), |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
275 do_add_file_cb, psmiley); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
276 gtk_window_set_title(GTK_WINDOW(file_chooser), _("Custom Smiley")); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
277 gtk_window_set_role(GTK_WINDOW(file_chooser), "file-selector-custom-smiley"); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
278 gtk_widget_show_all(file_chooser); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
279 } |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
280 |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
281 void pidgin_smiley_edit(GtkWidget *widget, PurpleSmiley *smiley) |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
282 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
283 GtkWidget *vbox; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
284 GtkWidget *hbox; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
285 GtkWidget *label; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
286 GtkWidget *filech; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
287 GtkWidget *window; |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
288 GdkPixbuf *pixbuf = NULL; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
289 PurpleStoredImage *stored_img; |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
290 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
291 PidginSmiley *s = g_new0(PidginSmiley, 1); |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
292 s->smiley = smiley; |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
293 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
294 window = gtk_dialog_new_with_buttons(smiley ? _("Edit Smiley") : _("Add Smiley"), |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
295 GTK_WINDOW(widget), |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
296 GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR, |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
297 smiley ? GTK_STOCK_SAVE : GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT, |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
298 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
299 NULL); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
300 s->parent = window; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
301 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
302 gtk_container_set_border_width(GTK_CONTAINER(window), PIDGIN_HIG_BORDER); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
303 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
304 g_signal_connect(window, "response", G_CALLBACK(do_add_select_cb), s); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
305 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
306 /* The vbox */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
307 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
308 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), vbox); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
309 gtk_widget_show(vbox); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
310 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
311 /* The hbox */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
312 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
313 gtk_container_add(GTK_CONTAINER(GTK_VBOX(vbox)), hbox); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
314 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
315 label = gtk_label_new_with_mnemonic(_("Smiley _Image")); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
316 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
317 gtk_widget_show(label); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
318 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
319 filech = gtk_button_new(); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
320 gtk_box_pack_end(GTK_BOX(hbox), filech, FALSE, FALSE, 0); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
321 pidgin_set_accessible_label(filech, label); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
322 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
323 s->smiley_image = gtk_image_new(); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
324 gtk_container_add(GTK_CONTAINER(filech), s->smiley_image); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
325 if (smiley && (stored_img = purple_smiley_get_stored_image(smiley))) { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
326 pixbuf = pidgin_pixbuf_from_imgstore(stored_img); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
327 purple_imgstore_unref(stored_img); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
328 } else { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
329 GtkIconSize icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_SMALL); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
330 pixbuf = gtk_widget_render_icon(window, PIDGIN_STOCK_TOOLBAR_SELECT_AVATAR, |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
331 icon_size, "PidginSmiley"); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
332 } |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
333 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
334 gtk_image_set_from_pixbuf(GTK_IMAGE(s->smiley_image), pixbuf); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
335 if (pixbuf != NULL) |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
336 g_object_unref(G_OBJECT(pixbuf)); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
337 g_signal_connect(G_OBJECT(filech), "clicked", G_CALLBACK(open_image_selector), s); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
338 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
339 gtk_widget_show_all(hbox); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
340 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
341 /* info */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
342 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BORDER); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
343 gtk_container_add(GTK_CONTAINER(GTK_VBOX(vbox)),hbox); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
344 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
345 /* Smiley shortcut */ |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
346 label = gtk_label_new_with_mnemonic(_("Smiley S_hortcut")); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
347 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
348 gtk_widget_show(label); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
349 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
350 s->smile = gtk_entry_new(); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
351 gtk_entry_set_activates_default(GTK_ENTRY(s->smile), TRUE); |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
352 pidgin_set_accessible_label(s->smile, label); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
353 if (smiley) |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
354 gtk_entry_set_text(GTK_ENTRY(s->smile), purple_smiley_get_shortcut(smiley)); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
355 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
356 g_signal_connect(s->smile, "activate", G_CALLBACK(do_add), s); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
357 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
358 gtk_box_pack_end(GTK_BOX(hbox), s->smile, FALSE, FALSE, 0); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
359 gtk_widget_show(s->smile); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
360 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
361 gtk_widget_show(hbox); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
362 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
363 gtk_widget_show(GTK_WIDGET(window)); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
364 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(pidgin_smiley_destroy), s); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
365 g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(purple_notify_close_with_handle), s); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
366 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
367 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
368 /****************************************************************************** |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
369 * Delete smiley |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
370 *****************************************************************************/ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
371 static void delete_foreach(GtkTreeModel *model, GtkTreePath *path, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
372 GtkTreeIter *iter, gpointer data) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
373 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
374 PurpleSmiley *smiley; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
375 char *shortcut; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
376 SmileyManager *dialog; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
377 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
378 dialog = (SmileyManager*)data; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
379 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
380 gtk_tree_model_get(model, iter, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
381 SHORTCUT, &shortcut, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
382 -1); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
383 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
384 purple_debug_info("gtksmiley", "delete_foreach shortcut = %s\n", shortcut); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
385 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
386 smiley = purple_smileys_find_by_shortcut(shortcut); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
387 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
388 if(smiley == NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
389 purple_debug_error("gtksmiley", "%s not found\n", shortcut); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
390 else { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
391 pidgin_smiley_del_from_list(smiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
392 purple_smiley_delete(smiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
393 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
394 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
395 g_free(shortcut); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
396 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
397 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
398 static void smiley_delete(SmileyManager *dialog) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
399 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
400 GtkTreeSelection *selection; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
401 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
402 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
403 gtk_tree_selection_selected_foreach(selection, delete_foreach, dialog); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
404 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
405 /****************************************************************************** |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
406 * The Smiley Manager |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
407 *****************************************************************************/ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
408 static void add_columns(GtkWidget *treeview, SmileyManager *dialog) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
409 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
410 GtkCellRenderer *rend; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
411 GtkTreeViewColumn *column; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
412 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
413 /* Icon */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
414 column = gtk_tree_view_column_new(); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
415 gtk_tree_view_column_set_title(column, _("Smiley")); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
416 gtk_tree_view_column_set_resizable(column, TRUE); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
417 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
418 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
419 rend = gtk_cell_renderer_pixbuf_new(); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
420 gtk_tree_view_column_pack_start(column, rend, FALSE); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
421 gtk_tree_view_column_add_attribute(column, rend, "pixbuf", ICON); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
422 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
423 /* Shortcut */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
424 column = gtk_tree_view_column_new(); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
425 gtk_tree_view_column_set_title(column, _("Shortcut")); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
426 gtk_tree_view_column_set_resizable(column, TRUE); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
427 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
428 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
429 rend = gtk_cell_renderer_text_new(); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
430 gtk_tree_view_column_pack_start(column, rend, TRUE); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
431 gtk_tree_view_column_add_attribute(column, rend, "text", SHORTCUT); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
432 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
433 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
434 static void store_smiley_add(PurpleSmiley *smiley) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
435 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
436 GtkTreeIter iter; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
437 PurpleStoredImage *img; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
438 GdkPixbuf *sized_smiley = NULL; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
439 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
440 if (smiley_manager == NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
441 return; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
442 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
443 img = purple_smiley_get_stored_image(smiley); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
444 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
445 if (img != NULL) { |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
446 GdkPixbuf *smiley_image = pidgin_pixbuf_from_imgstore(img); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
447 purple_imgstore_unref(img); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
448 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
449 if (smiley_image != NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
450 sized_smiley = gdk_pixbuf_scale_simple(smiley_image, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
451 22, 22, GDK_INTERP_HYPER); |
23132
9c0a47402f7a
Unref some gdkpixbufs to plug some memory leaks. References #1187.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23130
diff
changeset
|
452 g_object_unref(G_OBJECT(smiley_image)); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
453 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
454 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
455 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
456 gtk_list_store_append(smiley_manager->model, &iter); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
457 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
458 gtk_list_store_set(smiley_manager->model, &iter, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
459 ICON, sized_smiley, |
22880
2ab289f312d0
Hide PurpleSmiley internals.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22878
diff
changeset
|
460 SHORTCUT, purple_smiley_get_shortcut(smiley), |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
461 SMILEY, smiley, |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
462 -1); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
463 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
464 if (sized_smiley != NULL) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
465 g_object_unref(G_OBJECT(sized_smiley)); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
466 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
467 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
468 static void populate_smiley_list(SmileyManager *dialog) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
469 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
470 GList *list; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
471 PurpleSmiley *emoticon; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
472 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
473 gtk_list_store_clear(dialog->model); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
474 |
22881
d1bcb54920f8
Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22880
diff
changeset
|
475 for(list = purple_smileys_get_all(); list != NULL; |
d1bcb54920f8
Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22880
diff
changeset
|
476 list = g_list_delete_link(list, list)) { |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
477 emoticon = (PurpleSmiley*)list->data; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
478 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
479 store_smiley_add(emoticon); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
480 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
481 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
482 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
483 static void smile_selected_cb(GtkTreeSelection *sel, SmileyManager *dialog) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
484 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
485 gint selected; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
486 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
487 selected = gtk_tree_selection_count_selected_rows(sel); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
488 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
489 gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog->window), |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
490 GTK_RESPONSE_NO, selected > 0); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
491 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
492 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
493 static void smiley_edit_cb(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data) |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
494 { |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
495 GtkTreeIter iter; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
496 SmileyManager *dialog = data; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
497 PurpleSmiley *smiley = NULL; |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
498 |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
499 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
500 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, SMILEY, &smiley, -1); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
501 pidgin_smiley_edit(gtk_widget_get_toplevel(GTK_WIDGET(treeview)), smiley); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
502 } |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
503 |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
504 static GtkWidget *smiley_list_create(SmileyManager *dialog) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
505 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
506 GtkWidget *sw; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
507 GtkWidget *treeview; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
508 GtkTreeSelection *sel; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
509 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
510 sw = gtk_scrolled_window_new(NULL, NULL); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
511 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
512 GTK_POLICY_AUTOMATIC, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
513 GTK_POLICY_AUTOMATIC); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
514 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
515 GTK_SHADOW_IN); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
516 gtk_widget_show(sw); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
517 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
518 /* Create the list model */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
519 dialog->model = gtk_list_store_new(N_COL, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
520 GDK_TYPE_PIXBUF, /* ICON */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
521 G_TYPE_STRING, /* SHORTCUT */ |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
522 G_TYPE_POINTER /* SMILEY */ |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
523 ); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
524 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
525 /* the actual treeview */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
526 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
527 dialog->treeview = treeview; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
528 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); |
23130
a3b4a9061552
Fix a small leak. And sort the smileys alphabetically, as suggested by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23129
diff
changeset
|
529 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(dialog->model), SHORTCUT, GTK_SORT_ASCENDING); |
a3b4a9061552
Fix a small leak. And sort the smileys alphabetically, as suggested by
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23129
diff
changeset
|
530 g_object_unref(G_OBJECT(dialog->model)); |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
531 |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
532 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
533 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
534 gtk_container_add(GTK_CONTAINER(sw), treeview); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
535 |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
536 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smile_selected_cb), dialog); |
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
537 g_signal_connect(G_OBJECT(treeview), "row_activated", G_CALLBACK(smiley_edit_cb), dialog); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
538 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
539 gtk_widget_show(treeview); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
540 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
541 add_columns(treeview, dialog); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
542 populate_smiley_list(dialog); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
543 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
544 return sw; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
545 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
546 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
547 static void refresh_list() |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
548 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
549 populate_smiley_list(smiley_manager); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
550 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
551 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
552 static void smiley_manager_select_cb(GtkWidget *widget, gint resp, SmileyManager *dialog) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
553 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
554 switch (resp) { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
555 case GTK_RESPONSE_YES: |
23129
b70b4108799e
Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22889
diff
changeset
|
556 pidgin_smiley_edit(dialog->window, NULL); |
22874
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
557 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
558 case GTK_RESPONSE_NO: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
559 smiley_delete(dialog); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
560 refresh_list(); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
561 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
562 case GTK_RESPONSE_DELETE_EVENT: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
563 case GTK_RESPONSE_CLOSE: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
564 gtk_widget_destroy(dialog->window); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
565 g_free(smiley_manager); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
566 smiley_manager = NULL; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
567 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
568 default: |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
569 purple_debug_info("gtksmiley", "No valid selection\n"); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
570 break; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
571 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
572 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
573 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
574 void pidgin_smiley_manager_show(void) |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
575 { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
576 SmileyManager *dialog; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
577 GtkWidget *win; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
578 GtkWidget *sw; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
579 GtkWidget *vbox; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
580 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
581 if (smiley_manager) { |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
582 gtk_window_present(GTK_WINDOW(smiley_manager->window)); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
583 return; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
584 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
585 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
586 dialog = g_new0(SmileyManager, 1); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
587 smiley_manager = dialog; |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
588 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
589 dialog->window = win = gtk_dialog_new_with_buttons( |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
590 _("Custom Smiley Manager"), |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
591 NULL, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
592 GTK_DIALOG_DESTROY_WITH_PARENT, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
593 GTK_STOCK_ADD, GTK_RESPONSE_YES, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
594 GTK_STOCK_DELETE, GTK_RESPONSE_NO, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
595 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
596 NULL); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
597 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
598 gtk_window_set_default_size(GTK_WINDOW(win), 50, 400); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
599 gtk_container_set_border_width(GTK_CONTAINER(win),PIDGIN_HIG_BORDER); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
600 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
601 g_signal_connect(win, "response", G_CALLBACK(smiley_manager_select_cb), |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
602 dialog); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
603 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
604 /* The vbox */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
605 vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
606 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(win)->vbox), vbox); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
607 gtk_widget_show(vbox); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
608 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
609 /* get the scrolled window with all stuff */ |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
610 sw = smiley_list_create(dialog); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
611 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
612 gtk_widget_show(sw); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
613 |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
614 gtk_widget_show(win); |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
615 } |
02eda4bd2b22
Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
616 |