whiteboard.h

Go to the documentation of this file.
00001 
00025 #ifndef _PURPLE_WHITEBOARD_H_
00026 #define _PURPLE_WHITEBOARD_H_
00027 
00031 typedef struct _PurpleWhiteboardPrplOps PurpleWhiteboardPrplOps;
00032 
00033 #include "account.h"
00034 
00038 typedef struct _PurpleWhiteboard
00039 {
00040     int state;                       
00042     PurpleAccount *account;            
00043     char *who;                       
00045     void *ui_data;                   
00046     void *proto_data;                
00047     PurpleWhiteboardPrplOps *prpl_ops; 
00049     GList *draw_list;                
00050 } PurpleWhiteboard;
00051 
00055 typedef struct _PurpleWhiteboardUiOps
00056 {
00057     void (*create)(PurpleWhiteboard *wb);                                 
00058     void (*destroy)(PurpleWhiteboard *wb);                               
00059     void (*set_dimensions)(PurpleWhiteboard *wb, int width, int height); 
00060     void (*set_brush) (PurpleWhiteboard *wb, int size, int color);      
00061     void (*draw_point)(PurpleWhiteboard *wb, int x, int y,
00062                        int color, int size);                           
00063     void (*draw_line)(PurpleWhiteboard *wb, int x1, int y1,
00064                       int x2, int y2,
00065                       int color, int size);                            
00066     void (*clear)(PurpleWhiteboard *wb);                                 
00068     void (*_purple_reserved1)(void);
00069     void (*_purple_reserved2)(void);
00070     void (*_purple_reserved3)(void);
00071     void (*_purple_reserved4)(void);
00072 } PurpleWhiteboardUiOps;
00073 
00077 struct _PurpleWhiteboardPrplOps
00078 {
00079     void (*start)(PurpleWhiteboard *wb);                                   
00080     void (*end)(PurpleWhiteboard *wb);                                     
00081     void (*get_dimensions)(const PurpleWhiteboard *wb, int *width, int *height); 
00082     void (*set_dimensions)(PurpleWhiteboard *wb, int width, int height);   
00083     void (*get_brush) (const PurpleWhiteboard *wb, int *size, int *color); 
00084     void (*set_brush) (PurpleWhiteboard *wb, int size, int color);         
00085     void (*send_draw_list)(PurpleWhiteboard *wb, GList *draw_list);        
00086     void (*clear)(PurpleWhiteboard *wb);                                   
00088     void (*_purple_reserved1)(void);
00089     void (*_purple_reserved2)(void);
00090     void (*_purple_reserved3)(void);
00091     void (*_purple_reserved4)(void);
00092 };
00093 
00094 #ifdef __cplusplus
00095 extern "C" {
00096 #endif /* __cplusplus */
00097 
00098 /******************************************************************************/
00100 /******************************************************************************/
00108 void purple_whiteboard_set_ui_ops(PurpleWhiteboardUiOps *ops);
00109 
00116 void purple_whiteboard_set_prpl_ops(PurpleWhiteboard *wb, PurpleWhiteboardPrplOps *ops);
00117 
00127 PurpleWhiteboard *purple_whiteboard_create(PurpleAccount *account, const char *who, int state);
00128 
00134 void purple_whiteboard_destroy(PurpleWhiteboard *wb);
00135 
00141 void purple_whiteboard_start(PurpleWhiteboard *wb);
00142 
00151 PurpleWhiteboard *purple_whiteboard_get_session(const PurpleAccount *account, const char *who);
00152 
00158 void purple_whiteboard_draw_list_destroy(GList *draw_list);
00159 
00169 gboolean purple_whiteboard_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height);
00170 
00178 void purple_whiteboard_set_dimensions(PurpleWhiteboard *wb, int width, int height);
00179 
00189 void purple_whiteboard_draw_point(PurpleWhiteboard *wb, int x, int y, int color, int size);
00190 
00197 void purple_whiteboard_send_draw_list(PurpleWhiteboard *wb, GList *list);
00198 
00210 void purple_whiteboard_draw_line(PurpleWhiteboard *wb, int x1, int y1, int x2, int y2, int color, int size);
00211 
00217 void purple_whiteboard_clear(PurpleWhiteboard *wb);
00218 
00224 void purple_whiteboard_send_clear(PurpleWhiteboard *wb);
00225 
00233 void purple_whiteboard_send_brush(PurpleWhiteboard *wb, int size, int color);
00234 
00244 gboolean purple_whiteboard_get_brush(const PurpleWhiteboard *wb, int *size, int *color);
00245 
00253 void purple_whiteboard_set_brush(PurpleWhiteboard *wb, int size, int color);
00254 
00257 #ifdef __cplusplus
00258 }
00259 #endif /* __cplusplus */
00260 
00261 #endif /* _PURPLE_WHITEBOARD_H_ */