diff src/whiteboard.h @ 11475:7fab28c991f3

[gaim-migrate @ 13717] merging gaim-doodle/whiteboard/whatever you like to call it. Needs some cleanups and doxygen comments, but has basic functionality committer: Tailor Script <tailor@pidgin.im>
author Gary Kramlich <grim@reaperworld.com>
date Fri, 09 Sep 2005 04:40:21 +0000
parents
children 2e3a6dcebaf3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/whiteboard.h	Fri Sep 09 04:40:21 2005 +0000
@@ -0,0 +1,88 @@
+/**
+ * @file whiteboard.h The GaimWhiteboard core object
+ *
+ * gaim
+ *
+ * Gaim is the legal property of its developers, whose names are too numerous
+ * to list here.  Please refer to the COPYRIGHT file distributed with this
+ * source distribution.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef _GAIM_WHITEBOARD_H_
+#define _GAIM_WHITEBOARD_H_
+
+// DEFINES =============================================================================================
+
+typedef struct _GaimWhiteboardPrplOps GaimWhiteboardPrplOps;	// NOTE A nasty compiler dependency fix
+
+#include "account.h"
+
+// INCLUDES ============================================================================================
+
+// DATATYPES ===========================================================================================
+typedef struct _GaimWhiteboard
+{
+	int			state;		// State of whiteboard session
+	
+	GaimAccount		*account;	// Account associated with this session
+	char			*who;		// Name of the remote user
+	
+	void			*ui_data;	// Graphical user-interface data
+	void			*proto_data;	// Protocol specific data
+	GaimWhiteboardPrplOps	*prpl_ops;	// Protocol-plugin operations
+	
+	GList			*draw_list;	// List of drawing elements/deltas to send
+} GaimWhiteboard;
+
+typedef struct _GaimWhiteboardUiOps
+{
+	void ( *create )( GaimWhiteboard *wb );
+	void ( *destroy )( GaimWhiteboard *wb );
+	void ( *set_dimensions)( GaimWhiteboard *wb, int width, int height );
+	void ( *draw_point )( GaimWhiteboard *wb, int x, int y, int color, int size );
+	void ( *draw_line )( GaimWhiteboard *wb, int x1, int y1, int x2, int y2, int color, int size );
+	void ( *clear )( GaimWhiteboard *wb );
+} GaimWhiteboardUiOps;
+
+struct _GaimWhiteboardPrplOps
+{
+	void ( *start )( GaimWhiteboard *wb );
+	void ( *end )( GaimWhiteboard *wb );
+	void ( *get_dimensions )( GaimWhiteboard *wb, int *width, int *height );
+	void ( *set_dimensions )( GaimWhiteboard *wb, int width, int height );
+	void ( *send_draw_list )( GaimWhiteboard *wb, GList *draw_list );
+	void ( *clear )( GaimWhiteboard *wb );
+};
+
+// PROTOTYPES ==========================================================================================
+
+void		gaim_whiteboard_set_ui_ops( GaimWhiteboardUiOps *ops );
+
+GaimWhiteboard	*gaim_whiteboard_create( GaimAccount *account, char *who, int state );
+void		gaim_whiteboard_destroy( GaimWhiteboard *wb );
+void		gaim_whiteboard_start( GaimWhiteboard *wb );
+
+GaimWhiteboard	*gaim_whiteboard_get_session( GaimAccount *account, char *who );
+
+GList		*gaim_whiteboard_draw_list_destroy( GList *draw_list );
+
+void		gaim_whiteboard_set_dimensions( GaimWhiteboard *wb, int width, int height );
+void		gaim_whiteboard_draw_point( GaimWhiteboard *wb, int x, int y, int color, int size );
+void		gaim_whiteboard_draw_line( GaimWhiteboard *wb, int x1, int y1, int x2, int y2, int color, int size );
+void		gaim_whiteboard_clear( GaimWhiteboard *wb );
+
+#endif // _GAIM_WHITEBOARD_H_