annotate pidgin/gtksmiley.c @ 28340:ea3e672e356b

Split the descriptions of our --help text up into multiple smaller strings. This also doesn't allow translators to translate the parameters, since that would break them. It seems like it would be good if those strings were translatable, too, but that's a bigger change than I'm willing to make right now. This also eliminates the two almost identical blocks of text we had in order to not show the --display option in Windows.
author Mark Doliner <mark@kingant.net>
date Sun, 09 Aug 2009 23:11:59 +0000
parents 9aea1eb8aa66
children a6cfb7bf8c88
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
24919
fe5179d40a51 Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <pidgin@unreliablesource.net>
parents: 24529
diff changeset
40 #define PIDGIN_RESPONSE_MODIFY 1000
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
41
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
42 struct _PidginSmiley
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
43 {
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
44 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
45 GtkWidget *parent;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
46 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
47 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
48 gchar *filename;
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
49 GdkPixbuf *custom_pixbuf;
27120
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
50 gpointer data; /** @since 2.6.0 */
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
51 gsize datasize; /** @since 2.6.0 */
27314
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
52 gint entry_len; /** @since 2.6.0 */
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
53 };
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
54
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
55 typedef struct
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 GtkWidget *window;
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 GtkWidget *treeview;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
60 GtkListStore *model;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
61 } SmileyManager;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
62
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
63 enum
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 ICON,
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
66 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
67 SMILEY,
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
68 N_COL
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
69 };
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 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
72 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
73
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
74 static void
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
75 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
76 {
27370
9aea1eb8aa66 Make the custom smiley edit windows single-instance. That is, if you click
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27316
diff changeset
77 g_object_set_data(G_OBJECT(smiley->smiley), "edit-dialog", NULL);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
78 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
79 g_free(smiley->filename);
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
80 if (smiley->custom_pixbuf)
26705
a3f7ade9e45b Use g_object_ref/unref instead of the deprecated versions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25406
diff changeset
81 g_object_unref(G_OBJECT(smiley->custom_pixbuf));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
82 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
83 }
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 /******************************************************************************
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
86 * GtkIMHtmlSmileys stuff
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
87 *****************************************************************************/
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
88 /* Perhaps these should be in gtkimhtml.c instead. -- sadrul */
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
89 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
90 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
91 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
92
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
93 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
94 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
95
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
96 static void
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
97 shortcut_changed_cb(PurpleSmiley *smiley, gpointer dontcare, GtkIMHtmlSmiley *gtksmiley)
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
98 {
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
99 g_free(gtksmiley->smile);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
100 gtksmiley->smile = g_strdup(purple_smiley_get_shortcut(smiley));
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
101 }
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
102
23235
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
103 static void
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
104 image_changed_cb(PurpleSmiley *smiley, gpointer dontcare, GtkIMHtmlSmiley *gtksmiley)
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
105 {
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
106 const char *file;
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
107
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
108 g_free(gtksmiley->file);
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
109
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
110 file = purple_imgstore_get_filename(purple_smiley_get_stored_image(smiley));
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
111 gtksmiley->file = g_build_filename(purple_smileys_get_storing_dir(), file, NULL);
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
112 gtk_imhtml_smiley_reload(gtksmiley);
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
113 }
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
114
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
115 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
116 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
117 GtkIMHtmlSmiley *gtksmiley;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
118 gchar *filename;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
119 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
120
22880
2ab289f312d0 Hide PurpleSmiley internals.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22878
diff changeset
121 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
122
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
123 filename = g_build_filename(purple_smileys_get_storing_dir(), file, NULL);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
124
22889
019052a807a3 Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22883
diff changeset
125 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
126 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
127 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
128
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
129 /* Make sure the shortcut for the GtkIMHtmlSmiley is updated with the PurpleSmiley */
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
130 g_signal_connect(G_OBJECT(smiley), "notify::shortcut",
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
131 G_CALLBACK(shortcut_changed_cb), gtksmiley);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
132
23235
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
133 /* And update the pixbuf too when the image is changed */
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
134 g_signal_connect(G_OBJECT(smiley), "notify::image",
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
135 G_CALLBACK(image_changed_cb), gtksmiley);
bfbd2b038135 Update the smiley in the smiley dialog if the imagefile is changed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23185
diff changeset
136
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
137 return gtksmiley;
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
138 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
139
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
140 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
141 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
142 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
143 GtkIMHtmlSmiley *gtksmiley;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
144
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
145 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
146 return;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
147
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
148 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
149
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
150 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
151 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
152
22880
2ab289f312d0 Hide PurpleSmiley internals.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22878
diff changeset
153 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
154 continue;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
155
22889
019052a807a3 Introduce API for GtkIMHtmlSmiley. Use this to prevent leaking remote custom emoticons.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22883
diff changeset
156 gtk_imhtml_smiley_destroy(gtksmiley);
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
157 g_signal_handlers_disconnect_matched(G_OBJECT(smiley), G_SIGNAL_MATCH_DATA,
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
158 0, 0, NULL, NULL, gtksmiley);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
159 break;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
160 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
161
22878
db31bbdf355b Make sure deleting one smiley doesn't accidentally delete a few others.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22874
diff changeset
162 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
163 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
164 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
165
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
166 void pidgin_smiley_add_to_list(PurpleSmiley *smiley)
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
167 {
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
168 GtkIMHtmlSmiley *gtksmiley;
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
169
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
170 gtksmiley = smiley_purple_to_gtkimhtml(smiley);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
171 add_gtkimhtml_to_list(gtksmiley);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
172 g_signal_connect(G_OBJECT(smiley), "destroy", G_CALLBACK(pidgin_smiley_del_from_list), NULL);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
173 }
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
174
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
175 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
176 {
22881
d1bcb54920f8 Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22880
diff changeset
177 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
178 PurpleSmiley *smiley;
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 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
181 return;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
182
22881
d1bcb54920f8 Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22880
diff changeset
183 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
184
22881
d1bcb54920f8 Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22880
diff changeset
185 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
186 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
187
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
188 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
189 }
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
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
192 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
193 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
194 GSList *list;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
195 GtkIMHtmlSmiley *gtksmiley;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
196
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
197 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
198
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
199 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
200 return;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
201
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
202 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
203 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
204 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
205 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
206
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
207 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
208 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
209
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
210 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
211 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
212 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
213 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
214
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
215 /******************************************************************************
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
216 * Manager stuff
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
217 *****************************************************************************/
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
218
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
219 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
220
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
221 /******************************************************************************
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
222 * 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
223 ******************************************************************************/
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
224
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
225 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
226 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
227 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
228 PurpleSmiley *emoticon;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
229
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
230 entry = gtk_entry_get_text(GTK_ENTRY(s->smile));
23889
64a4069e504e Do not allow setting empty shortcut for a custom smiley.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23832
diff changeset
231
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
232 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
233 if (emoticon && emoticon != s->smiley) {
25405
97ae9f8b63ab Use the shortcut in the error message to give people more context
Mark Doliner <mark@kingant.net>
parents: 25404
diff changeset
234 gchar *msg;
97ae9f8b63ab Use the shortcut in the error message to give people more context
Mark Doliner <mark@kingant.net>
parents: 25404
diff changeset
235 msg = g_strdup_printf(_("A custom smiley for '%s' already exists. "
97ae9f8b63ab Use the shortcut in the error message to give people more context
Mark Doliner <mark@kingant.net>
parents: 25404
diff changeset
236 "Please use a different shortcut."), entry);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
237 purple_notify_error(s->parent, _("Custom Smiley"),
25405
97ae9f8b63ab Use the shortcut in the error message to give people more context
Mark Doliner <mark@kingant.net>
parents: 25404
diff changeset
238 _("Duplicate Shortcut"), msg);
97ae9f8b63ab Use the shortcut in the error message to give people more context
Mark Doliner <mark@kingant.net>
parents: 25404
diff changeset
239 g_free(msg);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
240 return;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
241 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
242
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
243 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
244 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
245 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
246 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
247 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
248
b70b4108799e Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22889
diff changeset
249 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
250 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
251 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
252 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
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 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
255 }
23185
013ec6fabd3f Always store custom smileys with hashed filenames. Closes #5913.
Marcus Lundblad <ml@update.uu.se>
parents: 23163
diff changeset
256 purple_smiley_set_data(s->smiley, (guchar*)data, len);
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
257 }
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 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
259 } 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
260 purple_debug_info("gtksmiley", "adding a new smiley\n");
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
261
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
262 if (s->filename == NULL) {
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
263 gchar *buffer = NULL;
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
264 gsize size = 0;
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
265 gchar *filename;
24529
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
266 const gchar *dirname = purple_smileys_get_storing_dir();
25403
f62c5b302b91 Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents: 24919
diff changeset
267
24529
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
268 /* since this may be called before purple_smiley_new_* has ever been
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
269 called, we create the storing dir, if it doesn't exist yet, to be
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
270 able to save the pixbuf before adding the smiley */
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
271 if (!g_file_test(dirname, G_FILE_TEST_IS_DIR)) {
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
272 purple_debug_info("gtksmiley", "Creating smileys directory.\n");
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
273
24529
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
274 if (g_mkdir(dirname, S_IRUSR | S_IWUSR | S_IXUSR) < 0) {
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
275 purple_debug_error("gtksmiley",
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
276 "Unable to create directory %s: %s\n",
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
277 dirname, g_strerror(errno));
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
278 }
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
279 }
25403
f62c5b302b91 Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents: 24919
diff changeset
280
27120
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
281 if (s->data && s->datasize) {
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
282 /* Cached data & size in memory */
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
283 buffer = s->data;
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
284 size = s->datasize;
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
285 }
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
286 else {
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
287 /* Get the smiley from the custom pixbuf */
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
288 gdk_pixbuf_save_to_buffer(s->custom_pixbuf, &buffer, &size,
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
289 "png", NULL, "compression", "9", NULL, NULL);
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
290 }
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
291 filename = purple_util_get_image_filename(buffer, size);
24529
c31be282935d When adding custom smiley without a previous filename (which is the case when
Marcus Lundblad <ml@update.uu.se>
parents: 23988
diff changeset
292 s->filename = g_build_filename(dirname, filename, NULL);
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
293 purple_util_write_data_to_file_absolute(s->filename, buffer, size);
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
294 g_free(filename);
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
295 g_free(buffer);
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
296 }
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 emoticon = purple_smiley_new_from_file(entry, s->filename);
23682
21e591b55339 at least don't crash when we can't read whatever we are reading
Ka-Hing Cheung <khc@hxbc.us>
parents: 23235
diff changeset
298 if (emoticon)
21e591b55339 at least don't crash when we can't read whatever we are reading
Ka-Hing Cheung <khc@hxbc.us>
parents: 23235
diff changeset
299 pidgin_smiley_add_to_list(emoticon);
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
300 }
22874
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 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
303 refresh_list();
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
304
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
305 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
306 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
307
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
308 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
309 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
310 switch (resp) {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
311 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
312 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
313 break;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
314 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
315 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
316 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
317 break;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
318 default:
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
319 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
320 break;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
321 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
322 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
323
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
324 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
325 {
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
326 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
327 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
328
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 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
330 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
331
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 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
333 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
334 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
335 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
336 if (pixbuf)
26712
38a5df43d525 Oops, I must have been tired. I only replaced the first occurrence of these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26705
diff changeset
337 g_object_unref(G_OBJECT(pixbuf));
23140
b37b9e53a31b Some little usability changes in the custom smiley dialog.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23136
diff changeset
338 gtk_widget_grab_focus(s->smile);
27314
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
339
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
340 if (s->entry_len > 0)
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
341 gtk_dialog_set_response_sensitive(GTK_DIALOG(s->parent), GTK_RESPONSE_ACCEPT, TRUE);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
342 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
343
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
344 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
345 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
346 {
b70b4108799e Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22889
diff changeset
347 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
348 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
349 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
350 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
351 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
352 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
353 }
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
27314
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
355 static void
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
356 smiley_name_insert_cb(GtkEditable *editable,
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
357 gchar *new_text,
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
358 gint new_text_length,
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
359 gint *position,
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
360 gpointer user_data)
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
361 {
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
362 PidginSmiley *s = user_data;
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
363 if (new_text_length != -1)
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
364 s->entry_len += new_text_length;
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
365 else
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
366 s->entry_len += strlen(new_text);
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
367
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
368 if (s->filename != NULL || s->custom_pixbuf != NULL || s->smiley != NULL)
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
369 gtk_dialog_set_response_sensitive(GTK_DIALOG(s->parent), GTK_RESPONSE_ACCEPT, TRUE);
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
370 }
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
371
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
372 static void
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
373 smiley_name_delete_cb(GtkEditable *editable,
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
374 gint start_pos,
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
375 gint end_pos,
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
376 gpointer user_data)
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
377 {
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
378 PidginSmiley *s = user_data;
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
379 s->entry_len -= end_pos - start_pos;
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
380
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
381 if (s->entry_len <= 0)
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
382 gtk_dialog_set_response_sensitive(GTK_DIALOG(s->parent), GTK_RESPONSE_ACCEPT, FALSE);
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
383 }
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
384
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
385 PidginSmiley *
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
386 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
387 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
388 GtkWidget *vbox;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
389 GtkWidget *hbox;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
390 GtkWidget *label;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
391 GtkWidget *filech;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
392 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
393 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
394 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
395
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
396 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
397 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
398
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
399 window = gtk_dialog_new_with_buttons(smiley ? _("Edit Smiley") : _("Add Smiley"),
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
400 widget ? GTK_WINDOW(widget) : NULL,
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
401 GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
23889
64a4069e504e Do not allow setting empty shortcut for a custom smiley.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23832
diff changeset
402 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
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
403 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
404 NULL);
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
405 s->parent = window;
27370
9aea1eb8aa66 Make the custom smiley edit windows single-instance. That is, if you click
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27316
diff changeset
406 g_object_set_data(G_OBJECT(smiley), "edit-dialog", window);
22874
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 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
409
27315
0af18d18de0d Set the correct default response in the smiley edit window so it gets the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27314
diff changeset
410 gtk_dialog_set_default_response(GTK_DIALOG(window), 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
411 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
412
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
413 /* The vbox */
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
414 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
415 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
416 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
417
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
418 /* The hbox */
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
419 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
420 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
421
25403
f62c5b302b91 Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents: 24919
diff changeset
422 label = gtk_label_new_with_mnemonic(_("_Image:"));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
423 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
424 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
425
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
426 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
427 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
428 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
429
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
430 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
431 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
432 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
433 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
434 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
435 } 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
436 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
437 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
438 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
439 }
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
440
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
441 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
442 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
443 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
444 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
445
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 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
447
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
448 /* info */
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
449 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
450 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
451
25403
f62c5b302b91 Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents: 24919
diff changeset
452 /* Shortcut text */
f62c5b302b91 Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents: 24919
diff changeset
453 label = gtk_label_new_with_mnemonic(_("S_hortcut text:"));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
454 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
455 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
456
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
457 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
458 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
459 pidgin_set_accessible_label(s->smile, label);
27314
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
460 if (smiley) {
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
461 const char *shortcut = purple_smiley_get_shortcut(smiley);
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
462 gtk_entry_set_text(GTK_ENTRY(s->smile), shortcut);
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
463 s->entry_len = strlen(shortcut);
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
464 }
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
465 else
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
466 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_ACCEPT, FALSE);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
467
27314
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
468 /* gtk_entry_get_text_length is 2.14+, so we'll just keep track ourselves */
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
469 g_signal_connect(G_OBJECT(s->smile), "insert-text", G_CALLBACK(smiley_name_insert_cb), s);
5dcee348bc22 Automatically enable and disable the Add/Save button in the PidginSmiley
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27120
diff changeset
470 g_signal_connect(G_OBJECT(s->smile), "delete-text", G_CALLBACK(smiley_name_delete_cb), s);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
471
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
472 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
473 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
474
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
475 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
476
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
477 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
478 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
479 g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(purple_notify_close_with_handle), s);
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
480
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
481 return s;
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
482 }
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
483
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
484 void
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
485 pidgin_smiley_editor_set_shortcut(PidginSmiley *editor, const gchar *shortcut)
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
486 {
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
487 gtk_entry_set_text(GTK_ENTRY(editor->smile), shortcut ? shortcut : "");
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
488 }
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
489
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
490 void
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
491 pidgin_smiley_editor_set_image(PidginSmiley *editor, GdkPixbuf *image)
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
492 {
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
493 if (editor->custom_pixbuf)
26712
38a5df43d525 Oops, I must have been tired. I only replaced the first occurrence of these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26705
diff changeset
494 g_object_unref(G_OBJECT(editor->custom_pixbuf));
26705
a3f7ade9e45b Use g_object_ref/unref instead of the deprecated versions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25406
diff changeset
495 editor->custom_pixbuf = image ? g_object_ref(G_OBJECT(image)) : NULL;
27316
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
496 if (image) {
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
497 gtk_image_set_from_pixbuf(GTK_IMAGE(editor->smiley_image), image);
27316
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
498 if (editor->entry_len > 0)
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
499 gtk_dialog_set_response_sensitive(GTK_DIALOG(editor->parent),
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
500 GTK_RESPONSE_ACCEPT, TRUE);
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
501 }
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
502 else
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
503 gtk_dialog_set_response_sensitive(GTK_DIALOG(editor->parent),
13d0a8097a94 Fix the Add button sensitivity for the add smiley window when using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27315
diff changeset
504 GTK_RESPONSE_ACCEPT, FALSE);
22874
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
27120
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
507 void
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
508 pidgin_smiley_editor_set_data(PidginSmiley *editor, gpointer *data, gsize datasize)
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
509 {
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
510 editor->data = data;
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
511 editor->datasize = datasize;
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
512 }
804141095de5 Allow adding received animated custom smileys to locale custom smiley
Andrea Piccinelli <frasten@gmail.com>
parents: 26712
diff changeset
513
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
514 /******************************************************************************
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
515 * Delete smiley
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
516 *****************************************************************************/
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
517 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
518 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
519 {
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
520 PurpleSmiley *smiley = NULL;
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
521 SmileyManager *dialog;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
522
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
523 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
524
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
525 gtk_tree_model_get(model, iter,
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
526 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
527 -1);
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
528
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
529 if(smiley != NULL) {
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
530 g_object_unref(G_OBJECT(smiley));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
531 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
532 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
533 }
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
534 }
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
535
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
536 static void append_to_list(GtkTreeModel *model, GtkTreePath *path,
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
537 GtkTreeIter *iter, gpointer data)
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
538 {
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
539 GList **list = data;
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
540 *list = g_list_prepend(*list, gtk_tree_path_copy(path));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
541 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
542
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
543 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
544 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
545 GtkTreeSelection *selection;
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
546 GList *list = NULL;
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
547
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
548 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
549 gtk_tree_selection_selected_foreach(selection, delete_foreach, dialog);
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
550 gtk_tree_selection_selected_foreach(selection, append_to_list, &list);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
551
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
552 while (list) {
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
553 GtkTreeIter iter;
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
554 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, list->data))
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
555 gtk_list_store_remove(GTK_LIST_STORE(dialog->model), &iter);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
556 gtk_tree_path_free(list->data);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
557 list = g_list_delete_link(list, list);
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
558 }
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
559 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
560 /******************************************************************************
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
561 * 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
562 *****************************************************************************/
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
563 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
564 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
565 GtkCellRenderer *rend;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
566 GtkTreeViewColumn *column;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
567
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
568 /* Icon */
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
569 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
570 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
571 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
572 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
573
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
574 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
575 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
576 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
577
25403
f62c5b302b91 Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents: 24919
diff changeset
578 /* Shortcut Text */
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
579 column = gtk_tree_view_column_new();
25403
f62c5b302b91 Try to improve the wording in our custom smiley manager
Mark Doliner <mark@kingant.net>
parents: 24919
diff changeset
580 gtk_tree_view_column_set_title(column, _("Shortcut Text"));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
581 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
582 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
583
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
584 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
585 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
586 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
587 }
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 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
590 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
591 GtkTreeIter iter;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
592 PurpleStoredImage *img;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
593 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
594
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
595 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
596 return;
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 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
599
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
600 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
601 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
602 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
603
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
604 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
605 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
606 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
607 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
608 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
609
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
610
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
611 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
612
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
613 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
614 ICON, sized_smiley,
22880
2ab289f312d0 Hide PurpleSmiley internals.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22878
diff changeset
615 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
616 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
617 -1);
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
618
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
619 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
620 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
621 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
622
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
623 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
624 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
625 GList *list;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
626 PurpleSmiley *emoticon;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
627
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
628 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
629
22881
d1bcb54920f8 Fix a leak, and correct the docs.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22880
diff changeset
630 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
631 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
632 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
633
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
634 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
635 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
636 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
637
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
638 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
639 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
640 gint selected;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
641
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
642 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
643
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
644 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
645 GTK_RESPONSE_NO, selected > 0);
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
646
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
647 gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog->window),
24919
fe5179d40a51 Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <pidgin@unreliablesource.net>
parents: 24529
diff changeset
648 PIDGIN_RESPONSE_MODIFY, selected > 0);
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
649 }
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
650
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
651 static void
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
652 smiley_edit_iter(SmileyManager *dialog, GtkTreeIter *iter)
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
653 {
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
654 PurpleSmiley *smiley = NULL;
27370
9aea1eb8aa66 Make the custom smiley edit windows single-instance. That is, if you click
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27316
diff changeset
655 GtkWidget *window = NULL;
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
656 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), iter, SMILEY, &smiley, -1);
27370
9aea1eb8aa66 Make the custom smiley edit windows single-instance. That is, if you click
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27316
diff changeset
657 if ((window = g_object_get_data(G_OBJECT(smiley), "edit-dialog")) != NULL)
9aea1eb8aa66 Make the custom smiley edit windows single-instance. That is, if you click
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27316
diff changeset
658 gtk_window_present(GTK_WINDOW(window));
9aea1eb8aa66 Make the custom smiley edit windows single-instance. That is, if you click
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27316
diff changeset
659 else
9aea1eb8aa66 Make the custom smiley edit windows single-instance. That is, if you click
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27316
diff changeset
660 pidgin_smiley_edit(gtk_widget_get_toplevel(GTK_WIDGET(dialog->treeview)), smiley);
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
661 g_object_unref(G_OBJECT(smiley));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
662 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
663
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
664 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
665 {
b70b4108799e Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22889
diff changeset
666 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
667 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
668
b70b4108799e Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22889
diff changeset
669 gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path);
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
670 smiley_edit_iter(dialog, &iter);
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
671 }
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
672
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
673 static void
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
674 edit_selected_cb(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
675 {
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
676 smiley_edit_iter(data, iter);
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
677 }
b70b4108799e Patch from Masca to use the buddy-icon selector to select a custom
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22889
diff changeset
678
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
679 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
680 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
681 GtkWidget *sw;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
682 GtkWidget *treeview;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
683 GtkTreeSelection *sel;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
684
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
685 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
686 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
687 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
688 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
689 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
690 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
691 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
692
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
693 /* 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
694 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
695 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
696 G_TYPE_STRING, /* SHORTCUT */
23136
6c4f47b9d201 Make PurpleSmiley a GObject.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
697 G_TYPE_OBJECT /* SMILEY */
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
698 );
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
699
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
700 /* 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
701 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
702 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
703 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
704 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
705 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
706
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
707 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
708 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
709 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
710
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
711 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
712 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
713
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
714 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
715
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
716 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
717 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
718
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
719 return sw;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
720 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
721
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
722 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
723 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
724 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
725 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
726
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
727 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
728 {
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
729 GtkTreeSelection *selection = NULL;
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
730
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
731 switch (resp) {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
732 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
733 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
734 break;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
735 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
736 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
737 break;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
738 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
739 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
740 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
741 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
742 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
743 break;
24919
fe5179d40a51 Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <pidgin@unreliablesource.net>
parents: 24529
diff changeset
744 case PIDGIN_RESPONSE_MODIFY:
23143
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
745 /* Find smiley of selection... */
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
746 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
747 gtk_tree_selection_selected_foreach(selection, edit_selected_cb, dialog);
d0ee799828d1 Modified patch from malu to add an 'Edit' button in the smiley manager
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23140
diff changeset
748 break;
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
749 default:
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
750 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
751 break;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
752 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
753 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
754
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
755 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
756 {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
757 SmileyManager *dialog;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
758 GtkWidget *win;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
759 GtkWidget *sw;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
760 GtkWidget *vbox;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
761
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
762 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
763 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
764 return;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
765 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
766
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
767 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
768 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
769
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
770 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
771 _("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
772 NULL,
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
773 GTK_DIALOG_DESTROY_WITH_PARENT,
25404
5206fc64f226 Use PIDGIN_STOCK_ADD instead of GTK_STOCK_ADD so that the add button
Mark Doliner <mark@kingant.net>
parents: 25403
diff changeset
774 PIDGIN_STOCK_ADD, GTK_RESPONSE_YES,
24919
fe5179d40a51 Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <pidgin@unreliablesource.net>
parents: 24529
diff changeset
775 PIDGIN_STOCK_MODIFY, PIDGIN_RESPONSE_MODIFY,
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
776 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
777 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
778 NULL);
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
779
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
780 gtk_window_set_default_size(GTK_WINDOW(win), 50, 400);
23140
b37b9e53a31b Some little usability changes in the custom smiley dialog.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23136
diff changeset
781 gtk_window_set_role(GTK_WINDOW(win), "custom_smiley_manager");
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
782 gtk_container_set_border_width(GTK_CONTAINER(win),PIDGIN_HIG_BORDER);
23140
b37b9e53a31b Some little usability changes in the custom smiley dialog.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23136
diff changeset
783 gtk_dialog_set_response_sensitive(GTK_DIALOG(win), GTK_RESPONSE_NO, FALSE);
24919
fe5179d40a51 Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <pidgin@unreliablesource.net>
parents: 24529
diff changeset
784 gtk_dialog_set_response_sensitive(GTK_DIALOG(win),
fe5179d40a51 Make dialogs that double as add and save dialogs indicate the current action
Etan Reisner <pidgin@unreliablesource.net>
parents: 24529
diff changeset
785 PIDGIN_RESPONSE_MODIFY, FALSE);
23163
99ef50c8da91 Modified patch from malu to "Add context menu alternative to add received
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23143
diff changeset
786
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
787 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
788 dialog);
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
789
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
790 /* The vbox */
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
791 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
792 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
793 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
794
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
795 /* 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
796 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
797 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
798 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
799
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
800 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
801 }