clippers 0.1.2

Cross-platform clipboard management library
Documentation
#pragma once

#include <clip.h>
#include <stdint.h>
#include <cstring>

enum ClipperDataTag: uint8_t {
	ClipperDataTagEmpty = 0,
	ClipperDataTagText = 1,
	ClipperDataTagImage = 2,
};

enum ClipperSetClipboardResult: uint8_t {
	ClipperSetClipboardResultLocked = 0,
	ClipperSetClipboardResultGenericFailure = 1,
	ClipperSetClipboardResultOk = 2,
};

extern "C" struct ClipperImage {
	uint8_t* rgba;
	uint32_t width;
	uint32_t height;
};

extern "C" struct ClipperText {
	char* text;
	uintptr_t length;
};

extern "C" union ClipperData {
	ClipperText text;
	ClipperImage image;
};

extern "C" struct TaggedClipperData {
	ClipperDataTag tag;
	ClipperData data;
};

extern "C" TaggedClipperData clipper_get_tagged_data();
extern "C" ClipperSetClipboardResult clipper_set_tagged_data(TaggedClipperData tagged);
extern "C" void clipper_free_tagged_data(TaggedClipperData tagged);