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
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
00260
00261 #endif