annotate plugins/contact_priority.c @ 12301:39fca2edf7da

[gaim-migrate @ 14605] I only caught this as I was committing, and besides I forgot to mention what sadrul's patch did. It puts the emblem for the active status on the accounts in the Accounts menu (he put them in the Remove menu as well but that felt wrong to me.) committer: Tailor Script <tailor@pidgin.im>
author Etan Reisner <pidgin@unreliablesource.net>
date Sat, 03 Dec 2005 06:50:41 +0000
parents 281ab2ecc08c
children 3169cd6727ad
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"
9954
a9fb4493ae22 [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
26 #include "version.h"
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 #define CONTACT_PRIORITY_PLUGIN_ID "gtk-contact-priority"
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30 static void
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 select_account(GtkWidget *widget, GaimAccount *account, gpointer data)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 gtk_spin_button_set_value(GTK_SPIN_BUTTON(data),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 (gdouble)gaim_account_get_int(account, "score", 0));
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
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37 static void
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
38 account_update(GtkWidget *widget, GtkOptionMenu *optmenu)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
39 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 GaimAccount *account = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
41
1a52d75489ad [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");
1a52d75489ad [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)));
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
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
46 static void
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
47 pref_update(GtkWidget *widget, char *pref)
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
48 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
49 if (gaim_prefs_get_type(pref) == GAIM_PREF_INT)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50 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
51 if (gaim_prefs_get_type(pref) == GAIM_PREF_BOOLEAN)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
52 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
53 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
55 static struct GaimContactPriorityStatuses
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
56 {
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
57 const char *id;
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
58 const char *description;
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
59 } const statuses[] =
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
60 {
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
61 { "idle", N_("Buddy is idle") },
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
62 { "away", N_("Buddy is away") },
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
63 { "extended_away", N_("Buddy is \"extended\" away") },
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
64 { "offline", N_("Buddy is offline") },
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
65 { NULL, NULL }
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
66 };
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
67
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68 static GtkWidget *
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 get_config_frame(GaimPlugin *plugin)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
71 GtkWidget *ret = NULL, *hbox = NULL, *frame = NULL, *vbox = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
72 GtkWidget *label = NULL, *spin = NULL, *check = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 GtkWidget *optmenu = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 GtkObject *adj = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 GtkSizeGroup *sg = NULL;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76 GaimAccount *account = NULL;
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
77 int i;
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
78
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79 gboolean last_match = gaim_prefs_get_bool("/core/contact/last_match");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
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 ret = gtk_vbox_new(FALSE, 18);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84 gtk_container_set_border_width(GTK_CONTAINER(ret), 12);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 frame = gaim_gtk_make_frame(ret, _("Point values to use when..."));
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 vbox = gtk_vbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
89 gtk_container_add(GTK_CONTAINER(frame), vbox);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
90
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
91 /* Status Spinboxes */
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
92 for (i = 0 ; statuses[i].id != NULL && statuses[i].description != NULL ; i++)
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
93 {
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
94 char *pref = g_strconcat("/core/status/scores/", statuses[i].id, NULL);
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
95
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
96 hbox = gtk_hbox_new(FALSE, 5);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
97 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
98
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
99 label = gtk_label_new_with_mnemonic(_(statuses[i].description));
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
100 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
101 gtk_size_group_add_widget(sg, label);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
102 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
103
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
104 adj = gtk_adjustment_new(gaim_prefs_get_int(pref), -500, 500, 1, 1, 1);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
105 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
106 g_signal_connect(G_OBJECT(spin), "value-changed", G_CALLBACK(pref_update), pref);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
107 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
108
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
109 g_free(pref);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
110 }
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
111
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
112 /* Explanation */
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
113 label = gtk_label_new(NULL);
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
114 gtk_label_set_markup(GTK_LABEL(label), _("The buddy with the <i>largest score</i> is the buddy who will have priority in the contact.\n"));
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
115 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
116
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117 /* Last match */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 hbox = gtk_hbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
119 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
120
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
121 check = gtk_check_button_new_with_label(_("Use last buddy when scores are equal"));
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), last_match);
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
123 g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(pref_update), "/core/contact/last_match");
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
124 gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125
10729
969f35b31a49 [gaim-migrate @ 12329]
Mark Doliner <mark@kingant.net>
parents: 9954
diff changeset
126 frame = gaim_gtk_make_frame(ret, _("Point values to use for account..."));
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
127
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
128 vbox = gtk_vbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129 gtk_container_add(GTK_CONTAINER(frame), vbox);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
130
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131 /* Account */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132 hbox = gtk_hbox_new(FALSE, 5);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
134
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 /* 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
136 * actually set it up later */
12164
281ab2ecc08c [gaim-migrate @ 14465]
Richard Laager <rlaager@wiktel.com>
parents: 10729
diff changeset
137 adj = gtk_adjustment_new(0, -500, 500, 1, 1, 1);
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
138 spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
139
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
140 optmenu = gaim_gtk_account_option_menu_new(NULL, TRUE,
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
141 G_CALLBACK(select_account),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
142 NULL, spin);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
143 gtk_box_pack_start(GTK_BOX(hbox), optmenu, FALSE, FALSE, 0);
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 /* this is where we set up the spin button we made above */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146 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
147 "account");
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148 gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 (gdouble)gaim_account_get_int(account, "score", 0));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
150 gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(spin), GTK_ADJUSTMENT(adj));
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151 g_signal_connect(G_OBJECT(spin), "value-changed",
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152 G_CALLBACK(account_update), optmenu);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0);
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155 gtk_widget_show_all(ret);
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 return ret;
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
158 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
159
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 static GaimGtkPluginUiInfo ui_info =
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 get_config_frame
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
163 };
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
164
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
165 static GaimPluginInfo info =
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
166 {
9954
a9fb4493ae22 [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
167 GAIM_PLUGIN_MAGIC,
a9fb4493ae22 [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
168 GAIM_MAJOR_VERSION,
a9fb4493ae22 [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9821
diff changeset
169 GAIM_MINOR_VERSION,
7421
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 GAIM_PLUGIN_STANDARD, /**< type */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172 0, /**< flags */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173 NULL, /**< dependencies */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174 GAIM_PRIORITY_DEFAULT, /**< priority */
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 CONTACT_PRIORITY_PLUGIN_ID, /**< id */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
177 N_("Contact Priority"), /**< name */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
178 VERSION, /**< version */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
179 /**< summary */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
180 N_("Allows for controlling the values associated with different buddy states."),
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
181 /**< description */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
182 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
183 "Etan Reisner <deryni@eden.rutgers.edu>", /**< author */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
184 GAIM_WEBSITE, /**< homepage */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
185
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
186 NULL, /**< load */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
187 NULL, /**< unload */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
188 NULL, /**< destroy */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
189 &ui_info, /**< ui_info */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
190 NULL /**< extra_info */
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
191 };
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
192
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
193 static void
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
194 init_plugin(GaimPlugin *plugin)
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
195 {
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
196 }
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
197
1a52d75489ad [gaim-migrate @ 8023]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
198 GAIM_INIT_PLUGIN(contactpriority, init_plugin, info)