Mercurial > pidgin
comparison libpurple/protocols/null/nullprpl.c @ 25889:e2b193decaa5
explicit merge of '814d53152c168c9c4732b3d084260711d536fba6'
and 'af375020001eed33302b471e7ee9dec6a478e824'
| author | Richard Laager <rlaager@wiktel.com> |
|---|---|
| date | Fri, 02 Jan 2009 22:23:58 +0000 |
| parents | 65cfc59858cf |
| children | 2d4f0dd04334 |
comparison
equal
deleted
inserted
replaced
| 24844:94a47062819c | 25889:e2b193decaa5 |
|---|---|
| 218 /* | 218 /* |
| 219 * prpl functions | 219 * prpl functions |
| 220 */ | 220 */ |
| 221 static const char *nullprpl_list_icon(PurpleAccount *acct, PurpleBuddy *buddy) | 221 static const char *nullprpl_list_icon(PurpleAccount *acct, PurpleBuddy *buddy) |
| 222 { | 222 { |
| 223 /* shamelessly steal (er, borrow) the meanwhile protocol icon. it's cute! */ | 223 return "null"; |
| 224 return "meanwhile"; | |
| 225 } | |
| 226 | |
| 227 static const char *nullprpl_list_emblem(PurpleBuddy *buddy) | |
| 228 { | |
| 229 const char* emblem; | |
| 230 | |
| 231 if (get_nullprpl_gc(buddy->name)) { | |
| 232 PurplePresence *presence = purple_buddy_get_presence(buddy); | |
| 233 PurpleStatus *status = purple_presence_get_active_status(presence); | |
| 234 emblem = purple_status_get_name(status); | |
| 235 } else { | |
| 236 emblem = "offline"; | |
| 237 } | |
| 238 | |
| 239 purple_debug_info("nullprpl", "using emblem %s for %s's buddy %s\n", | |
| 240 emblem, buddy->account->username, buddy->name); | |
| 241 return emblem; | |
| 242 } | 224 } |
| 243 | 225 |
| 244 static char *nullprpl_status_text(PurpleBuddy *buddy) { | 226 static char *nullprpl_status_text(PurpleBuddy *buddy) { |
| 245 purple_debug_info("nullprpl", "getting %s's status text for %s\n", | 227 purple_debug_info("nullprpl", "getting %s's status text for %s\n", |
| 246 buddy->name, buddy->account->username); | 228 buddy->name, buddy->account->username); |
| 303 purple_debug_info("nullprpl", "returning status types for %s: %s, %s, %s\n", | 285 purple_debug_info("nullprpl", "returning status types for %s: %s, %s, %s\n", |
| 304 acct->username, | 286 acct->username, |
| 305 NULL_STATUS_ONLINE, NULL_STATUS_AWAY, NULL_STATUS_OFFLINE); | 287 NULL_STATUS_ONLINE, NULL_STATUS_AWAY, NULL_STATUS_OFFLINE); |
| 306 | 288 |
| 307 type = purple_status_type_new(PURPLE_STATUS_AVAILABLE, NULL_STATUS_ONLINE, | 289 type = purple_status_type_new(PURPLE_STATUS_AVAILABLE, NULL_STATUS_ONLINE, |
| 308 NULL_STATUS_ONLINE, TRUE); | 290 NULL, TRUE); |
| 309 purple_status_type_add_attr(type, "message", _("Online"), | 291 purple_status_type_add_attr(type, "message", _("Message"), |
| 310 purple_value_new(PURPLE_TYPE_STRING)); | 292 purple_value_new(PURPLE_TYPE_STRING)); |
| 311 types = g_list_prepend(types, type); | 293 types = g_list_prepend(types, type); |
| 312 | 294 |
| 313 type = purple_status_type_new(PURPLE_STATUS_AWAY, NULL_STATUS_AWAY, | 295 type = purple_status_type_new(PURPLE_STATUS_AWAY, NULL_STATUS_AWAY, |
| 314 NULL_STATUS_AWAY, TRUE); | 296 NULL, TRUE); |
| 315 purple_status_type_add_attr(type, "message", _("Away"), | 297 purple_status_type_add_attr(type, "message", _("Message"), |
| 316 purple_value_new(PURPLE_TYPE_STRING)); | 298 purple_value_new(PURPLE_TYPE_STRING)); |
| 317 types = g_list_prepend(types, type); | 299 types = g_list_prepend(types, type); |
| 318 | 300 |
| 319 type = purple_status_type_new(PURPLE_STATUS_OFFLINE, NULL_STATUS_OFFLINE, | 301 type = purple_status_type_new(PURPLE_STATUS_OFFLINE, NULL_STATUS_OFFLINE, |
| 320 NULL_STATUS_OFFLINE, TRUE); | 302 NULL, TRUE); |
| 321 purple_status_type_add_attr(type, "message", _("Offline"), | 303 purple_status_type_add_attr(type, "message", _("Message"), |
| 322 purple_value_new(PURPLE_TYPE_STRING)); | 304 purple_value_new(PURPLE_TYPE_STRING)); |
| 323 types = g_list_prepend(types, type); | 305 types = g_list_prepend(types, type); |
| 324 | 306 |
| 325 return g_list_reverse(types); | 307 return g_list_reverse(types); |
| 326 } | 308 } |
| 1071 128, /* max_height */ | 1053 128, /* max_height */ |
| 1072 10000, /* max_filesize */ | 1054 10000, /* max_filesize */ |
| 1073 PURPLE_ICON_SCALE_DISPLAY, /* scale_rules */ | 1055 PURPLE_ICON_SCALE_DISPLAY, /* scale_rules */ |
| 1074 }, | 1056 }, |
| 1075 nullprpl_list_icon, /* list_icon */ | 1057 nullprpl_list_icon, /* list_icon */ |
| 1076 nullprpl_list_emblem, /* list_emblem */ | 1058 NULL, /* list_emblem */ |
| 1077 nullprpl_status_text, /* status_text */ | 1059 nullprpl_status_text, /* status_text */ |
| 1078 nullprpl_tooltip_text, /* tooltip_text */ | 1060 nullprpl_tooltip_text, /* tooltip_text */ |
| 1079 nullprpl_status_types, /* status_types */ | 1061 nullprpl_status_types, /* status_types */ |
| 1080 nullprpl_blist_node_menu, /* blist_node_menu */ | 1062 nullprpl_blist_node_menu, /* blist_node_menu */ |
| 1081 nullprpl_chat_info, /* chat_info */ | 1063 nullprpl_chat_info, /* chat_info */ |
| 1128 NULL, /* new_xfer */ | 1110 NULL, /* new_xfer */ |
| 1129 nullprpl_offline_message, /* offline_message */ | 1111 nullprpl_offline_message, /* offline_message */ |
| 1130 NULL, /* whiteboard_prpl_ops */ | 1112 NULL, /* whiteboard_prpl_ops */ |
| 1131 NULL, /* send_raw */ | 1113 NULL, /* send_raw */ |
| 1132 NULL, /* roomlist_room_serialize */ | 1114 NULL, /* roomlist_room_serialize */ |
| 1133 NULL, /* padding... */ | 1115 NULL, /* unregister_user */ |
| 1134 NULL, | 1116 NULL, /* send_attention */ |
| 1135 NULL, | 1117 NULL, /* attention_types */ |
| 1136 sizeof(PurplePluginProtocolInfo), /* struct_size */ | 1118 sizeof(PurplePluginProtocolInfo), /* struct_size */ |
| 1137 NULL | 1119 NULL, /* get_account_text_table */ |
| 1138 }; | 1120 }; |
| 1139 | 1121 |
| 1140 static void nullprpl_init(PurplePlugin *plugin) | 1122 static void nullprpl_init(PurplePlugin *plugin) |
| 1141 { | 1123 { |
| 1142 /* see accountopt.h for information about user splits and protocol options */ | 1124 /* see accountopt.h for information about user splits and protocol options */ |
| 1143 PurpleAccountUserSplit *split = purple_account_user_split_new( | 1125 PurpleAccountUserSplit *split = purple_account_user_split_new( |
| 1144 _("Example user split (unused)"), /* text shown to user */ | 1126 _("Example user split"), /* text shown to user */ |
| 1145 "default", /* default value */ | 1127 "default", /* default value */ |
| 1146 '@'); /* field separator */ | 1128 '@'); /* field separator */ |
| 1147 PurpleAccountOption *option = purple_account_option_string_new( | 1129 PurpleAccountOption *option = purple_account_option_string_new( |
| 1148 _("Example option (unused)"), /* text shown to user */ | 1130 _("Example option"), /* text shown to user */ |
| 1149 "example", /* pref name */ | 1131 "example", /* pref name */ |
| 1150 "default"); /* default value */ | 1132 "default"); /* default value */ |
| 1151 | 1133 |
| 1152 purple_debug_info("nullprpl", "starting up\n"); | 1134 purple_debug_info("nullprpl", "starting up\n"); |
| 1153 | 1135 |
| 1154 prpl_info.user_splits = g_list_append(NULL, split); | 1136 prpl_info.user_splits = g_list_append(NULL, split); |
| 1155 prpl_info.protocol_options = g_list_append(NULL, option); | 1137 prpl_info.protocol_options = g_list_append(NULL, option); |
| 1156 | 1138 |
| 1157 /* register whisper chat command, /msg */ | 1139 /* register whisper chat command, /msg */ |
| 1158 purple_cmd_register("msg", | 1140 purple_cmd_register("msg", |
| 1159 "ws", /* args: recipient and message */ | 1141 "ws", /* args: recipient and message */ |
| 1160 PURPLE_CMD_P_DEFAULT, /* priority */ | 1142 PURPLE_CMD_P_DEFAULT, /* priority */ |
| 1161 PURPLE_CMD_FLAG_CHAT, | 1143 PURPLE_CMD_FLAG_CHAT, |
| 1162 "prpl-null", | 1144 "prpl-null", |
| 1163 send_whisper, | 1145 send_whisper, |
| 1164 "msg <username> <message>: send a private message, aka a whisper", | 1146 "msg <username> <message>: send a private message, aka a whisper", |
| 1165 NULL); /* userdata */ | 1147 NULL); /* userdata */ |
| 1166 | 1148 |
| 1167 /* get ready to store offline messages */ | 1149 /* get ready to store offline messages */ |
| 1168 goffline_messages = g_hash_table_new_full(g_str_hash, /* hash fn */ | 1150 goffline_messages = g_hash_table_new_full(g_str_hash, /* hash fn */ |
| 1169 g_str_equal, /* key comparison fn */ | 1151 g_str_equal, /* key comparison fn */ |
| 1170 g_free, /* key free fn */ | 1152 g_free, /* key free fn */ |
| 1187 NULL, /* ui_requirement */ | 1169 NULL, /* ui_requirement */ |
| 1188 0, /* flags */ | 1170 0, /* flags */ |
| 1189 NULL, /* dependencies */ | 1171 NULL, /* dependencies */ |
| 1190 PURPLE_PRIORITY_DEFAULT, /* priority */ | 1172 PURPLE_PRIORITY_DEFAULT, /* priority */ |
| 1191 NULLPRPL_ID, /* id */ | 1173 NULLPRPL_ID, /* id */ |
| 1192 "Nullprpl", /* name */ | 1174 "Null - Testing Plugin", /* name */ |
| 1193 "0.3", /* version */ | 1175 DISPLAY_VERSION, /* version */ |
| 1194 "Null Protocol Plugin", /* summary */ | 1176 N_("Null Protocol Plugin"), /* summary */ |
| 1195 "Null Protocol Plugin", /* description */ | 1177 N_("Null Protocol Plugin"), /* description */ |
| 1196 "Ryan Barrett <nullprpl@ryanb.org>", /* author */ | 1178 NULL, /* author */ |
| 1197 "http://snarfed.org/space/pidgin+null+protocol+plugin", /* homepage */ | 1179 PURPLE_WEBSITE, /* homepage */ |
| 1198 NULL, /* load */ | 1180 NULL, /* load */ |
| 1199 NULL, /* unload */ | 1181 NULL, /* unload */ |
| 1200 nullprpl_destroy, /* destroy */ | 1182 nullprpl_destroy, /* destroy */ |
| 1201 NULL, /* ui_info */ | 1183 NULL, /* ui_info */ |
| 1202 &prpl_info, /* extra_info */ | 1184 &prpl_info, /* extra_info */ |
