Mercurial > pidgin
annotate finch/plugins/lastlog.c @ 27629:5d75276a575f
Make OK default for Add Buddy, Add Chat, and Join Chat.
OK was already default for New IM, Get User Info, View User Log, and
Add Group and it's been bothering me that these others didn't do it the
same way.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 19 Jul 2009 19:07:54 +0000 |
parents | ea62e934c80b |
children | 49a33bd1baf1 |
rev | line source |
---|---|
15817 | 1 /** |
15822 | 2 * @file lastlog.c Lastlog plugin for purple-text. |
15817 | 3 * |
4 * Copyright (C) 2006 Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | |
5 * | |
6 * This program is free software; you can redistribute it and/or modify | |
7 * it under the terms of the GNU General Public License as published by | |
8 * the Free Software Foundation; either version 2 of the License, or | |
9 * (at your option) any later version. | |
10 * | |
11 * This program is distributed in the hope that it will be useful, | |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 * GNU General Public License for more details. | |
15 * | |
16 * You should have received a copy of the GNU General Public License | |
17 * along with this program; if not, write to the Free Software | |
19681
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16669
diff
changeset
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15817 | 19 */ |
20 | |
21 | |
25490
ea62e934c80b
Fix some more mis-identified plugins, like 3b3526a0...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
21030
diff
changeset
|
22 #define PLUGIN_STATIC_NAME GntLastlog |
15817 | 23 |
24 #include "internal.h" | |
25 | |
26 #include <plugin.h> | |
27 #include <version.h> | |
28 | |
29 #include <cmds.h> | |
30 | |
31 #include <gnt.h> | |
32 #include <gnttextview.h> | |
33 #include <gntwindow.h> | |
34 | |
35 #include <gntconv.h> | |
36 #include <gntplugin.h> | |
37 | |
15822 | 38 static PurpleCmdId cmd; |
15817 | 39 |
40 static gboolean | |
41 window_kpress_cb(GntWidget *wid, const char *key, GntTextView *view) | |
42 { | |
43 if (key[0] == 27) | |
44 { | |
45 if (strcmp(key, GNT_KEY_DOWN) == 0) | |
46 gnt_text_view_scroll(view, 1); | |
47 else if (strcmp(key, GNT_KEY_UP) == 0) | |
48 gnt_text_view_scroll(view, -1); | |
49 else if (strcmp(key, GNT_KEY_PGDOWN) == 0) | |
50 gnt_text_view_scroll(view, wid->priv.height - 2); | |
51 else if (strcmp(key, GNT_KEY_PGUP) == 0) | |
52 gnt_text_view_scroll(view, -(wid->priv.height - 2)); | |
53 else | |
54 return FALSE; | |
55 return TRUE; | |
56 } | |
57 return FALSE; | |
58 } | |
59 | |
15822 | 60 static PurpleCmdRet |
61 lastlog_cb(PurpleConversation *conv, const char *cmd, char **args, char **error, gpointer null) | |
15817 | 62 { |
63 FinchConv *ggconv = conv->ui_data; | |
64 char **strings = g_strsplit(GNT_TEXT_VIEW(ggconv->tv)->string->str, "\n", 0); | |
65 GntWidget *win, *tv; | |
66 int i, j; | |
67 | |
68 win = gnt_window_new(); | |
69 gnt_box_set_title(GNT_BOX(win), _("Lastlog")); | |
70 | |
71 tv = gnt_text_view_new(); | |
72 gnt_box_add_widget(GNT_BOX(win), tv); | |
73 | |
74 gnt_widget_show(win); | |
75 | |
76 for (i = 0; strings[i]; i++) { | |
77 if (strstr(strings[i], args[0]) != NULL) { | |
78 char **finds = g_strsplit(strings[i], args[0], 0); | |
79 for (j = 0; finds[j]; j++) { | |
80 if (j) | |
81 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(tv), args[0], GNT_TEXT_FLAG_BOLD); | |
82 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(tv), finds[j], GNT_TEXT_FLAG_NORMAL); | |
83 } | |
84 g_strfreev(finds); | |
85 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(tv), "\n", GNT_TEXT_FLAG_NORMAL); | |
86 } | |
87 } | |
88 | |
89 g_signal_connect(G_OBJECT(win), "key_pressed", G_CALLBACK(window_kpress_cb), tv); | |
90 g_strfreev(strings); | |
15822 | 91 return PURPLE_CMD_STATUS_OK; |
15817 | 92 } |
93 | |
94 static gboolean | |
15822 | 95 plugin_load(PurplePlugin *plugin) |
15817 | 96 { |
15822 | 97 cmd = purple_cmd_register("lastlog", "s", PURPLE_CMD_P_DEFAULT, |
98 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, | |
20249
45d28c932d3e
applied changes from 82ca9c2040bb139af45e049cfa90e8f909e054bd
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
99 /* Translator Note: The "backlog" is the conversation buffer/history. */ |
15817 | 100 lastlog_cb, _("lastlog: Searches for a substring in the backlog."), NULL); |
101 return TRUE; | |
102 } | |
103 | |
104 static gboolean | |
15822 | 105 plugin_unload(PurplePlugin *plugin) |
15817 | 106 { |
15822 | 107 purple_cmd_unregister(cmd); |
15817 | 108 return TRUE; |
109 } | |
110 | |
15822 | 111 static PurplePluginInfo info = |
15817 | 112 { |
15822 | 113 PURPLE_PLUGIN_MAGIC, |
114 PURPLE_MAJOR_VERSION, | |
115 PURPLE_MINOR_VERSION, | |
116 PURPLE_PLUGIN_STANDARD, | |
117 FINCH_PLUGIN_TYPE, | |
15817 | 118 0, |
119 NULL, | |
15822 | 120 PURPLE_PRIORITY_DEFAULT, |
15817 | 121 "gntlastlog", |
122 N_("GntLastlog"), | |
21030
3cc856ca2338
Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <stu@nosnilmot.com>
parents:
20249
diff
changeset
|
123 DISPLAY_VERSION, |
15817 | 124 N_("Lastlog plugin."), |
125 N_("Lastlog plugin."), | |
126 "Sadrul H Chowdhury <sadrul@users.sourceforge.net>", | |
15863
4c707efebc0c
Use PURPLE_WEBSITE instead of listing the website directly (which was wrong because of the sed).
Richard Laager <rlaager@wiktel.com>
parents:
15822
diff
changeset
|
127 PURPLE_WEBSITE, |
15817 | 128 plugin_load, |
129 plugin_unload, | |
130 NULL, | |
131 NULL, | |
132 NULL, | |
133 NULL, | |
16669
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
15863
diff
changeset
|
134 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
15863
diff
changeset
|
135 |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
15863
diff
changeset
|
136 /* padding */ |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
15863
diff
changeset
|
137 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
15863
diff
changeset
|
138 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
15863
diff
changeset
|
139 NULL, |
15817 | 140 NULL |
141 }; | |
142 | |
143 static void | |
15822 | 144 init_plugin(PurplePlugin *plugin) |
15817 | 145 { |
146 } | |
147 | |
15822 | 148 PURPLE_INIT_PLUGIN(PLUGIN_STATIC_NAME, init_plugin, info) |
15817 | 149 |