annotate plugins/extplacement.c @ 12645:fc28451f5d96

[gaim-migrate @ 14983] SF Patch #1314512 from Sadrul (who has a patch for everything) "This patch introduces a flag for protocol plugins that support offline messages (like Y!M and ICQ). This was encouraged by the following conversation: <sadrul> should offline buddies be listed/enabled in the send-to menu? <rekkanoryo> i would think only for protocols that support offline messaging, if it's indicated that the buddy is offline -- <snip> -- <Bleeter> sadrul: personally, I'd like to see a 'supports offline' flag of some description <Bleeter> one could then redirect (via plugins) through email or alternative methods <Bleeter> just a thought <Paco-Paco> yeah, that sounds like a reasonble thing to have This patch uses this flag to disable the buddies in the send-to menu who are offline and the protocol doesn't support offline messages." I made this make the label insensitive instead of the whole menuitem. This should address SimGuy's concerns about inconsistency (i.e. you could create a conversation with someone via the buddy list that you couldn't create via the Send To menu). I also hacked up some voodoo to show the label as sensitive when moused-over, as that looks better (given the label-insensitive thing is itself a hack). I think this works quite well. BUG NOTE: This makes more obvious an existing bug. The Send To menu isn't updated when buddies sign on or off or change status (at least under some circumstances). We need to fix that anyway, so I'm not going to let it hold up this commit. Switching tabs will clear it up. I'm thinking we just might want to build the contents of that menu when it is selected. That would save us a mess of inefficient signal callbacks that update the Send To menus in open windows all the time. AIM NOTE: This assumes that AIM can't offline message. That's not strictly true. You can message invisible users on AIM. However, by design, we can't tell when a user is invisible without resorting to dirty hackery. In practice, this isn't a problem, as you can still select the AIM user from the menu. And really, how often will you be choosing the Invisible contact, rather than the user going Invisible in the middle of a conversation or IMing you while they're Invisible? JABBER NOTE: This assumes that Jabber can always offline message. This isn't strictly true. Sadrul said: I have updated Jabber according to this link which seems to talk about how to determine the existence offline-message support in a server: http://www.jabber.org/jeps/jep-0013.html#discover However, jabber.org doesn't seem to send the required info. So I am not sure about it. He later said: I talked to Nathan and he said offline message support is mostly assumed for most jabber servers. GTalk doesn't yet support it, but they are working on it. So I have made jabber to always return TRUE. If there is truly no way to detect offline messaging capability, then this is an acceptable solution. We could special case Google Talk because of its popularity, and remove that later. It's probably not worth it though. MSN NOTE: This assumes that MSN can never offline message. That's effectively true, but to be technically correct, MSN can offline message if there's already a switchboard conversation open with a user. We could write an offline_message function in the MSN prpl to detect that, but it'd be of limited usefulness, especially given that under most circumstances (where this might matter), the switchboard connection will be closed almost immediately. CVS NOTE: I'm writing to share a tragic little story. I have a PC that I use for Gaim development. One day, I was writing a commit message on it, when all of a suddent it went berserk. The screen started flashing, and the whole commit message just disappeared. All of it. And it was a good commit message! I had to cram and rewrite it really quickly. Needless to say, my rushed commit message wasn't nearly as good, and I blame the PC for that. Seriously, though, what kind of version control system loses your commit message on a broken connection to the server? Stupid! committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Fri, 23 Dec 2005 19:26:04 +0000
parents e856f985a0b9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
1 /*
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
2 * Extra conversation placement options for Gaim
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
3 *
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
4 * Gaim is the legal property of its developers, whose names are too numerous
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
6 * source distribution.
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
7 *
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
8 * This program is free software; you can redistribute it and/or
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
9 * modify it under the terms of the GNU General Public License
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
10 * as published by the Free Software Foundation; either version 2
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
11 * of the License, or (at your option) any later version.
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
12 *
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
13 * This program is distributed in the hope that it will be useful,
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
16 * GNU General Public License for more details.
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
17 *
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
18 * You should have received a copy of the GNU General Public License
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
19 * along with this program; if not, write to the Free Software
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
21 */
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
22
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 #include "internal.h"
9791
4a15962c344a [gaim-migrate @ 10659]
Mark Doliner <mark@kingant.net>
parents: 9425
diff changeset
24 #include "gtkgaim.h"
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25 #include "conversation.h"
9943
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
26 #include "version.h"
9215
6b96a5a13e68 [gaim-migrate @ 10011]
Nathan Walp <nwalp@pidgin.im>
parents: 9179
diff changeset
27 #include "gtkplugin.h"
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
28 #include "gtkconv.h"
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
29 #include "gtkconvwin.h"
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
30
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 static void
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
32 conv_placement_by_number(GaimGtkConversation *conv)
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 {
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
34 GaimGtkWindow *win = NULL;
12168
dd7392cce819 [gaim-migrate @ 14469]
Richard Laager <rlaager@wiktel.com>
parents: 11581
diff changeset
35 GList *wins = NULL;
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
36
9425
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
37 if (gaim_prefs_get_bool("/plugins/gtk/extplacement/placement_number_separate"))
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
38 win = gaim_gtk_conv_window_last_with_type(gaim_conversation_get_type(conv->active_conv));
12168
dd7392cce819 [gaim-migrate @ 14469]
Richard Laager <rlaager@wiktel.com>
parents: 11581
diff changeset
39 else if ((wins = gaim_gtk_conv_windows_get_list()) != NULL)
dd7392cce819 [gaim-migrate @ 14469]
Richard Laager <rlaager@wiktel.com>
parents: 11581
diff changeset
40 win = g_list_last(wins)->data;
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
41
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
42 if (win == NULL) {
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
43 win = gaim_gtk_conv_window_new();
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
45 gaim_gtk_conv_window_add_gtkconv(win, conv);
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
46 gaim_gtk_conv_window_show(win);
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
47 } else {
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
48 int max_count = gaim_prefs_get_int("/plugins/gtk/extplacement/placement_number");
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
49 int count = gaim_gtk_conv_window_get_gtkconv_count(win);
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
50
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
51 if (count < max_count)
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
52 gaim_gtk_conv_window_add_gtkconv(win, conv);
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53 else {
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 GList *l = NULL;
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
56 for (l = gaim_gtk_conv_windows_get_list(); l != NULL; l = l->next) {
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
57 win = l->data;
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58
9425
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
59 if (gaim_prefs_get_bool("/plugins/gtk/extplacement/placement_number_separate") &&
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
60 gaim_conversation_get_type(gaim_gtk_conv_window_get_active_conversation(win)) != gaim_conversation_get_type(conv->active_conv))
9425
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
61 continue;
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
62
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
63 count = gaim_gtk_conv_window_get_gtkconv_count(win);
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 if (count < max_count) {
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
65 gaim_gtk_conv_window_add_gtkconv(win, conv);
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 return;
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
67 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68 }
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
69 win = gaim_gtk_conv_window_new();
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
71 gaim_gtk_conv_window_add_gtkconv(win, conv);
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
72 gaim_gtk_conv_window_show(win);
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
77 static gboolean
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78 plugin_load(GaimPlugin *plugin)
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79 {
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
80 gaim_gtkconv_placement_add_fnc("number", _("By conversation count"),
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 &conv_placement_by_number);
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
82 gaim_prefs_trigger_callback("/gaim/gtk/conversations/placement");
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 return TRUE;
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 static gboolean
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87 plugin_unload(GaimPlugin *plugin)
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
88 {
11581
9b3833da6840 [gaim-migrate @ 13851]
Tim Ringenbach <marv@pidgin.im>
parents: 9943
diff changeset
89 gaim_gtkconv_placement_remove_fnc("number");
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
90 gaim_prefs_trigger_callback("/gaim/gtk/conversations/placement");
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
91 return TRUE;
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
92 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
93
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
94 static GaimPluginPrefFrame *
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
95 get_plugin_pref_frame(GaimPlugin *plugin) {
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
96 GaimPluginPrefFrame *frame;
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
97 GaimPluginPref *ppref;
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
98
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
99 frame = gaim_plugin_pref_frame_new();
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
100
9217
6e9e9e7b8e1e [gaim-migrate @ 10013]
Luke Schierer <lschiere@pidgin.im>
parents: 9215
diff changeset
101 ppref = gaim_plugin_pref_new_with_label(_("Conversation Placement"));
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
102 gaim_plugin_pref_frame_add(frame, ppref);
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
103
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
104 ppref = gaim_plugin_pref_new_with_name_and_label(
9425
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
105 "/plugins/gtk/extplacement/placement_number",
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
106 _("Number of conversations per window"));
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
107 gaim_plugin_pref_set_bounds(ppref, 1, 50);
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
108 gaim_plugin_pref_frame_add(frame, ppref);
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
109
9425
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
110 ppref = gaim_plugin_pref_new_with_name_and_label(
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
111 "/plugins/gtk/extplacement/placement_number_separate",
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
112 _("Separate IM and Chat windows when placing by number"));
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
113 gaim_plugin_pref_frame_add(frame, ppref);
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
114
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
115 return frame;
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
116 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 static GaimPluginUiInfo prefs_info = {
12600
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12168
diff changeset
119 get_plugin_pref_frame,
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12168
diff changeset
120 0, /* page_num (Reserved) */
e856f985a0b9 [gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents: 12168
diff changeset
121 NULL /* frame (Reserved) */
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 };
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
123
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
124 static GaimPluginInfo info =
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125 {
9943
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
126 GAIM_PLUGIN_MAGIC,
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
127 GAIM_MAJOR_VERSION,
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9791
diff changeset
128 GAIM_MINOR_VERSION,
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129 GAIM_PLUGIN_STANDARD, /**< type */
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
130 GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131 0, /**< flags */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132 NULL, /**< dependencies */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133 GAIM_PRIORITY_DEFAULT, /**< priority */
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
134 "gtk-extplacement", /**< id */
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 N_("ExtPlacement"), /**< name */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
136 VERSION, /**< version */
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
137 N_("Extra conversation placement options."), /**< summary */
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
138 /** description */
9425
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
139 N_("Restrict the number of conversations per windows,"
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
140 " optionally separating IMs and Chats"),
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
141 "Stu Tomlinson <stu@nosnilmot.com>", /**< author */
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
142 GAIM_WEBSITE, /**< homepage */
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
143 plugin_load, /**< load */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144 plugin_unload, /**< unload */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
145 NULL, /**< destroy */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146 NULL, /**< ui_info */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
147 NULL, /**< extra_info */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148 &prefs_info, /**< prefs_info */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 NULL /**< actions */
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
150 };
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152 static void
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153 init_plugin(GaimPlugin *plugin)
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154 {
9179
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
155 gaim_prefs_add_none("/plugins/gtk/extplacement");
fb09ed68fbd2 [gaim-migrate @ 9974]
Luke Schierer <lschiere@pidgin.im>
parents: 9157
diff changeset
156 gaim_prefs_add_int("/plugins/gtk/extplacement/placement_number", 4);
9425
42afbd004e6a [gaim-migrate @ 10243]
Luke Schierer <lschiere@pidgin.im>
parents: 9251
diff changeset
157 gaim_prefs_add_bool("/plugins/gtk/extplacement/placement_number_separate", FALSE);
9157
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
158 }
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
159
bd1ea0a717d7 [gaim-migrate @ 9941]
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 GAIM_INIT_PLUGIN(extplacement, init_plugin, info)