comparison libpurple/plugins/newline.c @ 21774:b63b2a5c2d05

merge of '282b4acb46729e4358221cb7cc78ad9373289199' and '3fe64d635336a6d7f6e520f4b2e041c3316c465d'
author Etan Reisner <pidgin@unreliablesource.net>
date Sat, 01 Dec 2007 03:41:37 +0000
parents 3f87c3265740
children cc8903c59d6b
comparison
equal deleted inserted replaced
21597:14afe5a92fc2 21774:b63b2a5c2d05
29 29
30 static gboolean 30 static gboolean
31 addnewline_msg_cb(PurpleAccount *account, char *sender, char **message, 31 addnewline_msg_cb(PurpleAccount *account, char *sender, char **message,
32 PurpleConversation *conv, int *flags, void *data) 32 PurpleConversation *conv, int *flags, void *data)
33 { 33 {
34 if (((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM) &&
35 !purple_prefs_get_bool("/plugins/core/newline/im")) ||
36 ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) &&
37 !purple_prefs_get_bool("/plugins/core/newline/chat")))
38 return FALSE;
39
34 if (g_ascii_strncasecmp(*message, "/me ", strlen("/me "))) { 40 if (g_ascii_strncasecmp(*message, "/me ", strlen("/me "))) {
35 char *tmp = g_strdup_printf("<br/>%s", *message); 41 char *tmp = g_strdup_printf("<br/>%s", *message);
36 g_free(*message); 42 g_free(*message);
37 *message = tmp; 43 *message = tmp;
38 } 44 }
39 45
40 return FALSE; 46 return FALSE;
41 } 47 }
48
49 static PurplePluginPrefFrame *
50 get_plugin_pref_frame(PurplePlugin *plugin) {
51 PurplePluginPrefFrame *frame;
52 PurplePluginPref *ppref;
53
54 frame = purple_plugin_pref_frame_new();
55
56 ppref = purple_plugin_pref_new_with_name_and_label(
57 "/plugins/core/newline/im", _("Add new line in IMs"));
58 purple_plugin_pref_frame_add(frame, ppref);
59
60 ppref = purple_plugin_pref_new_with_name_and_label(
61 "/plugins/core/newline/chat", _("Add new line in Chats"));
62 purple_plugin_pref_frame_add(frame, ppref);
63
64 return frame;
65 }
66
42 67
43 static gboolean 68 static gboolean
44 plugin_load(PurplePlugin *plugin) 69 plugin_load(PurplePlugin *plugin)
45 { 70 {
46 void *conversation = purple_conversations_get_handle(); 71 void *conversation = purple_conversations_get_handle();
50 purple_signal_connect(conversation, "writing-chat-msg", 75 purple_signal_connect(conversation, "writing-chat-msg",
51 plugin, PURPLE_CALLBACK(addnewline_msg_cb), NULL); 76 plugin, PURPLE_CALLBACK(addnewline_msg_cb), NULL);
52 77
53 return TRUE; 78 return TRUE;
54 } 79 }
80
81 static PurplePluginUiInfo prefs_info = {
82 get_plugin_pref_frame,
83 0, /* page_num (Reserved) */
84 NULL, /* frame (Reserved) */
85 /* Padding */
86 NULL,
87 NULL,
88 NULL,
89 NULL
90 };
55 91
56 static PurplePluginInfo info = 92 static PurplePluginInfo info =
57 { 93 {
58 PURPLE_PLUGIN_MAGIC, /**< magic */ 94 PURPLE_PLUGIN_MAGIC, /**< magic */
59 PURPLE_MAJOR_VERSION, /**< major version */ 95 PURPLE_MAJOR_VERSION, /**< major version */
78 NULL, /**< unload */ 114 NULL, /**< unload */
79 NULL, /**< destroy */ 115 NULL, /**< destroy */
80 116
81 NULL, /**< ui_info */ 117 NULL, /**< ui_info */
82 NULL, /**< extra_info */ 118 NULL, /**< extra_info */
83 NULL, /**< prefs_info */ 119 &prefs_info, /**< prefs_info */
84 NULL, /**< actions */ 120 NULL, /**< actions */
85 121
86 /* padding */ 122 /* padding */
87 NULL, 123 NULL,
88 NULL, 124 NULL,
90 NULL 126 NULL
91 }; 127 };
92 128
93 static void 129 static void
94 init_plugin(PurplePlugin *plugin) { 130 init_plugin(PurplePlugin *plugin) {
131 purple_prefs_add_none("/plugins/core/newline");
132 purple_prefs_add_bool("/plugins/core/newline/im", TRUE);
133 purple_prefs_add_bool("/plugins/core/newline/chat", TRUE);
95 } 134 }
96 135
97 PURPLE_INIT_PLUGIN(lastseen, init_plugin, info) 136 PURPLE_INIT_PLUGIN(lastseen, init_plugin, info)