plugins/contact_priority.c

Sun, 17 Oct 2004 23:55:49 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Sun, 17 Oct 2004 23:55:49 +0000
changeset 10108
0897c42d6cb9
parent 9954
52a14a58a33e
child 10729
9cd2a8d9cea5
permissions
-rw-r--r--

[gaim-migrate @ 11141]
Two things:
a. Added Enter as a gtk_binding to GtkIMHtml. This fixes everything.
Input methods now work. The "Enter sends" and "Ctrl-Enter sends" preferences
were removed and defaulted to yes and no respectively, BUT, in a very super-cool
turn of events, you can now add your own bindings to .gtkrc to make WHATEVER
YOU WANT send. Awesome. Someone should use g_signal_accumulator_true_handled
or something to make profiles and away messages able to insert newlines.

b. Removed "Use multi-colored screennames in chats," defaulted to yes, and
wrote a nifty algorithm to automatically adjust the colors to accomodate the
background (see http://gaim.sf.net/sean/porn-chat.png). People should play
around and tweak it a bit. The algorithm takes into consideration the
luminosity of the current background and the base hue to use for the screenname
in generating the new colors. Note that it does this while maintaining the hues.
Someone should optimize this so it skips over the floating point arithmatic when
the background color is white.

7421
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 /*
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * Contact priority settings plugin.
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 *
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2003 Etan Reisner, <deryni9@users.sourceforge.net>.
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5 *
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * modify it under the terms of the GNU General Public License as
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * published by the Free Software Foundation; either version 2 of the
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 * License, or (at your option) any later version.
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 *
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
14 * GNU General Public License for more details.
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15 *
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
19 */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
20
9821
d02520c59822 [gaim-migrate @ 10692]
Mark Doliner <markdoliner@pidgin.im>
parents: 8749
diff changeset
21 #include "internal.h"
d02520c59822 [gaim-migrate @ 10692]
Mark Doliner <markdoliner@pidgin.im>
parents: 8749
diff changeset
22 #include "gtkgaim.h"
7421
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 #include "gtkplugin.h"
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 #include "gtkutils.h"
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 #include "prefs.h"
9954
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
26 #include "version.h"
7421
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 #define CONTACT_PRIORITY_PLUGIN_ID "gtk-contact-priority"
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30 static void
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 select_account(GtkWidget *widget, GaimAccount *account, gpointer data)
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 {
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 gtk_spin_button_set_value(GTK_SPIN_BUTTON(data),
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 (gdouble)gaim_account_get_int(account, "score", 0));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35 }
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 static void
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 account_update(GtkWidget *widget, GtkOptionMenu *optmenu)
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39 {
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 GaimAccount *account = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
41
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
42 account = g_object_get_data(G_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(optmenu)))), "account");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
43 gaim_account_set_int(account, "score", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44 }
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
45
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46 static void
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 pref_update(GtkWidget *widget, gpointer data)
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 {
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49 gchar pref[256];
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51 g_snprintf(pref, sizeof(pref), "/core/contact/%s", (gchar *)data);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53 if (gaim_prefs_get_type(pref) == GAIM_PREF_INT)
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 gaim_prefs_set_int(pref, gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 if (gaim_prefs_get_type(pref) == GAIM_PREF_BOOLEAN)
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 gaim_prefs_set_bool(pref, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57 }
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
59 static GtkWidget *
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
60 get_config_frame(GaimPlugin *plugin)
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 {
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62 GtkWidget *ret = NULL, *hbox = NULL, *frame = NULL, *vbox = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 GtkWidget *label = NULL, *spin = NULL, *check = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 GtkWidget *optmenu = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 GtkObject *adj = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 GtkSizeGroup *sg = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
67 GaimAccount *account = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68 /*
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 GList *accounts = NULL;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70 */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
71 int offline = gaim_prefs_get_int("/core/contact/offline_score");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
72 int away = gaim_prefs_get_int("/core/contact/away_score");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 int idle = gaim_prefs_get_int("/core/contact/idle_score");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 /*
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 int score;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76 */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
77 gboolean last_match = gaim_prefs_get_bool("/core/contact/last_match");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 ret = gtk_vbox_new(FALSE, 18);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82 gtk_container_set_border_width(GTK_CONTAINER(ret), 12);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84 frame = gaim_gtk_make_frame(ret, _("Point values to use when..."));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 vbox = gtk_vbox_new(FALSE, 5);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87 gtk_container_add(GTK_CONTAINER(frame), vbox);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
88
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
89 /* Offline */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
90 hbox = gtk_hbox_new(FALSE, 5);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
91 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
92
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
93 label = gtk_label_new_with_mnemonic(_("Buddy is offline:"));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
94 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
95 gtk_size_group_add_widget(sg, label);
7439
5400aa541f31 [gaim-migrate @ 8044]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 7421
diff changeset
96 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7421
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
97
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
98 adj = gtk_adjustment_new(offline, -20, 20, 1, 1, 1);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
99 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
100 g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(pref_update), "offline_score");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
101 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
102
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
103 /* Away */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
104 hbox = gtk_hbox_new(FALSE, 5);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
105 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
106
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
107 label = gtk_label_new_with_mnemonic(_("Buddy is away:"));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
108 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
109 gtk_size_group_add_widget(sg, label);
7439
5400aa541f31 [gaim-migrate @ 8044]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 7421
diff changeset
110 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7421
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
111
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
112 adj = gtk_adjustment_new(away, -20, 20, 1, 1, 1);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
113 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
114 g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(pref_update), "away_score");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
115 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
116
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117 /* Idle */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 hbox = gtk_hbox_new(FALSE, 5);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
119 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
120
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
121 label = gtk_label_new_with_mnemonic(_("Buddy is idle:"));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
123 gtk_size_group_add_widget(sg, label);
7439
5400aa541f31 [gaim-migrate @ 8044]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 7421
diff changeset
124 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
7421
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
126 adj = gtk_adjustment_new(idle, -20, 20, 1, 1, 1);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
127 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
128 g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(pref_update), "idle_score");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
130
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131 /* Last match */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132 hbox = gtk_hbox_new(FALSE, 5);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
134
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 check = gtk_check_button_new_with_label(_("Use last matching buddy"));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
136 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), last_match);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
137 g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(pref_update), "last_match");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
138 gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
139
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
140 /* Explanation */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
141 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."));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
142 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
143
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144 frame = gaim_gtk_make_frame(ret, _("Point values to use for Account..."));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
145
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146 vbox = gtk_vbox_new(FALSE, 5);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
147 gtk_container_add(GTK_CONTAINER(frame), vbox);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 /* Account */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
150 hbox = gtk_hbox_new(FALSE, 5);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153 /* make this here so I can use it in the option menu callback, we'll
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154 * actually set it up later */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155 adj = gtk_adjustment_new(0, -20, 20, 1, 1, 1);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
156 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
157
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
158 optmenu = gaim_gtk_account_option_menu_new(NULL, TRUE,
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
159 G_CALLBACK(select_account),
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 NULL, spin);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
161 gtk_box_pack_start(GTK_BOX(hbox), optmenu, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
162
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
163 /* this is where we set up the spin button we made above */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
164 account = g_object_get_data(G_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu))))),
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
165 "account");
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
166 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin),
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
167 (gdouble)gaim_account_get_int(account, "score", 0));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
168 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(spin), GTK_ADJUSTMENT(adj));
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
169 g_signal_connect(G_OBJECT(spin), "value-changed",
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 G_CALLBACK(account_update), optmenu);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173 gtk_widget_show_all(ret);
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
175 return ret;
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
176 }
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
177
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
178 static GaimGtkPluginUiInfo ui_info =
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
179 {
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
180 get_config_frame
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
181 };
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
182
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
183 static GaimPluginInfo info =
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
184 {
9954
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
185 GAIM_PLUGIN_MAGIC,
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
186 GAIM_MAJOR_VERSION,
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
187 GAIM_MINOR_VERSION,
7421
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
188 GAIM_PLUGIN_STANDARD, /**< type */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
189 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
190 0, /**< flags */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
191 NULL, /**< dependencies */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
192 GAIM_PRIORITY_DEFAULT, /**< priority */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
193
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
194 CONTACT_PRIORITY_PLUGIN_ID, /**< id */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
195 N_("Contact Priority"), /**< name */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
196 VERSION, /**< version */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
197 /**< summary */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
198 N_("Allows for controlling the values associated with different buddy states."),
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
199 /**< description */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
200 N_("Allows for changing the point values of idle/away/offline states for buddies in contact priority computations."),
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
201 "Etan Reisner <deryni@eden.rutgers.edu>", /**< author */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
202 GAIM_WEBSITE, /**< homepage */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
203
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
204 NULL, /**< load */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
205 NULL, /**< unload */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
206 NULL, /**< destroy */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
207 &ui_info, /**< ui_info */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
208 NULL /**< extra_info */
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
209 };
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
210
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
211 static void
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
212 init_plugin(GaimPlugin *plugin)
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
213 {
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
214 }
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
215
fb1d43af09af [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
216 GAIM_INIT_PLUGIN(contactpriority, init_plugin, info)

mercurial