3 * Purple is the legal property of its developers, whose names are too numerous
4 * to list here. Please refer to the COPYRIGHT file distributed with this
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
22 #ifndef PURPLE_NOTIFY_H
23 #define PURPLE_NOTIFY_H
26 * @section_id: libpurple-notify
27 * @short_description: <filename>notify.h</filename>
28 * @title: Notification API
29 * @see_also: <link linkend="chapter-signals-notify">Notify signals</link>
33 #include <glib-object.h>
36 typedef struct _PurpleNotifyUserInfoEntry PurpleNotifyUserInfoEntry
;
38 #define PURPLE_TYPE_NOTIFY_USER_INFO (purple_notify_user_info_get_type())
39 typedef struct _PurpleNotifyUserInfo PurpleNotifyUserInfo
;
41 #define PURPLE_TYPE_NOTIFY_SEARCH_BUTTON (purple_notify_search_button_get_type())
42 typedef struct _PurpleNotifySearchButton PurpleNotifySearchButton
;
45 * PurpleNotifySearchColumn:
47 * Single column of a search result.
49 typedef struct _PurpleNotifySearchColumn PurpleNotifySearchColumn
;
51 #include "connection.h"
54 typedef struct _PurpleNotifySearchResults PurpleNotifySearchResults
;
56 #define PURPLE_TYPE_NOTIFY_UI_OPS (purple_notify_ui_ops_get_type())
57 typedef struct _PurpleNotifyUiOps PurpleNotifyUiOps
;
60 * PurpleNotifyCloseCallback:
62 * Notification close callbacks.
64 typedef void (*PurpleNotifyCloseCallback
) (gpointer user_data
);
69 * @PURPLE_NOTIFY_MESSAGE: Message notification.
70 * @PURPLE_NOTIFY_EMAIL: Single email notification.
71 * @PURPLE_NOTIFY_EMAILS: Multiple email notification.
72 * @PURPLE_NOTIFY_FORMATTED: Formatted text.
73 * @PURPLE_NOTIFY_SEARCHRESULTS: Buddy search results.
74 * @PURPLE_NOTIFY_USERINFO: Formatted userinfo text.
75 * @PURPLE_NOTIFY_URI: URI notification or display.
81 PURPLE_NOTIFY_MESSAGE
= 0,
84 PURPLE_NOTIFY_FORMATTED
,
85 PURPLE_NOTIFY_SEARCHRESULTS
,
86 PURPLE_NOTIFY_USERINFO
,
93 * PurpleNotifyMessageType:
94 * @PURPLE_NOTIFY_MSG_ERROR: Error notification.
95 * @PURPLE_NOTIFY_MSG_WARNING: Warning notification.
96 * @PURPLE_NOTIFY_MSG_INFO: Information notification.
98 * Notification message types.
102 PURPLE_NOTIFY_MSG_ERROR
= 0,
103 PURPLE_NOTIFY_MSG_WARNING
,
104 PURPLE_NOTIFY_MSG_INFO
106 } PurpleNotifyMessageType
;
110 * PurpleNotifySearchButtonType:
111 * @PURPLE_NOTIFY_BUTTON_LABELED: special use, see
112 * purple_notify_searchresults_button_add_labeled()
114 * The types of buttons
118 PURPLE_NOTIFY_BUTTON_LABELED
= 0,
119 PURPLE_NOTIFY_BUTTON_CONTINUE
= 1,
120 PURPLE_NOTIFY_BUTTON_ADD
,
121 PURPLE_NOTIFY_BUTTON_INFO
,
122 PURPLE_NOTIFY_BUTTON_IM
,
123 PURPLE_NOTIFY_BUTTON_JOIN
,
124 PURPLE_NOTIFY_BUTTON_INVITE
125 } PurpleNotifySearchButtonType
;
129 * PurpleNotifySearchResults:
130 * @columns: List of the search column objects.
131 * @rows: List of rows in the result.
132 * @buttons: List of buttons to display.
134 * Search results object.
136 struct _PurpleNotifySearchResults
145 * PurpleNotifyUserInfoEntryType:
147 * Types of PurpleNotifyUserInfoEntry objects
151 PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR
= 0,
152 PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK
,
153 PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER
154 } PurpleNotifyUserInfoEntryType
;
159 * PurpleNotifySearchResultsCallback:
160 * @c: the PurpleConnection passed to purple_notify_searchresults
161 * @row: the contents of the selected row
162 * @user_data: User defined data.
164 * Callback for a button in a search result.
166 typedef void (*PurpleNotifySearchResultsCallback
)(PurpleConnection
*c
, GList
*row
,
171 * PurpleNotifySearchButton:
172 * @type: The type of search button that will be used.
173 * @callback: Function to be called when clicked.
174 * @label: only for PURPLE_NOTIFY_BUTTON_LABELED
176 * Definition of a button.
178 struct _PurpleNotifySearchButton
180 PurpleNotifySearchButtonType type
;
181 PurpleNotifySearchResultsCallback callback
;
189 * Notification UI operations.
191 struct _PurpleNotifyUiOps
193 void *(*notify_message
)(PurpleNotifyMessageType type
, const char *title
,
194 const char *primary
, const char *secondary
,
195 PurpleRequestCommonParameters
*cpar
);
197 void *(*notify_email
)(PurpleConnection
*gc
,
198 const char *subject
, const char *from
,
199 const char *to
, const char *url
);
201 void *(*notify_emails
)(PurpleConnection
*gc
,
202 size_t count
, gboolean detailed
,
203 const char **subjects
, const char **froms
,
204 const char **tos
, const char **urls
);
206 void *(*notify_formatted
)(const char *title
, const char *primary
,
207 const char *secondary
, const char *text
);
209 void *(*notify_searchresults
)(PurpleConnection
*gc
, const char *title
,
210 const char *primary
, const char *secondary
,
211 PurpleNotifySearchResults
*results
, gpointer user_data
);
213 void (*notify_searchresults_new_rows
)(PurpleConnection
*gc
,
214 PurpleNotifySearchResults
*results
,
217 void *(*notify_userinfo
)(PurpleConnection
*gc
, const char *who
,
218 PurpleNotifyUserInfo
*user_info
);
220 void *(*notify_uri
)(const char *uri
);
222 void (*close_notify
)(PurpleNotifyType type
, void *ui_handle
);
225 void (*_purple_reserved1
)(void);
226 void (*_purple_reserved2
)(void);
227 void (*_purple_reserved3
)(void);
228 void (*_purple_reserved4
)(void);
235 /**************************************************************************/
236 /* Search results notification API */
237 /**************************************************************************/
240 * purple_notify_searchresults:
241 * @gc: The PurpleConnection handle associated with the information.
242 * @title: The title of the message. If this is NULL, the title
243 * will be "Search Results."
244 * @primary: The main point of the message.
245 * @secondary: The secondary information.
246 * @results: The PurpleNotifySearchResults instance.
247 * @cb: (scope call): The callback to call when the user closes
249 * @user_data: The data to pass to the close callback and any other
250 * callback associated with a button.
252 * Displays results from a buddy search. This can be, for example,
253 * a window with a list of all found buddies, where you are given the
254 * option of adding buddies to your buddy list.
256 * Returns: A UI-specific handle.
258 void *purple_notify_searchresults(PurpleConnection
*gc
, const char *title
,
259 const char *primary
, const char *secondary
,
260 PurpleNotifySearchResults
*results
, PurpleNotifyCloseCallback cb
,
264 * purple_notify_searchresults_free:
265 * @results: The PurpleNotifySearchResults to free.
267 * Frees a PurpleNotifySearchResults object.
269 void purple_notify_searchresults_free(PurpleNotifySearchResults
*results
);
272 * purple_notify_searchresults_new_rows:
273 * @gc: The PurpleConnection structure.
274 * @results: The PurpleNotifySearchResults structure.
275 * @data: Data returned by the purple_notify_searchresults().
277 * Replace old rows with the new. Reuse an existing window.
279 void purple_notify_searchresults_new_rows(PurpleConnection
*gc
,
280 PurpleNotifySearchResults
*results
,
285 * purple_notify_searchresults_button_add:
286 * @results: The search results object.
287 * @type: Type of the button. (TODO: Only one button of a given type
289 * @cb: (scope call): Function that will be called on the click event.
291 * Adds a stock button that will be displayed in the search results dialog.
293 void purple_notify_searchresults_button_add(PurpleNotifySearchResults
*results
,
294 PurpleNotifySearchButtonType type
,
295 PurpleNotifySearchResultsCallback cb
);
299 * purple_notify_searchresults_button_add_labeled:
300 * @results: The search results object
301 * @label: The label to display
302 * @cb: (scope call): Function that will be called on the click event
304 * Adds a plain labelled button that will be displayed in the search results
307 void purple_notify_searchresults_button_add_labeled(PurpleNotifySearchResults
*results
,
309 PurpleNotifySearchResultsCallback cb
);
313 * purple_notify_searchresults_new:
315 * Returns a newly created search results object.
317 * Returns: The new search results object.
319 PurpleNotifySearchResults
*purple_notify_searchresults_new(void);
322 * purple_notify_searchresults_column_new:
323 * @title: Title of the column. NOTE: Title will get g_strdup()ed.
325 * Returns a newly created search result column object. The column defaults
328 * Returns: The new search column object.
330 PurpleNotifySearchColumn
*purple_notify_searchresults_column_new(const char *title
);
333 * purple_notify_searchresult_column_get_title:
334 * @column: The search column object.
336 * Returns the title of the column
338 * Returns: The title of the column
340 const char *purple_notify_searchresult_column_get_title(const PurpleNotifySearchColumn
*column
);
343 * purple_notify_searchresult_column_set_visible:
344 * @column: The search column object.
345 * @visible: TRUE if visible, or FALSE if not.
347 * Sets whether or not a search result column is visible.
349 void purple_notify_searchresult_column_set_visible(PurpleNotifySearchColumn
*column
, gboolean visible
);
352 * purple_notify_searchresult_column_is_visible:
353 * @column: The search column object.
355 * Returns whether or not a search result column is visible.
357 * Returns: TRUE if the search result column is visible. FALSE otherwise.
359 gboolean
purple_notify_searchresult_column_is_visible(const PurpleNotifySearchColumn
*column
);
362 * purple_notify_searchresults_column_add:
363 * @results: The result object to which the column will be added.
364 * @column: The column that will be added to the result object.
366 * Adds a new column to the search result object.
368 void purple_notify_searchresults_column_add(PurpleNotifySearchResults
*results
,
369 PurpleNotifySearchColumn
*column
);
372 * purple_notify_searchresults_row_add:
373 * @results: The search results object.
374 * @row: (element-type utf8) (transfer full): The row of the results.
376 * Adds a new row of the results to the search results object.
378 void purple_notify_searchresults_row_add(PurpleNotifySearchResults
*results
,
381 /**************************************************************************/
382 /* Notification API */
383 /**************************************************************************/
386 * purple_notify_message:
387 * @handle: The plugin or connection handle.
388 * @type: The notification type.
389 * @title: The title of the message.
390 * @primary: The main point of the message.
391 * @secondary: The secondary information.
392 * @cpar: The #PurpleRequestCommonParameters associated with this
393 * request, or %NULL if none is.
394 * @cb: (scope call): The callback to call when the user closes
396 * @user_data: The data to pass to the callback.
398 * Displays a notification message to the user.
400 * Returns: A UI-specific handle.
402 void *purple_notify_message(void *handle
, PurpleNotifyMessageType type
,
403 const char *title
, const char *primary
, const char *secondary
,
404 PurpleRequestCommonParameters
*cpar
, PurpleNotifyCloseCallback cb
,
408 * purple_notify_email:
409 * @handle: The plugin or connection handle.
410 * @subject: The subject of the email.
411 * @from: The from address.
412 * @to: The destination address.
413 * @url: The URL where the message can be read.
414 * @cb: (scope call): The callback to call when the user closes
416 * @user_data: The data to pass to the callback.
418 * Displays a single email notification to the user.
420 * Returns: A UI-specific handle.
422 void *purple_notify_email(void *handle
, const char *subject
,
423 const char *from
, const char *to
,
424 const char *url
, PurpleNotifyCloseCallback cb
,
428 * purple_notify_emails:
429 * @handle: The plugin or connection handle.
430 * @count: The number of emails. '0' can be used to signify that
431 * the user has no unread emails and the UI should remove
432 * the mail notification.
433 * @detailed: %TRUE if there is information for each email in the
435 * @subjects: The array of subjects.
436 * @froms: The array of from addresses.
437 * @tos: The array of destination addresses.
438 * @urls: The URLs where the messages can be read.
439 * @cb: (scope call): The callback to call when the user closes
441 * @user_data: The data to pass to the callback.
443 * Displays a notification for multiple emails to the user.
445 * Returns: A UI-specific handle.
447 void *purple_notify_emails(void *handle
, size_t count
, gboolean detailed
,
448 const char **subjects
, const char **froms
,
449 const char **tos
, const char **urls
,
450 PurpleNotifyCloseCallback cb
, gpointer user_data
);
453 * purple_notify_formatted:
454 * @handle: The plugin or connection handle.
455 * @title: The title of the message.
456 * @primary: The main point of the message.
457 * @secondary: The secondary information.
458 * @text: The formatted text.
459 * @cb: (scope call): The callback to call when the user closes
461 * @user_data: The data to pass to the callback.
463 * Displays a notification with formatted text.
465 * The text is essentially a stripped-down format of HTML, the same that
468 * Returns: A UI-specific handle.
470 void *purple_notify_formatted(void *handle
, const char *title
,
471 const char *primary
, const char *secondary
,
472 const char *text
, PurpleNotifyCloseCallback cb
, gpointer user_data
);
475 * purple_notify_userinfo:
476 * @gc: The PurpleConnection handle associated with the information.
477 * @who: The username associated with the information.
478 * @user_info: The PurpleNotifyUserInfo which contains the information
479 * @cb: (scope call): The callback to call when the user closes the
481 * @user_data: The data to pass to the callback.
483 * Displays user information with formatted text, passing information giving
484 * the connection and username from which the user information came.
486 * The text is essentially a stripped-down format of HTML, the same that
489 * Returns: A UI-specific handle.
491 void *purple_notify_userinfo(PurpleConnection
*gc
, const char *who
,
492 PurpleNotifyUserInfo
*user_info
, PurpleNotifyCloseCallback cb
,
496 * purple_notify_search_button_get_type:
498 * Returns: The #GType for #PurpleNotifiySearchButton boxed structure.
500 GType
purple_notify_search_button_get_type(void);
503 * purple_notify_user_info_get_type:
505 * Returns: The #GType for the #PurpleNotifyUserInfo boxed structure.
507 GType
purple_notify_user_info_get_type(void);
510 * purple_notify_user_info_new:
512 * Create a new PurpleNotifyUserInfo which is suitable for passing to
513 * purple_notify_userinfo()
515 * Returns: A new PurpleNotifyUserInfo, which the caller must destroy when done
517 PurpleNotifyUserInfo
*purple_notify_user_info_new(void);
520 * purple_notify_user_info_destroy:
521 * @user_info: The PurpleNotifyUserInfo
523 * Destroy a PurpleNotifyUserInfo
525 void purple_notify_user_info_destroy(PurpleNotifyUserInfo
*user_info
);
528 * purple_notify_user_info_get_entries:
529 * @user_info: The PurpleNotifyUserInfo
531 * Retrieve the array of PurpleNotifyUserInfoEntry objects from a
532 * PurpleNotifyUserInfo
534 * This GQueue may be manipulated directly with normal GQueue functions such
535 * as g_queue_push_tail(). Only PurpleNotifyUserInfoEntry are allowed in the
536 * queue. If a PurpleNotifyUserInfoEntry item is added to the queue, it
537 * should not be freed by the caller; PurpleNotifyUserInfo will free it when
540 * To remove a PurpleNotifyUserInfoEntry, use
541 * purple_notify_user_info_remove_entry(). Do not use the GQueue directly.
543 * Returns: (transfer none): A GQueue of PurpleNotifyUserInfoEntry objects.
545 GQueue
*purple_notify_user_info_get_entries(PurpleNotifyUserInfo
*user_info
);
548 * purple_notify_user_info_get_text_with_newline:
549 * @user_info: The PurpleNotifyUserInfo
550 * @newline: The separation character
552 * Create a textual representation of a PurpleNotifyUserInfo, separating
553 * entries with newline
555 char *purple_notify_user_info_get_text_with_newline(PurpleNotifyUserInfo
*user_info
, const char *newline
);
558 * purple_notify_user_info_add_pair_html:
559 * @user_info: The PurpleNotifyUserInfo
560 * @label: A label, which for example might be displayed by a
561 * UI with a colon after it ("Status:"). Do not include
562 * a colon. If NULL, value will be displayed without a
564 * @value: The value, which might be displayed by a UI after
565 * the label. This should be valid HTML. If you want
566 * to insert plaintext then use
567 * purple_notify_user_info_add_pair_plaintext(), instead.
568 * If this is NULL the label will still be displayed;
569 * the UI should treat label as independent and not
570 * include a colon if it would otherwise.
572 * Add a label/value pair to a PurpleNotifyUserInfo object.
573 * PurpleNotifyUserInfo keeps track of the order in which pairs are added.
575 void purple_notify_user_info_add_pair_html(PurpleNotifyUserInfo
*user_info
, const char *label
, const char *value
);
578 * purple_notify_user_info_add_pair_plaintext:
580 * Like purple_notify_user_info_add_pair_html, but value should be plaintext
581 * and will be escaped using g_markup_escape_text().
583 void purple_notify_user_info_add_pair_plaintext(PurpleNotifyUserInfo
*user_info
, const char *label
, const char *value
);
586 * purple_notify_user_info_prepend_pair_html:
588 * Like purple_notify_user_info_add_pair_html, but the pair is inserted
589 * at the beginning of the list.
591 void purple_notify_user_info_prepend_pair_html(PurpleNotifyUserInfo
*user_info
, const char *label
, const char *value
);
594 * purple_notify_user_info_prepend_pair_plaintext:
596 * Like purple_notify_user_info_prepend_pair_html, but value should be plaintext
597 * and will be escaped using g_markup_escape_text().
599 void purple_notify_user_info_prepend_pair_plaintext(PurpleNotifyUserInfo
*user_info
, const char *label
, const char *value
);
602 * purple_notify_user_info_remove_entry:
603 * @user_info: The PurpleNotifyUserInfo
604 * @user_info_entry: The PurpleNotifyUserInfoEntry
606 * Remove a PurpleNotifyUserInfoEntry from a PurpleNotifyUserInfo object
607 * without freeing the entry.
609 void purple_notify_user_info_remove_entry(PurpleNotifyUserInfo
*user_info
, PurpleNotifyUserInfoEntry
*user_info_entry
);
612 * purple_notify_user_info_entry_new:
613 * @label: A label, which for example might be displayed by a UI
614 * with a colon after it ("Status:"). Do not include a
615 * colon. If NULL, value will be displayed without a label.
616 * @value: The value, which might be displayed by a UI after the
617 * label. If NULL, label will still be displayed; the UI
618 * should then treat label as independent and not include a
619 * colon if it would otherwise.
621 * Create a new PurpleNotifyUserInfoEntry
623 * If added to a PurpleNotifyUserInfo object, this should not be free()'d,
624 * as PurpleNotifyUserInfo will do so when destroyed.
625 * purple_notify_user_info_add_pair_html(),
626 * purple_notify_user_info_add_pair_plaintext(),
627 * purple_notify_user_info_prepend_pair_html() and
628 * purple_notify_user_info_prepend_pair_plaintext() are convenience
629 * methods for creating entries and adding them to a PurpleNotifyUserInfo.
631 * Returns: A new PurpleNotifyUserInfoEntry
633 PurpleNotifyUserInfoEntry
*purple_notify_user_info_entry_new(const char *label
, const char *value
);
636 * purple_notify_user_info_entry_destroy:
637 * @user_info_entry: The PurpleNotifyUserInfoEntry
639 * Destroy a PurpleNotifyUserInfoEntry
641 void purple_notify_user_info_entry_destroy(PurpleNotifyUserInfoEntry
*user_info_entry
);
644 * purple_notify_user_info_add_section_break:
645 * @user_info: The PurpleNotifyUserInfo
647 * Add a section break. A UI might display this as a horizontal line.
649 void purple_notify_user_info_add_section_break(PurpleNotifyUserInfo
*user_info
);
652 * purple_notify_user_info_prepend_section_break:
653 * @user_info: The PurpleNotifyUserInfo
655 * Prepend a section break. A UI might display this as a horizontal line.
657 void purple_notify_user_info_prepend_section_break(PurpleNotifyUserInfo
*user_info
);
660 * purple_notify_user_info_add_section_header:
661 * @user_info: The PurpleNotifyUserInfo
662 * @label: The name of the section
664 * Add a section header. A UI might display this in a different font
667 void purple_notify_user_info_add_section_header(PurpleNotifyUserInfo
*user_info
, const char *label
);
670 * purple_notify_user_info_prepend_section_header:
671 * @user_info: The PurpleNotifyUserInfo
672 * @label: The name of the section
674 * Prepend a section header. A UI might display this in a different font
677 void purple_notify_user_info_prepend_section_header(PurpleNotifyUserInfo
*user_info
, const char *label
);
680 * purple_notify_user_info_remove_last_item:
682 * Remove the last item which was added to a PurpleNotifyUserInfo. This
683 * could be used to remove a section header which is not needed.
685 void purple_notify_user_info_remove_last_item(PurpleNotifyUserInfo
*user_info
);
688 * purple_notify_user_info_entry_get_label:
689 * @user_info_entry: The PurpleNotifyUserInfoEntry
691 * Get the label for a PurpleNotifyUserInfoEntry
695 const gchar
*purple_notify_user_info_entry_get_label(PurpleNotifyUserInfoEntry
*user_info_entry
);
698 * purple_notify_user_info_entry_set_label:
699 * @user_info_entry: The PurpleNotifyUserInfoEntry
702 * Set the label for a PurpleNotifyUserInfoEntry
704 void purple_notify_user_info_entry_set_label(PurpleNotifyUserInfoEntry
*user_info_entry
, const char *label
);
707 * purple_notify_user_info_entry_get_value:
708 * @user_info_entry: The PurpleNotifyUserInfoEntry
710 * Get the value for a PurpleNotifyUserInfoEntry
714 const gchar
*purple_notify_user_info_entry_get_value(PurpleNotifyUserInfoEntry
*user_info_entry
);
717 * purple_notify_user_info_entry_set_value:
718 * @user_info_entry: The PurpleNotifyUserInfoEntry
721 * Set the value for a PurpleNotifyUserInfoEntry
723 void purple_notify_user_info_entry_set_value(PurpleNotifyUserInfoEntry
*user_info_entry
, const char *value
);
727 * purple_notify_user_info_entry_get_entry_type:
728 * @user_info_entry: The PurpleNotifyUserInfoEntry
730 * Get the type of a PurpleNotifyUserInfoEntry
732 * Returns: The PurpleNotifyUserInfoEntryType
734 PurpleNotifyUserInfoEntryType
purple_notify_user_info_entry_get_entry_type(
735 PurpleNotifyUserInfoEntry
*user_info_entry
);
738 * purple_notify_user_info_entry_set_entry_type:
739 * @user_info_entry: The PurpleNotifyUserInfoEntry
740 * @type: The PurpleNotifyUserInfoEntryType
742 * Set the type of a PurpleNotifyUserInfoEntry
744 void purple_notify_user_info_entry_set_entry_type(
745 PurpleNotifyUserInfoEntry
*user_info_entry
, PurpleNotifyUserInfoEntryType type
);
749 * @handle: The plugin or connection handle.
750 * @uri: The URI to display or go to.
752 * Opens a URI or somehow presents it to the user.
754 * Returns: A UI-specific handle, if any. This may only be presented if
755 * the UI code displays a dialog instead of a webpage, or something
758 void *purple_notify_uri(void *handle
, const char *uri
);
761 * purple_notify_is_valid_ui_handle:
762 * @ui_handle: The UI handle.
763 * @type: The pointer to variable, where request type may be stored
766 * Checks, if passed UI handle is valid.
768 * Returns: TRUE, if handle is valid, FALSE otherwise.
771 purple_notify_is_valid_ui_handle(void *ui_handle
, PurpleNotifyType
*type
);
774 * purple_notify_close:
775 * @type: The notification type.
776 * @ui_handle: The notification UI handle.
778 * Closes a notification.
780 * This should be used only by the UI operation functions and part of the
783 void purple_notify_close(PurpleNotifyType type
, void *ui_handle
);
786 * purple_notify_close_with_handle:
787 * @handle: The handle.
789 * Closes all notifications registered with the specified handle.
791 void purple_notify_close_with_handle(void *handle
);
794 * purple_notify_info:
796 * A wrapper for purple_notify_message that displays an information message.
798 #define purple_notify_info(handle, title, primary, secondary, cpar) \
799 purple_notify_message((handle), PURPLE_NOTIFY_MSG_INFO, (title), \
800 (primary), (secondary), (cpar), NULL, NULL)
803 * purple_notify_warning:
805 * A wrapper for purple_notify_message that displays a warning message.
807 #define purple_notify_warning(handle, title, primary, secondary, cpar) \
808 purple_notify_message((handle), PURPLE_NOTIFY_MSG_WARNING, (title), \
809 (primary), (secondary), (cpar), NULL, NULL)
812 * purple_notify_error:
814 * A wrapper for purple_notify_message that displays an error message.
816 #define purple_notify_error(handle, title, primary, secondary, cpar) \
817 purple_notify_message((handle), PURPLE_NOTIFY_MSG_ERROR, (title), \
818 (primary), (secondary), (cpar), NULL, NULL)
820 /**************************************************************************/
821 /* UI Registration Functions */
822 /**************************************************************************/
825 * purple_notify_ui_ops_get_type:
827 * Returns: The #GType for the #PurpleNotifyUiOps boxed structure.
829 GType
purple_notify_ui_ops_get_type(void);
832 * purple_notify_set_ui_ops:
833 * @ops: The UI operations structure.
835 * Sets the UI operations structure to be used when displaying a
838 void purple_notify_set_ui_ops(PurpleNotifyUiOps
*ops
);
841 * purple_notify_get_ui_ops:
843 * Returns the UI operations structure to be used when displaying a
846 * Returns: The UI operations structure.
848 PurpleNotifyUiOps
*purple_notify_get_ui_ops(void);
850 /**************************************************************************/
851 /* Notify Subsystem */
852 /**************************************************************************/
855 * purple_notify_get_handle:
857 * Returns the notify subsystem handle.
859 * Returns: The notify subsystem handle.
861 void *purple_notify_get_handle(void);
864 * purple_notify_init:
866 * Initializes the notify subsystem.
868 void purple_notify_init(void);
871 * purple_notify_uninit:
873 * Uninitializes the notify subsystem.
875 void purple_notify_uninit(void);
880 #endif /* PURPLE_NOTIFY_H */