--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purplewhiteboarduiops.h Tue Nov 10 03:30:53 2020 -0600 @@ -0,0 +1,166 @@ +/* + * Purple - Internet Messaging Library + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * + * Purple 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, see <https://www.gnu.org/licenses/>. + */ + +#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION) +# error "only <pidgin.h> may be included directly" +#endif + +#ifndef PURPLE_WHITEBOARD_UIOPS_H +#define PURPLE_WHITEBOARD_UIOPS_H + +/** + * SECTION:purplewhiteboarduiops + * @section_id: libpurple-purplewhiteboarduiops + * @short_description: Whiteboard UI Operations + * @title: Whiteboard User Interface Operations + * + * #PurpleWhiteboardUiOps contains the user interface operations for + * whiteboards. + */ + +#include <glib.h> +#include <glib-object.h> + +/** + * PURPLE_TYPE_WHITEBOARD_UI_OPS: + * + * The standard _get_type macro for #PurpleWhiteboardUiOps. + */ +#define PURPLE_TYPE_WHITEBOARD_UI_OPS (purple_whiteboard_ui_ops_get_type()) +typedef struct _PurpleWhiteboardUiOps PurpleWhiteboardUiOps; + +#include <libpurple/purplewhiteboard.h> + +G_BEGIN_DECLS + +/** + * PurpleWhiteboardUiOps: + * @create: create whiteboard + * @destroy: destroy whiteboard + * @set_dimensions: set whiteboard dimensions + * @set_brush: set the size and color of the brush + * @draw_point: draw a point + * @draw_line: draw a line + * @clear: clear whiteboard + * + * The PurpleWhiteboard UI Operations + */ +struct _PurpleWhiteboardUiOps +{ + void (*create)(PurpleWhiteboard *wb); + void (*destroy)(PurpleWhiteboard *wb); + void (*set_dimensions)(PurpleWhiteboard *wb, int width, int height); + void (*set_brush) (PurpleWhiteboard *wb, int size, int color); + void (*draw_point)(PurpleWhiteboard *wb, int x, int y, + int color, int size); + void (*draw_line)(PurpleWhiteboard *wb, int x1, int y1, + int x2, int y2, + int color, int size); + void (*clear)(PurpleWhiteboard *wb); + + /*< private >*/ + gpointer reserved[4]; +}; + +GType purple_whiteboard_ui_ops_get_type(void); + +/** + * purple_whiteboard_set_ui_ops: + * @ops: The UI operations to set + * + * Sets the UI operations + */ +void purple_whiteboard_set_ui_ops(PurpleWhiteboardUiOps *ops); + +/** + * purple_whiteboard_ui_ops_create: + * @whiteboard: A #PurpleWhiteboard instance. + * + * Creates a user interface for @whiteboard. + */ +void purple_whiteboard_ui_ops_create(PurpleWhiteboard *whiteboard); + +/** + * purple_whiteboard_ui_ops_destroy: + * @whiteboard: A #PurpleWhiteboard instance. + * + * Destroys the user interface for @whiteboard. + */ +void purple_whiteboard_ui_ops_destroy(PurpleWhiteboard *whiteboard); + +/** + * purple_whiteboard_ui_ops_set_dimensions: + * @whiteboard: A #PurpleWhiteboard instance. + * @width: The new width. + * @height: The new height. + * + * Sets the user interface dimensions for @whiteboard. + */ +void purple_whiteboard_ui_ops_set_dimensions(PurpleWhiteboard *whiteboard, gint width, gint height); + +/** + * purple_whiteboard_ui_ops_set_brush: + * @whiteboard: A #PurpleWhiteboard instance. + * @size: The size of the brush. + * @color: The color to use. + * + * Sets the size and color of the active brush for @whiteboard. + */ +void purple_whiteboard_ui_ops_set_brush(PurpleWhiteboard *whiteboard, gint size, gint color); + +/** + * purple_whiteboard_ui_ops_draw_point: + * @whiteboard: A #PurpleWhiteboard instance. + * @x: The x coordinate. + * @y: The y coordinate. + * @color: The color of the point. + * @size: The size of the point. + * + * Draws a point on @whiteboard. + */ +void purple_whiteboard_ui_ops_draw_point(PurpleWhiteboard *whiteboard, gint x, gint y, gint color, gint size); + +/** + * purple_whiteboard_ui_ops_draw_line: + * @whiteboard: A #PurpleWhiteboard instance. + * @x1: The starting point's x coordinate. + * @y1: The starting point's y coordinate. + * @x2: The end point's x coordinate. + * @y2: The end point's y coordinate. + * @color: The color for the line. + * @size: The size of the line. + * + * Draws a line on @whiteboard. + */ +void purple_whiteboard_ui_ops_draw_line(PurpleWhiteboard *whiteboard, gint x1, gint y1, gint x2, gint y2, gint color, gint size); + +/** + * purple_whiteboard_ui_ops_clear: + * @whiteboard: A #PurpleWhiteboard instance. + * + * Clears all the contents of @whiteboard. + */ +void purple_whiteboard_ui_ops_clear(PurpleWhiteboard *whiteboard); + +G_END_DECLS + +#endif /* PURPLE_WHITEBOARD_UIOPS_H */