1Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul 2 3version 2.14.8: 4 * no changes 5 6version 2.14.7: 7 * no changes 8 9version 2.14.6: 10 * No changes 11 12version 2.14.5: 13 * No changes 14 15version 2.14.4: 16 * No changes 17 18version 2.14.3: 19 * No changes 20 21version 2.14.2: 22 * No changes 23 24version 2.14.1: 25 * No changes 26 27version 2.14.0: 28 libpurple: 29 Added: 30 * purple_media_manager_enumerate_elements 31 * purple_request_screenshare_media 32 * purple_media_set_require_encryption 33 34version 2.13.0: 35 libpurple: 36 Added: 37 * purple_uri_escape_for_open 38 39version 2.12.0: 40 libpurple: 41 Added: 42 * PURPLE_MESSAGE_REMOTE_SEND in PurpleMessageFlags, to specify 43 messages like _SEND that were sent from another location. 44 * purple_certificate_get_fingerprint_sha256 45 * purple_certificate_compare_pubkeys 46 * PurpleCertificateScheme.get_fingerprint_sha256 47 * PurpleCertificateScheme.compare_pubkeys 48 * PURPLE_CERTIFICATE_SCHEME_HAS_FUNC 49 50version 2.11.0: 51 libpurple: 52 Added: 53 * account-status-changing signal (account signals) 54 * buddy-removed-from-group signal (blist signals) 55 * PurpleCommandsUiOps, to allow the UI to override the 56 built-in handling of commands. 57 * PurplePrefsUiOps, to allow the UI to override the way global 58 preferences are stored. 59 * PurpleAccountPrefsUiOps, to allow the UI to handle storage 60 of account preferences. 61 * purple_media_set_encryption_parameters 62 * purple_media_set_decryption_parameters 63 * purple_xfer_write_file 64 * purple_xfer_read_file 65 * purple_media_set_send_rtcp_mux 66 * purple_media_backend_set_send_rtcp_mux 67 68version 2.10.12: 69 * No changes 70 71version 2.10.11: 72 * No changes 73 74version 2.10.10: 75 * No changes 76 77version 2.10.9: 78 * No changes 79 80version 2.10.8: 81 * No changes 82 83version 2.10.7: 84 * No changes 85 86version 2.10.6: 87 * No changes 88 89version 2.10.5: 90 * No changes 91 92version 2.10.4: 93 * No changes 94 95version 2.10.3: 96 * No changes 97 98version 2.10.2: 99 * No changes 100 101version 2.10.1: 102 * No changes 103 104version 2.10.0: 105 libpurple: 106 Added: 107 * purple_srv_txt_query_destroy (accidentally left out of 2.8.0) 108 109 Pidgin: 110 Added: 111 * pidgin_dialogs_plugins_info (should not be used by anything but Pidgin) 112 113version 2.9.0: 114 libpurple: 115 Added: 116 * Hash table to PurpleConvChat struct, used to make 117 purple_conv_chat_cb_find O(1). 118 * ui_data pointer to PurpleConvChatBuddy struct. 119 * deleting-chat-buddy signal (conversation signals) 120 * pidgin_pixbuf_from_data 121 * pidgin_pixbuf_anim_from_data 122 * pidgin_pixbuf_new_from_file 123 * pidgin_pixbuf_new_from_file_at_size 124 * pidgin_pixbuf_new_from_file_at_scale 125 126 Deprecated: 127 * purple_conv_chat_set_users 128 * PurpleConvChat in_room list 129 130version 2.8.0 (06/07/2011): 131 libpurple: 132 Added: 133 * account-authorization-requested-with-message signal (Stefan Ott) 134 (#8690) 135 * cleared-message-history signal (conversation signals) 136 * purple_account_add_buddy_with_invite 137 * purple_account_add_buddies_with_invite 138 * purple_dnsquery_a_account 139 * purple_notify_user_info_add_pair_plaintext 140 * purple_media_get_active_local_candidates 141 * purple_media_get_active_remote_candidates 142 * purple_media_manager_get_video_caps (Jakub Adam) (#13095) 143 * purple_media_manager_set_video_caps (Jakub Adam) (#13095) 144 * purple_pounce_destroy_all_by_buddy (Kartik Mohta) (#1131) 145 * purple_proxy_connect_socks5_account 146 * purple_srv_resolve_account 147 * purple_txt_resolve_account 148 * Added add_buddy_with_invite to PurplePluginProtocolInfo 149 * Added add_buddies_with_invite to PurplePluginProtocolInfo 150 * Added PurpleSrvTxtQueryUiOps which allow UIs to specify their 151 own mechanisms to resolve SRV and/or TXT queries. It works 152 similar to PurpleDnsQueryUiOps 153 * purple_marshal_BOOLEAN__POINTER_BOOLEAN (kawaii.neko) (#12599) 154 155 Deprecated: 156 * purple_account_add_buddy 157 * purple_account_add_buddies_with_invite 158 * purple_dnsquery_a 159 * purple_proxy_connect_socks5 160 * purple_srv_resolve 161 * purple_txt_resolve 162 * add_buddy from PurplePluginProtocolInfo struct 163 * add_buddies from PurplePluginProtocolInfo struct 164 165 Pidgin: 166 Added: 167 * pidgin_make_scrollable (Gabriel Schulhof) (#10599) 168 * chat-nick-clicked signal (kawaii.neko) (#12599) 169 * chat-nick-autocomplete signal (kawaii.neko) (#12599) 170 171version 2.7.11 (03/10/2011): 172 * libpurple: 173 Added: 174 * Four entries in the GHashTable passed when joining 175 an XMPP chat room which allow the UI to request a limited 176 amount of history. See XEP-0045 7.1.16 for details; the 177 entries are named history_maxchars, history_maxstanzas, 178 history_seconds, and history_since. history_since must be 179 interpretable by purple_str_to_time, and the prpl takes care 180 of formatting the time properly. 181 * Perl: 182 Added: 183 * Purple::find_conversation_with_account 184 * Purple::Conversation::Chat::send_with_flags 185 * Purple::Conversation::IM::send_with_flags 186 187version 2.7.10 (02/06/2011): 188 * No changes 189 190version 2.7.9 (12/26/2010): 191 * No changes 192 193version 2.7.8 (12/19/2010): 194 * No changes 195 196version 2.7.7 (11/23/2010): 197 * No changes 198 199version 2.7.6 (11/21/2010): 200 * No changes 201 202version 2.7.5 (10/31/2010): 203 * No changes 204 205version 2.7.4 (10/20/2010): 206 Perl: 207 Added: 208 * Purple::BuddyList::Chat::get_components 209 210 Changed: 211 * Purple::BuddyList::Chat::new now works properly. Thanks 212 to Rafael in devel@conference.pidgin.im for reporting and 213 testing. 214 215version 2.7.3 (08/10/2010): 216 libpurple: 217 Fixed: 218 * purple_account_[gs]et_public_alias no longer crash when 219 called for a protocol that doesn't support the underlying 220 calls and the caller does not specify a failure callback. 221 222 Perl: 223 Added: 224 * Exposed log-subsystem signals. 225 226 Pidgin: 227 Changed: 228 * Changing the visibility (gtk_widget_hide/show) of 229 the widgets in the GtkIMHtmlToolbar should now affect 230 the visibility of the entries in the 'lean' view 231 (the default toolbar view). 232 233 Deprecated: 234 * pidgin_check_if_dir 235 236 libgnt: 237 Added: 238 * gnt_tree_row_get_key, gnt_tree_row_get_next, 239 gnt_tree_row_get_prev, gnt_tree_row_get_child and 240 gnt_tree_row_get_parent. 241 242version 2.7.2 (07/21/2010): 243 * No changes 244 245version 2.7.1 (05/29/2010): 246 * No changes 247 248version 2.7.0 (05/12/2010): 249 libpurple: 250 Added: 251 * Account signals (see account-signals.dox); useful for D-Bus 252 * account-signed-on 253 * account-signed-off 254 * account-connection-error 255 * purple_account_get_name_for_display 256 * purple_account_get_privacy_type 257 * purple_account_get_public_alias 258 * purple_account_set_privacy_type 259 * purple_account_set_public_alias 260 * buddy-caps-changed blist signal 261 * Added media_caps to the PurpleBuddy struct 262 * purple_buddy_get_media_caps 263 * purple_buddy_set_media_caps 264 * purple_certificates_import for importing multiple 265 certificates from a single file (and corresponding 266 import_certificates member of PurpleCertificateScheme struct) 267 * autojoin connection signal 268 * purple_contact_get_group 269 * sent-attention conversation signal 270 * got-attention conversation signal 271 * ui-caps-changed media manager signal 272 * purple_media_candidate_copy 273 * purple_media_codec_copy 274 * purple_media_manager_get_backend_type 275 * purple_media_manager_set_backend_type 276 * PurpleMood struct in status.h 277 * purple_network_get_all_local_system_ips, which returns all 278 local IPs on the system. On systems with the getifaddrs() 279 function, this will return both IPv4 and IPv6 addresses 280 (excluding link-local and loopback addresses). On others, 281 it returns just IPv4 addresses. 282 * purple_network_listen_family and 283 purple_network_listen_range_family. These will replace the 284 versions without _family in 3.0.0 and allow the caller to 285 specifically request either an IPv4 or IPv6 socket. IPv6 is 286 only supported if the getaddrinfo() function is available 287 at build-time (not the case on Windows, currently). 288 * purple_prpl_got_media_caps 289 * purple_request_action_with_icon 290 * purple_request_action_with_icon_varg 291 * purple_socket_get_family 292 * purple_socket_speaks_ipv4 293 * purple_unescape_text 294 * purple_uuid_random 295 * purple_xfer_get_thumbnail 296 * purple_xfer_get_thumbnail_mimetype 297 * purple_xfer_set_thumbnail 298 * purple_xfer_prepare_thumbnail 299 300 Pidgin: 301 Added: 302 * pidgin_dialogs_buildinfo (should not be used by anything but Pidgin) 303 * pidgin_dialogs_developers (should not be used by anything but Pidgin) 304 * pidgin_dialogs_translators (should not be used by anything but Pidgin) 305 * gtk_imhtmltoolbar_switch_active_conversation 306 * 'paste' signal for GtkIMHtml (more in gtkimhtml-signals.dox) 307 * 'drawing-buddy' signal for gtkblist (more in gtkblist-signals.dox) 308 309version 2.6.6 (02/18/2010): 310 libpurple: 311 Changed: 312 * purple_xfer_cancel_local is now called instead of 313 purple_xfer_request_denied if an error is found when selecting 314 a file to send. Request denied is still used when a receive 315 request is not allowed. 316 * xmlnode_from_str now properly handles parsing an attribute which 317 contain "<br>", which were previously transformed into a 318 newline character (libxml2 unescapes all entities except 319 representations of '&', and libpurple's purple_unescape_html 320 converts "<br>" to a newline). 321 322 Perl: 323 Changed: 324 * Corrected the package names for the PurpleProxyType and 325 PurpleLogReadFlags enums to have the correct number of colons 326 (from Purple::ProxyType::::<type> to Purple::ProxyType::<type> 327 and Purple::Log:ReadFlags::::<type> to 328 Purple::Log::ReadFlags::<type>) (Chris Foote) 329 330version 2.6.5 (01/08/2010): 331 No changes 332 333version 2.6.4 (11/29/2009): 334 No changes 335 336version 2.6.3 (10/16/2009): 337 No changes 338 339version 2.6.2 (09/05/2009): 340 Perl: 341 Added: 342 * Purple::XMLNode::get_next(), which returns the next neighbor tag of 343 the current node. 344 Changed: 345 * Purple::XMLNode::get_child() will return the first child node if 346 passed "" or undef as the name of the node. 347 348version 2.6.1 (08/18/2009): 349 No changes 350 351version 2.6.0 (08/18/2009): 352 libpurple: 353 Added: 354 * PurpleMedia and PurpleMediaManager API 355 * PURPLE_BLIST_NODE 356 * PURPLE_GROUP 357 * PURPLE_CONTACT 358 * PURPLE_BUDDY 359 * PURPLE_CHAT 360 * Account signals (see account-signals.dox) 361 * account-actions-changed 362 * account-created 363 * account-destroying 364 * blist-node-added and blist-node-removed signals (see 365 blist-signals.dox) 366 * Three Blist UI ops used to overload libpurple's built-in saving 367 of the buddy list to blist.xml. If a UI implements these, it probably 368 wants to add the buddies itself and not call purple_blist_load. 369 * Three File Transfer UI ops used to overload libpurple's use of fread 370 and fwrite for saving a file locally. These allow a UI to stream a 371 file through a socket without buffering the file on the local disk. 372 * Jabber plugin signals (see jabber-signals.dox) 373 * purple_account_remove_setting 374 * purple_buddy_destroy 375 * purple_buddy_get_protocol_data 376 * purple_buddy_set_protocol_data 377 * purple_buddy_get_local_buddy_alias 378 * purple_blist_get_buddies 379 * purple_blist_get_ui_data 380 * purple_blist_set_ui_data 381 * purple_blist_node_get_ui_data 382 * purple_blist_node_set_ui_data 383 * purple_certificate_check_signature_chain_with_failing 384 * purple_chat_destroy 385 * purple_connection_get_protocol_data 386 * purple_connection_set_protocol_data 387 * purple_contact_destroy 388 * purple_conv_chat_invite_user 389 * purple_debug_is_unsafe 390 * purple_debug_is_verbose 391 * purple_debug_set_unsafe 392 * purple_debug_set_verbose 393 * purple_global_proxy_set_info 394 * purple_group_destroy 395 * purple_ipv4_address_is_valid 396 * purple_ipv6_address_is_valid 397 * purple_log_get_activity_score 398 * purple_markup_is_rtl 399 * purple_markup_escape_text 400 * purple_network_convert_idn_to_ascii 401 * purple_network_force_online 402 * purple_network_set_stun_server 403 * purple_network_set_turn_server 404 * purple_network_get_stun_ip 405 * purple_network_get_turn_ip 406 * purple_network_remove_port_mapping 407 * purple_plugins_get_search_paths 408 * purple_proxy_connect_udp 409 * purple_prpl_get_media_caps 410 * purple_prpl_got_account_actions 411 * purple_prpl_initiate_media 412 * purple_request_field_get_group 413 * purple_request_field_get_ui_data 414 * purple_request_field_set_ui_data 415 * purple_ssl_connect_with_ssl_cn 416 * purple_strequal 417 * purple_utf8_strip_unprintables 418 * purple_util_fetch_url_request_len_with_account 419 * purple_xfer_prpl_ready 420 * purple_xfer_ui_ready 421 * xmlnode_from_file 422 * xmlnode_get_parent 423 * xmlnode_set_attrib_full 424 * PURPLE_STATUS_MOOD as a new PurpleStatusPrimitive 425 426 Changed: 427 * xmlnode_remove_attrib now removes all attributes with the 428 same name. Previously, it would remove the first one found, 429 which was completely non-deterministic. If you want to remove 430 the attribute with no namespace, then use NULL with 431 xmlnode_remove_with_namespace. 432 * Plugins may now emit the jabber-sending-xmlnode signal in order 433 to send stanzas; this method is preferred to the prpl send_raw 434 function as other plugins listening to the signal see them. 435 * The conversation-updated signal with a PURPLE_CONV_UPDATE_TYPING 436 update type is emitted when receiving an IM. Previously, the 437 typing state was modified (and the buddy-typing-stopped signal 438 emitted), but this signal was not emitted. 439 * Added a client_type field in the get_ui_info core UI op. See 440 core.h for details. 441 * Added introspection of signals exposed via the D-Bus API. 442 * purple_find_buddies is now more efficient in the case where 443 it is enumerating all the buddies for an account. 444 * purple_find_group is now more efficient for large numbers of groups. 445 * purple_find_conversation_with_account is more efficient for large 446 numbers of concurrent conversations. 447 * All DNS routines support internationalized domain names (IDNs) when 448 libpurple is compiled with GNU libidn. 449 * status is set before emitting signals in purple_xfer_set_status. 450 * Creating multiple distinct chats with the same name (i.e. "MSN Chat") 451 is deprecated and will be removed in libpurple 3.0.0. 452 * purple_xfer_start now accepts -1 as the fd parameter if the protocol 453 plugin will administer the transfer itself. 0 is still accepted for 454 backward compatibility since older versions of libpurple will not 455 accept -1. 456 457 Deprecated: 458 * buddy-added and buddy-removed blist signals 459 * purple_blist_destroy 460 * purple_blist_new 461 * purple_buddy_get_local_alias 462 * purple_certificate_check_signature_chain 463 * purple_ip_address_is_valid 464 * purple_notify_user_info_remove_entry 465 * purple_set_blist 466 * purple_status_type_set_primary_attr 467 * purple_status_type_add_attr 468 * purple_status_type_add_attrs 469 * purple_status_type_add_attrs_vargs 470 * purple_status_type_get_primary_attr 471 * purple_status_set_attr_boolean 472 * purple_status_set_attr_int 473 * purple_status_set_attr_string 474 * purple_presence_add_status 475 * purple_presence_add_list 476 * purple_util_fetch_url_request_len 477 * xmlnode_set_attrib_with_namespace 478 * xmlnode_set_attrib_with_prefix 479 480 pidgin: 481 Added: 482 * gtk_imhtml_class_register_protocol 483 * gtk_imhtml_link_get_url, gtk_imhtml_link_get_text_tag, 484 gtk_imhtml_link_activate functions to process GtkIMHtmlLink 485 objects from GtkIMHtml protocol callbacks. 486 * gtk_imhtml_set_return_inserts_newline 487 * gtk_imhtml_set_populate_primary_clipboard 488 * pidgin_blist_set_theme 489 * pidgin_blist_get_theme 490 * pidgin_prefs_labeled_password 491 * pidgin_smiley_editor_set_data 492 * pidgin_sound_is_customized 493 * pidgin_utils_init, pidgin_utils_uninit 494 * pidgin_notify_pounce_add 495 * PidginBlistTheme, PidginBlistThemeLoader API 496 * PidginIconTheme, PidginStatusIconTheme, PidginIconThemeLoader 497 API 498 * pidgin_stock_id_from_status_primitive 499 * pidgin_stock_id_from_presence 500 501 libgnt: 502 Added: 503 * GntProgressBar and functions (Saleem Abdulrasool) 504 505 perl: 506 Added: 507 * Purple::XMLNode::get_name() 508 509 Changed: 510 * Made a bunch of functions act more perl-like. Call the new() 511 functions as Class->new(...) instead of Class::new(...): 512 * Purple::Request::Fields::new 513 * Purple::Request::Field::new 514 * Purple::Request::Field::account_new 515 * Purple::Request::Field::bool_new 516 * Purple::Request::Field::choice_new 517 * Purple::Request::Field::int_new 518 * Purple::Request::Field::label_new 519 * Purple::Request::Field::list_new 520 * Purple::Request::Field::string_new 521 * Purple::Request::Field::group_new 522 * Make the XMLNode API more perl-like. Don't pass len 523 parameters and call them like: 524 * $xmlnode->copy() 525 * $xmlnode->to_str() 526 * $xmlnode->to_formatted_str() 527 * Purple::XMLNode::from_str(...) 528version 2.5.9 (08/18/2009): 529 No changes 530 531version 2.5.8 (06/27/2009): 532 No changes 533 534version 2.5.7 (06/20/2009): 535 No changes 536 537version 2.5.6 (05/19/2009): 538 No changes 539 540version 2.5.5 (03/01/2009): 541 libpurple: 542 Changed: 543 * purple_status_type_new now defaults "saveable" to TRUE. 544 This was necessary in order to maintain the current behavior 545 while fixing non-saveable statuses not to be saved. 546 * xmlnode_get_prefix, xmlnode_to_str and xmlnode_to_formatted_str 547 now all take a const xmlnode* instead of an xmlnode* 548 549version 2.5.4 (01/12/2009): 550 perl: 551 Changed: 552 * Purple::PluginPref->get_bounds no longer takes two integer 553 arguments it now returns two integers. 554 555 Removed: 556 * Removed a handful of string-related utility functions that 557 can generally be better handled with perl's built-in string 558 functions rather than using pidgin's: 559 * Purple::Util::strcasereplace 560 * Purple::Util::strcasestr 561 * Purple::Util::strreplace 562 * Purple::Util::str_strip_char 563 * Purple::Util::chrreplace 564 565version 2.5.3 (12/20/2008): 566 libpurple 567 Changed: 568 * purple_util_fetch_url and purple_util_fetch_url_request can 569 now fetch https URLs 570 571version 2.5.0 (08/18/2008): 572 libpurple: 573 Added: 574 * Connection flag PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY to indicate 575 that the connection supports sending and receiving custom smileys. 576 * PurpleSmiley and the Smiley API. 577 * purple_serv_got_join_chat_failed 578 * chat-join-failed signal (see conversation-signals.dox) 579 * chat-invite-blocked and blocked-im-msg signals (see 580 converation-signals.dox) (Thanks to Stefan Ott) 581 * purple_blist_update_node_icon 582 * purple_buddy_icons_node_has_custom_icon 583 * purple_buddy_icons_node_find_custom_icon 584 * purple_buddy_icons_node_set_custom_icon 585 * purple_buddy_icons_node_set_custom_icon_from_file 586 * purple_notify_user_info_prepend_section_break 587 * purple_notify_user_info_prepend_section_header 588 * "website" and "dev_website" items to the ui_info hash table 589 * purple_cmds_get_handle, purple_cmds_init, purple_cmds_uninit 590 * cmd-added and cmd-removed signals 591 * purple_get_host_name 592 * purple_util_fetch_url_len (temporary function overload to add max_len param) 593 * purple_util_fetch_url_request_len 594 * purple_prpl_send_attention 595 * purple_prpl_got_attention 596 * purple_prpl_got_attention_in_chat 597 598 Deprecated: 599 * purple_blist_update_buddy_icon 600 * purple_buddy_icons_has_custom_icon 601 * purple_buddy_icons_find_custom_icon 602 * purple_buddy_icons_set_custom_icon 603 * pidgin_set_custom_buddy_icon 604 * purple_util_fetch_url_len 605 * purple_util_fetch_url_request_len 606 * serv_send_attention 607 * serv_got_attention 608 609 Changed: 610 * xmlnode_copy now copies the prefix and namespace map for nodes. 611 612 pidgin: 613 Added: 614 * gtk_imhtml_smiley_create, gtk_imhtml_smiley_reload and 615 gtk_imhtml_smiley_destroy to deal with GtkIMHtmlSmiley's. 616 * pidgin_pixbuf_from_imgstore to create a GdkPixbuf from a 617 PurpleStoredImage. 618 * pidgin_themes_smiley_themeize_custom to associate custom smileys to 619 a GtkIMHtml widget. 620 * GTK_IMHTML_CUSTOM_SMILEY flag for GtkIMHtml. 621 * GTK+ Custom Smiley API. 622 623version 2.4.2 (05/17/2008): 624 perl: 625 Added: 626 * Purple::Prefs::get_children_names. 627 * Purple::timeout_remove. 628 Changed: 629 * Purple::timeout_add now returns a handle which can be used 630 to remove the timeout. 631 * Callbacks to Purple::Util::fetch_url and the 632 Purple::Request::* functions can now be specified as both 633 strings (the name of the callback function) and as coderefs. 634 Finch: 635 libgnt: 636 * Added gnt_bindable_check_key to check if a keystroke is bound. 637 638version 2.4.0 (02/29/2008): 639 libpurple: 640 Added: 641 * purple_certificate_add_ca_search_path. (Florian Quèze) 642 * purple_gai_strerror. 643 * purple_major_version, purple_minor_version, 644 purple_micro_version variables are exported by version.h, 645 giving the version of libpurple in use at runtime. 646 * purple_util_set_current_song, purple_util_format_song_info 647 * purple_ip_address_is_valid 648 * Some accessor functions to the Roomlist API: 649 * purple_roomlist_get_fields 650 * purple_roomlist_room_get_type 651 * purple_roomlist_room_get_name 652 * purple_roomlist_room_get_parent 653 * purple_roomlist_room_get_fields 654 * purple_roomlist_field_get_type 655 * purple_roomlist_field_get_label 656 * purple_roomlist_field_get_hidden 657 * unlocalized_name field in PurpleAttentionType for UIs that need it. 658 * Some accessor and mutator functions for PurpleAttentionType: 659 * purple_attention_type_set_name 660 * purple_attention_type_set_incoming_desc 661 * purple_attention_type_set_outgoing_desc 662 * purple_attention_type_set_icon_name 663 * purple_attention_type_set_unlocalized_name 664 * purple_attention_type_get_name 665 * purple_attention_type_get_incoming_desc 666 * purple_attention_type_get_outgoing_desc 667 * purple_attention_type_get_icon_name 668 * purple_attention_type_get_unlocalized_name 669 * Add some PurpleBuddyListNode accessor functions: 670 * purple_blist_node_get_parent 671 * purple_blist_node_get_first_child 672 * purple_blist_node_get_sibling_next 673 * purple_blist_node_get_sibling_prev 674 * Added last_received to PurpleConnection, the time_t of the 675 last received packet. 676 * Added some more accessor functions: 677 * purple_chat_get_account 678 * purple_chat_get_components 679 * purple_connection_get_prpl 680 * purple_xfer_get_start_time 681 * purple_xfer_get_end_time 682 * purple_serv_got_private_alias for prpls to call after receiving a 683 private alias from the server. 684 685 Pidgin: 686 Added: 687 * pidgin_create_dialog to create a window that closes on escape. Also 688 added utility functions pidgin_dialog_get_vbox_with_properties, 689 pidgin_dialog_get_vbox, pidgin_dialog_get_action_area to access the 690 contents in the created dialog. (Peter 'fmoo' Ruibal) 691 * pidgin_dialog_add_button to add buttons to a dialog created by 692 pidgin_create_dialog. 693 * GTK_IMHTML_NO_SMILEY for GtkIMHtmlOptions means not to look for 694 smileys in the text. (Florian 'goutnet' Delizy) 695 * pidgin_auto_parent_window to make a window transient for a suitable 696 parent window. 697 * pidgin_tooltip_setup_for_treeview, pidgin_tooltip_destroy, 698 pidgin_tooltip_show and pidgin_tooltip_setup_for_widget to simplify 699 the process of drawing tooltips. 700 * pidgin_add_widget_to_vbox to simplify adding a labeled widget to a 701 window. 702 703 Deprecated: 704 * PIDGIN_DIALOG 705 706 Finch: 707 * finch_roomlist_get_ui_ops and finch_roomlist_show_all 708 * finch_request_field_get_widget to get the widget for a request 709 field. 710 * finch_blist_get_tree to get the GntTree widget representing the 711 buddy list. 712 * FinchBlistManager structure to manage the buddylist view, and some 713 util functions finch_blist_install_manager, 714 finch_blist_uninstall_manager, finch_blist_manager_find and 715 finch_blist_manager_add_node. 716 * Added finch_log_show, finch_log_show_contact, finch_syslog_show, 717 finch_log_init, finch_log_get_handle, finch_log_uninit 718 719 libgnt: 720 * Added gnt_tree_set_row_color to set the color for a row in a tree. 721 * Added gnt_style_get_string_list 722 * Added gnt_color_add_pair to define a new color. 723 * Added gnt_colors_get_color to get an ncurses color value from a 724 string. 725 * Added gnt_style_get_color to get a color pair from an entry in 726 ~/.gntrc 727 * Added gnt_tree_get_parent_key to get the key for the parent row. 728 729version 2.3.0 (11/24/2007): 730 libpurple: 731 Added: 732 * a PurpleConversation field and an alias field in PurpleConvMessage 733 * account-authorization signals (see account-signals.dox for 734 details) (Stefan Ott) 735 * libpurple/purple.h, which includes #define's and #include's 736 required to compile stand-alone plugins 737 * PURPLE_STATUS_TUNE as a new PurpleStatusPrimitive 738 * purple_plugin_disable(), which is intended to be called when 739 a purple_plugin_unload()--which was called when a user tried 740 to unload a plugin--fails. This then prevents the plugin 741 from being saved in the saved plugins list, so it'll won't 742 be loaded at the next startup. 743 * PurpleDisconnectReason enumeration of machine-readable 744 types of connection error. 745 * purple_connection_error_reason(), to be used by prpls 746 (instead of purple_connection_error() and setting 747 gc->wants_to_die) to report errors along with a 748 PurpleDisconnectReason. 749 * PurpleConnectionUiOps.report_disconnect_reason, to be 750 implemented by UIs (rather than .report_disconnect) if 751 they want to use the reported PurpleDisconnectReason 752 to give a more specific error. 753 * A connection-error signal, fired just after the UiOp is 754 called with the same information. 755 * purple_connection_reason_is_fatal(), acting as a hint 756 to whether automatic reconnection should be attempted 757 after a connection error (rather than checking 758 gc->wants_to_die). 759 * PurpleConnectionErrorInfo, a struct to hold a 760 PurpleConnectionError and a const char *description. 761 * purple_account_get_current_error() to get the most recent 762 PurpleConnectionError and description (or NULL if the 763 account is happy with life), to allow bits of the UI to know 764 the last error without caching it themselves (as 765 PidginBuddyList does). 766 * purple_account_clear_current_error() to reset an account's 767 error state to NULL. 768 * An account-error-changed signal, firing when 769 purple_account_get_current_error()'s return value changes. 770 771 * PidginMiniDialog, a Gtk widget-ified version of 772 pidgin_make_mini_dialog(). 773 774 * purple_util_init() 775 * purple_util_uninit() 776 777 * purple_network_listen_map_external() to temporarily disable 778 mapping ports externally via NAT-PMP or UPnP. 779 780 Changed: 781 * purple_plugin_unload() now honors the return value of a 782 plugin's unload function and can actually return FALSE now. 783 * purple_plugin_unload() no longer does its own notifications 784 when a dependent plugin fails to unload. The UI should do 785 something appropriate. 786 787 * pidgin_make_mini_dialog() now declares its return type to be 788 GtkWidget * rather than void *. This should not break any 789 existing code since any code using it must already rely on 790 the return type actually being GtkWidget * all along. 791 792 Deprecated: 793 * pidgin_dialogs_about() 794 * pidgin_log_show_contact() 795 * pidgin_log_show() 796 * pidgin_plugin_dialog_show() 797 * pidgin_pounce_editor_show() 798 * pidgin_pounces_manager_show() 799 * pidgin_syslog_show() 800 801 * purple_connection_error() 802 * pidgin_blist_update_account_error_state() 803 * PidginBuddyList.connection_errors 804 * purple_network_listen_map_external() 805 806 MSN: 807 * A new independant status type with PURPLE_STATUS_TUNE primitive, and 808 PURPLE_TUNE_ARTIST, PURPLE_TUNE_ALBUM and PURPLE_TUNE_TITLE 809 attributes. 810 811 XMPP: 812 * A new independant status type with PURPLE_STATUS_TUNE primitive, and 813 PURPLE_TUNE_{ARTIST, TITLE, ALBUM, GENRE, COMMENT, TRACK, TIME, 814 YEAR, URL} attributes. 815 816 Finch: 817 libgnt: 818 * Added gnt_color_pair, which will try to intelligenty set text 819 attributes in place of colors if the terminal doesn't have color 820 support. (Bug: #3560) All future code should use gnt_color_pair 821 instead of COLOR_PAIR. 822 * Added gnt_menuitem_set_id and gnt_menuitem_get_id to set and get the 823 string id of a menuitem respectively. 824 * Added gnt_window_get_accel_item, which returns a the id of a menuitem 825 bound to a keystroke. 826 * Added gnt_menu_get_item to get a menuitem of the given id from a 827 menu. 828 * Added gnt_menuitem_activate, which triggers the 'activate' signal on 829 the menuitem and calls the callback function, if available. 830 * Added GntEntryKillRing in GntEntry. 831 * Added gnt_window_set_maximize and gnt_window_get_maximize, and 832 GntWindowFlags enum. 833 834version 2.2.2 (10/23/2007): 835 libpurple: 836 Changed: 837 * The size parameter of purple_util_write_data_to_file_absolute 838 has been changed to gssize instead of a size_t to correctly 839 indicate that -1 can be used for a nul-delimited string. 840 * The documentation for purple_savedstatuses_get_popular used to 841 incorrectly claim that the active status is excluded from the 842 returned list. The documentation has been corrected. Also, the 843 function now returns a correct list when called with a value of 0. 844 845version 2.2.0 (09/13/2007): 846 libpurple: 847 Added: 848 * PURPLE_MESSAGE_INVISIBLE flag, which can be used by 849 purple_conv_im_send_with_flags to send a message, but not display it 850 in the conversation 851 * serv_send_attention(), serv_got_attention(), as well as send_attention 852 and attention_types in PurplePluginProtocolInfo. This new API is used 853 for zapping in MySpaceIM, buzzing in Yahoo, and nudging in MSN. 854 * PurpleConvMessage structure to represent a message in a 855 conversation. purple_conversation_message_get_sender, 856 purple_conversation_message_get_message, 857 purple_conversation_message_get_flags and 858 purple_conversation_message_get_timestamp to get information about a 859 PurpleConvMessage. 860 * purple_conversation_get_message_history() to retrieve a list of 861 PurpleConvMessage's in a conversation, and 862 purple_conversation_clear_message_history to clear the history. 863 * purple_certificate_* functions in libpurple/certificate.h - "A public-key certificate API" 864 * purple_ssl_get_peer_certificates() and associated field in PurpleSslOps to retrieve a server's presented SSL certificate chain. 865 * PurpleSslConnection::verifier to provide a "how to verify the peer's certificates" callback to the SSL handlers. See certificate.h for more on this. 866 * purple_ssl_connect_with_host_fd() to create an SSL connection from a file descriptor and provide a hostname with it to authenticate the peer against. 867 868 Changed: 869 * purple_prefs_load is now called within purple_prefs_init. 870 The UI no longer needs to call it. 871 * writing-im-msg now receives the conversation name as the who 872 argument if the caller of purple_conversation_write didn't 873 provide a value for who. 874 875 Pidgin: 876 Added: 877 * pidgin_set_accessible_relations, sets up label-for and labelled-by 878 ATK relations (broken out from pidgin_set_accessible_label) 879 * pidgin_conv_attach_to_conversation, to reattach the Pidgin UI to a 880 conversation 881 * conversation-hiding and conversation-displayed signals. 882 * pidgin_text_combo_box_entry_new, pidgin_text_combo_box_entry_get_text 883 and pidgin_text_combo_box_entry_set_text 884 885 Changed: 886 * pidgin_conversations_fill_menu now also adds a separator and a 'Show 887 All' item if there are more than one conversations in the list. 888 889 Finch: 890 Added: 891 * finch_sound_is_enabled 892 * The reserved field in the FinchConv is now used to store information 893 about the conversation (using FinchConversationFlag) 894 * finch_account_dialog_show 895 896 libgnt: 897 * gnt_slider_set_small_step, gnt_slider_set_large_step to allow more 898 fine tuned updates of a GntSlider 899 * gnt_util_parse_xhtml_to_textview to parse XHTML strings in a 900 GntTextView (this works only if libxml2 is available) 901 902version 2.1.1 (08/20/2007): 903 libpurple: 904 Changed: 905 * PurpleAccountUiOps.request_authorize's authorize_cb and 906 deny_cb parameters now correctly have type 907 PurpleAccountRequestAuthorizationCb rather than GCallback. 908 (You'll want to change your UI's implementation's signature 909 to avoid warnings, and then remove some now-redundant casts 910 back to the proper type.) 911 912version 2.1.0 (7/28/2007): 913 libpurple: 914 Added: 915 * purple-remote: added getstatus command 916 * conversation-extended-menu signal (See Doxygen docs) 917 * OPT_PROTO_SLASH_COMMANDS_NATIVE protocol option to indicate that 918 slash commands are "native" to the protocol 919 * PURPLE_MESSAGE_NO_LINKIFY message flag to indicate that the message 920 should not be auto-linkified 921 * PurpleEventLoopUiOps.timeout_add_seconds 922 UIs can now use better scheduling for whole-second timers. For 923 example, clients based on the glib event loop can now use 924 g_timeout_add_seconds. 925 * purple_blist_node_get_type 926 * purple_conversation_do_command 927 * purple_conversation_get_extended_menu 928 * purple_core_ensure_single_instance 929 This is for UIs to use to ensure only one copy is running. 930 * purple_dbus_is_owner 931 * purple_timeout_add_seconds 932 Callers should prefer this to purple_timeout_add for timers 933 longer than 1 second away. Be aware of the rounding, though. 934 * purple_xfer_get_remote_user 935 * purple_pounces_get_all_for_ui 936 * purple_prefs_get_children_names 937 * added displaying-email-notification and 938 displaying-emails-notification signals 939 940 Changed: 941 * The documentation of the following functions now properly 942 declares that the returned value must not be modified or 943 freed, which was always the case: 944 * purple_accounts_get_all 945 * purple_connections_get_all 946 * purple_connections_get_connecting 947 * purple_conv_chat_get_ignored 948 * purple_conv_chat_get_users 949 * purple_get_chats 950 * purple_get_conversations 951 * purple_get_ims 952 * purple_notify_user_info_get_entries 953 * The following functions now return a GList* instead of a 954 const GList*, as const is not very useful with GLists. The 955 returned value still must not be modified or freed: 956 * purple_account_get_status_types 957 * purple_mime_document_get_fields 958 * purple_mime_document_get_parts 959 * purple_mime_part_get_fields 960 * purple_request_fields_get_required 961 * purple_request_field_list_get_selected 962 * purple_request_field_list_get_items 963 * purple_status_type_get_attrs 964 * purple_presence_get_statuses 965 * purple_request_field_list_set_selected now takes a GList* 966 instead of a const GList* for items, as const is not very 967 useful with GLists. The passed list is still not modified 968 or freed. 969 * purple_presence_add_list now takes a GList* instead of a 970 const GList* for source_list, as const is not very useful with 971 GLists. The passed list is still not modified or freed. 972 973 Pidgin: 974 Added: 975 * gtk_imhtml_setup_entry 976 * pidgin_create_window 977 * pidgin_retrieve_user_info and pidgin_retrieve_user_info_in_chat, 978 shows immediate feedback when getting information about a user. 979 * gtk_imhtml_animation_new 980 Can be used for inserting an animated image into an IMHTML. 981 * pidgin_menu_position_func_helper 982 * pidgin_blist_get_name_markup, returns the buddy list markup 983 text for a given buddy. 984 * pidgin_blist_draw_tooltip and pidgin_blist_tooltip_destroy 985 for creating blist tooltips from outside of buddy list code 986 * pidgin_themes_remove_smiley_theme 987 988 Changed: 989 * pidgin_append_menu_action returns the menuitem added to the menu. 990 * pidgin_separator returns the separator added to the menu. 991 * PidginConversation has struct members to handle the new info 992 pane: 993 * infopane 994 * infopane_hbox 995 * infopane_model 996 * infopane_iter 997 998 Finch: 999 Added: 1000 * finch_retrieve_user_info 1001 1002 libgnt: 1003 Added: 1004 * GntWS for workspaces 1005 * gnt_tree_set_column_title 1006 * GntSlider widget 1007 * "completion" signal for GntEntry 1008 * "terminal-refresh" signal for GntWM, with a corresponding entry 1009 in GntWMClass 1010 * New flags for GntTextView to decide whether to word-wrap or show 1011 scrollbars (GntTextViewFlag) which can be set by 1012 gnt_text_view_set_flag 1013 * gnt_style_get_from_name 1014 * gnt_window_present 1015 * gnt_tree_set_column_width_ratio 1016 * gnt_tree_set_column_resizable 1017 * gnt_tree_set_column_is_right_aligned 1018 * gnt_tree_set_search_function, gnt_tree_set_search_column, 1019 gnt_tree_is_searching 1020 * 'file-selected' signal is emited for GntFileSel 1021 * gnt_style_parse_bool 1022 * gnt_util_set_trigger_widget 1023 1024 Changed: 1025 * gnt_tree_get_rows() now returns a GList* instead of a const 1026 GList*, as const is not very useful with GLists. The 1027 returned value still must not be modified or freed. 1028 * Instead of keeping an 'invisible' item, the GntTreeColumns now 1029 maintain 'flags' with the appropriate flags set 1030 1031version 2.0.2 (6/14/2007): 1032 Pidgin: 1033 Deprecated: 1034 * pidgin_dialogs_alias_contact: This will be removed in 3.0.0 1035 unless there is sufficient demand to keep it. 1036 1037version 2.0.0 (5/3/2007): 1038 Please note all functions, defines, and data structures have been 1039 re-namespaced to match the new names of Pidgin, Finch, and libpurple. 1040 All gaim_gtk_* functions are now pidgin_*, former libgaim functions are 1041 now purple_*. Please consult our doxygen documentation for a complete 1042 reference. 1043 1044 The gaim-compat.h header exists to provide an API compatibility layer 1045 for libpurple functions. As an API compatibility layer, it must be 1046 included at compile time to be of use. 1047 1048 Changed: 1049 * All the status stuff. Yay! 1050 * gaim_prefs_connect_callback(), added handle parameter 1051 * gtk_imhtml_toolbar now descends from GtkHBox making it easier to add your 1052 own widgets to it 1053 * gaim_find_conversation_with_account, added a "type" parameter 1054 * gaim_gtk_prefs_labeled_spin_button, the "key" parameter is now a 1055 const char* instead of just a char* 1056 * gaim_gtk_prefs_labeled_entry, the "key" parameter is now a const char* 1057 instead of just a char* 1058 * the add_buddy perl sub. The sub now takes the account as the first 1059 argument, and buddy and group as the second and third. It also adds 1060 the buddy to the server-side buddy list of the given account. 1061 * gaim_connection_new, gaim_account_connect and gaim_account_register no 1062 longer return a GaimConnection 1063 * keep_alive in GaimConnection is renamed to keepalive 1064 * gaim_mkstemp, added a second argument, a boolean, of whether or not the 1065 file is binary 1066 * gaim_log_logger_new, rewritten 1067 * gaim_conv_window_remove_conversation()'s last argument to be a 1068 GaimConversation. 1069 * A new blocked icon: pixmaps/status/default/blocked.png 1070 * In pixmaps/status/default: extendedaway.png renamed to extended_away.png 1071 * In pixmaps/status/default: na.png renamed to unavailable.png 1072 * gtk_imhtml_toggle_bold(): No longer returns a value 1073 * gtk_imhtml_toggle_italic(): No longer returns a value 1074 * gtk_imhtml_toggle_underline(): No longer returns a value 1075 * gtk_imhtml_toggle_strike(): No longer returns a value 1076 * gtk_imhtml_scroll_to_end(): Added the smooth paramter 1077 * gaim_log_new(), added conv parameter 1078 * gaim_buddy_icon_new(), leaves a reference which the caller owns. Use 1079 gaim_buddy_icon_unref() immediately if you don't want a reference (the 1080 old behavior). 1081 * GAIM_CONV_UNKNOWN to GAIM_CONV_TYPE_UNKNOWN. 1082 * GAIM_CONV_IM to GAIM_CONV_TYPE_IM. 1083 * GAIM_CONV_CHAT to GAIM_CONV_TYPE_CHAT. 1084 * GAIM_CONV_MISC to GAIM_CONV_TYPE_MISC. 1085 * GAIM_CONV_ANY to GAIM_CONV_TYPE_ANY. 1086 * GaimConversationUiOps.write_conv, Replaced const char *who with 1087 const char *name, const char *alias 1088 * gaim_conv_chat_add_users(), added extra_msgs and new_arrivals (pass NULL 1089 and FALSE respectively, to get the same behavior as before) 1090 * chat_add_users in GaimConversationUiOps, added cbuddies and 1091 new_arrivals and removed buddies. 1092 * chat_rename_user in GaimConversationUiOps, added new_alias 1093 * gaim_conv_chat_cb_new(), added alias. (pass NULL to get the same 1094 behavior as before). 1095 * GaimConversation.log became GList * GaimConversation.logs, so that a 1096 conversation can have multiple logs at once 1097 * gaim_conv_chat_add_user, added extra_msgs 1098 * gaim_notify_userinfo, removed primary and secondary parameters 1099 * GaimNotifyUiOps.notify_userinfo: removed title, primary, and 1100 secondary parameters 1101 * Idle timers are now added and removed in gtkidle.c in response 1102 to the signed-on and signed-off signals 1103 * GaimXfer->ops.read, GaimXfer->ops.write, gaim_xfer_set_read_fnc(), 1104 gaim_xfer_set_write_fnc(), gaim_xfer_read(), gaim_xfer_write(): 1105 Changed ssize_t to gssize 1106 * serv_got_im, serv_got_chat_in, serv_send_im and serv_chat_send all use 1107 GaimMessageFlags instead of GaimConvImFlags / GaimConvChatFlags 1108 * All core<->prpl message passing now uses html. This was previously true 1109 for receiving messages, it's now also true for sending them. prpls that 1110 don't support html need to gaim_unescape_html() the message. 1111 * Notify API: GCallback -> GaimNotifyCloseCallback, 1112 void *user_data -> gpointer user_data 1113 * gaim_notify_searchresults_get_rows_count, 1114 gaim_notify_searchresults_get_columns_count: return type now guint 1115 * gaim_account_notify_added: No longer checks if there is a 1116 GaimBuddy for the added user, that's left up to the prpls. See the 1117 documentation for this function and gaim_account_request_add. 1118 * gaim_accounts_reorder: new_index is now a gint instead of a size_t 1119 * displaying-message signals: displaying-[im|chat]-msg and 1120 displayed-[im|chat]-msg signals are emitted for all messages 1121 (ie, for received messages, sent messages, system messages, error 1122 messages etc.), and the signals now have 1123 gaim_gtk_conversations_get_handle() for their handle. 1124 * GAIM_NOTIFY_BUTTON_ADD_BUDDY to GAIM_NOTIFY_BUTTON_ADD 1125 * conversation-switched: This signal has been moved from conversation to 1126 the UI and the signal-handlers only receive the 1127 conversation that has been switched to. 1128 * GaimPluginProtocolInfo: Added offline_message 1129 * GaimPluginProtocolInfo: Added whiteboard_prpl_ops 1130 * GaimPluginProtocolInfo: Added media_prpl_ops 1131 * GaimPluginProtocolInfo: Added "user_info" argument to tooltip_text, 1132 changed the return type to void 1133 * GaimPluginProtocolInfo: Added "full" argument to tooltip_text 1134 * gaim_pounce_new(): Added option argument for pounce options 1135 * gaim_network_listen() and gaim_network_listen_range(): Added 1136 socket_type parameter to allow creation of UDP listening. Modified 1137 to be asynchronous with a callback to allow for UPnP operation. 1138 Returns a data structure that can be used to cancel the listen 1139 attempt using gaim_network_listen_cancel() 1140 * GaimPrefCallback: val is now a gconstpointer instead of a gpointer 1141 * gtk_imhtml_get_current_format(): the arguments are now set to TRUE or 1142 FALSE. Previously they were set to TRUE or left alone. Also, you 1143 may now pass NULL if you're not interested in a specific formatting. 1144 * Smiley Themes: Backslashes must be backslash-escaped. 1145 * Plugins: Depedencies are now honored when unloading plugins. 1146 * gaim_markup_extract_info_field(): Added format_cb parameter. 1147 * gaim_markup_extract_info_field(): Changed GString parameter to a GaimNotifyUserInfo paramter. 1148 * gaim_str_to_time(): Added support for parsing the MM/DD/YYYY format. 1149 * gaim_plugin_action_new(): label is now const char * 1150 * gaim_plugin_pref_new_with_name(): name is now const char * 1151 * gaim_plugin_pref_new_with_label(): label is now const char * 1152 * gaim_plugin_pref_new_with_name_and_label(): name and label are 1153 now const char * 1154 * gaim_plugin_pref_set_name(): name is now const char * 1155 * gaim_plugin_pref_get_name(): return type is now const char * 1156 * gaim_plugin_pref_set_label(): label is now const char * 1157 * gaim_plugin_pref_get_label(): return type is now const char * 1158 * gaim_plugin_pref_add_choice(): label is now const char * 1159 * struct proto_chat_entry: label is now const char * 1160 * struct proto_chat_entry: identifier is now const char * 1161 * All network activity has been updated to use non-blocking sockets. 1162 This means that plugins must be updated to expect such a socket from 1163 gaim_proxy_connect() and gaim_network_listen*(). 1164 * gaim_proxy_connect(): changed to return NULL on error and a pointer 1165 to a GaimProxyConnectInfo object which can be used to cancel 1166 connection attempts using gaim_proxy_connect_cancel(). Also added 1167 a 'handle' parameter that can be used to cancel the connection 1168 attempt using gaim_proxy_connect_cancel_with_handle(). 1169 * gaim_gethostbyname_async(): Renamed to gaim_dnsquery_a() and 1170 changed to return a pointer to a data structure that can be 1171 used to cancel the pending DNS query using gaim_dnsquery_destroy() 1172 * gaim_url_fetch(): Renamed to gaim_util_fetch_url() and changed 1173 to return a pointer to a data structure that can be used to cancel 1174 the pending HTTP request using gaim_util_fetch_url_cancel(). 1175 Corresponding callback has changed to accept this data structure 1176 as its first argument, and to accept an error message as an 1177 additional final argument. 1178 * gaim_gtk_create_imhtml(): Added sw_ret() parameter 1179 * gaim_account_get_log(): Added create parameter 1180 * GAIM_CMD_P_VERYHIGH is now GAIM_CMD_P_VERY_HIGH 1181 * gtk_imhtml_search_find(): Now wraps around to the top instead of 1182 clearing the search at the end. 1183 * gaim_gtkxfer_dialog_show: Can now take NULL to show (and possibly 1184 create) a default gtkxfer dialog. 1185 * CHAT_USERS_BUDDY_COLUMN became CHAT_USERS_WEIGHT_COLUMN, along with 1186 a change in the values stored in the column. 1187 * gaim_find_buddies() returns a list of all buddies in the account if name 1188 is NULL. 1189 * gaim_gtk_set_custom_buddy_icon() sets custom icon for a user. 1190 * Hid the definition of _GaimStringref, which already had a warning to 1191 avoid accessing it directly. 1192 * notify_userinfo() UI op is passed a GaimNotifyUserInfo instead of a char* 1193 for the user information 1194 * gaim_buddy_icon_get_scale_size() and was changed to ALWAYS scale 1195 the icon instead of only when icon_spec->scale_rules contains 1196 GAIM_ICON_SCALE_DISPLAY. Callers should be changed to check the 1197 scale_rules before calling this function. 1198 * gaim_gtk_buddy_icon_get_scale_size() was changed to accept an 1199 additional parameter which is used to determine what kind of 1200 scaling should be done, if any. 1201 * purple_request_input(), purple_request_choice(), 1202 purple_request_choice_varg(), purple_request_action(), 1203 purple_request_action_varg(), purple_request_fields(), 1204 purple_request_yes_no(), purple_request_ok_cancel(), 1205 purple_request_accept_cancel(), purple_request_file(), and 1206 purple_request_folder() was changed to accept account, who, and 1207 conversation parameters for associating the request with an account, a 1208 buddy, or a conversation. 1209 * Significant changes to the buddy icon and imgstore APIs. If you 1210 were using any of it, it's best to look at the header files or 1211 Doxygen documentation, but here are some significant changes: 1212 purple_buddy_icon_new() now takes ownership of ("frees") icon_data 1213 purple_buddy_icon_set_data(): likewise for data 1214 purple_buddy_icon_set_for_user(): likewise for data 1215 purple_buddy_icon_set_for_user() now takes a checksum parameter 1216 purple_imgstore_add() was renamed to purple_imgstore_add_with_id() 1217 which takes ownership of data 1218 1219 Removed: 1220 * gaim_gtk_sound_{get,set}_mute() (replaced by the /gaim/gtk/sound/mute 1221 preference) 1222 * gaim_escape_html(const char *html) (use g_markup_escape_text(html, -1) 1223 instead) 1224 * gaim_accounts_sync, account changes are now scheduled to be saved 1225 automatically 1226 * gaim_connection_connect 1227 * gaim_connection_disconnect 1228 * gaim_connection_register 1229 * gaim_accounts_auto_login 1230 * gaim_find_conversation, use gaim_find_conversation_with_account instead 1231 * gaim_chat_get_display_name 1232 * gaim_conversation_set_history, gaim_conversation_get_history, and 1233 GaimConversation->history. Use gtk_imhtml_get_markup instead. 1234 * set_gaim_user_dir to gaim_util_set_user_dir 1235 * create_prpl_icon to gaim_gtk_create_prpl_icon 1236 * Window flashing support in the core: gaim_conv_window_flash, and flash UI 1237 operation for conversations. Use signal "received-im-msg" or similar. 1238 * All warning stuff from the core. 1239 * gaim_gtkconv_get_dest_tab_at_xy(), instead use gaim_gtkconv_get_tab_at_xy() 1240 * chat_add_user from GaimConversationUiOps: only chat_add_users is used 1241 * chat_remove_user from GaimConversationUiOps: only chat_remove_users is used 1242 * uc from the GaimBuddy struct 1243 * gaim_sound_get_handle() 1244 * gaim_debug_vargs() 1245 * serv_add_buddy(); use gaim_account_add_buddy() instead 1246 * serv_add_buddies(); use gaim_account_add_buddies() instead 1247 * serv_change_passwd(); use gaim_account_change_password() instead 1248 * serv_close() 1249 * serv_finish_login() 1250 * serv_login() 1251 * serv_remove_buddy(); use gaim_account_remove_buddy() instead 1252 * serv_remove_buddies(); use gaim_account_remove_buddies() instead 1253 * serv_rename_group() 1254 * serv_set_buddyicon(): use gaim_account_set_buddy_icon() instead 1255 * serv_touch_idle(): use gaim_gtk_check_idle() instead 1256 * GaimGtkImPane->a_virgin 1257 * gaim_str_strip_cr(); use gaim_str_strip_char(str, '\r') instead 1258 * gaim_find_buddys_group renamed to gaim_buddy_get_group 1259 * gaim_gtkpounce_menu_build() 1260 * gaim_gtkpounce_dialog_show() 1261 * GaimGtkBuddyList->bpmenu 1262 * GaimConvImFlags and GaimConvChatFlags; use GaimMessageFlags instead 1263 * cb and user_data from the ops in GaimNotifyUiOps: This is now handled 1264 by the notify API in the core. 1265 * GaimConversationUiOps.updated: use the conversation-updated signal 1266 * GAIM_SUBTYPE_CONV_WINDOW: windows are now only represented in the UI, 1267 so GAIM_TYPE_BOXED is used for the signal types 1268 * gaim_gtk_privacy_is_showable(): We do fallback privacy in the core 1269 now, so this would always be TRUE now. 1270 * GaimBlistNodeAction: See GaimMenuAction 1271 * gaim_blist_node_action_new(); use gaim_menu_action_new() instead 1272 * gaim_date() 1273 * gaim_date_full(): See gaim_date_format_full() 1274 * gaim_strftime(): See gaim_utf8_strftime() 1275 * GAIM_MESSAGE_COLORIZE 1276 * user_data from gaim_notify_searchresults_new_rows and from 1277 notify_searchresults in GaimNotifyUiOps. 1278 * gaim_conversation_get_send_history(), and send_history from 1279 GaimConversation 1280 * Removed ui_ops from GaimBuddyList. Use gaim_blist_get_ui_ops() instead 1281 * GaimGtkConversation: dialogs (dialogs.search moved to GaimGtkWindow) 1282 * gaim_show_xfer_dialog: Use gaim_gtk_xfer_dialog_show(NULL) instead. 1283 * GaimGtkRoomlistDialog: Nothing used it outside of the file it was in. 1284 * gaim_gtk_roomlist_dialog_new: use gaim_gtk_roomlist_show 1285 * gaim_gtk_roomlist_dialog_new_with_account: use gaim_gtk_roomlist_show_with_account 1286 * binreloc functions 1287 1288 Added: 1289 * gaim_prefs_disconnect_by_handle() 1290 * a password field to GaimConnection, which only persists for the 1291 session (when "remember password" is false, account->password is 1292 NEVER set) Use gaim_connection_get_password(GaimConnection *gc) 1293 * gaim_log_common_writer, gaim_log_common_lister, gaim_log_common_sizer, 1294 and gaim_log_get_log_dir to allow log formats that use standard Gaim 1295 log directory to use Gaim's built-in code for these purposes. 1296 * GaimLogCommonLoggerData struct for a basic logger_data struct to be 1297 used with "common" logger functions. 1298 * gaim_gtk_blist_node_is_contact_expanded, returns TRUE if the given 1299 blist node is a buddy inside an expanded contact, or is itself an 1300 expanded contact 1301 * GaimLogSet struct, get_log_sets function to GaimLogLogger, 1302 gaim_log_get_log_sets, gaim_log_set_compare 1303 * gaim_privacy_check(), to check if a given user is allowed to send 1304 messages to the specified account 1305 * gtk_imhtml_clear_formatting() 1306 * gtk_imhtml_delete to clear out part of a imhtml buffer 1307 * gtk_imhtml_get_protocol_name() 1308 * gaim_buddy_icons_get_full_path(), to get the full path of a buddy 1309 icon setting 1310 * CHAT_USERS_ALIAS_COLUMN, CHAT_USERS_COLOR_COLUMN, 1311 CHAT_USERS_BUDDY_COLUMN to the list of columns for the chat 1312 user list 1313 * gaim_account_add_buddy() 1314 * gaim_account_add_buddies() 1315 * gaim_account_remove_buddy() 1316 * gaim_account_remove_buddies() 1317 * gaim_account_change_password() 1318 * gaim_account_supports_offline_message() 1319 * gaim_conversation_close_logs(), to force a conversation's log(s) to 1320 be closed. New logs will be opened as necessary. 1321 * gaim_got_protocol_handler_uri() 1322 * gaim_plugin_get_id() 1323 * gaim_plugin_get_name() 1324 * gaim_plugin_get_version() 1325 * gaim_plugin_get_summary() 1326 * gaim_plugin_get_description() 1327 * gaim_plugin_get_author() 1328 * gaim_plugin_get_homepage() 1329 * gaim_gtkconv_switch_active_conversation(GaimConversation *) 1330 * gaim_str_strip_char() to strip a given character from 1331 a given string 1332 * gaim_util_chrreplace() to replace a given character with a 1333 different character 1334 * gaim_gtk_blist_toggle_visibility() to intelligently toggle the 1335 visiblity of the buddy list 1336 * gaim_gtk_blist_visibility_manager_add() to indicate the addition of a 1337 visibility manager - see the docs for more information 1338 * gaim_gtk_blist_visibility_manager_remove() to indicate the removal of 1339 a visibility manager - see the docs for more information 1340 * gaim_gtk_conversations_find_unseen_list() to get a list of conversations 1341 with an "unseen" state >= to the specified state and other criteria 1342 * gaim_gtk_conversations_fill_menu() fill a menu from list of conversations 1343 * gaim_gtk_create_prpl_icon() 1344 * gaim_gtk_create_prpl_icon_with_status() 1345 * gaim_gtk_pounces_manager_show() 1346 * gaim_gtk_pounces_manager_hide() 1347 * gaim_gtk_pounce_editor_show() 1348 * GAIM_POUNCE_MESSAGE_RECEIVED 1349 * GaimPounceOption 1350 * gaim_pounce_set_options() 1351 * gaim_pounce_set_options() 1352 * GAIM_STOCK_CONNECT, GAIM_STOCK_DISCONNECT 1353 * GAIM_STOCK_PLUGIN 1354 * gaim_account_request_add: Notifies the user that they were added to 1355 someone's buddy list, and offers them the choice 1356 of adding that person to their buddy list. 1357 * gaim_blist_alias_contact() 1358 * gaim_cipher_http_digest_calculate_session_key() 1359 * gaim_cipher_http_digest_calculate_response() 1360 * gaim_notify_searchresults_labeled() 1361 * GAIM_NOTIFY_BUTTON_LABELED, GAIM_NOTIFY_BUTTON_INFO, 1362 GAIM_NOTIFY_BUTTON_IM, GAIM_NOTIFY_BUTTON_JOIN, 1363 GAIM_NOTIFY_BUTTON_INVITE 1364 * stock buttons GAIM_STOCK_IM, GAIM_STOCK_INFO 1365 * gaim_conversation_present() 1366 * GaimConversationUiOps->present(GaimConversation *) 1367 * GaimPlugin.unloadable 1368 * gaim_plugin_is_unloadable() 1369 * GAIM_PLUGIN_PREF_STRING_FORMAT 1370 * gaim_plugin_pref_get_format_type() 1371 * gaim_plugin_pref_set_format_type() 1372 * GaimStringFormatType 1373 * gaim_log_get_handle() 1374 * gaim_log_uninit() 1375 * GAIM_SUBTYPE_LOG 1376 * gaim_marshal_POINTER__POINTER_POINTER 1377 * gaim_utf8_ncr_encode() 1378 * gaim_gtk_log_init() 1379 * gaim_gtk_log_get_handle() 1380 * gaim_gtk_log_uninit() 1381 * gaim_util_fetch_url_request() 1382 * GaimMenuAction 1383 * gaim_menu_action_new() 1384 * gaim_menu_action_free() 1385 * GaimInfoFieldFormatCallback 1386 * gaim_utf8_strftime() 1387 * gaim_date_format_short() 1388 * gaim_date_format_long() 1389 * gaim_date_format_full() 1390 * gaim_time_format() 1391 * gaim_plugin_action_free() 1392 * GaimRequestType: Added GAIM_REQUEST_FOLDER 1393 * GaimRequestUiOps: Added request_folder 1394 * gaim_request_folder() 1395 * gaim_gtk_setup_screenname_autocomplete() 1396 * gaim_gtk_set_cursor() 1397 * gaim_gtk_clear_cursor() 1398 * GAIM_MESSAGE_ACTIVE_ONLY 1399 * gaim_proxy_get_setup() 1400 * GaimNotifySearchResultsCallback: Added user_data. 1401 * gaim_notify_searchresults: Added user_data. 1402 * gaim_network_listen_cancel(): Can be used to cancel a previous 1403 call to gaim_network_listen() or gaim_network_listen_range() 1404 * gaim_proxy_connect_cancel(): Can be used to cancel a pending 1405 gaim_proxy_connect() request 1406 * gaim_proxy_connect_cancel_with_handle(): Can be used to cancel 1407 a previous gaim_proxy_connect() request using a specified handle 1408 * gaim_dnsquery_destroy(): Can be used to cancel a pending DNS 1409 query. 1410 * gaim_util_fetch_url_cancel(): Can be used to cancel a pending 1411 call to gaim_util_fetch_url() or gaim_util_fetch_url_request(). 1412 * GaimGtkWindow: dialogs.search (previously in GaimGtkConversation) 1413 * gaim_buddy_get_server_alias() 1414 * gaim_conv_send_confirm() 1415 * GaimConversationUiOps.send_confirm 1416 * gaim_gtk_roomlist_dialog_show_with_account 1417 * gaim_gtk_tree_view_search_equal_func to be used with 1418 gtk_tree_view_set_search_equal_func 1419 * gaim_xfer_set_bytes_sent(). Sets the offset in the file to 1420 read from or write to. 1421 * gaim_privacy_deny and gaim_privacy_allow 1422 * gaim_gtk_blist_set_headline 1423 * gaim_gtk_set_urgent 1424 * GtkGaimScrollBook and its functions. 1425 * purple_markup_unescape_entity() 1426 * purple_markup_get_css_property() 1427 * purple_group_get_name() 1428 1429 Signals - Changed: (See the Doxygen docs for details on all signals.) 1430 * Signal propagation now stops after a handler returns a non-NULL value. 1431 This value is now returned. Previously, all registered handlers were 1432 called and the value from the last handler was used. 1433 * "buddy-typing" and "buddy-typing-stopped": replaced the GaimConversation* 1434 with GaimAccount*, const char *name. Also, the signal is now emitted 1435 regardless of whether a conversation exists and regardless of whether 1436 the user is on the buddy list. 1437 * "chat-buddy-joined": added the new_arrival argument 1438 * "chat-invited" handlers can now return a value to control what happens 1439 to the invite (accept, reject, prompt the user). 1440 * "chat-left": Emitted *after* setting chat->left to TRUE. 1441 * "drawing-tooltip": the second argument is now a GString* instead of 1442 a char** 1443 * "drawing-tooltip": added the "full" argument 1444 * "received-im-msg" and "received-chat-msg" to match, both now pass a 1445 conversation pointer and flags 1446 * "receiving-im-msg" and "receving-chat-msg" to match, both now pass a 1447 conversation pointer and a pointer to the flags. 1448 * "writing-im-msg", "wrote-im-msg", "writing-chat-msg", "wrote-chat-msg": 1449 Now emitted from a difference place in the message handling code. 1450 The arguments also changed. 1451 * "displaying-im-msg", "displayed-im-msg", "displaying-chat-msg", 1452 "displayed-chat-msg": Added "who" argument, which changes the order 1453 of the existing arguments. 1454 1455 Signals - Added: (See the Doxygen docs for details on all signals.) 1456 * "account-disabled" 1457 * "account-status-changed" 1458 * "account-alias-changed" 1459 * "cipher-added" 1460 * "cipher-removed" 1461 * "conversation-dragging" 1462 * "dbus-method-called" 1463 * "dbus-introspect" 1464 * "file-recv-accept" 1465 * "file-recv-start" 1466 * "file-recv-cancel" 1467 * "file-recv-complete" 1468 * "file-recv-request" 1469 * "file-send-accept" 1470 * "file-send-start" 1471 * "file-send-cancel" 1472 * "file-send-complete" 1473 * "buddy-added" 1474 * "buddy-removed" 1475 * "blist-node-aliased" 1476 * "buddy-status-changed" 1477 * "buddy-idle-changed": A buddy's idle status changed. 1478 * "buddy-icon-changed" 1479 * "buddy-got-login-time": The login time for a buddy is now known 1480 * "displaying-userinfo" 1481 * "gtkblist-hiding" 1482 * "gtkblist-unhiding" 1483 * "log-displaying" 1484 * "network-configuration-changed" 1485 * "savedstatus-changed" 1486 * "sendto-extended-menu" 1487 * "uri-handler" 1488 1489 Signals - Removed: 1490 * "account-away": replaced by account-status-changed 1491 * "account-warned" 1492 * "buddy-away": replaced by buddy-status-changed 1493 * "buddy-back": replaced by buddy-status-changed 1494 * "buddy-idle": replaced by buddy-idle-changed 1495 * "buddy-unidle": replaced by buddy-idle-changed 1496 * "buddy-icon-cached": replaced by buddy-icon-changed 1497 * "conversation-drag-end": replaced by conversation-dragging 1498 * "conversation-switching" 1499 1500version 1.5.0 (8/11/2005): 1501 * Added: gaim_xfer_conversation_write 1502 Writes a messages to a conversation window with the use 1503 of the associated file transfer. 1504 1505version 1.4.0 (7/7/2005): 1506 * Added: gaim_buddy_icon_uncache() 1507 Deletes a cached buddy icon for a specified buddy 1508 * Added: gaim_buddy_icon_get_type 1509 Attempts to determine the type of a given buddy icon. 1510 * Added: buddy-icon-cached signal 1511 Emitted when a new buddy icon is cached. 1512 1513version 1.3.1 (6/9/2005): 1514 * No changes 1515 1516version 1.3.0 (5/10/2005): 1517 * Added: gaim_blist_schedule_save() 1518 This should be used instead of gaim_blist_sync when you 1519 want the blist.xml file to be written to disk. There 1520 should not be many occasions when you want to do this, 1521 as the functions in the blist API that modify the buddy 1522 list will normally call it for you. 1523 * Added: OPT_PROTO_NO_NORMALIZE_CONV 1524 Tells the conversation API to not normalize screen names 1525 in conversations. This is used by the Jabber PRPL. 1526 1527version 1.2.1 (4/3/2005): 1528 * No changes 1529 1530version 1.2.0 (3/17/2005): 1531 * You can use gaim_signal_connect_priority() and 1532 gaim_signal_connect_priority_vargs() to connect to 1533 Gaim signals with a given priority (Will Gorman) 1534 * Added: gaim_conversation_set_features 1535 gaim_conversation_get_features 1536 These allow plugins (notable prpls) to change the 1537 formatting capabilities of an existing conversation. 1538 This comes with a new "features" field in 1539 GaimConversation (Christopher O'Brien) 1540 * Added: GAIM_CONNECTION_NO_IMAGES to GaimConectionFlags 1541 (Christopher O'Brien) 1542 * Added: GAIM_CBFLAGS_TYPING to GaimConvChatBuddyFlags 1543 (Christopher O'Brien) 1544 * Added: gaim_account_request_add which takes the same arguments as 1545 * gaim_account_notify_added but always asks the user if they want to add 1546 * the buddy to the buddy list 1547 * Added: An accompanying request_add GaimAccountUiOp 1548 1549version 1.1.4 (2/24/2005): 1550 * No changes 1551 1552version 1.1.3 (2/17/2005): 1553 * No changes 1554 1555version 1.1.2 (1/20/2005): 1556 * No changes 1557 1558version 1.1.1 (12/28/2004): 1559 * No changes 1560 1561version 1.1.0 (12/02/2004): 1562 * Added: gaim_utf8_salvage 1563 * Added: binary relocation support in prefix.h 1564 WARNING: If your plugin uses anything inside the 1565 #ifdef ENABLE_BINRELOC from prefix.h, it won't be 1566 loadable on a copy of Gaim compiled without binreloc 1567 support. In particular, watch out for the autoconf-like 1568 macros, and accidently including them through internal.h, 1569 which you probably shouldn't be including anyway. 1570 1571version 1.0.0 (09/17/2004): 1572 * Added: get_chat_name to the GaimPluginProtocolInfo struct 1573 * Changed: gaim_blist_update_buddy_presence(), presence changed to 1574 type gboolean 1575 * Changed: the versioning scheme, and all the plugin structs 1576 1577version 0.82 (08/26/2004): 1578 Gaim API: 1579 * Removed: gaim_gtk_get_dispstyle(), gaim_gtk_change_text() 1580 * Removed: multi.h 1581 * Renamed: ui.h to gtkdialogs.h 1582 * Renamed: gtkinternal.h to gtkgaim.h 1583 * Renamed: show_info_dialog to gaim_gtkdialogs_info 1584 * Renamed: show_log_dialog to gaim_gtkdialogs_log 1585 * Renamed: show_warn_dialog to gaim_gtkdialogs_warn 1586 * Renamed: show_im_dialog to gaim_gtkdialogs_im 1587 * Renamed: gaim_gtkdialogs_new_im to gaim_gtkdialogs_im_with_user 1588 * Renamed: destroy_all_dialogs to gaim_gtkdialogs_destroy_all 1589 * Renamed: alias_dialog_bud to gaim_gtkdialogs_alias_buddy 1590 * Renamed: alias_dialog_contact to gaim_gtkdialogs_alias_contact 1591 * Renamed: alias_dialog_blist_chat to gaim_gtkdialogs_alias_chat 1592 * Renamed: show_confirm_del to gaim_gtkdialogs_remove_buddy 1593 * Renamed: show_confirm_del_group to gaim_gtkdialogs_remove_group 1594 * Renamed: show_confirm_del_blist_chat to gaim_gtkdialogs_remove_chat 1595 * Renamed: show_confirm_del_contact to gaim_gtkdialogs_remove_contact 1596 * Renamed: show_about to gaim_gtkdialogs_about 1597 * Added: gaim_notify_userinfo() and the associated notify_userinfo() UI op 1598 which pass account and contact information associated with the 1599 userinfo 1600 1601 Buddy List API: 1602 * Changed: gaim_blist_request_add_chat(), added name parameter 1603 * Added: gaim_contact_on_account() 1604 * Added: flags parameter to the GaimBlistNode struct 1605 1606 Conversation API: 1607 * Added: gaim_gtkconv_button_new() 1608 1609 Protocol Plugin API: v7 1610 * Added: chat_info_defaults to the GaimPluginProtocolInfo struct 1611 1612 Signals: 1613 * Added: conversation-updated for any update to the data associated 1614 with the conversation (topic, icon, adding to buddy list, etc.) 1615 1616 Conversation API: 1617 * Changed: gaim_conv_chat_add_user() (added new_arrival parameter) 1618 1619version 0.81 (08/05/2004): 1620 Commands API: 1621 * Most functions now have a void *data argument. 1622 1623 Blist API: 1624 * Added: gaim_buddy_get_contact_alias 1625 * Renamed: gaim_get_buddy_alias to gaim_buddy_get_alias 1626 * Renamed: gaim_get_buddy_alias_only to gaim_buddy_get_alias_only 1627 1628 Conversation API: 1629 * Changed: gaim_conv_chat_add_user(), added flags parameter 1630 * Changed: gaim_conv_chat_add_users(), added GList of flags parameter 1631 * Changed: gaim_conv_chat_get_users(), now returns a GList of 1632 GaimConvChatBuddy's 1633 * Changed: gaim_conv_chat_set_users() now expects a GList of 1634 GaimConvChatBuddy's 1635 * Added: gaim_conv_chat_set_user_flags() 1636 * Added: gaim_conv_chat_get_user_flags() 1637 * Added: gaim_conv_chat_find_user() 1638 * Added: gaim_conv_chat_cb_new() 1639 * Added: gaim_conv_chat_cb_find() 1640 * Added: gaim_conv_chat_cb_destroy() 1641 * Added: gaim_conv_chat_cb_get_name() 1642 1643 Conversation UI ops: 1644 * Added: chat_update_user() 1645 1646 Signals: 1647 * Changed: chat-buddy-joining & chat-buddy-joined now include the user's flags 1648 * Changed: chat-buddy-joining & chat-buddy-leaving are now booleans, return 1649 TRUE if you don't want the join/leave to be displayed in the UI. 1650 * Added: chat-buddy-flags for when user's flags change 1651 gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT (required for the new 1652 chat-buddy-flags signal) 1653 * Added: account-modified for when account settings have been changed. 1654 1655version 0.80 (07/15/2004): 1656 Gaim API: 1657 * Removed: PRPL numbers : gaim_account_set_protocol(), 1658 gaim_account_get_protocol(), gaim_accounts_find_with_prpl_num, 1659 gaim_prpl_num_to_id(), gaim_prpl_id_to_num(), GaimProtocol 1660 1661 Protocol Plugin API: v6 1662 * Added: can_receive_file & send_file to the GaimPluginProtocolInfo struct 1663 1664 Signals: 1665 * Changed "chat-invited" to also include the components hash table so 1666 plugins can use serv_join_chat when the signal is emitted. 1667 * Added "chat-topic-changed" signal plugins know when a topic is changed. 1668 1669version 0.79 (06/24/2004): 1670 Gaim API: 1671 * gaim_url_parse() now takes two additional parameters, which are used 1672 for returning the username and password from the URL, if they exist. 1673 * Added: has_focus UI op to GaimConversationUiOps and 1674 GaimConvWindowUiOps. 1675 * Added: gaim_conversation_has_focus() and gaim_conv_window_has_focus(). 1676 * Removed: gaim_blist_save() 1677 1678 Protocol Plugin API: v5 1679 * Changed: add_buddy, add_buddies, remove_buddy, remove_buddies, 1680 rename_group and remove_group to take GaimBuddy's and 1681 GaimGroup's consistently. 1682 * Removed: OPT_PROTO_BUDDY_ICON (replaced by icon_spec) 1683 * Added: icon_spec to the GaimPluginProtocolInfo struct 1684 1685version 0.78 (05/30/2004): 1686 Plugin API: v4 1687 * Added: actions - for plugins to add to the new Plugin Actions menu 1688 1689 Loader Plugin API: v2 (no changes) 1690 1691 Protocol Plugin API: v4 1692 * Removed: set_dir, get_dir and dir_search (not used, AIM-centric) 1693 * Removed: actions (replaced by generic plugin actions) 1694 1695 Perl Plugin API: v2 (no changes) 1696 TCL Plugin API: (no changes) 1697 1698 Signals: 1699 * Added: "blist-node-extended-menu" for extending Buddy, Chat and 1700 Group right-click menus 1701 * Added: "drawing-tooltip" for plugins to allow plugins to change text 1702 appearing in tooltips 1703 * Added: "gtkblist-created" 1704 * Added: "receiving-im-msg" and "receiving-chat-msg" (these behave 1705 exactly like received-*-msg used to) 1706 * Added: "buddy-idle-updated" signal, for when the idle time changes. 1707 * Changed: "received-im-msg" and "received-chat-msg" no longer pass 1708 pointers to who, message and flags, and are now void. 1709 * Removed: "drawing-menu" - it was UI sepecific and 1710 "blist-node-extended-menu" is superior 1711 1712version 0.77 (04/22/2004): 1713 Loader & Protocol Plugins independantly versioned 1714 Plugin loading now checks versioning on plugins (Standard, Loader & 1715 Protocol) 1716 new GAIM_{PLUGIN,PRPL,LOADER}_API_VERSION constants 1717 1718 Plugin API: v3 1719 * Added: prefs_info for UI independant plugin prefs 1720 1721 Loader Plugin API: v2 1722 * Added: api_version at top of GaimPluginLoaderInfo struct 1723 1724 Protocol Plugin API: v2 1725 * Added: api_version at top of GaimPluginProtocolInfo struct 1726 * Added: chat_menu for protocol specific extensions to the chat menu 1727 * Removed: get_away "Nada used it. Pink elephants on parade." 1728 * Removed: protocol_prefs (replaced by generic plugin prefs_info) 1729 1730 Perl Plugin API: v2 (no changes) 1731 TCL API: (no changes) 1732 1733 Signals: 1734 * Added: "conversation-drag-ended" 1735 1736version 0.76 (04/01/2004): 1737 Plugin API: v2 1738 Perl Plugin API: v2 1739 Loader Plugin API: (not versioned) 1740 Protocol Plugin API: (not versioned) 1741 * Added: protocol_prefs for protocol specific preferences 1742 * Added: reject_chat so protocols can act on chat invite rejection 1743 1744 TCL Plugin API: (not versioned) 1745 * Changes to plugin registration to show descriptions 1746 1747