Frameworks/libpurple.framework/Versions/0.6.2/Headers/idle.h
author Zachary West <zacw@adium.im>
Fri Aug 21 13:25:11 2009 -0700 (2009-08-21)
changeset 2592 e8d15275025e
parent 1739 Frameworks/libpurple.framework/Versions/0.6.0/Headers/idle.h@8b0daad9656c
permissions -rw-r--r--
im.pidgin.adium.1-4 at 267c6165e02e34318a1823960bd04c0639952f73
     1 /**
     2  * @file idle.h Idle API
     3  * @ingroup core
     4  */
     5 
     6 /* purple
     7  *
     8  * Purple is the legal property of its developers, whose names are too numerous
     9  * to list here.  Please refer to the COPYRIGHT file distributed with this
    10  * source distribution.
    11  *
    12  * This program is free software; you can redistribute it and/or modify
    13  * it under the terms of the GNU General Public License as published by
    14  * the Free Software Foundation; either version 2 of the License, or
    15  * (at your option) any later version.
    16  *
    17  * This program is distributed in the hope that it will be useful,
    18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    20  * GNU General Public License for more details.
    21  *
    22  * You should have received a copy of the GNU General Public License
    23  * along with this program; if not, write to the Free Software
    24  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
    25  */
    26 #ifndef _PURPLE_IDLE_H_
    27 #define _PURPLE_IDLE_H_
    28 
    29 #include <time.h>
    30 
    31 /**
    32  * Idle UI operations.
    33  */
    34 typedef struct
    35 {
    36 	time_t (*get_time_idle)(void);
    37 
    38 	void (*_purple_reserved1)(void);
    39 	void (*_purple_reserved2)(void);
    40 	void (*_purple_reserved3)(void);
    41 	void (*_purple_reserved4)(void);
    42 } PurpleIdleUiOps;
    43 
    44 #ifdef __cplusplus
    45 extern "C" {
    46 #endif
    47 
    48 /**************************************************************************/
    49 /** @name Idle API                                                        */
    50 /**************************************************************************/
    51 /*@{*/
    52 
    53 /**
    54  * Touch our idle tracker.  This signifies that the user is
    55  * 'active'.  The conversation code calls this when the
    56  * user sends an IM, for example.
    57  */
    58 void purple_idle_touch(void);
    59 
    60 /**
    61  * Fake our idle time by setting the time at which our
    62  * accounts purportedly became idle.  This is used by
    63  * the I'dle Mak'er plugin.
    64  */
    65 void purple_idle_set(time_t time);
    66 
    67 /*@}*/
    68 
    69 /**************************************************************************/
    70 /** @name Idle Subsystem                                                  */
    71 /**************************************************************************/
    72 /*@{*/
    73 
    74 /**
    75  * Sets the UI operations structure to be used for idle reporting.
    76  *
    77  * @param ops The UI operations structure.
    78  */
    79 void purple_idle_set_ui_ops(PurpleIdleUiOps *ops);
    80 
    81 /**
    82  * Returns the UI operations structure used for idle reporting.
    83  *
    84  * @return The UI operations structure in use.
    85  */
    86 PurpleIdleUiOps *purple_idle_get_ui_ops(void);
    87 
    88 /**
    89  * Initializes the idle system.
    90  */
    91 void purple_idle_init(void);
    92 
    93 /**
    94  * Uninitializes the idle system.
    95  */
    96 void purple_idle_uninit(void);
    97 
    98 /*@}*/
    99 
   100 #ifdef __cplusplus
   101 }
   102 #endif
   103 
   104 #endif /* _PURPLE_IDLE_H_ */