#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);