clipboard.h (1896B)
1 /* 2 * Copyright (c) 2023-2024 lumidify <nobody@lumidify.org> 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #ifndef LTK_CLIPBOARD_H 18 #define LTK_CLIPBOARD_H 19 20 #include "txtbuf.h" 21 #include "graphics.h" 22 23 typedef struct ltk_clipboard ltk_clipboard; 24 25 ltk_clipboard *ltk_clipboard_create(ltk_renderdata *data); 26 void ltk_clipboard_destroy(ltk_clipboard *clip); 27 void ltk_clipboard_set_primary_text(ltk_clipboard *clip, char *text); 28 txtbuf *ltk_clipboard_get_primary_buffer(ltk_clipboard *clip); 29 void ltk_clipboard_set_primary_selection_owner(ltk_clipboard *clip); 30 void ltk_clipboard_set_clipboard_text(ltk_clipboard *clip, char *text); 31 txtbuf *ltk_clipboard_get_clipboard_buffer(ltk_clipboard *clip); 32 void ltk_clipboard_set_clipboard_selection_owner(ltk_clipboard *clip); 33 void ltk_clipboard_primary_to_clipboard(ltk_clipboard *clip); 34 35 /* FIXME: configure timeout for getting text */ 36 /* WARNING: The returned txtbuf is owned by the clipboard and must 37 be copied before further processing and especially before any 38 further clipboard functions are called. */ 39 txtbuf *ltk_clipboard_get_clipboard_text(ltk_clipboard *clip); 40 txtbuf *ltk_clipboard_get_primary_text(ltk_clipboard *clip); 41 42 #endif /* LTK_CLIPBOARD_H */