#ifndef SELECTIONS_H
#define SELECTIONS_H

#include <X11/Xlib.h>
#include <stdbool.h>

enum selection_state {
        ss_error,
        ss_done,
        ss_waiting,
        ss_waiting_incr
};

struct selection_info {
        enum selection_state state;
        Atom name;
        Window w;
        char *error;
        int format;
        Atom type;
};

void selection_get(struct selection_info *si, Display *dpy, Window w, Atom name, Atom type, Time time);
bool selection_process(struct selection_info *si, XEvent *xev, void **buf, int *len);

#endif

