# HG changeset patch
# Node ID 3e0f95fdc0ea
# Parent  f7f248098e8f
diff --git a/pidgin/gtkblist.h b/pidgin/gtkblist.h
--- a/pidgin/gtkblist.h
+++ b/pidgin/gtkblist.h
@@ -28,6 +28,8 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 #define PIDGIN_TYPE_BUDDY_LIST (pidgin_buddy_list_get_type())
 
 typedef struct _PidginBuddyList PidginBuddyList;
@@ -60,14 +62,20 @@ G_DECLARE_FINAL_TYPE(PidginBuddyList, pi
  *
  * Returns: Returns TRUE if there are accounts online capable of
  *         joining chat rooms.  Otherwise returns FALSE.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 gboolean pidgin_blist_joinchat_is_showable(void);
 
 /**
  * pidgin_blist_joinchat_show:
  *
  * Shows the join chat dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_blist_joinchat_show(void);
 
 G_END_DECLS
diff --git a/pidgin/gtkconv.h b/pidgin/gtkconv.h
--- a/pidgin/gtkconv.h
+++ b/pidgin/gtkconv.h
@@ -39,6 +39,8 @@ typedef struct _PidginConversationOld Pi
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 /**************************************************************************
  * Structures
  **************************************************************************/
@@ -76,7 +78,10 @@ G_BEGIN_DECLS
  * Returns the UI operations structure for GTK conversations.
  *
  * Returns: The GTK conversation operations structure.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 PurpleConversationUiOps *pidgin_conversations_get_conv_ui_ops(void);
 
 /**************************************************************************/
@@ -89,21 +94,30 @@ PurpleConversationUiOps *pidgin_conversa
  * Returns the gtk conversations subsystem handle.
  *
  * Returns: The conversations subsystem handle.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void *pidgin_conversations_get_handle(void);
 
 /**
  * pidgin_conversations_init:
  *
  * Initializes the GTK conversations subsystem.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_conversations_init(void);
 
 /**
  * pidgin_conversations_uninit:
  *
  * Uninitialized the GTK conversation subsystem.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_conversations_uninit(void);
 
 G_END_DECLS
diff --git a/pidgin/gtkdialogs.h b/pidgin/gtkdialogs.h
--- a/pidgin/gtkdialogs.h
+++ b/pidgin/gtkdialogs.h
@@ -28,13 +28,23 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_dialogs_im(void);
+
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_dialogs_im_with_user(PurpleAccount *account, const char *username);
+
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_dialogs_info(void);
 
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_dialogs_alias_buddy(PurpleBuddy *buddy);
+
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_dialogs_alias_chat(PurpleChat *chat);
 
 G_END_DECLS
diff --git a/pidgin/gtkmedia.h b/pidgin/gtkmedia.h
--- a/pidgin/gtkmedia.h
+++ b/pidgin/gtkmedia.h
@@ -26,8 +26,11 @@
 #ifndef PIDGIN_MEDIA_H
 #define PIDGIN_MEDIA_H
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
+PURPLE_AVAILABLE_IN_2_6
 void pidgin_medias_init(void);
 
 G_END_DECLS
diff --git a/pidgin/gtknotify.h b/pidgin/gtknotify.h
--- a/pidgin/gtknotify.h
+++ b/pidgin/gtknotify.h
@@ -28,6 +28,8 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 /**
@@ -36,21 +38,30 @@ G_BEGIN_DECLS
  * Returns the UI operations structure for GTK notification functions.
  *
  * Returns: The GTK UI notify operations structure.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 PurpleNotifyUiOps *pidgin_notify_get_ui_ops(void);
 
 /**
  * pidgin_notify_init:
  *
  * Initializes the GTK notifications subsystem.
+ *
+ * Since: 2.6.0
  */
+PIDGIN_AVAILABLE_IN_2_6
 void pidgin_notify_init(void);
 
 /**
  * pidgin_notify_uninit:
  *
  * Uninitialized the GTK notifications subsystem.
+ *
+ * Since: 2.6.0
  */
+PIDGIN_AVAILABLE_IN_2_6
 void pidgin_notify_uninit(void);
 
 G_END_DECLS
diff --git a/pidgin/gtkrequest.h b/pidgin/gtkrequest.h
--- a/pidgin/gtkrequest.h
+++ b/pidgin/gtkrequest.h
@@ -30,6 +30,8 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 /**
@@ -38,7 +40,10 @@ G_BEGIN_DECLS
  * Returns the UI operations structure for GTK request functions.
  *
  * Returns: The GTK UI request operations structure.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 PurpleRequestUiOps *pidgin_request_get_ui_ops(void);
 
 /**
diff --git a/pidgin/gtkroomlist.h b/pidgin/gtkroomlist.h
--- a/pidgin/gtkroomlist.h
+++ b/pidgin/gtkroomlist.h
@@ -28,13 +28,18 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 /**
  * pidgin_roomlist_init:
  *
  * Initializes the room list subsystem.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_roomlist_init(void);
 
 /**
@@ -44,14 +49,20 @@ void pidgin_roomlist_init(void);
  *
  * Returns: TRUE if there are accounts online that support listing
  *         chat rooms.  Otherwise return FALSE.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 gboolean pidgin_roomlist_is_showable(void);
 
 /**
  * pidgin_roomlist_dialog_show:
  *
  * Shows a new roomlist dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_roomlist_dialog_show(void);
 
 /**
@@ -59,7 +70,10 @@ void pidgin_roomlist_dialog_show(void);
  * @account: The account to use.
  *
  * Shows a new room list dialog and fetches the list for the specified account.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_roomlist_dialog_show_with_account(PurpleAccount *account);
 
 G_END_DECLS
diff --git a/pidgin/gtksavedstatuses.h b/pidgin/gtksavedstatuses.h
--- a/pidgin/gtksavedstatuses.h
+++ b/pidgin/gtksavedstatuses.h
@@ -28,6 +28,8 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 /**
@@ -39,7 +41,10 @@ G_BEGIN_DECLS
  * when one is selected
  *
  * Returns: (transfer full): The menu widget
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 GtkWidget *pidgin_status_menu(PurpleSavedStatus *status, GCallback callback);
 
 G_END_DECLS
diff --git a/pidgin/gtkutils.h b/pidgin/gtkutils.h
--- a/pidgin/gtkutils.h
+++ b/pidgin/gtkutils.h
@@ -32,11 +32,13 @@
 
 #include "pidginversion.h"
 
+PIDGIN_AVAILABLE_TYPE_IN_2_1
 typedef struct {
 	gboolean is_buddy;
 	PurpleBuddy *buddy;
 } PidginBuddyCompletionEntry;
 
+PIDGIN_AVAILABLE_TYPE_IN_2_1
 typedef gboolean (*PidginFilterBuddyCompletionEntryFunc) (const PidginBuddyCompletionEntry *completion_entry, gpointer user_data);
 
 
@@ -50,7 +52,10 @@ G_BEGIN_DECLS
  * Creates a HIG preferences frame.
  *
  * Returns: (transfer full): The vbox to put things into.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 GtkWidget *pidgin_make_frame(GtkWidget *parent, const char *title);
 
 /**
@@ -65,7 +70,10 @@ GtkWidget *pidgin_make_frame(GtkWidget *
  *
  * Add autocompletion of screenames to an entry, supporting a filtering
  * function.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_setup_screenname_autocomplete(
         GtkWidget *entry, GtkWidget *chooser,
         PidginFilterBuddyCompletionEntryFunc filter_func, gpointer user_data);
@@ -79,7 +87,10 @@ void pidgin_setup_screenname_autocomplet
  * The default filter function for username autocomplete.
  *
  * Returns: Returns %TRUE if the autocompletion entry is filtered.
+ *
+ * Since: 2.1.0
  */
+PIDGIN_AVAILABLE_IN_2_1
 gboolean pidgin_screenname_autocomplete_default_filter(const PidginBuddyCompletionEntry *completion_entry, gpointer all_accounts);
 
 /**
@@ -114,7 +125,10 @@ void pidgin_retrieve_user_info_in_chat(P
  *
  * Sets an ATK name for a given widget.  Also sets the labelled-by
  * and label-for ATK relationships.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_set_accessible_label(GtkWidget *w, GtkLabel *l);
 
 /**
@@ -126,7 +140,9 @@ void pidgin_set_accessible_label(GtkWidg
  * 				pidgin_tree_view_search_equal_func,
  * 				search_data, search_data_destroy_cb);
  *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 gboolean pidgin_tree_view_search_equal_func(GtkTreeModel *model, gint column,
 			const gchar *key, GtkTreeIter *iter, gpointer data);
 
diff --git a/pidgin/gtkwhiteboard.h b/pidgin/gtkwhiteboard.h
--- a/pidgin/gtkwhiteboard.h
+++ b/pidgin/gtkwhiteboard.h
@@ -26,6 +26,8 @@
 #ifndef _PIDGINWHITEBOARD_H_
 #define _PIDGINWHITEBOARD_H_
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 /*****************************************************************************/
@@ -38,7 +40,10 @@ G_BEGIN_DECLS
  * Gets the GtkWhiteboard UI Operations.
  *
  * Returns: The GtkWhiteboard UI Operations.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 PurpleWhiteboardUiOps *pidgin_whiteboard_get_ui_ops(void);
 
 G_END_DECLS
diff --git a/pidgin/gtkxfer.h b/pidgin/gtkxfer.h
--- a/pidgin/gtkxfer.h
+++ b/pidgin/gtkxfer.h
@@ -28,6 +28,8 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 /**
@@ -52,7 +54,10 @@ G_DECLARE_FINAL_TYPE(PidginXferDialog, p
  * Creates a new file transfer dialog.
  *
  * Returns: The new dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 PidginXferDialog *pidgin_xfer_dialog_new(void);
 
 /**
@@ -60,7 +65,10 @@ PidginXferDialog *pidgin_xfer_dialog_new
  * @dialog: The file transfer dialog.
  *
  * Destroys a file transfer dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfer_dialog_destroy(PidginXferDialog *dialog);
 
 /**
@@ -69,7 +77,10 @@ void pidgin_xfer_dialog_destroy(PidginXf
  *
  * Displays the file transfer dialog given.
  * If dialog is %NULL, displays the default dialog, creating one if necessary
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfer_dialog_show(PidginXferDialog *dialog);
 
 /**
@@ -77,7 +88,10 @@ void pidgin_xfer_dialog_show(PidginXferD
  * @dialog: The file transfer dialog to hide.
  *
  * Hides the file transfer dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfer_dialog_hide(PidginXferDialog *dialog);
 
 /**
@@ -86,7 +100,10 @@ void pidgin_xfer_dialog_hide(PidginXferD
  * @xfer:   The file transfer.
  *
  * Adds a file transfer to the dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfer_dialog_add_xfer(PidginXferDialog *dialog, PurpleXfer *xfer);
 
 /**
@@ -95,7 +112,10 @@ void pidgin_xfer_dialog_add_xfer(PidginX
  * @xfer:   The file transfer.
  *
  * Removes a file transfer from the dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfer_dialog_remove_xfer(PidginXferDialog *dialog,
 									 PurpleXfer *xfer);
 
@@ -105,7 +125,10 @@ void pidgin_xfer_dialog_remove_xfer(Pidg
  * @xfer:   The file transfer that was cancelled.
  *
  * Indicate in a file transfer dialog that a transfer was cancelled.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfer_dialog_cancel_xfer(PidginXferDialog *dialog,
 									 PurpleXfer *xfer);
 
@@ -115,7 +138,10 @@ void pidgin_xfer_dialog_cancel_xfer(Pidg
  * @xfer:   The file transfer.
  *
  * Updates the information for a transfer in the dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfer_dialog_update_xfer(PidginXferDialog *dialog,
 									 PurpleXfer *xfer);
 
@@ -127,14 +153,20 @@ void pidgin_xfer_dialog_update_xfer(Pidg
  * pidgin_xfers_init:
  *
  * Initializes the GTK file transfer system.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfers_init(void);
 
 /**
  * pidgin_xfers_uninit:
  *
  * Uninitializes the GTK file transfer system.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_xfers_uninit(void);
 
 /**
@@ -142,7 +174,10 @@ void pidgin_xfers_uninit(void);
  * @dialog: The main dialog.
  *
  * Sets pidgin's main file transfer dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_set_xfer_dialog(PidginXferDialog *dialog);
 
 /**
@@ -151,7 +186,10 @@ void pidgin_set_xfer_dialog(PidginXferDi
  * Returns pirgin's main file transfer dialog.
  *
  * Returns: (transfer none): The main dialog.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 PidginXferDialog *pidgin_get_xfer_dialog(void);
 
 /**
@@ -160,7 +198,10 @@ PidginXferDialog *pidgin_get_xfer_dialog
  * Returns the UI operations structure for the GTK file transfer UI.
  *
  * Returns: The GTK file transfer UI operations structure.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 PurpleXferUiOps *pidgin_xfers_get_ui_ops(void);
 
 G_END_DECLS
diff --git a/pidgin/pidgincore.h b/pidgin/pidgincore.h
--- a/pidgin/pidgincore.h
+++ b/pidgin/pidgincore.h
@@ -30,6 +30,8 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 #ifdef _WIN32
 #  include "win32/gtkwin32dep.h"
 #endif
@@ -39,7 +41,7 @@
 
 /* Translators may want to transliterate the name.
  It is not to be translated. */
-#define PIDGIN_NAME _("Pidgin")
+#define PIDGIN_NAME _("Pidgin") PIDGIN_AVAILABLE_MACRO_IN_2_1
 
 /**
  * PIDGIN_ALERT_TITLE:
diff --git a/pidgin/pidgindebug.h b/pidgin/pidgindebug.h
--- a/pidgin/pidgindebug.h
+++ b/pidgin/pidgindebug.h
@@ -28,6 +28,8 @@
 
 #include <purple.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 #define PIDGIN_TYPE_DEBUG_WINDOW (pidgin_debug_window_get_type())
@@ -61,8 +63,9 @@ void pidgin_debug_set_print_enabled(gboo
  *
  * Perform necessary initializations.
  *
- * Since: 3.0.0
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_debug_init(void);
 
 /**
@@ -70,8 +73,9 @@ void pidgin_debug_init(void);
  *
  * Perform necessary uninitializations.
  *
- * Since: 3.0.0
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_debug_uninit(void);
 
 /**
@@ -80,21 +84,30 @@ void pidgin_debug_uninit(void);
  * Get the handle for the GTK debug system.
  *
  * Returns: the handle to the debug system
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void *pidgin_debug_get_handle(void);
 
 /**
  * pidgin_debug_window_show:
  *
  * Shows the debug window.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_debug_window_show(void);
 
 /**
  * pidgin_debug_window_hide:
  *
  * Hides the debug window.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_debug_window_hide(void);
 
 G_END_DECLS
diff --git a/pidgin/pidginstatusbox.h b/pidgin/pidginstatusbox.h
--- a/pidgin/pidginstatusbox.h
+++ b/pidgin/pidginstatusbox.h
@@ -29,12 +29,18 @@
 
 #include <gtk/gtk.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 #define PIDGIN_TYPE_STATUS_BOX (pidgin_status_box_get_type ())
+
+PIDGIN_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE(PidginStatusBox, pidgin_status_box, PIDGIN, STATUS_BOX,
                      GtkBox)
 
+
+PIDGIN_AVAILABLE_IN_ALL
 GtkWidget *pidgin_status_box_new(void);
 
 G_END_DECLS
diff --git a/pidgin/pidginversion.h b/pidgin/pidginversion.h
--- a/pidgin/pidginversion.h
+++ b/pidgin/pidginversion.h
@@ -133,8 +133,12 @@
 
 #if PIDGIN_VERSION_MAX_ALLOWED < PIDGIN_VERSION_2_1
 #define PIDGIN_AVAILABLE_IN_2_1 PIDGIN_UNAVAILABLE(2, 1)
+#define PIDGIN_AVAILABLE_MACRO_IN_2_1 PIDGIN_UNAVAILABLE_MACRO(2, 1)
+#define PIDGIN_AVAILABLE_TYPE_IN_2_1 PIDGIN_UNAVAILABLE_TYPE(2, 1)
 #else
 #define PIDGIN_AVAILABLE_IN_2_1 _PIDGIN_EXTERN
+#define PIDGIN_AVAILABLE_MACRO_IN_2_1
+#define PIDGIN_AVAILABLE_TYPE_IN_2_1
 #endif
 
 /**
diff --git a/pidgin/prefs/pidginprefs.h b/pidgin/prefs/pidginprefs.h
--- a/pidgin/prefs/pidginprefs.h
+++ b/pidgin/prefs/pidginprefs.h
@@ -31,6 +31,8 @@
 #include <purple.h>
 #include <gtk/gtk.h>
 
+#include "pidginversion.h"
+
 G_BEGIN_DECLS
 
 #define PIDGIN_TYPE_PREFS_WINDOW (pidgin_prefs_window_get_type())
@@ -41,14 +43,20 @@ G_DECLARE_FINAL_TYPE(PidginPrefsWindow, 
  * pidgin_prefs_init:
  *
  * Initializes all UI-specific preferences.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_prefs_init(void);
 
 /**
  * pidgin_prefs_update_old:
  *
  * Rename legacy prefs and delete some that no longer exist.
+ *
+ * Since: 2.0.0
  */
+PIDGIN_AVAILABLE_IN_ALL
 void pidgin_prefs_update_old(void);
 
 G_END_DECLS
