/* Automatically generated by mkexports.lua */
#include <libextl/extl.h>
#include <libextl/private.h>

/* quiet warnings for generated code */
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wunused-macros"
#endif

EXTL_DEFCLASS(WRegion);
EXTL_DEFCLASS(WDock);
EXTL_DEFCLASS(WMPlex);
static bool l2chnd_t_o__WDock(ExtlTab (*fn)(), ExtlL2Param *in, ExtlL2Param *out)
{
    if(!EXTL_CHKO1(in, 0, WDock)) return FALSE;
    out[0].t=fn(in[0].o);
    return TRUE;
}
static bool l2chnd_o_t__(Obj* (*fn)(), ExtlL2Param *in, ExtlL2Param *out)
{
    out[0].o=fn(in[0].t);
    return TRUE;
}
static bool l2chnd_v_ot__WDock_(void (*fn)(), ExtlL2Param *in, ExtlL2Param *out)
{
    if(!EXTL_CHKO1(in, 0, WDock)) return FALSE;
    fn(in[0].o, in[1].t);
    return TRUE;
}
static bool l2chnd_b_oo__WDock_WRegion(bool (*fn)(), ExtlL2Param *in, ExtlL2Param *out)
{
    if(!EXTL_CHKO1(in, 0, WDock)) return FALSE;
    if(!EXTL_CHKO(in, 1, WRegion)) return FALSE;
    out[0].b=fn(in[0].o, in[1].o);
    return TRUE;
}
static bool l2chnd_v_o__WDock(void (*fn)(), ExtlL2Param *in, ExtlL2Param *out)
{
    if(!EXTL_CHKO1(in, 0, WDock)) return FALSE;
    fn(in[0].o);
    return TRUE;
}
static bool l2chnd_v_os__WMPlex_(void (*fn)(), ExtlL2Param *in, ExtlL2Param *out)
{
    if(!EXTL_CHKO1(in, 0, WMPlex)) return FALSE;
    fn(in[0].o, in[1].s);
    return TRUE;
}

#define WRegion_exports NULL
extern void mod_dock_create();
extern void mod_dock_set_floating_shown_on();


static ExtlExportedFnSpec mod_dock_exports[] = {
    {"create", mod_dock_create, "t", "o", (ExtlL2CallHandler*)l2chnd_o_t__, FALSE, FALSE, FALSE},
    {"set_floating_shown_on", mod_dock_set_floating_shown_on, "oS", NULL, (ExtlL2CallHandler*)l2chnd_v_os__WMPlex_, FALSE, FALSE, FALSE},
    {NULL, NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE}
};

extern void dock_set();
extern void dock_resize();
extern void dock_get();
extern void dock_attach();


static ExtlExportedFnSpec WDock_exports[] = {
    {"set", dock_set, "ot", NULL, (ExtlL2CallHandler*)l2chnd_v_ot__WDock_, FALSE, FALSE, FALSE},
    {"resize", dock_resize, "o", NULL, (ExtlL2CallHandler*)l2chnd_v_o__WDock, FALSE, FALSE, FALSE},
    {"get", dock_get, "o", "t", (ExtlL2CallHandler*)l2chnd_t_o__WDock, TRUE, FALSE, FALSE},
    {"attach", dock_attach, "oo", "b", (ExtlL2CallHandler*)l2chnd_b_oo__WDock_WRegion, FALSE, FALSE, FALSE},
    {NULL, NULL, NULL, NULL, NULL, FALSE, FALSE, FALSE}
};

#define WMPlex_exports NULL
bool mod_dock_register_exports()
{
    if(!extl_register_module("mod_dock", mod_dock_exports)) return FALSE;
    if(!extl_register_class("WDock", WDock_exports, "WWindow")) return FALSE;
    return TRUE;
}

void mod_dock_unregister_exports()
{
    extl_unregister_module("mod_dock", mod_dock_exports);
    extl_unregister_class("WDock", WDock_exports);
}

