annotate pidgin/gtkimhtmltoolbar.c @ 29049:23f6f80f45ed

Due to a server change, the friendly name on MSN was being changed to the first name of the user as supplied in their Address Book. Cache friendly names and use that at login, with a fallback to the AB name when none has been set. Fixes #10763.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 28 Nov 2009 23:13:55 +0000
parents 998c37689f7c
children 1929b7a0c2c8 45a94940c122
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /*
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 * @file gtkimhtmltoolbar.c GTK+ IMHtml Toolbar
16193
247e421c4fa6 Rename the Doxygen group from gtkui to pidgin.
Richard Laager <rlaager@wiktel.com>
parents: 15871
diff changeset
3 * @ingroup pidgin
20074
6bf32c9e15a7 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents: 20072
diff changeset
4 */
6bf32c9e15a7 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents: 20072
diff changeset
5
6bf32c9e15a7 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents: 20072
diff changeset
6 /* pidgin
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 *
15871
66dff3dfdea6 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@wiktel.com>
parents: 15823
diff changeset
8 * Pidgin is the legal property of its developers, whose names are too numerous
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * source distribution.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 * under the terms of the GNU General Public License as published by
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * (at your option) any later version.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 * GNU General Public License for more details.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
19680
44b4e8bd759b The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19586
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27 #include "internal.h"
15514
535f002e7b0f More pidgin changes
Sean Egan <seanegan@gmail.com>
parents: 15510
diff changeset
28 #include "pidgin.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 #include "imgstore.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 #include "notify.h"
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
32 #include "prefs.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 #include "request.h"
15822
84b0f9b23ede According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@gmail.com>
parents: 15786
diff changeset
34 #include "pidginstock.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 #include "util.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 #include "gtkdialogs.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38 #include "gtkimhtmltoolbar.h"
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
39 #include "gtksmiley.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
40 #include "gtkthemes.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
41 #include "gtkutils.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42
17510
8428beecff2f Close smiley dialog on GDK_Escape or button 1 press.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17260
diff changeset
43 #include <gdk/gdkkeysyms.h>
8428beecff2f Close smiley dialog on GDK_Escape or button 1 press.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17260
diff changeset
44
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
45 static GtkHBoxClass *parent_class = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
46
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
47 static void toggle_button_set_active_block(GtkToggleButton *button,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48 gboolean is_active,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
49 GtkIMHtmlToolbar *toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
50
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
52 static void do_bold(GtkWidget *bold, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
53 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54 g_return_if_fail(toolbar != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 gtk_imhtml_toggle_bold(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
56 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
57 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
59 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60 do_italic(GtkWidget *italic, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
61 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
62 g_return_if_fail(toolbar != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 gtk_imhtml_toggle_italic(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
64 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
66
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68 do_underline(GtkWidget *underline, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 g_return_if_fail(toolbar != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 gtk_imhtml_toggle_underline(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
73 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
75 static void
19469
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
76 do_strikethrough(GtkWidget *strikethrough, GtkIMHtmlToolbar *toolbar)
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
77 {
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
78 g_return_if_fail(toolbar != NULL);
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
79 gtk_imhtml_toggle_strike(GTK_IMHTML(toolbar->imhtml));
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
80 gtk_widget_grab_focus(toolbar->imhtml);
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
81 }
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
82
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
83 static void
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
84 do_small(GtkWidget *smalltb, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
85 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
86 g_return_if_fail(toolbar != NULL);
17421
c8891ebd48db Only change the size when the imhtmltoolbar button has been activated,
Kevin Stange <kevin@simguy.net>
parents: 17260
diff changeset
87 /* Only shrink the font on activation, not deactivation as well */
c8891ebd48db Only change the size when the imhtmltoolbar button has been activated,
Kevin Stange <kevin@simguy.net>
parents: 17260
diff changeset
88 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(smalltb)))
c8891ebd48db Only change the size when the imhtmltoolbar button has been activated,
Kevin Stange <kevin@simguy.net>
parents: 17260
diff changeset
89 gtk_imhtml_font_shrink(GTK_IMHTML(toolbar->imhtml));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
90 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
91 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
93 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
94 do_big(GtkWidget *large, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
95 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
96 g_return_if_fail(toolbar);
17421
c8891ebd48db Only change the size when the imhtmltoolbar button has been activated,
Kevin Stange <kevin@simguy.net>
parents: 17260
diff changeset
97 /* Only grow the font on activation, not deactivation as well */
c8891ebd48db Only change the size when the imhtmltoolbar button has been activated,
Kevin Stange <kevin@simguy.net>
parents: 17260
diff changeset
98 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(large)))
c8891ebd48db Only change the size when the imhtmltoolbar button has been activated,
Kevin Stange <kevin@simguy.net>
parents: 17260
diff changeset
99 gtk_imhtml_font_grow(GTK_IMHTML(toolbar->imhtml));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
100 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
101 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
103 static gboolean
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
104 destroy_toolbar_font(GtkWidget *widget, GdkEvent *event,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
105 GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
106 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
107 if (widget != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108 gtk_imhtml_toggle_fontface(GTK_IMHTML(toolbar->imhtml), "");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110 if (toolbar->font_dialog != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 gtk_widget_destroy(toolbar->font_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113 toolbar->font_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
114 }
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
115 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
116 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
117
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
118 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
119 realize_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
120 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
121 GtkFontSelection *sel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
122
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
123 sel = GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->fontsel);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
124 gtk_widget_hide_all(gtk_widget_get_parent(sel->size_entry));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
125 gtk_widget_show_all(sel->family_list);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
126 gtk_widget_show(gtk_widget_get_parent(sel->family_list));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
127 gtk_widget_show(gtk_widget_get_parent(gtk_widget_get_parent(sel->family_list)));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
128 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
129
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
130 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
131 cancel_toolbar_font(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
132 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133 destroy_toolbar_font(widget, NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
134 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
135
28598
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
136 static void
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
137 apply_font(GtkWidget *widget, GtkFontSelectionDialog *fontsel)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
138 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139 /* this could be expanded to include font size, weight, etc.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
140 but for now only works with font face */
28598
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
141 gchar *fontname = gtk_font_selection_dialog_get_font_name(fontsel);
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
142 GtkIMHtmlToolbar *toolbar = g_object_get_data(G_OBJECT(fontsel),
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
143 "purple_toolbar");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
144
28598
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
145 if (fontname) {
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
146 const gchar *family_name = NULL;
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
147 PangoFontDescription *desc = NULL;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
148
28598
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
149 desc = pango_font_description_from_string(fontname);
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
150 family_name = pango_font_description_get_family(desc);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
151
28598
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
152 if (family_name) {
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
153 gtk_imhtml_toggle_fontface(GTK_IMHTML(toolbar->imhtml),
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
154 family_name);
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
155 }
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
156
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
157 pango_font_description_free(desc);
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
158 g_free(fontname);
401012968fea Fix apply_font to use a PangoFontDescription to get the requested font family
Etan Reisner <pidgin@unreliablesource.net>
parents: 26712
diff changeset
159 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
160
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
161 cancel_toolbar_font(NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
163
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
164 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
165 toggle_font(GtkWidget *font, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
167 g_return_if_fail(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
168
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
169 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(font))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
170 char *fontname = gtk_imhtml_get_current_fontface(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
171
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
172 if (!toolbar->font_dialog) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
173 toolbar->font_dialog = gtk_font_selection_dialog_new(_("Select Font"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
174
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
175 g_object_set_data(G_OBJECT(toolbar->font_dialog), "purple_toolbar", toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
176
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
177 if(fontname) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
178 char *fonttif = g_strdup_printf("%s 12", fontname);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
179 g_free(fontname);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
180 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
181 fonttif);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
182 g_free(fonttif);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
183 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
184 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
185 DEFAULT_FONT_FACE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
186 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
187
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
188 g_signal_connect(G_OBJECT(toolbar->font_dialog), "delete_event",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
189 G_CALLBACK(destroy_toolbar_font), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
190 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->ok_button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
191 G_CALLBACK(apply_font), toolbar->font_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
192 g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(toolbar->font_dialog)->cancel_button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
193 G_CALLBACK(cancel_toolbar_font), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
194 g_signal_connect_after(G_OBJECT(toolbar->font_dialog), "realize",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
195 G_CALLBACK(realize_toolbar_font), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
196 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
197 gtk_window_present(GTK_WINDOW(toolbar->font_dialog));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
198 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
199 cancel_toolbar_font(font, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
200 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
201 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
202 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
203
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
204 static gboolean
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
205 destroy_toolbar_fgcolor(GtkWidget *widget, GdkEvent *event,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
206 GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
207 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
208 if (widget != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
209 gtk_imhtml_toggle_forecolor(GTK_IMHTML(toolbar->imhtml), "");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
210
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
211 if (toolbar->fgcolor_dialog != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
212 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
213 gtk_widget_destroy(toolbar->fgcolor_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
214 toolbar->fgcolor_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215 }
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
216 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
217 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
218
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219 static void cancel_toolbar_fgcolor(GtkWidget *widget,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
222 destroy_toolbar_fgcolor(widget, NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
223 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225 static void do_fgcolor(GtkWidget *widget, GtkColorSelection *colorsel)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
226 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
227 GdkColor text_color;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
228 GtkIMHtmlToolbar *toolbar = g_object_get_data(G_OBJECT(colorsel), "purple_toolbar");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
229 char *open_tag;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
230
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
231 open_tag = g_malloc(30);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
232 gtk_color_selection_get_current_color(colorsel, &text_color);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
233 g_snprintf(open_tag, 23, "#%02X%02X%02X",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234 text_color.red / 256,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
235 text_color.green / 256,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
236 text_color.blue / 256);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
237 gtk_imhtml_toggle_forecolor(GTK_IMHTML(toolbar->imhtml), open_tag);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
238 g_free(open_tag);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
239
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
240 cancel_toolbar_fgcolor(NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
241 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
242
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
243 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
244 toggle_fg_color(GtkWidget *color, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(color))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
247 GtkWidget *colorsel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
248 GdkColor fgcolor;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249 char *color = gtk_imhtml_get_current_forecolor(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 if (!toolbar->fgcolor_dialog) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
252
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 toolbar->fgcolor_dialog = gtk_color_selection_dialog_new(_("Select Text Color"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->colorsel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
255 if (color) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
256 gdk_color_parse(color, &fgcolor);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
257 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
258 g_free(color);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
260
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
261 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
263 g_signal_connect(G_OBJECT(toolbar->fgcolor_dialog), "delete_event",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
264 G_CALLBACK(destroy_toolbar_fgcolor), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->ok_button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 G_CALLBACK(do_fgcolor), colorsel);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267 g_signal_connect(G_OBJECT (GTK_COLOR_SELECTION_DIALOG(toolbar->fgcolor_dialog)->cancel_button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
268 G_CALLBACK(cancel_toolbar_fgcolor), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
269 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270 gtk_window_present(GTK_WINDOW(toolbar->fgcolor_dialog));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
271 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
272 cancel_toolbar_fgcolor(color, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
273 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
274 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
275 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
276
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
277 static gboolean
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
278 destroy_toolbar_bgcolor(GtkWidget *widget, GdkEvent *event,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
279 GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
280 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
281 if (widget != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
282 if (gtk_text_buffer_get_selection_bounds(GTK_IMHTML(toolbar->imhtml)->text_buffer, NULL, NULL))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
283 gtk_imhtml_toggle_backcolor(GTK_IMHTML(toolbar->imhtml), "");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
284 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
285 gtk_imhtml_toggle_background(GTK_IMHTML(toolbar->imhtml), "");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
286 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
287
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288 if (toolbar->bgcolor_dialog != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
290 gtk_widget_destroy(toolbar->bgcolor_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
291 toolbar->bgcolor_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
292 }
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
293 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
294 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
295
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
296 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
297 cancel_toolbar_bgcolor(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
298 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
299 destroy_toolbar_bgcolor(widget, NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
300 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
302 static void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
304 GdkColor text_color;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
305 GtkIMHtmlToolbar *toolbar = g_object_get_data(G_OBJECT(colorsel), "purple_toolbar");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
306 char *open_tag;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
307
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
308 open_tag = g_malloc(30);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
309 gtk_color_selection_get_current_color(colorsel, &text_color);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
310 g_snprintf(open_tag, 23, "#%02X%02X%02X",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
311 text_color.red / 256,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
312 text_color.green / 256,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
313 text_color.blue / 256);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
314 if (gtk_text_buffer_get_selection_bounds(GTK_IMHTML(toolbar->imhtml)->text_buffer, NULL, NULL))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
315 gtk_imhtml_toggle_backcolor(GTK_IMHTML(toolbar->imhtml), open_tag);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
316 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
317 gtk_imhtml_toggle_background(GTK_IMHTML(toolbar->imhtml), open_tag);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
318 g_free(open_tag);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
319
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
320 cancel_toolbar_bgcolor(NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
321 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
322
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
323 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
324 toggle_bg_color(GtkWidget *color, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
325 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
326 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(color))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
327 GtkWidget *colorsel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
328 GdkColor bgcolor;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
329 char *color = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
330
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
331 if (!toolbar->bgcolor_dialog) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
332
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
333 toolbar->bgcolor_dialog = gtk_color_selection_dialog_new(_("Select Background Color"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
334 colorsel = GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->colorsel;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335 if (color) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
336 gdk_color_parse(color, &bgcolor);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
337 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
338 g_free(color);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
339 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
340
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
341 g_object_set_data(G_OBJECT(colorsel), "purple_toolbar", toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
342
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
343 g_signal_connect(G_OBJECT(toolbar->bgcolor_dialog), "delete_event",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
344 G_CALLBACK(destroy_toolbar_bgcolor), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
345 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->ok_button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
346 G_CALLBACK(do_bgcolor), colorsel);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
347 g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(toolbar->bgcolor_dialog)->cancel_button), "clicked",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
348 G_CALLBACK(cancel_toolbar_bgcolor), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
349
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
350 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
351 gtk_window_present(GTK_WINDOW(toolbar->bgcolor_dialog));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
352 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
353 cancel_toolbar_bgcolor(color, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
354 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
355 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
356 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
357
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
358 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
359 clear_formatting_cb(GtkWidget *clear, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
360 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
361 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->clear), FALSE, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
362 gtk_imhtml_clear_formatting(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
363 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
364
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
365 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
366 cancel_link_cb(GtkIMHtmlToolbar *toolbar, PurpleRequestFields *fields)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
367 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
368 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->link), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
369
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
370 toolbar->link_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
371 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
372
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
373 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
374 close_link_dialog(GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
375 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
376 if (toolbar->link_dialog != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
377 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
378 purple_request_close(PURPLE_REQUEST_FIELDS, toolbar->link_dialog);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
379 toolbar->link_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
380 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
381 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
382
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
383 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
384 do_insert_link_cb(GtkIMHtmlToolbar *toolbar, PurpleRequestFields *fields)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
385 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
386 const char *url, *description;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
387
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
388 url = purple_request_fields_get_string(fields, "url");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
389 if (GTK_IMHTML(toolbar->imhtml)->format_functions & GTK_IMHTML_LINKDESC)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
390 description = purple_request_fields_get_string(fields, "description");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
391 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
392 description = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
393
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
394 if (description == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
395 description = url;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
396
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
397 gtk_imhtml_insert_link(GTK_IMHTML(toolbar->imhtml),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
398 gtk_text_buffer_get_insert(GTK_IMHTML(toolbar->imhtml)->text_buffer),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
399 url, description);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
400
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
401 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->link), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
402
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
403 toolbar->link_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
404 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
405
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
406 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
407 insert_link_cb(GtkWidget *w, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
408 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
409 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->link))) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
410 PurpleRequestFields *fields;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
411 PurpleRequestFieldGroup *group;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
412 PurpleRequestField *field;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
413 GtkTextIter start, end;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
414 char *msg;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
415 char *desc = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
416
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
417 fields = purple_request_fields_new();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
418
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
419 group = purple_request_field_group_new(NULL);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
420 purple_request_fields_add_group(fields, group);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
421
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
422 field = purple_request_field_string_new("url", _("_URL"), NULL, FALSE);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
423 purple_request_field_set_required(field, TRUE);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
424 purple_request_field_group_add_field(group, field);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
425
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
426 if(GTK_IMHTML(toolbar->imhtml)->format_functions & GTK_IMHTML_LINKDESC) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
427 if (gtk_text_buffer_get_selection_bounds(GTK_IMHTML(toolbar->imhtml)->text_buffer, &start, &end)) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
428 desc = gtk_imhtml_get_text(GTK_IMHTML(toolbar->imhtml), &start, &end);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
429 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
430 field = purple_request_field_string_new("description", _("_Description"),
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
431 desc, FALSE);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
432 purple_request_field_group_add_field(group, field);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
433 msg = g_strdup(_("Please enter the URL and description of the "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
434 "link that you want to insert. The description "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
435 "is optional."));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
436 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
437 msg = g_strdup(_("Please enter the URL of the "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
438 "link that you want to insert."));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
439 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
440
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
441 toolbar->link_dialog =
21570
dccfd999ffe7 merge of '76c07fcb434a2a7aa289734bb221c171a376d73b'
Evan Schoenberg <evan.s@dreskin.net>
parents: 21244
diff changeset
442 purple_request_fields(toolbar, _("Insert Link"),
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
443 NULL,
21570
dccfd999ffe7 merge of '76c07fcb434a2a7aa289734bb221c171a376d73b'
Evan Schoenberg <evan.s@dreskin.net>
parents: 21244
diff changeset
444 msg,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
445 fields,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
446 _("_Insert"), G_CALLBACK(do_insert_link_cb),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
447 _("Cancel"), G_CALLBACK(cancel_link_cb),
21570
dccfd999ffe7 merge of '76c07fcb434a2a7aa289734bb221c171a376d73b'
Evan Schoenberg <evan.s@dreskin.net>
parents: 21244
diff changeset
448 NULL, NULL, NULL,
dccfd999ffe7 merge of '76c07fcb434a2a7aa289734bb221c171a376d73b'
Evan Schoenberg <evan.s@dreskin.net>
parents: 21244
diff changeset
449 toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
450 g_free(msg);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
451 g_free(desc);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
452 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
453 close_link_dialog(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
454 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
455 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
456 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
457
19469
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
458 static void insert_hr_cb(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
459 {
26434
e23a74d7c97c Get rid of the rest of the extraneous changes.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26213
diff changeset
460 GtkTextIter iter;
e23a74d7c97c Get rid of the rest of the extraneous changes.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26213
diff changeset
461 GtkTextMark *ins;
19469
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
462 GtkIMHtmlScalable *hr;
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
463
26434
e23a74d7c97c Get rid of the rest of the extraneous changes.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26213
diff changeset
464 ins = gtk_text_buffer_get_insert(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)));
e23a74d7c97c Get rid of the rest of the extraneous changes.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26213
diff changeset
465 gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)), &iter, ins);
19469
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
466 hr = gtk_imhtml_hr_new();
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
467 gtk_imhtml_hr_add_to(hr, GTK_IMHTML(toolbar->imhtml), &iter);
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
468 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
469
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
470 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
471 do_insert_image_cb(GtkWidget *widget, int response, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
472 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
473 gchar *filename, *name, *buf;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
474 char *filedata;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
475 size_t size;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
476 GError *error = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
477 int id;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
478 GtkTextIter iter;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
479 GtkTextMark *ins;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
480
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
481 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */
21866
03c950701fac Move some curly braces around so static analysis tools can properly detect
Stu Tomlinson <stu@nosnilmot.com>
parents: 21839
diff changeset
482 if (response != GTK_RESPONSE_ACCEPT)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
483 #else /* FILECHOOSER */
21866
03c950701fac Move some curly braces around so static analysis tools can properly detect
Stu Tomlinson <stu@nosnilmot.com>
parents: 21839
diff changeset
484 if (response != GTK_RESPONSE_OK)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
485 #endif /* FILECHOOSER */
21866
03c950701fac Move some curly braces around so static analysis tools can properly detect
Stu Tomlinson <stu@nosnilmot.com>
parents: 21839
diff changeset
486 {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
487 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->image), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
488 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
489 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
490
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
491 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
492 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
493 #else /* FILECHOOSER */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
494 filename = g_strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(widget)));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
495 #endif /* FILECHOOSER */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
496
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
497 if (filename == NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
498 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->image), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
499 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
500 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
501
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
502 #if !GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */
15501
d75099d2567e gaim_gtk to pidgin. I hope
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
503 if (pidgin_check_if_dir(filename, GTK_FILE_SELECTION(widget))) {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
504 g_free(filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
505 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->image), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
506 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
507 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
508 #endif /* FILECHOOSER */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
509
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
510 /* The following triggers a callback that closes the widget */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
511 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->image), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
512
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
513 if (!g_file_get_contents(filename, &filedata, &size, &error)) {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
514 purple_notify_error(NULL, NULL, error->message, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
515
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
516 g_error_free(error);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
517 g_free(filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
518
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
519 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
520 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
521
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
522 name = strrchr(filename, G_DIR_SEPARATOR) + 1;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
523
16375
391a79778f89 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@wiktel.com>
parents: 16202
diff changeset
524 id = purple_imgstore_add_with_id(filedata, size, name);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
525
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
526 if (id == 0) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
527 buf = g_strdup_printf(_("Failed to store image: %s\n"), filename);
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15822
diff changeset
528 purple_notify_error(NULL, NULL, buf, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
529
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
530 g_free(buf);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
531 g_free(filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
532
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
533 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
534 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
535
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
536 g_free(filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
537
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
538 ins = gtk_text_buffer_get_insert(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
539 gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(GTK_TEXT_VIEW(toolbar->imhtml)),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
540 &iter, ins);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
541 gtk_imhtml_insert_image_at_iter(GTK_IMHTML(toolbar->imhtml), id, &iter);
16375
391a79778f89 Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@wiktel.com>
parents: 16202
diff changeset
542 purple_imgstore_unref_by_id(id);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
543 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
544
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
545
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
546 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
547 insert_image_cb(GtkWidget *save, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
548 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
549 GtkWidget *window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
550
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
551 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->image))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
552 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
553 window = gtk_file_chooser_dialog_new(_("Insert Image"),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
554 NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
555 GTK_FILE_CHOOSER_ACTION_OPEN,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
556 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
557 GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
558 NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
559 gtk_dialog_set_default_response(GTK_DIALOG(window), GTK_RESPONSE_ACCEPT);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
560 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(window)),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
561 "response", G_CALLBACK(do_insert_image_cb), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
562 #else /* FILECHOOSER */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
563 window = gtk_file_selection_new(_("Insert Image"));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
564 gtk_dialog_set_default_response(GTK_DIALOG(window), GTK_RESPONSE_OK);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
565 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(window)),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
566 "response", G_CALLBACK(do_insert_image_cb), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
567 #endif /* FILECHOOSER */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
568
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
569 gtk_widget_show(window);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
570 toolbar->image_dialog = window;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
571 } else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
572 gtk_widget_destroy(toolbar->image_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
573 toolbar->image_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
574 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
575
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
576 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
577 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
578
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
579
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
580 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
581 destroy_smiley_dialog(GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
582 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
583 if (toolbar->smiley_dialog != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
584 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
585 gtk_widget_destroy(toolbar->smiley_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
586 toolbar->smiley_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
587 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
588 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
589
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
590 static gboolean
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
591 close_smiley_dialog(GtkIMHtmlToolbar *toolbar)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
592 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
593 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->smiley), FALSE);
21913
2a591a5b3322 Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21866
diff changeset
594 return FALSE;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
595 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
596
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
597
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
598 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
599 insert_smiley_text(GtkWidget *widget, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
600 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
601 char *smiley_text, *escaped_smiley;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
602
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
603 smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
604 escaped_smiley = g_markup_escape_text(smiley_text, -1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
605
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
606 gtk_imhtml_insert_smiley(GTK_IMHTML(toolbar->imhtml),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
607 GTK_IMHTML(toolbar->imhtml)->protocol_name,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
608 escaped_smiley);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
609
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
610 g_free(escaped_smiley);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
611
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
612 close_smiley_dialog(toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
613 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
614
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
615 /* smiley buttons list */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
616 struct smiley_button_list {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
617 int width, height;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
618 GtkWidget *button;
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
619 const GtkIMHtmlSmiley *smiley;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
620 struct smiley_button_list *next;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
621 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
622
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
623 static struct smiley_button_list *
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
624 sort_smileys(struct smiley_button_list *ls, GtkIMHtmlToolbar *toolbar,
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
625 int *width, const GtkIMHtmlSmiley *smiley)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
626 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
627 GtkWidget *image;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
628 GtkWidget *button;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
629 GtkRequisition size;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
630 struct smiley_button_list *cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
631 struct smiley_button_list *it, *it_last;
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
632 const gchar *filename = smiley->file;
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
633 gchar *face = smiley->smile;
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
634 PurpleSmiley *psmiley = NULL;
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
635 gboolean supports_custom = (gtk_imhtml_get_format_functions(GTK_IMHTML(toolbar->imhtml)) & GTK_IMHTML_CUSTOM_SMILEY);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
636
22825
28005860d2c9 Plug a small memory leak in the smiley dialog, and use g_new0/g_free
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
637 cur = g_new0(struct smiley_button_list, 1);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
638 it = ls;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
639 it_last = ls; /* list iterators*/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
640 image = gtk_image_new_from_file(filename);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
641
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
642 gtk_widget_size_request(image, &size);
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
643
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
644 if (size.width > 24 &&
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
645 smiley->flags & GTK_IMHTML_SMILEY_CUSTOM) { /* This is a custom smiley, let's scale it */
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
646 GdkPixbuf *pixbuf = NULL;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
647 GtkImageType type;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
648
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
649 type = gtk_image_get_storage_type(GTK_IMAGE(image));
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
650
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
651 if (type == GTK_IMAGE_PIXBUF) {
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
652 pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(image));
23132
9c0a47402f7a Unref some gdkpixbufs to plug some memory leaks. References #1187.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23131
diff changeset
653 } else if (type == GTK_IMAGE_ANIMATION) {
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
654 GdkPixbufAnimation *animation;
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
655
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
656 animation = gtk_image_get_animation(GTK_IMAGE(image));
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
657
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
658 pixbuf = gdk_pixbuf_animation_get_static_image(animation);
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
659 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
660
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
661 if (pixbuf != NULL) {
23132
9c0a47402f7a Unref some gdkpixbufs to plug some memory leaks. References #1187.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23131
diff changeset
662 GdkPixbuf *resized;
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
663 resized = gdk_pixbuf_scale_simple(pixbuf, 24, 24,
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
664 GDK_INTERP_HYPER);
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
665
23134
85c595142be6 A leak fix from malu. Thanks!
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23133
diff changeset
666 gtk_image_set_from_pixbuf(GTK_IMAGE(image), resized); /* This unrefs pixbuf */
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
667 gtk_widget_size_request(image, &size);
23132
9c0a47402f7a Unref some gdkpixbufs to plug some memory leaks. References #1187.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23131
diff changeset
668 g_object_unref(G_OBJECT(resized));
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
669 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
670 }
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
671
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
672 (*width) += size.width;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
673
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
674 button = gtk_button_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
675 gtk_container_add(GTK_CONTAINER(button), image);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
676
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
677 g_object_set_data(G_OBJECT(button), "smiley_text", face);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
678 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
679
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
680 gtk_tooltips_set_tip(toolbar->tooltips, button, face, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
681
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
682 /* these look really weird with borders */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
683 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
684
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
685 psmiley = purple_smileys_find_by_shortcut(smiley->smile);
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
686 /* If this is a "non-custom" smiley, check to see if its shortcut is
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
687 "shadowed" by any custom smiley. This can only happen if the connection
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
688 is custom smiley-enabled */
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
689 if (supports_custom && psmiley && !(smiley->flags & GTK_IMHTML_SMILEY_CUSTOM)) {
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
690 gchar tip[128];
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 24007
diff changeset
691 g_snprintf(tip, sizeof(tip),
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
692 _("This smiley is disabled because a custom smiley exists for this shortcut:\n %s"),
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
693 face);
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
694 gtk_tooltips_set_tip(toolbar->tooltips, button, tip, NULL);
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
695 gtk_widget_set_sensitive(button, FALSE);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
696 } else if (psmiley) {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
697 /* Remove the button if the smiley is destroyed */
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
698 g_signal_connect_object(G_OBJECT(psmiley), "destroy", G_CALLBACK(gtk_widget_destroy),
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
699 button, G_CONNECT_SWAPPED);
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
700 }
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
701
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
702 /* set current element to add */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
703 cur->height = size.height;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
704 cur->width = size.width;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
705 cur->button = button;
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
706 cur->smiley = smiley;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
707 cur->next = ls;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
708
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
709 /* check where to insert by height */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
710 if (ls == NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
711 return cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
712 while (it != NULL) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
713 it_last = it;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
714 it = it->next;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
715 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
716 cur->next = it;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
717 it_last->next = cur;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
718 return ls;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
719 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
720
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
721 static gboolean
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
722 smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
723 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
724 while (list) {
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
725 GtkIMHtmlSmiley *cur = (GtkIMHtmlSmiley *) list->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
726 if (!strcmp(cur->file, smiley->file))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
727 return FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
728 list = list->next;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
729 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
730 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
731 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
732
17510
8428beecff2f Close smiley dialog on GDK_Escape or button 1 press.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17260
diff changeset
733 static gboolean
8428beecff2f Close smiley dialog on GDK_Escape or button 1 press.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17260
diff changeset
734 smiley_dialog_input_cb(GtkWidget *dialog, GdkEvent *event, GtkIMHtmlToolbar *toolbar)
8428beecff2f Close smiley dialog on GDK_Escape or button 1 press.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17260
diff changeset
735 {
18388
ec29522b76d0 Rework the logic to be (IMHO) easy to read.
Richard Laager <rlaager@wiktel.com>
parents: 18387
diff changeset
736 if ((event->type == GDK_KEY_PRESS && event->key.keyval == GDK_Escape) ||
ec29522b76d0 Rework the logic to be (IMHO) easy to read.
Richard Laager <rlaager@wiktel.com>
parents: 18387
diff changeset
737 (event->type == GDK_BUTTON_PRESS && event->button.button == 1))
ec29522b76d0 Rework the logic to be (IMHO) easy to read.
Richard Laager <rlaager@wiktel.com>
parents: 18387
diff changeset
738 {
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
739 close_smiley_dialog(toolbar);
18388
ec29522b76d0 Rework the logic to be (IMHO) easy to read.
Richard Laager <rlaager@wiktel.com>
parents: 18387
diff changeset
740 return TRUE;
ec29522b76d0 Rework the logic to be (IMHO) easy to read.
Richard Laager <rlaager@wiktel.com>
parents: 18387
diff changeset
741 }
17510
8428beecff2f Close smiley dialog on GDK_Escape or button 1 press.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17260
diff changeset
742
18388
ec29522b76d0 Rework the logic to be (IMHO) easy to read.
Richard Laager <rlaager@wiktel.com>
parents: 18387
diff changeset
743 return FALSE;
17510
8428beecff2f Close smiley dialog on GDK_Escape or button 1 press.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17260
diff changeset
744 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
745
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
746 static void
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
747 add_smiley_list(GtkWidget *container, struct smiley_button_list *list,
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
748 int max_width, gboolean custom)
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
749 {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
750 GtkWidget *line;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
751 int line_width = 0;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
752
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
753 if (!list)
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
754 return;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
755
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
756 line = gtk_hbox_new(FALSE, 0);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
757 gtk_box_pack_start(GTK_BOX(container), line, FALSE, FALSE, 0);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
758 for (; list; list = list->next) {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
759 if (custom != !!(list->smiley->flags & GTK_IMHTML_SMILEY_CUSTOM))
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
760 continue;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
761 gtk_box_pack_start(GTK_BOX(line), list->button, FALSE, FALSE, 0);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
762 gtk_widget_show(list->button);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
763 line_width += list->width;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
764 if (line_width >= max_width) {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
765 if (list->next) {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
766 line = gtk_hbox_new(FALSE, 0);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
767 gtk_box_pack_start(GTK_BOX(container), line, FALSE, FALSE, 0);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
768 }
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
769 line_width = 0;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
770 }
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
771 }
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
772 }
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
773
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
774 static void
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
775 insert_smiley_cb(GtkWidget *smiley, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
776 {
23155
7dccb11c5f1d Put the 'manage' button outside the scrolling area.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23144
diff changeset
777 GtkWidget *dialog, *vbox;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
778 GtkWidget *smiley_table = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
779 GSList *smileys, *unique_smileys = NULL;
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
780 const GSList *custom_smileys = NULL;
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
781 gboolean supports_custom = FALSE;
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
782 GtkRequisition req;
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
783 GtkWidget *scrolled, *viewport;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
784
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
785 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(smiley))) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
786 destroy_smiley_dialog(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
787 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
788 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
789 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
790
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
791 if (toolbar->sml)
16202
0973688f4b74 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents: 16193
diff changeset
792 smileys = pidgin_themes_get_proto_smileys(toolbar->sml);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
793 else
16202
0973688f4b74 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@wiktel.com>
parents: 16193
diff changeset
794 smileys = pidgin_themes_get_proto_smileys(NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
795
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
796 /* Note: prepend smileys to list to avoid O(n^2) overhead when there is
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
797 a large number of smileys... need to revers the list after for the dialog
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
798 work... */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
799 while(smileys) {
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
800 GtkIMHtmlSmiley *smiley = (GtkIMHtmlSmiley *) smileys->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
801 if(!smiley->hidden) {
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
802 if(smiley_is_unique(unique_smileys, smiley)) {
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
803 unique_smileys = g_slist_prepend(unique_smileys, smiley);
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
804 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
805 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
806 smileys = smileys->next;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
807 }
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
808 supports_custom = (gtk_imhtml_get_format_functions(GTK_IMHTML(toolbar->imhtml)) & GTK_IMHTML_CUSTOM_SMILEY);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
809 if (toolbar->imhtml && supports_custom) {
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
810 const GSList *iterator = NULL;
23133
9aa105267f46 Show the custom smileys only on accounts that support it. References
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
811 custom_smileys = pidgin_smileys_get_all();
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
812
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
813 for (iterator = custom_smileys ; iterator ;
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
814 iterator = g_slist_next(iterator)) {
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
815 GtkIMHtmlSmiley *smiley = (GtkIMHtmlSmiley *) iterator->data;
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
816 unique_smileys = g_slist_prepend(unique_smileys, smiley);
23133
9aa105267f46 Show the custom smileys only on accounts that support it. References
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23132
diff changeset
817 }
22874
02eda4bd2b22 Apply the custom smiley patches from #1187, from Jorge Villaseo (Masca) and
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
818 }
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 24007
diff changeset
819
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
820 /* we need to reverse the list to get the smileys in the correct order */
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
821 unique_smileys = g_slist_reverse(unique_smileys);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
822
21971
07eb63fa0bdb Modified patch from Gabriel (Sylar?) Schulof to deprecate PIDGIN_DIALOG. Closes #4535. (PS: I am aware of --author).
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21913
diff changeset
823 dialog = pidgin_create_dialog(_("Smile!"), 0, "smiley_dialog", FALSE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
824 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE);
23155
7dccb11c5f1d Put the 'manage' button outside the scrolling area.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23144
diff changeset
825 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(dialog), FALSE, 0);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
826
15786
e926951e61fe Don't use g_list_length() and g_slist_length() when all you want to
Mark Doliner <mark@kingant.net>
parents: 15560
diff changeset
827 if (unique_smileys != NULL) {
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
828 struct smiley_button_list *ls;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
829 int max_line_width, num_lines, button_width = 0;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
830
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
831 /* We use hboxes packed in a vbox */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
832 ls = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
833 max_line_width = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
834 num_lines = floor(sqrt(g_slist_length(unique_smileys)));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
835 smiley_table = gtk_vbox_new(FALSE, 0);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
836
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
837 if (supports_custom) {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
838 GtkWidget *manage = gtk_button_new_with_mnemonic(_("_Manage custom smileys"));
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
839 GtkRequisition req;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
840 g_signal_connect(G_OBJECT(manage), "clicked",
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
841 G_CALLBACK(pidgin_smiley_manager_show), NULL);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
842 g_signal_connect_swapped(G_OBJECT(manage), "clicked",
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
843 G_CALLBACK(gtk_widget_destroy), dialog);
23155
7dccb11c5f1d Put the 'manage' button outside the scrolling area.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23144
diff changeset
844 gtk_box_pack_end(GTK_BOX(vbox), manage, FALSE, TRUE, 0);
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
845 gtk_widget_size_request(manage, &req);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
846 button_width = req.width;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
847 }
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
848
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
849 /* create list of smileys sorted by height */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
850 while (unique_smileys) {
23137
dfc99f5dec43 Patch from malu (mlundblad) to disable a regular smiley in the smiley
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23134
diff changeset
851 GtkIMHtmlSmiley *smiley = (GtkIMHtmlSmiley *) unique_smileys->data;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
852 if (!smiley->hidden) {
23343
3cc64898bdbd Do not disable default smileys with dupliate shortcuts if custom smileys
Marcus Lundblad <ml@update.uu.se>
parents: 23227
diff changeset
853 ls = sort_smileys(ls, toolbar, &max_line_width, smiley);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
854 }
22825
28005860d2c9 Plug a small memory leak in the smiley dialog, and use g_new0/g_free
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 22093
diff changeset
855 unique_smileys = g_slist_delete_link(unique_smileys, unique_smileys);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
856 }
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
857 /* The window will be at least as wide as the 'Manage ..' button */
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
858 max_line_width = MAX(button_width, max_line_width / num_lines);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
859
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
860 /* pack buttons of the list */
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
861 add_smiley_list(smiley_table, ls, max_line_width, FALSE);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
862 if (supports_custom) {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
863 gtk_box_pack_start(GTK_BOX(smiley_table), gtk_hseparator_new(), TRUE, FALSE, 0);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
864 add_smiley_list(smiley_table, ls, max_line_width, TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
865 }
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
866 while (ls) {
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
867 struct smiley_button_list *tmp = ls->next;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
868 g_free(ls);
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
869 ls = tmp;
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
870 }
18389
0ef0b2ead713 Rework the smiley dialog close logic: Escape will always close the window.
Richard Laager <rlaager@wiktel.com>
parents: 18388
diff changeset
871
0ef0b2ead713 Rework the smiley dialog close logic: Escape will always close the window.
Richard Laager <rlaager@wiktel.com>
parents: 18388
diff changeset
872 gtk_widget_add_events(dialog, GDK_KEY_PRESS_MASK);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
873 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
874 else {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
875 smiley_table = gtk_label_new(_("This theme has no available smileys."));
18389
0ef0b2ead713 Rework the smiley dialog close logic: Escape will always close the window.
Richard Laager <rlaager@wiktel.com>
parents: 18388
diff changeset
876 gtk_widget_add_events(dialog, GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK);
0ef0b2ead713 Rework the smiley dialog close logic: Escape will always close the window.
Richard Laager <rlaager@wiktel.com>
parents: 18388
diff changeset
877 g_signal_connect(G_OBJECT(dialog), "button-press-event", (GCallback)smiley_dialog_input_cb, toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
878 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
879
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
880 scrolled = gtk_scrolled_window_new (NULL, NULL);
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
881 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_NONE);
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
882 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled),
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
883 GTK_POLICY_NEVER, GTK_POLICY_NEVER);
23155
7dccb11c5f1d Put the 'manage' button outside the scrolling area.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23144
diff changeset
884 gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0);
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
885 gtk_widget_show(scrolled);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
886
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
887 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), smiley_table);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
888 gtk_widget_show(smiley_table);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
889
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
890 viewport = gtk_widget_get_parent(smiley_table);
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
891 gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE);
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
892
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
893 /* connect signals */
23139
53b3c75c9e26 Separate the custom smileys from the regular smileys, and add a 'Manage'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23138
diff changeset
894 g_signal_connect_swapped(G_OBJECT(dialog), "destroy", G_CALLBACK(close_smiley_dialog), toolbar);
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
895 g_signal_connect(G_OBJECT(dialog), "key-press-event", G_CALLBACK(smiley_dialog_input_cb), toolbar);
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
896
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
897 gtk_window_set_transient_for(GTK_WINDOW(dialog),
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
898 GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(toolbar))));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
899
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
900 /* show everything */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
901 gtk_widget_show_all(dialog);
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
902
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
903 gtk_widget_size_request(viewport, &req);
23155
7dccb11c5f1d Put the 'manage' button outside the scrolling area.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23144
diff changeset
904 gtk_widget_set_size_request(scrolled, MIN(300, req.width), MIN(290, req.height));
23142
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
905
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
906 /* The window has to be made resizable, and the scrollbars in the scrolled window
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
907 * enabled only after setting the desired size of the window. If we do either of
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
908 * these tasks before now, GTK+ miscalculates the required size, and erronously
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
909 * makes one or both scrollbars visible (sometimes).
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
910 * I too think this hack is gross. But I couldn't find a better way -- sadrul */
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
911 gtk_window_set_resizable(GTK_WINDOW(dialog), TRUE);
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
912 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled),
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
913 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
a372713e405c Patch from Giulio 'Twain28' Pascali to make the smiley window scrollable.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23139
diff changeset
914
20657
c2c263d47534 Prevent the smiley window appearing outside of the working area on win32. Fixes #3261.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20160
diff changeset
915 #ifdef _WIN32
c2c263d47534 Prevent the smiley window appearing outside of the working area on win32. Fixes #3261.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20160
diff changeset
916 winpidgin_ensure_onscreen(dialog);
c2c263d47534 Prevent the smiley window appearing outside of the working area on win32. Fixes #3261.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 20160
diff changeset
917 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
918
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
919 toolbar->smiley_dialog = dialog;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
920
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
921 gtk_widget_grab_focus(toolbar->imhtml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
922 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
923
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
924 static void update_buttons_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
925 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
926 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->bold), buttons & GTK_IMHTML_BOLD);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
927 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->italic), buttons & GTK_IMHTML_ITALIC);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
928 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->underline), buttons & GTK_IMHTML_UNDERLINE);
19541
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
929 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->strikethrough), buttons & GTK_IMHTML_STRIKE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
930
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
931 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->larger_size), buttons & GTK_IMHTML_GROW);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
932 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->smaller_size), buttons & GTK_IMHTML_SHRINK);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
933
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
934 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->font), buttons & GTK_IMHTML_FACE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
935 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->fgcolor), buttons & GTK_IMHTML_FORECOLOR);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
936 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->bgcolor), buttons & GTK_IMHTML_BACKCOLOR);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
937
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
938 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->clear),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
939 (buttons & GTK_IMHTML_BOLD ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
940 buttons & GTK_IMHTML_ITALIC ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
941 buttons & GTK_IMHTML_UNDERLINE ||
19541
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
942 buttons & GTK_IMHTML_STRIKE ||
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
943 buttons & GTK_IMHTML_GROW ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
944 buttons & GTK_IMHTML_SHRINK ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
945 buttons & GTK_IMHTML_FACE ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
946 buttons & GTK_IMHTML_FORECOLOR ||
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
947 buttons & GTK_IMHTML_BACKCOLOR));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
948
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
949 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->image), buttons & GTK_IMHTML_IMAGE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
950 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->link), buttons & GTK_IMHTML_LINK);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
951 gtk_widget_set_sensitive(GTK_WIDGET(toolbar->smiley), buttons & GTK_IMHTML_SMILEY);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
952 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
953
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
954 /* we call this when we want to _set_active the toggle button, it'll
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
955 * block the callback thats connected to the button so we don't have to
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
956 * do the double toggling hack
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
957 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
958 static void toggle_button_set_active_block(GtkToggleButton *button,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
959 gboolean is_active,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
960 GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
961 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
962 GObject *object;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
963 g_return_if_fail(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
964
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
965 object = g_object_ref(button);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
966 g_signal_handlers_block_matched(object, G_SIGNAL_MATCH_DATA,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
967 0, 0, NULL, NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
968 gtk_toggle_button_set_active(button, is_active);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
969 g_signal_handlers_unblock_matched(object, G_SIGNAL_MATCH_DATA,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
970 0, 0, NULL, NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
971 g_object_unref(object);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
972 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
973
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
974 static void update_buttons(GtkIMHtmlToolbar *toolbar)
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
975 {
19541
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
976 gboolean bold, italic, underline, strike;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
977 char *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
978 char *tmp2;
18773
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
979 GtkLabel *label = g_object_get_data(G_OBJECT(toolbar), "font_label");
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
980
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
981 gtk_label_set_label(label, _("_Font"));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
982
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
983 gtk_imhtml_get_current_format(GTK_IMHTML(toolbar->imhtml),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
984 &bold, &italic, &underline);
19541
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
985 strike = GTK_IMHTML(toolbar->imhtml)->edit.strike;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
986
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
987 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->bold)) != bold)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
988 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->bold), bold,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
989 toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
990 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->italic)) != italic)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
991 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->italic), italic,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
992 toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
993 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->underline)) != underline)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
994 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->underline),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
995 underline, toolbar);
19541
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
996 if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toolbar->strikethrough)) != strike)
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
997 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->strikethrough),
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
998 strike, toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
999
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1000 /* These buttons aren't ever "active". */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1001 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->smaller_size), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1002 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toolbar->larger_size), FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1003
18773
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1004 if (bold) {
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1005 gchar *markup = g_strdup_printf("<b>%s</b>",
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1006 gtk_label_get_label(label));
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1007 gtk_label_set_markup_with_mnemonic(label, markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1008 g_free(markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1009 }
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1010 if (italic) {
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1011 gchar *markup = g_strdup_printf("<i>%s</i>",
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1012 gtk_label_get_label(label));
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1013 gtk_label_set_markup_with_mnemonic(label, markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1014 g_free(markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1015 }
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1016 if (underline) {
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1017 gchar *markup = g_strdup_printf("<u>%s</u>",
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1018 gtk_label_get_label(label));
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1019 gtk_label_set_markup_with_mnemonic(label, markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1020 g_free(markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1021 }
19541
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
1022 if (strike) {
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
1023 gchar *markup = g_strdup_printf("<s>%s</s>",
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
1024 gtk_label_get_label(label));
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
1025 gtk_label_set_markup_with_mnemonic(label, markup);
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
1026 g_free(markup);
5d178cf627e9 Update the strikethrough state and the buttons as appropriate. Fixes #2884.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19469
diff changeset
1027 }
18773
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1028
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1029 tmp = gtk_imhtml_get_current_fontface(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1030 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->font),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1031 (tmp != NULL), toolbar);
18773
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1032 if (tmp != NULL) {
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1033 gchar *markup = g_strdup_printf("<span font_desc=\"%s\">%s</span>",
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1034 tmp, gtk_label_get_label(label));
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1035 gtk_label_set_markup_with_mnemonic(label, markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1036 g_free(markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1037 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1038 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1039
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1040 tmp = gtk_imhtml_get_current_forecolor(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1041 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->fgcolor),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1042 (tmp != NULL), toolbar);
18773
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1043 if (tmp != NULL) {
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1044 gchar *markup = g_strdup_printf("<span foreground=\"%s\">%s</span>",
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1045 tmp, gtk_label_get_label(label));
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1046 gtk_label_set_markup_with_mnemonic(label, markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1047 g_free(markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1048 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1049 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1050
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1051 tmp = gtk_imhtml_get_current_backcolor(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1052 tmp2 = gtk_imhtml_get_current_background(GTK_IMHTML(toolbar->imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1053 toggle_button_set_active_block(GTK_TOGGLE_BUTTON(toolbar->bgcolor),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1054 (tmp != NULL || tmp2 != NULL), toolbar);
18773
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1055 if (tmp != NULL) {
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1056 gchar *markup = g_strdup_printf("<span background=\"%s\">%s</span>",
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1057 tmp, gtk_label_get_label(label));
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1058 gtk_label_set_markup_with_mnemonic(label, markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1059 g_free(markup);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1060 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1061 g_free(tmp);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1062 g_free(tmp2);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1063 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1064
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1065 static void toggle_button_cb(GtkIMHtml *imhtml, GtkIMHtmlButtons buttons, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1066 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1067 update_buttons(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1068 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1069
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1070 static void update_format_cb(GtkIMHtml *imhtml, GtkIMHtmlToolbar *toolbar) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1071 update_buttons(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1072 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1073
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1074 static void mark_set_cb(GtkTextBuffer *buffer, GtkTextIter *location,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1075 GtkTextMark *mark, GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1076 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1077 if(mark != gtk_text_buffer_get_insert(buffer))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1078 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1079
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1080 update_buttons(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1081 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1082
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1083
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1084 /* This comes from gtkmenutoolbutton.c from gtk+
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1085 * Copyright (C) 2003 Ricardo Fernandez Pascual
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1086 * Copyright (C) 2004 Paolo Borelli
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1087 */
17655
4d53ccae32b0 Fix a compile error and kill a bucket full of compile warnings
Stu Tomlinson <stu@nosnilmot.com>
parents: 17549
diff changeset
1088 static void
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1089 menu_position_func (GtkMenu *menu,
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1090 int *x,
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1091 int *y,
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1092 gboolean *push_in,
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1093 gpointer data)
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1094 {
18166
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1095 GtkWidget *widget = GTK_WIDGET(data);
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1096 GtkRequisition menu_req;
18166
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1097 gint ythickness = widget->style->ythickness;
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1098 int savy;
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1099
18166
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1100 gtk_widget_size_request(GTK_WIDGET (menu), &menu_req);
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1101 gdk_window_get_origin(widget->window, x, y);
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1102 *x += widget->allocation.x;
18166
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1103 *y += widget->allocation.y + widget->allocation.height;
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1104 savy = *y;
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1105
18166
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1106 pidgin_menu_position_func_helper(menu, x, y, push_in, data);
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1107
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1108 if (savy > *y + ythickness + 1)
afeb35205669 Reduce code duplication and keep gtk 2.0 compatibility by making
Stu Tomlinson <stu@nosnilmot.com>
parents: 18113
diff changeset
1109 *y -= widget->allocation.height;
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1110 }
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1111
18851
9998470a01de The hotkeys should popup the menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18838
diff changeset
1112 static void pidgin_menu_clicked(GtkWidget *button, GtkMenu *menu)
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1113 {
18802
5a5ca6438308 show toolbar menu on button press, rather than button release. Fixes #2352
Sean Egan <seanegan@gmail.com>
parents: 18794
diff changeset
1114 gtk_widget_show_all(GTK_WIDGET(menu));
5a5ca6438308 show toolbar menu on button press, rather than button release. Fixes #2352
Sean Egan <seanegan@gmail.com>
parents: 18794
diff changeset
1115 gtk_menu_popup(menu, NULL, NULL, menu_position_func, button, 0, gtk_get_current_event_time());
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1116 }
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1117
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1118 static void pidgin_menu_deactivate(GtkWidget *menu, GtkToggleButton *button)
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1119 {
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1120 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1121 }
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1122
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1123 enum {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1124 LAST_SIGNAL
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1125 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1126 /* static guint signals [LAST_SIGNAL] = { 0 }; */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1127
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1128 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1129 gtk_imhtmltoolbar_finalize (GObject *object)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1130 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1131 GtkIMHtmlToolbar *toolbar = GTK_IMHTMLTOOLBAR(object);
18778
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1132 GtkWidget *menu;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1133
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1134 if (toolbar->image_dialog != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1135 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1136 gtk_widget_destroy(toolbar->image_dialog);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1137 toolbar->image_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1138 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1139
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1140 destroy_toolbar_font(NULL, NULL, toolbar);
23227
1bdf8223ba45 Prevent a crash when the imhtmltoolbar is disposed and the smiley dialog is open.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23155
diff changeset
1141 if (toolbar->smiley_dialog != NULL) {
1bdf8223ba45 Prevent a crash when the imhtmltoolbar is disposed and the smiley dialog is open.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23155
diff changeset
1142 g_signal_handlers_disconnect_by_func(G_OBJECT(toolbar->smiley_dialog), close_smiley_dialog, toolbar);
1bdf8223ba45 Prevent a crash when the imhtmltoolbar is disposed and the smiley dialog is open.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23155
diff changeset
1143 destroy_smiley_dialog(toolbar);
1bdf8223ba45 Prevent a crash when the imhtmltoolbar is disposed and the smiley dialog is open.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23155
diff changeset
1144 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1145 destroy_toolbar_bgcolor(NULL, NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1146 destroy_toolbar_fgcolor(NULL, NULL, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1147 close_link_dialog(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1148 if (toolbar->imhtml) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1149 g_signal_handlers_disconnect_matched(toolbar->imhtml,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1150 G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1151 toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1152 g_signal_handlers_disconnect_matched(GTK_IMHTML(toolbar->imhtml)->text_buffer,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1153 G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1154 toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1155 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1156
24007
8777560c1d9f Use the correct free() function.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23391
diff changeset
1157 g_free(toolbar->sml);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1158 gtk_object_sink(GTK_OBJECT(toolbar->tooltips));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1159
18778
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1160 menu = g_object_get_data(object, "font_menu");
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1161 if (menu)
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1162 gtk_widget_destroy(menu);
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1163 menu = g_object_get_data(object, "insert_menu");
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1164 if (menu)
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1165 gtk_widget_destroy(menu);
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1166
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1167 purple_prefs_disconnect_by_handle(object);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1168
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1169 G_OBJECT_CLASS(parent_class)->finalize (object);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1170 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1171
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1172 static void
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1173 switch_toolbar_view(GtkWidget *item, GtkIMHtmlToolbar *toolbar)
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1174 {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1175 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/conversations/toolbar/wide",
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1176 !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/toolbar/wide"));
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1177 }
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1178
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1179 static gboolean
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1180 gtk_imhtmltoolbar_popup_menu(GtkWidget *widget, GdkEventButton *event, GtkIMHtmlToolbar *toolbar)
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1181 {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1182 GtkWidget *menu;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1183 GtkWidget *item;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1184 gboolean wide;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1185
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1186 if (event->button != 3)
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1187 return FALSE;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1188
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1189 wide = GTK_WIDGET_VISIBLE(toolbar->bold);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1190
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1191 menu = gtk_menu_new();
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1192 item = gtk_menu_item_new_with_mnemonic(wide ? _("Group Items") : _("Ungroup Items"));
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1193 g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(switch_toolbar_view), toolbar);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1194 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1195 gtk_widget_show(item);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1196
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1197 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, pidgin_menu_position_func_helper,
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1198 widget, event->button, event->time);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1199 return TRUE;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1200 }
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1201
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1202 /* Boring GTK+ stuff */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1203 static void gtk_imhtmltoolbar_class_init (GtkIMHtmlToolbarClass *class)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1204 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1205 GtkObjectClass *object_class;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1206 GObjectClass *gobject_class;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1207 object_class = (GtkObjectClass*) class;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1208 gobject_class = (GObjectClass*) class;
26712
38a5df43d525 Oops, I must have been tired. I only replaced the first occurrence of these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26434
diff changeset
1209 parent_class = g_type_class_ref(GTK_TYPE_HBOX);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1210 gobject_class->finalize = gtk_imhtmltoolbar_finalize;
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1211
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1212 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/conversations/toolbar");
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1213 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/conversations/toolbar/wide", FALSE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1214 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1215
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1216 static void gtk_imhtmltoolbar_create_old_buttons(GtkIMHtmlToolbar *toolbar)
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1217 {
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1218 GtkWidget *hbox;
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1219 GtkWidget *button;
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1220 struct {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1221 char *stock;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1222 gpointer callback;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1223 GtkWidget **button;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1224 const char *tooltip;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1225 } buttons[] = {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1226 {GTK_STOCK_BOLD, G_CALLBACK(do_bold), &toolbar->bold, _("Bold")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1227 {GTK_STOCK_ITALIC, do_italic, &toolbar->italic, _("Italic")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1228 {GTK_STOCK_UNDERLINE, do_underline, &toolbar->underline, _("Underline")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1229 {GTK_STOCK_STRIKETHROUGH, do_strikethrough, &toolbar->strikethrough, _("Strikethrough")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1230 {"", NULL, NULL, NULL},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1231 {PIDGIN_STOCK_TOOLBAR_TEXT_LARGER, do_big, &toolbar->larger_size, _("Increase Font Size")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1232 {PIDGIN_STOCK_TOOLBAR_TEXT_SMALLER, do_small, &toolbar->smaller_size, _("Decrease Font Size")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1233 {"", NULL, NULL, NULL},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1234 {PIDGIN_STOCK_TOOLBAR_FONT_FACE, toggle_font, &toolbar->font, _("Font Face")},
28599
618c41ef0ab8 Re-order the ungrouped formatting toolbar buttons to match the order of the
Etan Reisner <pidgin@unreliablesource.net>
parents: 28598
diff changeset
1235 {PIDGIN_STOCK_TOOLBAR_FGCOLOR, toggle_fg_color, &toolbar->fgcolor, _("Foreground Color")},
21839
e7a2dcfc344f Patch from DHowett to fix the transposition of background and forebround colors
Sean Egan <seanegan@gmail.com>
parents: 21770
diff changeset
1236 {PIDGIN_STOCK_TOOLBAR_BGCOLOR, toggle_bg_color, &toolbar->bgcolor, _("Background Color")},
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1237 {"", NULL, NULL, NULL},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1238 {PIDGIN_STOCK_CLEAR, clear_formatting_cb, &toolbar->clear, _("Reset Formatting")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1239 {"", NULL, NULL, NULL},
28599
618c41ef0ab8 Re-order the ungrouped formatting toolbar buttons to match the order of the
Etan Reisner <pidgin@unreliablesource.net>
parents: 28598
diff changeset
1240 {PIDGIN_STOCK_TOOLBAR_INSERT_IMAGE, insert_image_cb, &toolbar->image, _("Insert IM Image")},
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1241 {PIDGIN_STOCK_TOOLBAR_INSERT_LINK, insert_link_cb, &toolbar->link, _("Insert Link")},
28599
618c41ef0ab8 Re-order the ungrouped formatting toolbar buttons to match the order of the
Etan Reisner <pidgin@unreliablesource.net>
parents: 28598
diff changeset
1242 {"", NULL, NULL, NULL},
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1243 {PIDGIN_STOCK_TOOLBAR_SMILEY, insert_smiley_cb, &toolbar->smiley, _("Insert Smiley")},
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1244 {NULL, NULL, NULL, NULL}
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1245 };
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1246 int iter;
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1247
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1248 hbox = gtk_hbox_new(FALSE, 0);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1249
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1250 for (iter = 0; buttons[iter].stock; iter++) {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1251 if (buttons[iter].stock[0]) {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1252 button = pidgin_pixbuf_toolbar_button_from_stock(buttons[iter].stock);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1253 g_signal_connect(G_OBJECT(button), "clicked",
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1254 G_CALLBACK(buttons[iter].callback), toolbar);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1255 *(buttons[iter].button) = button;
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1256 gtk_tooltips_set_tip(toolbar->tooltips, button, buttons[iter].tooltip, NULL);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1257 } else
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1258 button = gtk_vseparator_new();
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1259 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1260 }
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1261
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1262 gtk_box_pack_start(GTK_BOX(toolbar), hbox, FALSE, FALSE, 0);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1263 g_object_set_data(G_OBJECT(toolbar), "wide-view", hbox);
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1264 }
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1265
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1266 static void
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1267 button_sensitiveness_changed(GtkWidget *button, gpointer dontcare, GtkWidget *item)
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1268 {
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1269 gtk_widget_set_sensitive(item, GTK_WIDGET_IS_SENSITIVE(button));
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1270 }
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1271
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1272 static void
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1273 update_menuitem(GtkToggleButton *button, GtkCheckMenuItem *item)
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1274 {
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1275 g_signal_handlers_block_by_func(G_OBJECT(item), G_CALLBACK(gtk_button_clicked), button);
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1276 gtk_check_menu_item_set_active(item, gtk_toggle_button_get_active(button));
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1277 g_signal_handlers_unblock_by_func(G_OBJECT(item), G_CALLBACK(gtk_button_clicked), button);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1278 }
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1279
18838
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1280 static void
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1281 enable_markup(GtkWidget *widget, gpointer null)
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1282 {
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1283 if (GTK_IS_LABEL(widget))
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1284 g_object_set(G_OBJECT(widget), "use-markup", TRUE, NULL);
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1285 }
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1286
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1287 static void
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1288 imhtmltoolbar_view_pref_changed(const char *name, PurplePrefType type,
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1289 gconstpointer value, gpointer toolbar)
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1290 {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1291 if (value) {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1292 gtk_widget_hide_all(g_object_get_data(G_OBJECT(toolbar), "lean-view"));
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1293 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "wide-view"));
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1294 } else {
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1295 gtk_widget_hide_all(g_object_get_data(G_OBJECT(toolbar), "wide-view"));
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1296 gtk_widget_show_all(g_object_get_data(G_OBJECT(toolbar), "lean-view"));
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1297 }
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1298 }
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1299
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1300 static void gtk_imhtmltoolbar_init (GtkIMHtmlToolbar *toolbar)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1301 {
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1302 GtkWidget *hbox = GTK_WIDGET(toolbar), *event = gtk_event_box_new();
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1303 GtkWidget *bbox, *box = gtk_hbox_new(FALSE, 0);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1304 GtkWidget *image;
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1305 GtkWidget *label;
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1306 GtkWidget *insert_button;
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1307 GtkWidget *font_button;
20072
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1308 GtkWidget *smiley_button;
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1309 GtkWidget *font_menu;
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1310 GtkWidget *insert_menu;
18167
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1311 GtkWidget *menuitem;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1312 GtkWidget *sep;
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1313 int i;
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1314 struct {
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1315 const char *label;
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1316 GtkWidget **button;
18780
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1317 gboolean check;
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1318 } buttons[] = {
18838
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1319 {_("<b>_Bold</b>"), &toolbar->bold, TRUE},
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1320 {_("<i>_Italic</i>"), &toolbar->italic, TRUE},
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1321 {_("<u>_Underline</u>"), &toolbar->underline, TRUE},
19469
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
1322 {_("<span strikethrough='true'>Strikethrough</span>"), &toolbar->strikethrough, TRUE},
18838
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1323 {_("<span size='larger'>_Larger</span>"), &toolbar->larger_size, TRUE},
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1324 #if 0
18780
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1325 {_("_Normal"), &toolbar->normal_size, TRUE},
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1326 #endif
18838
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1327 {_("<span size='smaller'>_Smaller</span>"), &toolbar->smaller_size, TRUE},
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1328 /* If we want to show the formatting for the following items, we would
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1329 * need to update them when formatting changes. The above items don't need
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1330 * no updating nor nothin' */
18780
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1331 {_("_Font face"), &toolbar->font, TRUE},
18792
b193b5921665 I thought I fixed this already...
Kevin Stange <kevin@simguy.net>
parents: 18780
diff changeset
1332 {_("Foreground _color"), &toolbar->fgcolor, TRUE},
18793
4e46e5f6586a Another mnemonic conflict
Kevin Stange <kevin@simguy.net>
parents: 18792
diff changeset
1333 {_("Bac_kground color"), &toolbar->bgcolor, TRUE},
18780
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1334 {_("_Reset formatting"), &toolbar->clear, FALSE},
18789
09082badaa46 Get rid of two minor compile warnings:
Mark Doliner <mark@kingant.net>
parents: 18780
diff changeset
1335 {NULL, NULL, FALSE}
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1336 };
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1337
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1338 toolbar->imhtml = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1339 toolbar->font_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1340 toolbar->fgcolor_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1341 toolbar->bgcolor_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1342 toolbar->link_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1343 toolbar->smiley_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1344 toolbar->image_dialog = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1345
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1346 toolbar->tooltips = gtk_tooltips_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1347
17260
baaf2cf9339c disapproval of revision '1f819f5ad330efa81ac7906f854b46f0c8bbd7b6'
Ethan Blanton <elb@pidgin.im>
parents: 17259
diff changeset
1348 gtk_box_set_spacing(GTK_BOX(toolbar), 3);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1349
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1350 gtk_imhtmltoolbar_create_old_buttons(toolbar);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1351
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1352 /* Fonts */
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1353 font_button = gtk_toggle_button_new();
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1354 gtk_button_set_relief(GTK_BUTTON(font_button), GTK_RELIEF_NONE);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1355 bbox = gtk_hbox_new(FALSE, 3);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1356 gtk_container_add(GTK_CONTAINER(font_button), bbox);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1357 image = gtk_image_new_from_stock(GTK_STOCK_BOLD, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL));
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1358 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1359 label = gtk_label_new_with_mnemonic(_("_Font"));
18773
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1360 gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
900b13e40471 Show current outgoing conversation formatting on the font label on
Ka-Hing Cheung <khc@hxbc.us>
parents: 18766
diff changeset
1361 g_object_set_data(G_OBJECT(hbox), "font_label", label);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1362 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1363 gtk_box_pack_start(GTK_BOX(box), font_button, FALSE, FALSE, 0);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1364 gtk_widget_show_all(font_button);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1365
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1366 font_menu = gtk_menu_new();
18778
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1367 g_object_set_data(G_OBJECT(toolbar), "font_menu", font_menu);
18004
d40fd7106ebf merge of '1c5a391126b5b506a29f0b9e34160d239cb783c6'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17751 17984
diff changeset
1368
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1369 for (i = 0; buttons[i].label; i++) {
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1370 GtkWidget *old = *buttons[i].button;
18780
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1371 if (buttons[i].check) {
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1372 menuitem = gtk_check_menu_item_new_with_mnemonic(buttons[i].label);
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1373 g_signal_connect_after(G_OBJECT(old), "toggled",
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1374 G_CALLBACK(update_menuitem), menuitem);
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1375 } else {
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1376 menuitem = gtk_menu_item_new_with_mnemonic(buttons[i].label);
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1377 }
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1378 g_signal_connect_swapped(G_OBJECT(menuitem), "activate",
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1379 G_CALLBACK(gtk_button_clicked), old);
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1380 gtk_menu_shell_append(GTK_MENU_SHELL(font_menu), menuitem);
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1381 g_signal_connect(G_OBJECT(old), "notify::sensitive",
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1382 G_CALLBACK(button_sensitiveness_changed), menuitem);
18838
1744f915edb2 Show formatting in the font dropdown menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18802
diff changeset
1383 gtk_container_foreach(GTK_CONTAINER(menuitem), (GtkCallback)enable_markup, NULL);
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1384 }
18780
c94f1699fdee Move 'Reset formatting' to Font dropdown
Sean Egan <seanegan@gmail.com>
parents: 18778
diff changeset
1385
18851
9998470a01de The hotkeys should popup the menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18838
diff changeset
1386 g_signal_connect_swapped(G_OBJECT(font_button), "button-press-event", G_CALLBACK(gtk_widget_activate), font_button);
9998470a01de The hotkeys should popup the menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18838
diff changeset
1387 g_signal_connect(G_OBJECT(font_button), "activate", G_CALLBACK(pidgin_menu_clicked), font_menu);
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1388 g_signal_connect(G_OBJECT(font_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), font_button);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1389
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1390 /* Sep */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1391 sep = gtk_vseparator_new();
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1392 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 0);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1393 gtk_widget_show_all(sep);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1394
17984
a2c36e2010f1 Fix some stuff of bugs in the new toolbar.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 17655
diff changeset
1395 /* Insert */
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1396 insert_button = gtk_toggle_button_new();
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1397 gtk_button_set_relief(GTK_BUTTON(insert_button), GTK_RELIEF_NONE);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1398 bbox = gtk_hbox_new(FALSE, 3);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1399 gtk_container_add(GTK_CONTAINER(insert_button), bbox);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1400 image = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_INSERT, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL));
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1401 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1402 label = gtk_label_new_with_mnemonic(_("_Insert"));
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1403 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1404 gtk_box_pack_start(GTK_BOX(box), insert_button, FALSE, FALSE, 0);
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1405 gtk_widget_show_all(insert_button);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1406
17549
c1d67fef5eb3 Re-did the toolbar layout to take up less room. This is what we generally agreed to on devel@. I managed to do this, amazingly, not only without breaking Pidgin plugin API compatibility, but it doesn't even add any API. This is still totally raw; I'm comitting it mostly so I can continue it easily from hmoe
Sean Egan <seanegan@gmail.com>
parents: 17421
diff changeset
1407 insert_menu = gtk_menu_new();
18778
38bac267bf8e Clean up the font and insert menus when the imhtmltoolbar is disposed of. This fixes a leak (and the crash in #2385). Fixes #2385.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 18773
diff changeset
1408 g_object_set_data(G_OBJECT(toolbar), "insert_menu", insert_menu);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1409
18167
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1410 menuitem = gtk_menu_item_new_with_mnemonic(_("_Image"));
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1411 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_button_clicked), toolbar->image);
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1412 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem);
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1413 g_signal_connect(G_OBJECT(toolbar->image), "notify::sensitive",
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1414 G_CALLBACK(button_sensitiveness_changed), menuitem);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1415
18167
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1416 menuitem = gtk_menu_item_new_with_mnemonic(_("_Link"));
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1417 g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(gtk_button_clicked), toolbar->link);
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1418 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem);
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1419 g_signal_connect(G_OBJECT(toolbar->link), "notify::sensitive",
b8b475f31008 Fix setting the sensitivity of the toolbar items in a number of places
Stu Tomlinson <stu@nosnilmot.com>
parents: 18166
diff changeset
1420 G_CALLBACK(button_sensitiveness_changed), menuitem);
17550
425b83d9614d disapproval of revision '1f2acb75f934f19f04262b06c2907dece2731ed2'
Sean Egan <seanegan@gmail.com>
parents: 17549
diff changeset
1421
19469
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
1422 menuitem = gtk_menu_item_new_with_mnemonic(_("_Horizontal rule"));
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
1423 g_signal_connect(G_OBJECT(menuitem), "activate" , G_CALLBACK(insert_hr_cb), toolbar);
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
1424 gtk_menu_shell_append(GTK_MENU_SHELL(insert_menu), menuitem);
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 24007
diff changeset
1425 toolbar->insert_hr = menuitem;
19469
42ee8f13c917 Add horizontal rules and strikethroughs to the toolbar
Sean Egan <seanegan@gmail.com>
parents: 18851
diff changeset
1426
18851
9998470a01de The hotkeys should popup the menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18838
diff changeset
1427 g_signal_connect_swapped(G_OBJECT(insert_button), "button-press-event", G_CALLBACK(gtk_widget_activate), insert_button);
9998470a01de The hotkeys should popup the menu.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 18838
diff changeset
1428 g_signal_connect(G_OBJECT(insert_button), "activate", G_CALLBACK(pidgin_menu_clicked), insert_menu);
17655
4d53ccae32b0 Fix a compile error and kill a bucket full of compile warnings
Stu Tomlinson <stu@nosnilmot.com>
parents: 17549
diff changeset
1429 g_signal_connect(G_OBJECT(insert_menu), "deactivate", G_CALLBACK(pidgin_menu_deactivate), insert_button);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1430 toolbar->sml = NULL;
25415
584063555949 Remove trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 24007
diff changeset
1431
20072
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1432 /* Sep */
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1433 sep = gtk_vseparator_new();
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1434 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 0);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1435 gtk_widget_show_all(sep);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1436
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1437 /* Smiley */
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1438 smiley_button = gtk_button_new();
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1439 gtk_button_set_relief(GTK_BUTTON(smiley_button), GTK_RELIEF_NONE);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1440 bbox = gtk_hbox_new(FALSE, 3);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1441 gtk_container_add(GTK_CONTAINER(smiley_button), bbox);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1442 image = gtk_image_new_from_stock(PIDGIN_STOCK_TOOLBAR_SMILEY, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL));
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1443 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
20160
b6517519d719 Exclaim
Sean Egan <seanegan@gmail.com>
parents: 20074
diff changeset
1444 label = gtk_label_new_with_mnemonic(_("_Smile!"));
20072
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1445 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1446 gtk_box_pack_start(GTK_BOX(box), smiley_button, FALSE, FALSE, 0);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1447 g_signal_connect_swapped(G_OBJECT(smiley_button), "clicked", G_CALLBACK(gtk_button_clicked), toolbar->smiley);
b4708680299e special case smileys in the toolbar. Fixes #2668 I'll need a new icon from Hylke
Sean Egan <seanegan@gmail.com>
parents: 20041
diff changeset
1448 gtk_widget_show_all(smiley_button);
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1449
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1450 gtk_box_pack_start(GTK_BOX(hbox), box, FALSE, FALSE, 0);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1451 g_object_set_data(G_OBJECT(hbox), "lean-view", box);
22093
35d5b7804449 Show the grouped items initially. This fixes the issues with the size of the entry box in the conversation windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21971
diff changeset
1452 gtk_widget_show(box);
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1453
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1454 purple_prefs_connect_callback(toolbar, PIDGIN_PREFS_ROOT "/conversations/toolbar/wide",
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1455 imhtmltoolbar_view_pref_changed, toolbar);
21770
7f79f3099c72 Show either the grouped xor the ungrouped items.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21645
diff changeset
1456 g_signal_connect_data(G_OBJECT(toolbar), "realize",
7f79f3099c72 Show either the grouped xor the ungrouped items.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21645
diff changeset
1457 G_CALLBACK(purple_prefs_trigger_callback), PIDGIN_PREFS_ROOT "/conversations/toolbar/wide",
7f79f3099c72 Show either the grouped xor the ungrouped items.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21645
diff changeset
1458 NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1459
19982
305c95ea0a7b Fix from fmoo so that the imhtml toolbar appears right on the MS-Windows theme (and probably other themes too).
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19680
diff changeset
1460 #if GTK_CHECK_VERSION(2,4,0)
305c95ea0a7b Fix from fmoo so that the imhtml toolbar appears right on the MS-Windows theme (and probably other themes too).
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19680
diff changeset
1461 gtk_event_box_set_visible_window(GTK_EVENT_BOX(event), FALSE);
305c95ea0a7b Fix from fmoo so that the imhtml toolbar appears right on the MS-Windows theme (and probably other themes too).
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19680
diff changeset
1462 #endif
305c95ea0a7b Fix from fmoo so that the imhtml toolbar appears right on the MS-Windows theme (and probably other themes too).
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19680
diff changeset
1463
19586
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1464 gtk_widget_add_events(event, GDK_BUTTON_PRESS_MASK);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1465 gtk_box_pack_start(GTK_BOX(hbox), event, TRUE, TRUE, 0);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1466 g_signal_connect(G_OBJECT(event), "button-press-event", G_CALLBACK(gtk_imhtmltoolbar_popup_menu), toolbar);
c3259b161070 Add a 'Group Items'/'Ungroup Items' context menu for the toolbar in the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 19541
diff changeset
1467 gtk_widget_show(event);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1468 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1469
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1470 GtkWidget *gtk_imhtmltoolbar_new()
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1471 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1472 return GTK_WIDGET(g_object_new(gtk_imhtmltoolbar_get_type(), NULL));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1473 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1474
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1475 GType gtk_imhtmltoolbar_get_type()
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1476 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1477 static GType imhtmltoolbar_type = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1478
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1479 if (!imhtmltoolbar_type) {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1480 static const GTypeInfo imhtmltoolbar_info = {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1481 sizeof(GtkIMHtmlToolbarClass),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1482 NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1483 NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1484 (GClassInitFunc) gtk_imhtmltoolbar_class_init,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1485 NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1486 NULL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1487 sizeof (GtkIMHtmlToolbar),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1488 0,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1489 (GInstanceInitFunc) gtk_imhtmltoolbar_init,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1490 NULL
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1491 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1492
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1493 imhtmltoolbar_type = g_type_register_static(GTK_TYPE_HBOX,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1494 "GtkIMHtmlToolbar", &imhtmltoolbar_info, 0);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1495 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1496
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1497 return imhtmltoolbar_type;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1498 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1499
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1500
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1501 void gtk_imhtmltoolbar_attach(GtkIMHtmlToolbar *toolbar, GtkWidget *imhtml)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1502 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1503 GtkIMHtmlButtons buttons;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1504
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1505 g_return_if_fail(toolbar != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1506 g_return_if_fail(GTK_IS_IMHTMLTOOLBAR(toolbar));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1507 g_return_if_fail(imhtml != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1508 g_return_if_fail(GTK_IS_IMHTML(imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1509
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1510 toolbar->imhtml = imhtml;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1511 g_signal_connect(G_OBJECT(imhtml), "format_buttons_update", G_CALLBACK(update_buttons_cb), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1512 g_signal_connect_after(G_OBJECT(imhtml), "format_function_toggle", G_CALLBACK(toggle_button_cb), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1513 g_signal_connect_after(G_OBJECT(imhtml), "format_function_clear", G_CALLBACK(update_format_cb), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1514 g_signal_connect(G_OBJECT(imhtml), "format_function_update", G_CALLBACK(update_format_cb), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1515 g_signal_connect_after(G_OBJECT(GTK_IMHTML(imhtml)->text_buffer), "mark-set", G_CALLBACK(mark_set_cb), toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1516
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1517 buttons = gtk_imhtml_get_format_functions(GTK_IMHTML(imhtml));
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1518 update_buttons_cb(GTK_IMHTML(imhtml), buttons, toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1519 update_buttons(toolbar);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1520 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1521
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1522 void gtk_imhtmltoolbar_associate_smileys(GtkIMHtmlToolbar *toolbar, const char *proto_id)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1523 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1524 g_free(toolbar->sml);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1525 toolbar->sml = g_strdup(proto_id);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1526 }