annotate src/gtknotify.c @ 13280:3de53fe8345f

[gaim-migrate @ 15646] Always show a vertical scrollbar on conversations imhtmls. This will solve the shrinking conversation window bug. I chose this approach instead of saving the size of the window (as I had previous talked about), as this prevents the contents of the scrollback from rewrapping when the scrollbars appear or disappear. It also just seems to feel like the right thing to do, but maybe that's me being lazy. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Tue, 14 Feb 2006 05:43:43 +0000
parents 0aa231ebbfd5
children 79682d6f032e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file gtknotify.c GTK+ Notification API
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 * @ingroup gtkui
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7920
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7920
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
fa6395637e2c [gaim-migrate @ 8730]
Sean Egan <seanegan@gmail.com>
parents: 7920
diff changeset
9 * source distribution.
6465
fb64cc87bc96 [gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents: 6381
diff changeset
10 *
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
9791
4a15962c344a [gaim-migrate @ 10659]
Mark Doliner <mark@kingant.net>
parents: 9777
diff changeset
25 #include "internal.h"
4a15962c344a [gaim-migrate @ 10659]
Mark Doliner <mark@kingant.net>
parents: 9777
diff changeset
26 #include "gtkgaim.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
27
7455
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
28 #include <gdk/gdkkeysyms.h>
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
29
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
30 #include "connection.h"
8284
980b3bd976ae [gaim-migrate @ 9008]
Mark Doliner <mark@kingant.net>
parents: 8278
diff changeset
31 #include "debug.h"
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
32 #include "prefs.h"
10297
ec140184437b [gaim-migrate @ 11480]
Luke Schierer <lschiere@pidgin.im>
parents: 10260
diff changeset
33 #include "gtkstock.h"
6465
fb64cc87bc96 [gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents: 6381
diff changeset
34 #include "util.h"
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
36 #include "gtkblist.h"
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
37 #include "gtkimhtml.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
38 #include "gtknotify.h"
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
39 #include "gtkutils.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5794
diff changeset
40
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
41 typedef struct
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
42 {
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5543
diff changeset
43 GaimConnection *gc;
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
44 char *url;
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
45 GtkWidget *label;
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
46 GtkTreeIter iter;
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
47 } GaimNotifyMailData;
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
48
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
49 typedef struct
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
50 {
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
51 GaimAccount *account;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
52 GtkListStore *model;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
53 GtkWidget *treeview;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
54 GtkWidget *window;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
55 } GaimNotifySearchResultsData;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
56
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
57 typedef struct
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
58 {
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
59 GaimNotifySearchButton *button;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
60 GaimNotifySearchResultsData *data;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
61
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
62 } GaimNotifySearchResultsButtonData;
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
63
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
64 enum
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
65 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
66 GAIM_MAIL_ICON,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
67 GAIM_MAIL_TO,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
68 GAIM_MAIL_FROM,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
69 GAIM_MAIL_SUBJECT,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
70 GAIM_MAIL_DATA,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
71 COLUMNS_GAIM_MAIL
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
72 };
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
73
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
74 typedef struct _GaimMailDialog GaimMailDialog;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
75
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
76 struct _GaimMailDialog
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
77 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
78 GtkWidget *dialog;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
79 GtkWidget *treeview;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
80 GtkTreeStore *treemodel;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
81 GtkLabel *label;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
82 };
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
83
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
84 static GaimMailDialog *mail_dialog = NULL;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
85
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
86 static void *gaim_gtk_notify_emails(GaimConnection *gc, size_t count, gboolean detailed,
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
87 const char **subjects,
5476
9bcd8cd625ae [gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents: 5437
diff changeset
88 const char **froms, const char **tos,
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
89 const char **urls);
5476
9bcd8cd625ae [gaim-migrate @ 5872]
Christian Hammond <chipx86@chipx86.com>
parents: 5437
diff changeset
90
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
91 static void
6354
76af8c066f8c [gaim-migrate @ 6853]
Christian Hammond <chipx86@chipx86.com>
parents: 6106
diff changeset
92 message_response_cb(GtkDialog *dialog, gint id, GtkWidget *widget)
6104
29ddc42ff402 [gaim-migrate @ 6565]
Mark Doliner <mark@kingant.net>
parents: 5872
diff changeset
93 {
6357
1fa4410d2e13 [gaim-migrate @ 6856]
Mark Doliner <mark@kingant.net>
parents: 6354
diff changeset
94 gaim_notify_close(GAIM_NOTIFY_MESSAGE, widget);
6104
29ddc42ff402 [gaim-migrate @ 6565]
Mark Doliner <mark@kingant.net>
parents: 5872
diff changeset
95 }
29ddc42ff402 [gaim-migrate @ 6565]
Mark Doliner <mark@kingant.net>
parents: 5872
diff changeset
96
29ddc42ff402 [gaim-migrate @ 6565]
Mark Doliner <mark@kingant.net>
parents: 5872
diff changeset
97 static void
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
98 email_nondetailed_cb(GtkDialog *dialog, gint id, GaimNotifyMailData *data)
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
99 {
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
100 if (id == GTK_RESPONSE_OK)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
101 gaim_notify_uri(NULL, data->url);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
102 gaim_notify_close(GAIM_NOTIFY_EMAILS, data);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
103 gtk_widget_destroy(GTK_WIDGET(dialog));
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
104 }
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
105
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
106 static void
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
107 email_response_cb(GtkDialog *dlg, gint id, GaimMailDialog *dialog)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
108 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
109 GaimNotifyMailData *data = NULL;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
110 GtkTreeIter iter;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
111
10260
a2bbfdcc325d [gaim-migrate @ 11403]
Mark Doliner <mark@kingant.net>
parents: 10240
diff changeset
112 if (id == GTK_RESPONSE_YES)
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
113 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
114 GtkTreeSelection *selection;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
115
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
116 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
117
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
118 if (gtk_tree_selection_get_selected(selection, NULL, &iter))
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
119 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
120 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
121 GAIM_MAIL_DATA, &data, -1);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
122 gaim_notify_uri(NULL, data->url);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
123
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
124 gtk_tree_store_remove(dialog->treemodel, &iter);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
125 gaim_notify_close(GAIM_NOTIFY_EMAILS, data);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
126
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
127 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mail_dialog->treemodel), &iter))
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
128 return;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
129 }
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
130 else
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
131 return;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
132 }
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
133 else
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
134 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
135 while (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(mail_dialog->treemodel), &iter))
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
136 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
137 gtk_tree_model_get(GTK_TREE_MODEL(dialog->treemodel), &iter,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
138 GAIM_MAIL_DATA, &data, -1);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
139
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
140 if (id == GTK_RESPONSE_ACCEPT)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
141 gaim_notify_uri(NULL, data->url);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
142
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
143 gtk_tree_store_remove(dialog->treemodel, &iter);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
144 gaim_notify_close(GAIM_NOTIFY_EMAILS, data);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
145 }
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
146 }
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
147 gtk_widget_destroy(dialog->dialog);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
148 g_free(dialog);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
149 mail_dialog = NULL;
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
150 }
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
151
7007
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
152 static void
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
153 formatted_close_cb(GtkWidget *win, GdkEvent *event, void *user_data)
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
154 {
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
155 gaim_notify_close(GAIM_NOTIFY_FORMATTED, win);
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
156 }
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
157
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
158 static void
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
159 searchresults_close_cb(GaimNotifySearchResultsData *data, GdkEvent *event, void *user_data)
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
160 {
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
161 gaim_notify_close(GAIM_NOTIFY_SEARCHRESULTS, data);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
162 }
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
163
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
164 static void
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
165 searchresults_callback_wrapper_cb(GtkWidget *widget, GaimNotifySearchResultsButtonData *bd)
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
166 {
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
167 GaimNotifySearchResultsData *data = bd->data;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
168
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
169 GtkTreeSelection *selection;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
170 GtkTreeModel *model;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
171 GtkTreeIter iter;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
172 GaimNotifySearchButton *button;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
173 GList *row = NULL;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
174 gchar *str;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
175 int i;
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
176
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
177 g_return_if_fail(data != NULL);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
178
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
179 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data->treeview));
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
180
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
181 if (gtk_tree_selection_get_selected(selection, &model, &iter))
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
182 {
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
183 for (i = 1; i < gtk_tree_model_get_n_columns(GTK_TREE_MODEL(model)); i++) {
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
184 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, i, &str, -1);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
185 row = g_list_append(row, str);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
186 }
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
187 }
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
188
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
189 button = bd->button;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
190 button->callback(gaim_account_get_connection(data->account), row);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
191 }
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
192
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
193 static void *
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
194 gaim_gtk_notify_message(GaimNotifyMsgType type, const char *title,
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
195 const char *primary, const char *secondary)
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
196 {
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
197 GtkWidget *dialog;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
198 GtkWidget *hbox;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
199 GtkWidget *label;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
200 GtkWidget *img = NULL;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
201 char label_text[2048];
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
202 const char *icon_name = NULL;
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
203 char *primary_esc, *secondary_esc;
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
204
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
205 switch (type)
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
206 {
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
207 case GAIM_NOTIFY_MSG_ERROR:
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
208 icon_name = GAIM_STOCK_DIALOG_ERROR;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
209 break;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
210
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
211 case GAIM_NOTIFY_MSG_WARNING:
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
212 icon_name = GAIM_STOCK_DIALOG_WARNING;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
213 break;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
214
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
215 case GAIM_NOTIFY_MSG_INFO:
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
216 icon_name = GAIM_STOCK_DIALOG_INFO;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
217 break;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
218
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
219 default:
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
220 icon_name = NULL;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
221 break;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
222 }
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
223
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
224 if (icon_name != NULL)
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
225 {
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
226 img = gtk_image_new_from_stock(icon_name, GTK_ICON_SIZE_DIALOG);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
227 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
228 }
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
229
7678
cf6a7939af78 [gaim-migrate @ 8322]
Sean Egan <seanegan@gmail.com>
parents: 7673
diff changeset
230 dialog = gtk_dialog_new_with_buttons(title ? title : GAIM_ALERT_TITLE,
10260
a2bbfdcc325d [gaim-migrate @ 11403]
Mark Doliner <mark@kingant.net>
parents: 10240
diff changeset
231 NULL, 0, GTK_STOCK_CLOSE,
a2bbfdcc325d [gaim-migrate @ 11403]
Mark Doliner <mark@kingant.net>
parents: 10240
diff changeset
232 GTK_RESPONSE_CLOSE, NULL);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
233
8523
013d256e8ded [gaim-migrate @ 9262]
Christian Hammond <chipx86@chipx86.com>
parents: 8356
diff changeset
234 gtk_window_set_role(GTK_WINDOW(dialog), "notify_dialog");
013d256e8ded [gaim-migrate @ 9262]
Christian Hammond <chipx86@chipx86.com>
parents: 8356
diff changeset
235
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
236 g_signal_connect(G_OBJECT(dialog), "response",
6104
29ddc42ff402 [gaim-migrate @ 6565]
Mark Doliner <mark@kingant.net>
parents: 5872
diff changeset
237 G_CALLBACK(message_response_cb), dialog);
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
238
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
239 gtk_container_set_border_width(GTK_CONTAINER(dialog), GAIM_HIG_BORDER);
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
240 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
241 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
242 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BORDER);
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
243 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BOX_SPACE);
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
244
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
245 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BORDER);
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
246 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
247
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
248 if (img != NULL)
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
249 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
250
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
251 primary_esc = g_markup_escape_text(primary, -1);
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
252 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
253 g_snprintf(label_text, sizeof(label_text),
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
254 "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s",
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
255 primary_esc, (secondary ? secondary_esc : ""));
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
256 g_free(primary_esc);
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
257 g_free(secondary_esc);
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
258
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
259 label = gtk_label_new(NULL);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
260
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
261 gtk_label_set_markup(GTK_LABEL(label), label_text);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
262 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
263 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
264 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
265
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
266 gtk_widget_show_all(dialog);
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
267
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
268 return dialog;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
269 }
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
270
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
271 static void *
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
272 gaim_gtk_notify_email(GaimConnection *gc, const char *subject, const char *from,
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
273 const char *to, const char *url)
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
274 {
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
275 return gaim_gtk_notify_emails(gc, 1, (subject != NULL),
5524
101384b068c1 [gaim-migrate @ 5924]
Christian Hammond <chipx86@chipx86.com>
parents: 5519
diff changeset
276 (subject == NULL ? NULL : &subject),
101384b068c1 [gaim-migrate @ 5924]
Christian Hammond <chipx86@chipx86.com>
parents: 5519
diff changeset
277 (from == NULL ? NULL : &from),
101384b068c1 [gaim-migrate @ 5924]
Christian Hammond <chipx86@chipx86.com>
parents: 5519
diff changeset
278 (to == NULL ? NULL : &to),
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
279 (url == NULL ? NULL : &url));
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
280 }
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
281
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
282 static void *
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
283 gaim_gtk_notify_emails(GaimConnection *gc, size_t count, gboolean detailed,
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
284 const char **subjects, const char **froms,
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
285 const char **tos, const char **urls)
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
286 {
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
287 GaimNotifyMailData *data = NULL;
12911
14a103c0e4d5 [gaim-migrate @ 15264]
Richard Laager <rlaager@wiktel.com>
parents: 12647
diff changeset
288 GtkWidget *dialog = NULL;
14a103c0e4d5 [gaim-migrate @ 15264]
Richard Laager <rlaager@wiktel.com>
parents: 12647
diff changeset
289 GtkWidget *vbox = NULL;
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
290 GtkWidget *hbox;
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
291 GtkWidget *label;
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
292 GtkWidget *img;
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
293 char *detail_text;
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
294 char *label_text;
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
295 GtkTreeIter iter;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
296 GaimAccount *account;
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
297
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
298 account = gaim_connection_get_account(gc);
5524
101384b068c1 [gaim-migrate @ 5924]
Christian Hammond <chipx86@chipx86.com>
parents: 5519
diff changeset
299
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
300 if (mail_dialog == NULL || !detailed)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
301 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
302 GtkCellRenderer *rend;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
303 GtkTreeViewColumn *column;
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
304
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
305 dialog = gtk_dialog_new_with_buttons(_("New Mail"), NULL, 0,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
306 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
307 NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
308 if (detailed)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
309 gtk_window_set_role(GTK_WINDOW(dialog), "new_mail_detailed");
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
310 else
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
311 gtk_window_set_role(GTK_WINDOW(dialog), "new_mail");
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
312
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
313 if (!detailed && urls)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
314 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
315 gtk_dialog_add_button(GTK_DIALOG(dialog),
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
316 GAIM_STOCK_OPEN_MAIL, GTK_RESPONSE_OK);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
317 }
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
318 else if (detailed && mail_dialog == NULL)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
319 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
320 gtk_dialog_add_button(GTK_DIALOG(dialog),
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
321 _("Open All Messages"), GTK_RESPONSE_ACCEPT);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
322
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
323 gtk_dialog_add_button(GTK_DIALOG(dialog),
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
324 GAIM_STOCK_OPEN_MAIL, GTK_RESPONSE_YES);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
325 }
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
326
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
327 /* Setup the dialog */
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
328 gtk_container_set_border_width(GTK_CONTAINER(dialog), GAIM_HIG_BOX_SPACE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
329 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BOX_SPACE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
330 gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
331 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BORDER);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
332
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
333 /* Setup the main horizontal box */
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
334 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BORDER);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
335 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
336
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
337 /* Dialog icon */
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
338 img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_INFO,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
339 GTK_ICON_SIZE_DIALOG);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
340 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
341 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
342
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
343 /* Vertical box */
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
344 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
345
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
346 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
347
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
348 if (mail_dialog == NULL && detailed)
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
349 {
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
350 GtkWidget *sw;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
351
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
352 /* Golden ratio it up! */
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
353 gtk_widget_set_size_request(dialog, 475, 200);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
354
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
355 sw = gtk_scrolled_window_new(NULL, NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
356 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
357 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
358
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
359 mail_dialog = g_new0(GaimMailDialog, 1);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
360 mail_dialog->dialog = dialog;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
361
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
362 mail_dialog->treemodel = gtk_tree_store_new(COLUMNS_GAIM_MAIL,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
363 GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
364 mail_dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(mail_dialog->treemodel));
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
365
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
366 g_signal_connect(G_OBJECT(dialog), "response",
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
367 G_CALLBACK(email_response_cb), mail_dialog);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
368
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
369 column = gtk_tree_view_column_new();
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
370 gtk_tree_view_column_set_resizable(column, TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
371 gtk_tree_view_column_set_title(column, _("Account"));
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
372 rend = gtk_cell_renderer_pixbuf_new();
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
373 gtk_tree_view_column_pack_start(column, rend, FALSE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
374 gtk_tree_view_column_set_attributes(column, rend, "pixbuf", GAIM_MAIL_ICON, NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
375 rend = gtk_cell_renderer_text_new();
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
376 gtk_tree_view_column_pack_start(column, rend, TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
377 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_TO, NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
378 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
379
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
380 column = gtk_tree_view_column_new();
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
381 gtk_tree_view_column_set_resizable(column, TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
382 gtk_tree_view_column_set_title(column, _("From"));
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
383 rend = gtk_cell_renderer_text_new();
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
384 gtk_tree_view_column_pack_start(column, rend, TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
385 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_FROM, NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
386 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
387
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
388 column = gtk_tree_view_column_new();
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
389 gtk_tree_view_column_set_resizable(column, TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
390 gtk_tree_view_column_set_title(column, _("Subject"));
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
391 rend = gtk_cell_renderer_text_new();
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
392 gtk_tree_view_column_pack_start(column, rend, TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
393 gtk_tree_view_column_set_attributes(column, rend, "markup", GAIM_MAIL_SUBJECT, NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
394 gtk_tree_view_append_column(GTK_TREE_VIEW(mail_dialog->treeview), column);
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
395
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
396 gtk_container_add(GTK_CONTAINER(sw), mail_dialog->treeview);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
397
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
398 label = gtk_label_new(NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
399 gtk_label_set_markup(GTK_LABEL(label), _("<span weight=\"bold\" size=\"larger\">You have mail!</span>"));
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
400 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
401 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
402 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
403 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
404 }
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
405 }
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
406
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
407 if (detailed)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
408 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
409 dialog = mail_dialog->dialog;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
410 while (count--)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
411 {
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
412 char *from_text = NULL, *subject_text = NULL;
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
413 GdkPixbuf *pixbuf;
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
414
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
415 if (froms != NULL)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
416 from_text = g_markup_escape_text(*froms, -1);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
417
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
418 if (subjects != NULL)
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
419 subject_text = g_markup_escape_text(*subjects, -1);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
420
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
421 data = g_new0(GaimNotifyMailData, 1);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
422 data->url = g_strdup(*urls);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
423
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
424 pixbuf = gaim_gtk_create_prpl_icon(account, 0.5);
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
425
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
426 gtk_tree_store_append(mail_dialog->treemodel, &iter, NULL);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
427 gtk_tree_store_set(mail_dialog->treemodel, &iter,
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
428 GAIM_MAIL_ICON, pixbuf,
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
429 GAIM_MAIL_TO, *tos,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
430 GAIM_MAIL_FROM, from_text,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
431 GAIM_MAIL_SUBJECT, subject_text,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
432 GAIM_MAIL_DATA, data,
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
433 -1);
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
434 if (pixbuf != NULL)
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
435 g_object_unref(pixbuf);
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
436 data->iter = iter;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
437 urls++;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
438 froms++;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
439 subjects++;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
440 tos++;
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
441 }
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
442 }
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
443 else
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
444 {
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
445 data = g_new0(GaimNotifyMailData, 1);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
446 data->url = g_strdup(*urls);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
447
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
448 g_signal_connect(G_OBJECT(dialog), "response",
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
449 G_CALLBACK(email_nondetailed_cb), data);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
450
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
451 detail_text = g_strdup_printf(ngettext("%s has %d new message.",
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
452 "%s has %d new messages.",
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
453 (int)count),
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
454 *tos, (int)count);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
455 label_text = g_strdup_printf(
5543
7a36a3644887 [gaim-migrate @ 5944]
Luke Schierer <lschiere@pidgin.im>
parents: 5537
diff changeset
456 _("<span weight=\"bold\" size=\"larger\">You have mail!</span>"
7a36a3644887 [gaim-migrate @ 5944]
Luke Schierer <lschiere@pidgin.im>
parents: 5537
diff changeset
457 "\n\n%s"), detail_text);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
458
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
459 label = gtk_label_new(NULL);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
460
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
461 gtk_label_set_markup(GTK_LABEL(label), label_text);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
462 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
463 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
464 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0);
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
465
12647
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
466 g_free(label_text);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
467 g_free(detail_text);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
468 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
852df2d9d4f8 [gaim-migrate @ 14985]
Richard Laager <rlaager@wiktel.com>
parents: 12624
diff changeset
469 }
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
470 gtk_widget_show_all(dialog);
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
471
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
472 return data;
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
473 }
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
474
8337
65ae6930b45a [gaim-migrate @ 9061]
Christian Hammond <chipx86@chipx86.com>
parents: 8284
diff changeset
475 static gboolean
10875
a118e50116df [gaim-migrate @ 12566]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 10774
diff changeset
476 formatted_input_cb(GtkWidget *win, GdkEventKey *event, gpointer data)
7455
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
477 {
8337
65ae6930b45a [gaim-migrate @ 9061]
Christian Hammond <chipx86@chipx86.com>
parents: 8284
diff changeset
478 if (event->keyval == GDK_Escape)
65ae6930b45a [gaim-migrate @ 9061]
Christian Hammond <chipx86@chipx86.com>
parents: 8284
diff changeset
479 {
10875
a118e50116df [gaim-migrate @ 12566]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 10774
diff changeset
480 gaim_notify_close(GAIM_NOTIFY_FORMATTED, win);
8337
65ae6930b45a [gaim-migrate @ 9061]
Christian Hammond <chipx86@chipx86.com>
parents: 8284
diff changeset
481
7455
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
482 return TRUE;
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
483 }
8337
65ae6930b45a [gaim-migrate @ 9061]
Christian Hammond <chipx86@chipx86.com>
parents: 8284
diff changeset
484
7455
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
485 return FALSE;
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
486 }
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
487
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
488 static void *
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
489 gaim_gtk_notify_formatted(const char *title, const char *primary,
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
490 const char *secondary, const char *text)
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
491 {
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
492 GtkWidget *window;
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
493 GtkWidget *vbox;
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
494 GtkWidget *label;
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
495 GtkWidget *button;
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
496 GtkWidget *imhtml;
10181
5b33637b69fd [gaim-migrate @ 11296]
Mark Doliner <mark@kingant.net>
parents: 10061
diff changeset
497 GtkWidget *frame;
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
498 int options = 0;
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
499 char label_text[2048];
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
500 char *linked_text, *primary_esc, *secondary_esc;
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
501
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
502 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
8345
7787485141ca [gaim-migrate @ 9069]
Nathan Walp <nwalp@pidgin.im>
parents: 8338
diff changeset
503 gtk_window_set_title(GTK_WINDOW(window), title);
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
504 gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
505 gtk_container_set_border_width(GTK_CONTAINER(window), GAIM_HIG_BORDER);
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
506
7007
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
507 g_signal_connect(G_OBJECT(window), "delete_event",
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
508 G_CALLBACK(formatted_close_cb), NULL);
da1430478acf [gaim-migrate @ 7564]
Christian Hammond <chipx86@chipx86.com>
parents: 6982
diff changeset
509
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
510 /* Setup the main vbox */
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
511 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
512 gtk_container_add(GTK_CONTAINER(window), vbox);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
513 gtk_widget_show(vbox);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
514
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
515 /* Setup the descriptive label */
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
516 primary_esc = g_markup_escape_text(primary, -1);
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
517 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
518 g_snprintf(label_text, sizeof(label_text),
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
519 "<span weight=\"bold\" size=\"larger\">%s</span>%s%s",
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
520 primary_esc,
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
521 (secondary ? "\n" : ""),
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
522 (secondary ? secondary_esc : ""));
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
523 g_free(primary_esc);
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
524 g_free(secondary_esc);
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
525
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
526 label = gtk_label_new(NULL);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
527
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
528 gtk_label_set_markup(GTK_LABEL(label), label_text);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
529 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
530 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
531 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
532 gtk_widget_show(label);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
533
10181
5b33637b69fd [gaim-migrate @ 11296]
Mark Doliner <mark@kingant.net>
parents: 10061
diff changeset
534 /* Add the imhtml */
13280
3de53fe8345f [gaim-migrate @ 15646]
Richard Laager <rlaager@wiktel.com>
parents: 13090
diff changeset
535 frame = gaim_gtk_create_imhtml(FALSE, &imhtml, NULL, NULL);
9005
230cf4032e3d [gaim-migrate @ 9780]
Luke Schierer <lschiere@pidgin.im>
parents: 8962
diff changeset
536 gtk_widget_set_name(imhtml, "gaim_gtknotify_imhtml");
11723
9537977703bb [gaim-migrate @ 14014]
Richard Laager <rlaager@wiktel.com>
parents: 11533
diff changeset
537 gtk_imhtml_set_format_functions(GTK_IMHTML(imhtml),
9537977703bb [gaim-migrate @ 14014]
Richard Laager <rlaager@wiktel.com>
parents: 11533
diff changeset
538 gtk_imhtml_get_format_functions(GTK_IMHTML(imhtml)) | GTK_IMHTML_IMAGE);
10181
5b33637b69fd [gaim-migrate @ 11296]
Mark Doliner <mark@kingant.net>
parents: 10061
diff changeset
539 gtk_widget_set_size_request(imhtml, 300, 250);
5b33637b69fd [gaim-migrate @ 11296]
Mark Doliner <mark@kingant.net>
parents: 10061
diff changeset
540 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
5b33637b69fd [gaim-migrate @ 11296]
Mark Doliner <mark@kingant.net>
parents: 10061
diff changeset
541 gtk_widget_show(frame);
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
542
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
543 /* Add the Close button. */
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
544 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
545 gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
546 gtk_widget_show(button);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
547
6872
dd0eecfbe413 [gaim-migrate @ 7418]
Nathan Walp <nwalp@pidgin.im>
parents: 6465
diff changeset
548 g_signal_connect_swapped(G_OBJECT(button), "clicked",
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
549 G_CALLBACK(formatted_close_cb), window);
7455
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
550 g_signal_connect(G_OBJECT(window), "key_press_event",
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
551 G_CALLBACK(formatted_input_cb), NULL);
7455
3a5f89ba0da5 [gaim-migrate @ 8068]
Nathan Walp <nwalp@pidgin.im>
parents: 7399
diff changeset
552
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
553 /* Add the text to the gtkimhtml */
11293
b9b9b67f6325 [gaim-migrate @ 13493]
Mark Doliner <mark@kingant.net>
parents: 11243
diff changeset
554 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/show_incoming_formatting"))
10497
e6b87f7e8988 [gaim-migrate @ 11789]
Mark Doliner <mark@kingant.net>
parents: 10439
diff changeset
555 options |= GTK_IMHTML_NO_COLOURS | GTK_IMHTML_NO_FONTS | GTK_IMHTML_NO_SIZES;
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
556
10503
776586d647e3 [gaim-migrate @ 11795]
Mark Doliner <mark@kingant.net>
parents: 10497
diff changeset
557 options |= GTK_IMHTML_NO_COMMENTS;
776586d647e3 [gaim-migrate @ 11795]
Mark Doliner <mark@kingant.net>
parents: 10497
diff changeset
558 options |= GTK_IMHTML_NO_TITLE;
776586d647e3 [gaim-migrate @ 11795]
Mark Doliner <mark@kingant.net>
parents: 10497
diff changeset
559 options |= GTK_IMHTML_NO_NEWLINE;
776586d647e3 [gaim-migrate @ 11795]
Mark Doliner <mark@kingant.net>
parents: 10497
diff changeset
560 options |= GTK_IMHTML_NO_SCROLL;
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
561
8882
25344c2d74c4 [gaim-migrate @ 9651]
Mark Doliner <mark@kingant.net>
parents: 8523
diff changeset
562 /* Make sure URLs are clickable */
25344c2d74c4 [gaim-migrate @ 9651]
Mark Doliner <mark@kingant.net>
parents: 8523
diff changeset
563 linked_text = gaim_markup_linkify(text);
10181
5b33637b69fd [gaim-migrate @ 11296]
Mark Doliner <mark@kingant.net>
parents: 10061
diff changeset
564 gtk_imhtml_append_text(GTK_IMHTML(imhtml), linked_text, options);
8882
25344c2d74c4 [gaim-migrate @ 9651]
Mark Doliner <mark@kingant.net>
parents: 8523
diff changeset
565 g_free(linked_text);
7078
acd2a66e59ed [gaim-migrate @ 7643]
Nathan Walp <nwalp@pidgin.im>
parents: 7039
diff changeset
566
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
567 /* Show the window */
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
568 gtk_widget_show(window);
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
569
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
570 return window;
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
571 }
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
572
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
573 static void
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
574 gaim_gtk_notify_searchresults_new_rows(GaimConnection *gc, GaimNotifySearchResults *results,
12220
64254fbabc7b [gaim-migrate @ 14522]
Richard Laager <rlaager@wiktel.com>
parents: 11723
diff changeset
575 void *data_, gpointer user_data)
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
576 {
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
577 GaimNotifySearchResultsData *data = data_;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
578 GtkListStore *model = data->model;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
579 GtkTreeIter iter;
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
580 GdkPixbuf *pixbuf;
12257
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
581 guint col_num;
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
582 guint i;
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
583 guint j;
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
584
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
585 gtk_list_store_clear(data->model);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
586
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
587 pixbuf = gaim_gtk_create_prpl_icon(gaim_connection_get_account(gc), 0.5);
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
588
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
589 /* +1 is for the automagically created Status column. */
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
590 col_num = gaim_notify_searchresults_get_columns_count(results) + 1;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
591
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
592 for (i = 0; i < gaim_notify_searchresults_get_rows_count(results); i++) {
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
593 GList *row = gaim_notify_searchresults_row_get(results, i);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
594
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
595 gtk_list_store_append(model, &iter);
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
596 gtk_list_store_set(model, &iter, 0, pixbuf, -1);
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
597
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
598 for (j = 1; j < col_num; j++) {
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12477
diff changeset
599 GValue v;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
600 char *escaped = g_markup_escape_text(g_list_nth_data(row, j - 1), -1);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
601
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12477
diff changeset
602 v.g_type = 0;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
603 g_value_init(&v, G_TYPE_STRING);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
604 g_value_set_string(&v, escaped);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
605 gtk_list_store_set_value(model, &iter, j, &v);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
606 g_free(escaped);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
607 }
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
608 }
13090
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
609
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
610 if (pixbuf != NULL)
0aa231ebbfd5 [gaim-migrate @ 15452]
Mark Doliner <mark@kingant.net>
parents: 12911
diff changeset
611 g_object_unref(pixbuf);
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
612 }
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
613
9797
62eb9fe24692 [gaim-migrate @ 10665]
Luke Schierer <lschiere@pidgin.im>
parents: 9791
diff changeset
614 static void *
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
615 gaim_gtk_notify_searchresults(GaimConnection *gc, const char *title,
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
616 const char *primary, const char *secondary,
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
617 GaimNotifySearchResults *results)
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
618 {
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
619 GtkWidget *window;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
620 GtkWidget *treeview;
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
621 GtkWidget *close_button;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
622 GType *col_types;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
623 GtkListStore *model;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
624 GtkCellRenderer *renderer;
12257
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
625 guint col_num;
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
626 guint i;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
627
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
628 GtkWidget *vbox;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
629 GtkWidget *button_area;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
630 GtkWidget *label;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
631 GtkWidget *sw;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
632 GaimNotifySearchResultsData *data;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
633 char *label_text;
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
634 char *primary_esc, *secondary_esc;
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
635
12257
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
636 g_return_val_if_fail(gc != NULL, NULL);
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
637 g_return_val_if_fail(results != NULL, NULL);
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
638
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
639 data = g_malloc(sizeof(GaimNotifySearchResultsData));
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
640
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
641 /* Create the window */
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
642 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
643 gtk_window_set_title(GTK_WINDOW(window), (title ? title :_("Search Results")));
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
644 gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
645 gtk_container_set_border_width(GTK_CONTAINER(window), GAIM_HIG_BORDER);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
646
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
647 g_signal_connect_swapped(G_OBJECT(window), "delete_event",
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
648 G_CALLBACK(searchresults_close_cb), data);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
649
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
650 /* Setup the main vbox */
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
651 vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
652 gtk_container_add(GTK_CONTAINER(window), vbox);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
653 gtk_widget_show(vbox);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
654
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
655 /* Setup the descriptive label */
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
656 primary_esc = (primary != NULL) ? g_markup_escape_text(primary, -1) : NULL;
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
657 secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL;
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
658 label_text = g_strdup_printf(
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
659 "<span weight=\"bold\" size=\"larger\">%s</span>%s%s",
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
660 (primary ? primary_esc : ""),
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
661 (primary && secondary ? "\n" : ""),
10774
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
662 (secondary ? secondary_esc : ""));
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
663 g_free(primary_esc);
d83f745c997b [gaim-migrate @ 12383]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10750
diff changeset
664 g_free(secondary_esc);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
665 label = gtk_label_new(NULL);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
666 gtk_label_set_markup(GTK_LABEL(label), label_text);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
667 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
668 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
669 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
670 gtk_widget_show(label);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
671 g_free(label_text);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
672
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
673 /* +1 is for the automagically created Status column. */
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
674 col_num = gaim_notify_searchresults_get_columns_count(results) + 1;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
675
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
676 /* Setup the list model */
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
677 col_types = g_new0(GType, col_num);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
678
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
679 /* There always is this first column. */
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
680 col_types[0] = GDK_TYPE_PIXBUF;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
681 for (i = 1; i < col_num; i++) {
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
682 col_types[i] = G_TYPE_STRING;
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
683 }
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
684 model = gtk_list_store_newv(col_num, col_types);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
685
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
686 /* Setup the scrolled window containing the treeview */
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
687 sw = gtk_scrolled_window_new(NULL, NULL);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
688 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
689 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
690 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
691 GTK_SHADOW_IN);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
692 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
693 gtk_widget_show(sw);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
694
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
695 /* Setup the treeview */
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
696 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
697 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
698 gtk_widget_set_size_request(treeview, 500, 400);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
699 gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)),
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
700 GTK_SELECTION_SINGLE);
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
701 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), TRUE);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
702 gtk_container_add(GTK_CONTAINER(sw), treeview);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
703 gtk_widget_show(treeview);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
704
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
705 renderer = gtk_cell_renderer_pixbuf_new();
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
706 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
707 -1, "", renderer, "pixbuf", 0, NULL);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
708
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
709 for (i = 1; i < col_num; i++) {
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
710 renderer = gtk_cell_renderer_text_new();
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
711
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
712 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), -1,
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
713 gaim_notify_searchresults_column_get_title(results, i-1),
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
714 renderer, "text", i, NULL);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
715 }
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
716
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
717 /* Setup the button area */
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
718 button_area = gtk_hbutton_box_new();
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
719 gtk_box_pack_start(GTK_BOX(vbox), button_area, FALSE, FALSE, 0);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
720 gtk_button_box_set_layout(GTK_BUTTON_BOX(button_area), GTK_BUTTONBOX_END);
11243
a511b77a368b [gaim-migrate @ 13408]
Mark Doliner <mark@kingant.net>
parents: 11008
diff changeset
721 gtk_box_set_spacing(GTK_BOX(button_area), GAIM_HIG_BORDER);
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
722 gtk_widget_show(button_area);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
723
12257
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
724 for (i = 0; i < g_list_length(results->buttons); i++) {
ca27de274225 [gaim-migrate @ 14559]
Richard Laager <rlaager@wiktel.com>
parents: 12242
diff changeset
725 GaimNotifySearchButton *b = g_list_nth_data(results->buttons, i);
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
726 GtkWidget *button = NULL;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
727 switch (b->type) {
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
728 case GAIM_NOTIFY_BUTTON_LABELED:
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
729 if(b->label) {
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
730 button = gtk_button_new_with_label(b->label);
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
731 } else {
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
732 gaim_debug_warning("gtknotify", "Missing button label");
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
733 }
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
734 break;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
735 case GAIM_NOTIFY_BUTTON_CONTINUE:
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
736 button = gtk_button_new_from_stock(GTK_STOCK_GO_FORWARD);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
737 break;
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
738 case GAIM_NOTIFY_BUTTON_ADD:
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
739 button = gtk_button_new_from_stock(GTK_STOCK_ADD);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
740 break;
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
741 case GAIM_NOTIFY_BUTTON_INFO:
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
742 button = gtk_button_new_from_stock(GAIM_STOCK_INFO);
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
743 break;
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
744 case GAIM_NOTIFY_BUTTON_IM:
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
745 button = gtk_button_new_from_stock(GAIM_STOCK_IM);
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
746 break;
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
747 case GAIM_NOTIFY_BUTTON_JOIN:
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
748 button = gtk_button_new_from_stock(GAIM_STOCK_CHAT);
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
749 break;
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
750 case GAIM_NOTIFY_BUTTON_INVITE:
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
751 button = gtk_button_new_from_stock(GAIM_STOCK_INVITE);
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
752 break;
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
753 default:
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
754 gaim_debug_warning("gtknotify", "Incorrect button type: %d\n", b->type);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
755 }
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
756 if (button != NULL) {
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
757 GaimNotifySearchResultsButtonData *bd;
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
758
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
759 gtk_box_pack_start(GTK_BOX(button_area), button, FALSE, FALSE, 0);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
760 gtk_widget_show(button);
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
761
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
762 bd = g_new0(GaimNotifySearchResultsButtonData, 1);
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
763 bd->button = b;
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
764 bd->data = data;
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
765
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
766 g_signal_connect(G_OBJECT(button), "clicked",
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
767 G_CALLBACK(searchresults_callback_wrapper_cb), bd);
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
768 }
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
769 }
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
770
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
771 /* Add the Close button */
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
772 close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
773 gtk_box_pack_start(GTK_BOX(button_area), close_button, FALSE, FALSE, 0);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
774 gtk_widget_show(close_button);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
775
12624
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
776 g_signal_connect_swapped(G_OBJECT(close_button), "clicked",
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
777 G_CALLBACK(searchresults_close_cb), data);
851b0bd7eb52 [gaim-migrate @ 14960]
Christopher O'Brien <siege@pidgin.im>
parents: 12600
diff changeset
778
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
779 data->account = gc->account;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
780 data->model = model;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
781 data->treeview = treeview;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
782 data->window = window;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
783
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
784 /* Insert rows. */
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
785 gaim_gtk_notify_searchresults_new_rows(gc, results, data, NULL);
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
786
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
787 /* Show the window */
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
788 gtk_widget_show(window);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
789 return data;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
790 }
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
791
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
792 static void *
9797
62eb9fe24692 [gaim-migrate @ 10665]
Luke Schierer <lschiere@pidgin.im>
parents: 9791
diff changeset
793 gaim_gtk_notify_userinfo(GaimConnection *gc, const char *who,
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
794 const char *text)
9797
62eb9fe24692 [gaim-migrate @ 10665]
Luke Schierer <lschiere@pidgin.im>
parents: 9791
diff changeset
795 {
11533
c9b815aeddc1 [gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents: 11359
diff changeset
796 char *primary;
c9b815aeddc1 [gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents: 11359
diff changeset
797 void *ui_handle;
c9b815aeddc1 [gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents: 11359
diff changeset
798
c9b815aeddc1 [gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents: 11359
diff changeset
799 primary = g_strdup_printf(_("Info for %s"), who);
12242
976677e67239 [gaim-migrate @ 14544]
Richard Laager <rlaager@wiktel.com>
parents: 12227
diff changeset
800 ui_handle = gaim_gtk_notify_formatted(_("Buddy Information"), primary, NULL, text);
11533
c9b815aeddc1 [gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents: 11359
diff changeset
801 g_free(primary);
c9b815aeddc1 [gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents: 11359
diff changeset
802 return ui_handle;
9797
62eb9fe24692 [gaim-migrate @ 10665]
Luke Schierer <lschiere@pidgin.im>
parents: 9791
diff changeset
803 }
62eb9fe24692 [gaim-migrate @ 10665]
Luke Schierer <lschiere@pidgin.im>
parents: 9791
diff changeset
804
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
805 static void
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
806 gaim_gtk_close_notify(GaimNotifyType type, void *ui_handle)
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
807 {
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
808 if (type == GAIM_NOTIFY_EMAIL || type == GAIM_NOTIFY_EMAILS)
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
809 {
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
810 GaimNotifyMailData *data = (GaimNotifyMailData *)ui_handle;
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
811
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
812 g_free(data->url);
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
813 g_free(data);
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
814 }
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
815 else if (type == GAIM_NOTIFY_SEARCHRESULTS)
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
816 {
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
817 GaimNotifySearchResultsData *data = (GaimNotifySearchResultsData *)ui_handle;
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
818
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
819 gtk_widget_destroy(data->window);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
820
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
821 g_free(data);
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
822 }
10750
d5a00882d118 [gaim-migrate @ 12353]
Daniel Atallah <daniel.atallah@gmail.com>
parents: 10732
diff changeset
823 else if (ui_handle != NULL)
5519
42a20beb80a7 [gaim-migrate @ 5919]
Christian Hammond <chipx86@chipx86.com>
parents: 5476
diff changeset
824 gtk_widget_destroy(GTK_WIDGET(ui_handle));
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
825 }
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
826
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
827 #ifndef _WIN32
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
828 static gint
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
829 uri_command(const char *command, gboolean sync)
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
830 {
9777
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
831 gchar *escaped, *tmp;
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
832 GError *error = NULL;
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
833 gint ret = 0;
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
834
10732
c4cb90065e1d [gaim-migrate @ 12334]
Luke Schierer <lschiere@pidgin.im>
parents: 10503
diff changeset
835 escaped = g_markup_escape_text(command, -1);
9777
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
836 gaim_debug_misc("gtknotify", "Executing %s\n", escaped);
8278
b00f3ac97c1f [gaim-migrate @ 9002]
Mark Doliner <mark@kingant.net>
parents: 8277
diff changeset
837
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
838 if (!gaim_program_is_valid(command))
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
839 {
9777
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
840 tmp = g_strdup_printf(_("The browser command <b>%s</b> is invalid."),
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
841 escaped ? escaped : "(none)");
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
842 gaim_notify_error(NULL, NULL, _("Unable to open URL"), tmp);
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
843 g_free(tmp);
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
844
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
845 }
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
846 else if (sync)
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
847 {
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
848 gint status;
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
849
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
850 if (!g_spawn_command_line_sync(command, NULL, NULL, &status, &error))
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
851 {
9777
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
852 tmp = g_strdup_printf(_("Error launching <b>%s</b>: %s"),
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
853 escaped, error->message);
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
854 gaim_notify_error(NULL, NULL, _("Unable to open URL"), tmp);
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
855 g_free(tmp);
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
856 g_error_free(error);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
857 }
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
858 else
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
859 ret = status;
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
860 }
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
861 else
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
862 {
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
863 if (!g_spawn_command_line_async(command, &error))
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
864 {
9777
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
865 tmp = g_strdup_printf(_("Error launching <b>%s</b>: %s"),
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
866 escaped, error->message);
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
867 gaim_notify_error(NULL, NULL, _("Unable to open URL"), tmp);
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
868 g_free(tmp);
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
869 g_error_free(error);
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
870 }
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
871 }
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
872
9777
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
873 g_free(escaped);
8d891252f2ac [gaim-migrate @ 10645]
Mark Doliner <mark@kingant.net>
parents: 9730
diff changeset
874
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
875 return ret;
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
876 }
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
877 #endif /* _WIN32 */
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
878
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
879 static void *
10240
95ca0db2d01d [gaim-migrate @ 11377]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 10209
diff changeset
880 gaim_gtk_notify_uri(const char *uri)
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
881 {
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
882 #ifndef _WIN32
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
883 char *escaped = g_shell_quote(uri);
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
884 char *command = NULL;
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
885 char *remote_command = NULL;
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
886 const char *web_browser;
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
887 int place;
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
888
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
889 web_browser = gaim_prefs_get_string("/gaim/gtk/browsers/browser");
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
890 place = gaim_prefs_get_int("/gaim/gtk/browsers/place");
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
891
10060
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9800
diff changeset
892 /* if they are running gnome, use the gnome web browser */
10061
83eb12b1f1a1 [gaim-migrate @ 11033]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10060
diff changeset
893 if (gaim_running_gnome() == TRUE)
10060
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9800
diff changeset
894 {
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
895 command = g_strdup_printf("gnome-open %s", escaped);
10061
83eb12b1f1a1 [gaim-migrate @ 11033]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10060
diff changeset
896 }
10060
7570908c558f [gaim-migrate @ 11030]
Tim Ringenbach <marv@pidgin.im>
parents: 9800
diff changeset
897 else if (!strcmp(web_browser, "epiphany") ||
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
898 !strcmp(web_browser, "galeon"))
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
899 {
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
900 if (place == GAIM_BROWSER_NEW_WINDOW)
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
901 command = g_strdup_printf("%s -w %s", web_browser, escaped);
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
902 else if (place == GAIM_BROWSER_NEW_TAB)
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
903 command = g_strdup_printf("%s -n %s", web_browser, escaped);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
904 else
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
905 command = g_strdup_printf("%s %s", web_browser, escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
906 }
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
907 else if (!strcmp(web_browser, "gnome-open"))
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
908 {
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
909 command = g_strdup_printf("gnome-open %s", escaped);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
910 }
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
911 else if (!strcmp(web_browser, "kfmclient"))
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
912 {
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
913 command = g_strdup_printf("kfmclient openURL %s", escaped);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
914 /*
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
915 * Does Konqueror have options to open in new tab
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
916 * and/or current window?
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
917 */
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
918 }
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
919 else if (!strcmp(web_browser, "mozilla") ||
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
920 !strcmp(web_browser, "mozilla-firebird") ||
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
921 !strcmp(web_browser, "firefox"))
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
922 {
9399
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
923 char *args = "";
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
924
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
925 command = g_strdup_printf("%s %s", web_browser, escaped);
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
926
9399
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
927 /*
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
928 * Firefox 0.9 and higher require a "-a firefox" option when
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
929 * using -remote commands. This breaks older versions of
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
930 * mozilla. So we include this other handly little string
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
931 * when calling firefox. If the API for remote calls changes
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
932 * any more in firefox then firefox should probably be split
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
933 * apart from mozilla-firebird and mozilla... but this is good
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
934 * for now.
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
935 */
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
936 if (!strcmp(web_browser, "firefox"))
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
937 args = "-a firefox";
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
938
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
939 if (place == GAIM_BROWSER_NEW_WINDOW)
9399
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
940 remote_command = g_strdup_printf("%s %s -remote "
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
941 "openURL(%s,new-window)",
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
942 web_browser, args, escaped);
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
943 else if (place == GAIM_BROWSER_NEW_TAB)
9399
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
944 remote_command = g_strdup_printf("%s %s -remote "
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
945 "openURL(%s,new-tab)",
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
946 web_browser, args, escaped);
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
947 else if (place == GAIM_BROWSER_CURRENT)
9399
0c31db6bde62 [gaim-migrate @ 10213]
Mark Doliner <mark@kingant.net>
parents: 9393
diff changeset
948 remote_command = g_strdup_printf("%s %s -remote "
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
949 "openURL(%s)",
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
950 web_browser, args, escaped);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
951 }
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
952 else if (!strcmp(web_browser, "netscape"))
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
953 {
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
954 command = g_strdup_printf("netscape %s", escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
955
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
956 if (place == GAIM_BROWSER_NEW_WINDOW)
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
957 {
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
958 remote_command = g_strdup_printf("netscape -remote "
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
959 "openURL(%s,new-window)",
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
960 escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
961 }
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
962 else if (place == GAIM_BROWSER_CURRENT)
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
963 {
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
964 remote_command = g_strdup_printf("netscape -remote "
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
965 "openURL(%s)", escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
966 }
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
967 }
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
968 else if (!strcmp(web_browser, "opera"))
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
969 {
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
970 if (place == GAIM_BROWSER_NEW_WINDOW)
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
971 command = g_strdup_printf("opera -newwindow %s", escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
972 else if (place == GAIM_BROWSER_NEW_TAB)
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
973 command = g_strdup_printf("opera -newpage %s", escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
974 else if (place == GAIM_BROWSER_CURRENT)
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
975 {
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
976 remote_command = g_strdup_printf("opera -remote "
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
977 "openURL(%s)", escaped);
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
978 command = g_strdup_printf("opera %s", escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
979 }
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
980 else
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
981 command = g_strdup_printf("opera %s", escaped);
9405
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
982
7b48e7c07bcf [gaim-migrate @ 10219]
Mark Doliner <mark@kingant.net>
parents: 9399
diff changeset
983 }
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
984 else if (!strcmp(web_browser, "custom"))
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
985 {
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
986 const char *web_command;
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
987
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
988 web_command = gaim_prefs_get_string("/gaim/gtk/browsers/command");
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
989
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
990 if (web_command == NULL || *web_command == '\0')
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
991 {
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
992 gaim_notify_error(NULL, NULL, _("Unable to open URL"),
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
993 _("The 'Manual' browser command has been "
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
994 "chosen, but no command has been set."));
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
995 return NULL;
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
996 }
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
997
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
998 if (strstr(web_command, "%s"))
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
999 command = gaim_strreplace(web_command, "%s", escaped);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1000 else
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1001 {
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1002 /*
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1003 * There is no "%s" in the browser command. Assume the user
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1004 * wanted the URL tacked on to the end of the command.
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1005 */
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
1006 command = g_strdup_printf("%s %s", web_command, escaped);
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1007 }
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1008 }
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1009
12477
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
1010 g_free(escaped);
d90eae2387b5 [gaim-migrate @ 14788]
Richard Laager <rlaager@wiktel.com>
parents: 12257
diff changeset
1011
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1012 if (remote_command != NULL)
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1013 {
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
1014 /* try the remote command first */
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
1015 if (uri_command(remote_command, TRUE) != 0)
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
1016 uri_command(command, FALSE);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1017
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
1018 g_free(remote_command);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1019
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1020 }
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1021 else
8272
9af78e73f0b2 [gaim-migrate @ 8996]
Mark Doliner <mark@kingant.net>
parents: 8267
diff changeset
1022 uri_command(command, FALSE);
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1023
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1024 g_free(command);
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1025
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1026 #else /* !_WIN32 */
10240
95ca0db2d01d [gaim-migrate @ 11377]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 10209
diff changeset
1027 wgaim_notify_uri(uri);
8338
354bba6ad254 [gaim-migrate @ 9062]
Christian Hammond <chipx86@chipx86.com>
parents: 8337
diff changeset
1028 #endif /* !_WIN32 */
7136
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1029
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1030 return NULL;
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1031 }
2b99c950b817 [gaim-migrate @ 7703]
Nathan Walp <nwalp@pidgin.im>
parents: 7078
diff changeset
1032
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1033 static GaimNotifyUiOps ops =
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1034 {
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1035 gaim_gtk_notify_message,
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1036 gaim_gtk_notify_email,
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1037 gaim_gtk_notify_emails,
6381
e006685f75aa [gaim-migrate @ 6886]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
1038 gaim_gtk_notify_formatted,
10439
911530134bf8 [gaim-migrate @ 11697]
Mark Doliner <mark@kingant.net>
parents: 10297
diff changeset
1039 gaim_gtk_notify_searchresults,
11359
9480e0d0f563 [gaim-migrate @ 13581]
Bartoz Oler <bartosz@pidgin.im>
parents: 11293
diff changeset
1040 gaim_gtk_notify_searchresults_new_rows,
9797
62eb9fe24692 [gaim-migrate @ 10665]
Luke Schierer <lschiere@pidgin.im>
parents: 9791
diff changeset
1041 gaim_gtk_notify_userinfo,
6465
fb64cc87bc96 [gaim-migrate @ 6974]
Christian Hammond <chipx86@chipx86.com>
parents: 6381
diff changeset
1042 gaim_gtk_notify_uri,
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1043 gaim_gtk_close_notify
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1044 };
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1045
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1046 GaimNotifyUiOps *
7035
feb3d21a7794 [gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents: 7007
diff changeset
1047 gaim_gtk_notify_get_ui_ops(void)
5437
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1048 {
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1049 return &ops;
0031a613a87d [gaim-migrate @ 5819]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1050 }