annotate plugins/contact_priority.c @ 9848:f462f91edeb2

[gaim-migrate @ 10726] " After an account was disconnected or signed off, Gaim was not forgetting that it knew the password of the user while in the same application session. This patch causes gaim to blank the password for accounts that do not have "Remember password" set when an account is disconnected by request or forced." --Dave West our rationale for remembering them during that instance of gaim was that you probly do not want to have to type it in again if you are disconnected. after seeing numerous bug reports about people mis-typing their password and people afraid that someone else will sit down at their computer, i decided that this rationale isn't as compelling. committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Tue, 24 Aug 2004 11:43:39 +0000
parents a09ffb82aef1
children a9fb4493ae22
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 /*
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * Contact priority settings plugin.
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 *
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2003 Etan Reisner, <deryni9@users.sourceforge.net>.
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5 *
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * modify it under the terms of the GNU General Public License as
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * published by the Free Software Foundation; either version 2 of the
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 * License, or (at your option) any later version.
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 *
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
14 * GNU General Public License for more details.
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15 *
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
19 */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
20
9821
a09ffb82aef1 [gaim-migrate @ 10692]
Mark Doliner <mark@kingant.net>
parents: 8749
diff changeset
21 #include "internal.h"
a09ffb82aef1 [gaim-migrate @ 10692]
Mark Doliner <mark@kingant.net>
parents: 8749
diff changeset
22 #include "gtkgaim.h"
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 #include "gtkplugin.h"
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 #include "gtkutils.h"
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 #include "prefs.h"
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27 #define CONTACT_PRIORITY_PLUGIN_ID "gtk-contact-priority"
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29 static void
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30 select_account(GtkWidget *widget, GaimAccount *account, gpointer data)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 gtk_spin_button_set_value(GTK_SPIN_BUTTON(data),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 (gdouble)gaim_account_get_int(account, "score", 0));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36 static void
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 account_update(GtkWidget *widget, GtkOptionMenu *optmenu)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39 GaimAccount *account = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
41 account = g_object_get_data(G_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(optmenu)))), "account");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
42 gaim_account_set_int(account, "score", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
43 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
45 static void
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46 pref_update(GtkWidget *widget, gpointer data)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 gchar pref[256];
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50 g_snprintf(pref, sizeof(pref), "/core/contact/%s", (gchar *)data);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52 if (gaim_prefs_get_type(pref) == GAIM_PREF_INT)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53 gaim_prefs_set_int(pref, gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 if (gaim_prefs_get_type(pref) == GAIM_PREF_BOOLEAN)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 gaim_prefs_set_bool(pref, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58 static GtkWidget *
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
59 get_config_frame(GaimPlugin *plugin)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
60 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 GtkWidget *ret = NULL, *hbox = NULL, *frame = NULL, *vbox = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62 GtkWidget *label = NULL, *spin = NULL, *check = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 GtkWidget *optmenu = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 GtkObject *adj = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 GtkSizeGroup *sg = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 GaimAccount *account = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
67 /*
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68 GList *accounts = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70 int offline = gaim_prefs_get_int("/core/contact/offline_score");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
71 int away = gaim_prefs_get_int("/core/contact/away_score");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
72 int idle = gaim_prefs_get_int("/core/contact/idle_score");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 /*
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 int score;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76 gboolean last_match = gaim_prefs_get_bool("/core/contact/last_match");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
77
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80 ret = gtk_vbox_new(FALSE, 18);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 gtk_container_set_border_width(GTK_CONTAINER(ret), 12);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 frame = gaim_gtk_make_frame(ret, _("Point values to use when..."));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85 vbox = gtk_vbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 gtk_container_add(GTK_CONTAINER(frame), vbox);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
88 /* Offline */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
89 hbox = gtk_hbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
90 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
91
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
92 label = gtk_label_new_with_mnemonic(_("Buddy is offline:"));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
93 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
94 gtk_size_group_add_widget(sg, label);
7439
3a51b301a805 [gaim-migrate @ 8044]
Luke Schierer <lschiere@pidgin.im>
parents: 7421
diff changeset
95 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
96
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
97 adj = gtk_adjustment_new(offline, -20, 20, 1, 1, 1);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
98 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
99 g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(pref_update), "offline_score");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
100 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
101
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
102 /* Away */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
103 hbox = gtk_hbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
104 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
105
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
106 label = gtk_label_new_with_mnemonic(_("Buddy is away:"));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
107 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
108 gtk_size_group_add_widget(sg, label);
7439
3a51b301a805 [gaim-migrate @ 8044]
Luke Schierer <lschiere@pidgin.im>
parents: 7421
diff changeset
109 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
110
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
111 adj = gtk_adjustment_new(away, -20, 20, 1, 1, 1);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
112 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
113 g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(pref_update), "away_score");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
114 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
115
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
116 /* Idle */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117 hbox = gtk_hbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
119
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
120 label = gtk_label_new_with_mnemonic(_("Buddy is idle:"));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
121 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 gtk_size_group_add_widget(sg, label);
7439
3a51b301a805 [gaim-migrate @ 8044]
Luke Schierer <lschiere@pidgin.im>
parents: 7421
diff changeset
123 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
124
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125 adj = gtk_adjustment_new(idle, -20, 20, 1, 1, 1);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
126 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
127 g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(pref_update), "idle_score");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
128 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
130 /* Last match */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131 hbox = gtk_hbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
134 check = gtk_check_button_new_with_label(_("Use last matching buddy"));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), last_match);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
136 g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(pref_update), "last_match");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
137 gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
138
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
139 /* Explanation */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
140 label = gtk_label_new(_("The buddy with the lowest score is the buddy who will have priority in the contact.\nThe default values (offline = 4,away = 2, and idle = 1)\nwill use what used to be the built-in order active->idle->away->away+idle->offline."));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
141 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
142
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
143 frame = gaim_gtk_make_frame(ret, _("Point values to use for Account..."));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
145 vbox = gtk_vbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146 gtk_container_add(GTK_CONTAINER(frame), vbox);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
147
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148 /* Account */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 hbox = gtk_hbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
150 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152 /* make this here so I can use it in the option menu callback, we'll
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153 * actually set it up later */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154 adj = gtk_adjustment_new(0, -20, 20, 1, 1, 1);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
156
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
157 optmenu = gaim_gtk_account_option_menu_new(NULL, TRUE,
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
158 G_CALLBACK(select_account),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
159 NULL, spin);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 gtk_box_pack_start(GTK_BOX(hbox), optmenu, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
161
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
162 /* this is where we set up the spin button we made above */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
163 account = g_object_get_data(G_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu))))),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
164 "account");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
165 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
166 (gdouble)gaim_account_get_int(account, "score", 0));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
167 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(spin), GTK_ADJUSTMENT(adj));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
168 g_signal_connect(G_OBJECT(spin), "value-changed",
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
169 G_CALLBACK(account_update), optmenu);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172 gtk_widget_show_all(ret);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174 return ret;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
175 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
176
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
177 static GaimGtkPluginUiInfo ui_info =
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
178 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
179 get_config_frame
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
180 };
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
181
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
182 static GaimPluginInfo info =
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
183 {
8749
d7b8eb1f0a18 [gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents: 7439
diff changeset
184 GAIM_PLUGIN_API_VERSION, /**< api_version */
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
185 GAIM_PLUGIN_STANDARD, /**< type */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
186 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
187 0, /**< flags */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
188 NULL, /**< dependencies */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
189 GAIM_PRIORITY_DEFAULT, /**< priority */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
190
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
191 CONTACT_PRIORITY_PLUGIN_ID, /**< id */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
192 N_("Contact Priority"), /**< name */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
193 VERSION, /**< version */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
194 /**< summary */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
195 N_("Allows for controlling the values associated with different buddy states."),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
196 /**< description */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
197 N_("Allows for changing the point values of idle/away/offline states for buddies in contact priority computations."),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
198 "Etan Reisner <deryni@eden.rutgers.edu>", /**< author */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
199 GAIM_WEBSITE, /**< homepage */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
200
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
201 NULL, /**< load */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
202 NULL, /**< unload */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
203 NULL, /**< destroy */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
204 &ui_info, /**< ui_info */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
205 NULL /**< extra_info */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
206 };
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
207
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
208 static void
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
209 init_plugin(GaimPlugin *plugin)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
210 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
211 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
212
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
213 GAIM_INIT_PLUGIN(contactpriority, init_plugin, info)