annotate pidgin/plugins/timestamp_format.c @ 32421:7497a77070ac

Convert the sametime prpl to use the new API.
author andrew.victor@mxit.com
date Fri, 26 Aug 2011 18:29:21 +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)