/*
 * DWN - Desktop Window Manager
 * X11 Backend Header
 */

#ifndef X11_BACKEND_H
#define X11_BACKEND_H

#include "backends/backend_interface.h"

#include <X11/Xlib.h>

#ifdef __cplusplus
extern "C" {
#endif

/*==============================================================================
 * X11 Backend Access
 *============================================================================*/

const BackendInterface* x11_backend_get_interface(void);
Display* x11_backend_get_display(void);
Window x11_backend_get_root(void);
int x11_backend_get_screen(void);

static inline bool x11_backend_is_available(void) {
    const BackendInterface *iface = x11_backend_get_interface();
    return iface && iface->init(NULL);
}

#ifdef __cplusplus
}
#endif

#endif /* X11_BACKEND_H */
