annotate pidgin/plugins/timestamp_format.c @ 32194:462c19eb31d8

Remove duplicate calls to msn_slpmsg_set_slplink. This function is already called when a slpmsg is created, and calling it again will place the slpmsg on the slplink list an extra time. If the slpmsg is freed, then the first entry is removed, but the second remains, and can cause crashes due to invalid memory accesses. Fixes #14307.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Thu, 14 Jul 2011 05:54:10 +0000
parents 43c58f23c4b0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 #include "internal.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 #include "debug.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 #include "log.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5 #include "plugin.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6 #include "util.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 #include "version.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 #include "gtkconv.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 #include "gtkplugin.h"
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
11 #include "gtkimhtml.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 #include <time.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
15 static const char *format_12hour_hour(const struct tm *tm)
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
16 {
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
17 static char hr[3];
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
18 int hour = tm->tm_hour % 12;
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
19 if (hour == 0)
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
20 hour = 12;
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
21
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
22 g_snprintf(hr, sizeof(hr), "%d", hour);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
23 return hr;
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
24 }
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
25
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
26 static PurplePluginPrefFrame *
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
27 get_plugin_pref_frame(PurplePlugin *plugin)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
29 PurplePluginPrefFrame *frame;
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
30 PurplePluginPref *ppref;
16012
765cfc73182f more help for translators (I removed a few PIDGIN_NAME references
Nathan Walp <nwalp@pidgin.im>
parents: 15878
diff changeset
31 char *tmp;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
33 frame = purple_plugin_pref_frame_new();
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
35 ppref = purple_plugin_pref_new_with_label(_("Timestamp Format Options"));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
36 purple_plugin_pref_frame_add(frame, ppref);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
38 tmp = g_strdup_printf(_("_Force timestamp format:"));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
39 ppref = purple_plugin_pref_new_with_name_and_label(
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
40 "/plugins/gtk/timestamp_format/force",
16012
765cfc73182f more help for translators (I removed a few PIDGIN_NAME references
Nathan Walp <nwalp@pidgin.im>
parents: 15878
diff changeset
41 tmp);
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
42 purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
43 purple_plugin_pref_add_choice(ppref, _("Use system default"), "default");
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
44 purple_plugin_pref_add_choice(ppref, _("12 hour time format"), "force12");
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
45 purple_plugin_pref_add_choice(ppref, _("24 hour time format"), "force24");
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
46 purple_plugin_pref_frame_add(frame, ppref);
16012
765cfc73182f more help for translators (I removed a few PIDGIN_NAME references
Nathan Walp <nwalp@pidgin.im>
parents: 15878
diff changeset
47 g_free(tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
49 ppref = purple_plugin_pref_new_with_label(_("Show dates in..."));
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
50 purple_plugin_pref_frame_add(frame, ppref);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
52 ppref = purple_plugin_pref_new_with_name_and_label(
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
53 "/plugins/gtk/timestamp_format/use_dates/conversation",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54 _("Co_nversations:"));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
55 purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
56 purple_plugin_pref_add_choice(ppref, _("For delayed messages"), "automatic");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
57 purple_plugin_pref_add_choice(ppref, _("For delayed messages and in chats"), "chats");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
58 purple_plugin_pref_add_choice(ppref, _("Always"), "always");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
59 purple_plugin_pref_frame_add(frame, ppref);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
61 ppref = purple_plugin_pref_new_with_name_and_label(
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
62 "/plugins/gtk/timestamp_format/use_dates/log",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 _("_Message Logs:"));
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
64 purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
65 purple_plugin_pref_add_choice(ppref, _("For delayed messages"), "automatic");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
66 purple_plugin_pref_add_choice(ppref, _("For delayed messages and in chats"), "chats");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
67 purple_plugin_pref_add_choice(ppref, _("Always"), "always");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
68 purple_plugin_pref_frame_add(frame, ppref);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 return frame;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
73 static char *timestamp_cb_common(PurpleConversation *conv,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74 time_t t,
15519
b15cc37605c4 In Pidgin, display a full date on the timestamp of the first message to
Richard Laager <rlaager@wiktel.com>
parents: 15501
diff changeset
75 gboolean show_date,
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
76 const char *force,
16819
422bcef3154c Fix ticket #559:
Stu Tomlinson <stu@nosnilmot.com>
parents: 16678
diff changeset
77 const char *dates,
422bcef3154c Fix ticket #559:
Stu Tomlinson <stu@nosnilmot.com>
parents: 16678
diff changeset
78 gboolean parens)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
79 {
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
80 struct tm *tm;
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
81
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82 g_return_val_if_fail(dates != NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
84 tm = localtime(&t);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
85
15519
b15cc37605c4 In Pidgin, display a full date on the timestamp of the first message to
Richard Laager <rlaager@wiktel.com>
parents: 15501
diff changeset
86 if (show_date ||
b15cc37605c4 In Pidgin, display a full date on the timestamp of the first message to
Richard Laager <rlaager@wiktel.com>
parents: 15501
diff changeset
87 !strcmp(dates, "always") ||
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
88 (conv != NULL && purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT && !strcmp(dates, "chats")))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
89 {
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
90 if (g_str_equal(force, "force24"))
16819
422bcef3154c Fix ticket #559:
Stu Tomlinson <stu@nosnilmot.com>
parents: 16678
diff changeset
91 return g_strdup_printf("%s%s%s", parens ? "(" : "", purple_utf8_strftime("%Y-%m-%d %H:%M:%S", tm), parens ? ")" : "");
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
92 else if (g_str_equal(force, "force12")) {
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
93 char *date = g_strdup_printf("%s", purple_utf8_strftime("%Y-%m-%d ", tm));
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
94 char *remtime = g_strdup_printf("%s", purple_utf8_strftime(":%M:%S %p", tm));
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
95 const char *hour = format_12hour_hour(tm);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
96 char *output;
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
97
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
98 output = g_strdup_printf("%s%s%s%s%s",
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
99 parens ? "(" : "", date,
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
100 hour, remtime, parens ? ")" : "");
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
101
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
102 g_free(date);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
103 g_free(remtime);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
104
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
105 return output;
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
106 } else
16819
422bcef3154c Fix ticket #559:
Stu Tomlinson <stu@nosnilmot.com>
parents: 16678
diff changeset
107 return g_strdup_printf("%s%s%s", parens ? "(" : "", purple_date_format_long(tm), parens ? ")" : "");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
110 if (g_str_equal(force, "force24"))
16819
422bcef3154c Fix ticket #559:
Stu Tomlinson <stu@nosnilmot.com>
parents: 16678
diff changeset
111 return g_strdup_printf("%s%s%s", parens ? "(" : "", purple_utf8_strftime("%H:%M:%S", tm), parens ? ")" : "");
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
112 else if (g_str_equal(force, "force12")) {
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
113 const char *hour = format_12hour_hour(tm);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
114 char *remtime = g_strdup_printf("%s", purple_utf8_strftime(":%M:%S %p", tm));
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
115 char *output = g_strdup_printf("%s%s%s%s", parens ? "(" : "", hour, remtime, parens ? ")" : "");
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
116
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
117 g_free(remtime);
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
118
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
119 return output;
15519
b15cc37605c4 In Pidgin, display a full date on the timestamp of the first message to
Richard Laager <rlaager@wiktel.com>
parents: 15501
diff changeset
120 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
121
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
122 return NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
123 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
124
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
125 static char *conversation_timestamp_cb(PurpleConversation *conv,
15519
b15cc37605c4 In Pidgin, display a full date on the timestamp of the first message to
Richard Laager <rlaager@wiktel.com>
parents: 15501
diff changeset
126 time_t t, gboolean show_date, gpointer data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
127 {
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
128 const char *force = purple_prefs_get_string(
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
129 "/plugins/gtk/timestamp_format/force");
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
130 const char *dates = purple_prefs_get_string(
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
131 "/plugins/gtk/timestamp_format/use_dates/conversation");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
132
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133 g_return_val_if_fail(conv != NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
134
16819
422bcef3154c Fix ticket #559:
Stu Tomlinson <stu@nosnilmot.com>
parents: 16678
diff changeset
135 return timestamp_cb_common(conv, t, show_date, force, dates, TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
136 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
137
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
138 static char *log_timestamp_cb(PurpleLog *log, time_t t, gboolean show_date, gpointer data)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139 {
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
140 const char *force = purple_prefs_get_string(
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
141 "/plugins/gtk/timestamp_format/force");
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
142 const char *dates = purple_prefs_get_string(
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
143 "/plugins/gtk/timestamp_format/use_dates/log");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
144
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
145 g_return_val_if_fail(log != NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
146
16819
422bcef3154c Fix ticket #559:
Stu Tomlinson <stu@nosnilmot.com>
parents: 16678
diff changeset
147 return timestamp_cb_common(log->conv, t, show_date, force, dates, FALSE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
148 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
149
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
150 static void
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
151 menu_cb(GtkWidget *item, gpointer data)
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
152 {
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
153 PurplePlugin *plugin = data;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
154 GtkWidget *frame = pidgin_plugin_get_config_frame(plugin), *dialog;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
155 if (!frame)
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
156 return;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
157
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
158 dialog = gtk_dialog_new_with_buttons(PIDGIN_ALERT_TITLE, NULL,
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
159 GTK_DIALOG_NO_SEPARATOR | GTK_DIALOG_DESTROY_WITH_PARENT,
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
160 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
161 NULL);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
162 g_signal_connect_after(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), dialog);
30137
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
163 #if GTK_CHECK_VERSION(2,14,0)
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
164 gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), frame);
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
165 #else
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
166 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), frame);
30137
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
167 #endif
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
168 gtk_window_set_role(GTK_WINDOW(dialog), "plugin_config");
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
169 gtk_window_set_title(GTK_WINDOW(dialog), _(purple_plugin_get_name(plugin)));
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
170 gtk_widget_show_all(dialog);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
171 }
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
172
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
173 static gboolean
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
174 textview_emission_hook(GSignalInvocationHint *hint, guint n_params,
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
175 const GValue *pvalues, gpointer data)
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
176 {
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
177 GtkTextView *view = GTK_TEXT_VIEW(g_value_get_object(pvalues));
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
178 GtkWidget *menu, *item;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
179 GtkTextBuffer *buffer;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
180 GtkTextIter cursor;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
181 int cx, cy, bx, by;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
182
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
183 if (!GTK_IS_IMHTML(view))
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
184 return TRUE;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
185
30137
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
186 #if GTK_CHECK_VERSION(2,14,0)
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
187 if (!gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(view)), &cx, &cy, NULL))
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
188 return TRUE;
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
189 #else
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
190 if (!gdk_window_get_pointer(GTK_WIDGET(view)->window, &cx, &cy, NULL))
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
191 return TRUE;
30137
4e7a9940627e Prepare Pidgin plugins for GTK+3.0. They're almost GSeal-compliant, except
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30128
diff changeset
192 #endif
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
193
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
194 buffer = gtk_text_view_get_buffer(view);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
195
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
196 gtk_text_view_window_to_buffer_coords(view, GTK_TEXT_WINDOW_TEXT, cx, cy, &bx, &by);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
197 gtk_text_view_get_iter_at_location(view, &cursor, bx, by);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
198 if (!gtk_text_iter_has_tag(&cursor,
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
199 gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(buffer), "comment")))
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
200 return TRUE;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
201
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
202 menu = g_value_get_object(&pvalues[1]);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
203
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
204 item = gtk_menu_item_new_with_label(_("Timestamp Format Options"));
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
205 gtk_widget_show_all(item);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
206 g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(menu_cb), data);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
207 gtk_menu_shell_insert(GTK_MENU_SHELL(menu), item, 0);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
208
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
209 item = gtk_separator_menu_item_new();
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
210 gtk_widget_show(item);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
211 gtk_menu_shell_insert(GTK_MENU_SHELL(menu), item, 1);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
212
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
213 return TRUE;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
214 }
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
215
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
216 static guint signal_id;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
217 static gulong hook_id;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
218
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219 static gboolean
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
220 plugin_load(PurplePlugin *plugin)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221 {
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
222 gpointer klass = NULL;
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
223
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
224 purple_signal_connect(pidgin_conversations_get_handle(), "conversation-timestamp",
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
225 plugin, PURPLE_CALLBACK(conversation_timestamp_cb), NULL);
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
226 purple_signal_connect(purple_log_get_handle(), "log-timestamp",
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
227 plugin, PURPLE_CALLBACK(log_timestamp_cb), NULL);
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
228
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
229 klass = g_type_class_ref(GTK_TYPE_TEXT_VIEW);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
230
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
231 /* In 3.0.0, use purple_g_signal_connect_flags */
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
232 g_signal_parse_name("populate_popup", GTK_TYPE_TEXT_VIEW, &signal_id, NULL, FALSE);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
233 hook_id = g_signal_add_emission_hook(signal_id, 0, textview_emission_hook,
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
234 plugin, NULL);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
235
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
236 g_type_class_unref(klass);
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
237
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
238 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
239 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
240
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
241 static gboolean
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
242 plugin_unload(PurplePlugin *plugin)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
243 {
30128
9ec94a37446a Add a context option for the timestamps in the conversation log.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21030
diff changeset
244 g_signal_remove_emission_hook(signal_id, hook_id);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245 return TRUE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
247
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
248 static PurplePluginUiInfo prefs_info = {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249 get_plugin_pref_frame,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 0, /* page num (Reserved) */
16678
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
251 NULL,/* frame (Reserved) */
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
252
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
253 /* padding */
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
254 NULL,
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
255 NULL,
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
256 NULL,
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
257 NULL
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
258 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
260 static PurplePluginInfo info =
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
261 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
262 PURPLE_PLUGIN_MAGIC,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
263 PURPLE_MAJOR_VERSION,
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
264 PURPLE_MINOR_VERSION,
15878
fde34f782314 The Message Timestamp Formats plugin lacked an ID before.
Richard Laager <rlaager@wiktel.com>
parents: 15823
diff changeset
265 PURPLE_PLUGIN_STANDARD, /**< type */
15519
b15cc37605c4 In Pidgin, display a full date on the timestamp of the first message to
Richard Laager <rlaager@wiktel.com>
parents: 15501
diff changeset
266 PIDGIN_PLUGIN_TYPE, /**< ui_requirement */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267 0, /**< flags */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
268 NULL, /**< dependencies */
15878
fde34f782314 The Message Timestamp Formats plugin lacked an ID before.
Richard Laager <rlaager@wiktel.com>
parents: 15823
diff changeset
269 PURPLE_PRIORITY_DEFAULT, /**< priority */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270
15878
fde34f782314 The Message Timestamp Formats plugin lacked an ID before.
Richard Laager <rlaager@wiktel.com>
parents: 15823
diff changeset
271 "core-timestamp_format", /**< id */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
272 N_("Message Timestamp Formats"), /**< name */
21030
3cc856ca2338 Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <stu@nosnilmot.com>
parents: 16931
diff changeset
273 DISPLAY_VERSION, /**< version */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
274 /** summary */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
275 N_("Customizes the message timestamp formats."),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
276 /** description */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
277 N_("This plugin allows the user to customize "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
278 "conversation and logging message timestamp "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
279 "formats."),
15567
b6615958d87c Switching to my pidgin.im e-mail address, which I think fits nicely and seems professional.
Richard Laager <rlaager@wiktel.com>
parents: 15565
diff changeset
280 "Richard Laager <rlaager@pidgin.im>", /**< author */
15878
fde34f782314 The Message Timestamp Formats plugin lacked an ID before.
Richard Laager <rlaager@wiktel.com>
parents: 15823
diff changeset
281 PURPLE_WEBSITE, /**< homepage */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
282
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
283 plugin_load, /**< load */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
284 plugin_unload, /**< unload */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
285 NULL, /**< destroy */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
286
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
287 NULL, /**< ui_info */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288 NULL, /**< extra_info */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 &prefs_info, /**< prefs_info */
16678
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
290 NULL, /**< actions */
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
291
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
292 /* padding */
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
293 NULL,
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
294 NULL,
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
295 NULL,
3d41d0d7fb9b Default plugins are done, for the release i'm not that concerned about plugins that do _NOT_ compile by default
Gary Kramlich <grim@reaperworld.com>
parents: 16012
diff changeset
296 NULL
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
297 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
298
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
299 static void
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
300 init_plugin(PurplePlugin *plugin)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
302 purple_prefs_add_none("/plugins/gtk");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
303 purple_prefs_add_none("/plugins/gtk/timestamp_format");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
304
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
305 if (!purple_prefs_exists("/plugins/gtk/timestamp_format/force") &&
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
306 purple_prefs_exists("/plugins/gtk/timestamp_format/force_24hr"))
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
307 {
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
308 if (purple_prefs_get_bool(
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
309 "/plugins/gtk/timestamp_format/force_24hr"))
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
310 purple_prefs_add_string("/plugins/gtk/timestamp_format/force", "force24");
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
311 else
30192
43c58f23c4b0 timestamp formats: Default to the 'default' ones (as pointed out by Jonathan)
Paul Aurich <paul@darkrain42.org>
parents: 30191
diff changeset
312 purple_prefs_add_string("/plugins/gtk/timestamp_format/force", "default");
30191
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
313 }
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
314 else
446f208e5765 timestamp formats: Allow forcing 12-hour time formats. Closes #11667.
jemaltz@gmail.com
parents: 30137
diff changeset
315 purple_prefs_add_string("/plugins/gtk/timestamp_format/force", "default");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
316
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
317 purple_prefs_add_none("/plugins/gtk/timestamp_format/use_dates");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
318 purple_prefs_add_string("/plugins/gtk/timestamp_format/use_dates/conversation", "automatic");
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
319 purple_prefs_add_string("/plugins/gtk/timestamp_format/use_dates/log", "automatic");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
320 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
321
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15567
diff changeset
322 PURPLE_INIT_PLUGIN(timestamp_format, init_plugin, info)