Mercurial > pidgin.yaz
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 |
| 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 | 26 static PurplePluginPrefFrame * |
| 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 | 29 PurplePluginPrefFrame *frame; |
| 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 | 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 | 35 ppref = purple_plugin_pref_new_with_label(_("Timestamp Format Options")); |
| 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 | 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 | 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 | 49 ppref = purple_plugin_pref_new_with_label(_("Show dates in...")); |
| 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 | 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 | 55 purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); |
| 56 purple_plugin_pref_add_choice(ppref, _("For delayed messages"), "automatic"); | |
| 57 purple_plugin_pref_add_choice(ppref, _("For delayed messages and in chats"), "chats"); | |
| 58 purple_plugin_pref_add_choice(ppref, _("Always"), "always"); | |
| 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 | 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 | 64 purple_plugin_pref_set_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); |
| 65 purple_plugin_pref_add_choice(ppref, _("For delayed messages"), "automatic"); | |
| 66 purple_plugin_pref_add_choice(ppref, _("For delayed messages and in chats"), "chats"); | |
| 67 purple_plugin_pref_add_choice(ppref, _("Always"), "always"); | |
| 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 | 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 | 77 const char *dates, |
| 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 224 purple_signal_connect(pidgin_conversations_get_handle(), "conversation-timestamp", |
| 225 plugin, PURPLE_CALLBACK(conversation_timestamp_cb), NULL); | |
| 226 purple_signal_connect(purple_log_get_handle(), "log-timestamp", | |
| 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 | 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 | 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 | 260 static PurplePluginInfo info = |
|
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
261 { |
| 15823 | 262 PURPLE_PLUGIN_MAGIC, |
| 263 PURPLE_MAJOR_VERSION, | |
| 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 | 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 | 302 purple_prefs_add_none("/plugins/gtk"); |
| 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 | 317 purple_prefs_add_none("/plugins/gtk/timestamp_format/use_dates"); |
| 318 purple_prefs_add_string("/plugins/gtk/timestamp_format/use_dates/conversation", "automatic"); | |
| 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 | 322 PURPLE_INIT_PLUGIN(timestamp_format, init_plugin, info) |
