Beispiel #1
0
void
button_class_setup(lua_State *L)
{
    static const struct luaL_reg button_methods[] =
    {
        LUA_CLASS_METHODS(button)
        { "__call", luaA_button_new },
        { NULL, NULL }
    };

    static const struct luaL_reg button_meta[] =
    {
        LUA_OBJECT_META(button)
        LUA_CLASS_META
        { NULL, NULL }
    };

    luaA_class_setup(L, &button_class, "button", NULL,
                     (lua_class_allocator_t) button_new, NULL, NULL,
                     luaA_class_index_miss_property, luaA_class_newindex_miss_property,
                     button_methods, button_meta);
    luaA_class_add_property(&button_class, "button",
                            (lua_class_propfunc_t) luaA_button_set_button,
                            (lua_class_propfunc_t) luaA_button_get_button,
                            (lua_class_propfunc_t) luaA_button_set_button);
    luaA_class_add_property(&button_class, "modifiers",
                            (lua_class_propfunc_t) luaA_button_set_modifiers,
                            (lua_class_propfunc_t) luaA_button_get_modifiers,
                            (lua_class_propfunc_t) luaA_button_set_modifiers);

    signal_add(&button_class.signals, "press");
    signal_add(&button_class.signals, "property::button");
    signal_add(&button_class.signals, "property::modifiers");
    signal_add(&button_class.signals, "release");
}
Beispiel #2
0
void
key_class_setup(lua_State *L)
{
    static const struct luaL_Reg key_methods[] =
    {
        LUA_CLASS_METHODS(key)
        { "__call", luaA_key_new },
        { NULL, NULL }
    };

    static const struct luaL_Reg key_meta[] =
    {
        LUA_OBJECT_META(key)
        LUA_CLASS_META
        { NULL, NULL },
    };

    luaA_class_setup(L, &key_class, "key", NULL,
                     (lua_class_allocator_t) key_new, NULL, NULL,
                     luaA_class_index_miss_property, luaA_class_newindex_miss_property,
                     key_methods, key_meta);
    luaA_class_add_property(&key_class, "key",
                            (lua_class_propfunc_t) luaA_key_set_key,
                            (lua_class_propfunc_t) luaA_key_get_key,
                            (lua_class_propfunc_t) luaA_key_set_key);
    luaA_class_add_property(&key_class, "keysym",
                            NULL,
                            (lua_class_propfunc_t) luaA_key_get_keysym,
                            NULL);
    luaA_class_add_property(&key_class, "modifiers",
                            (lua_class_propfunc_t) luaA_key_set_modifiers,
                            (lua_class_propfunc_t) luaA_key_get_modifiers,
                            (lua_class_propfunc_t) luaA_key_set_modifiers);
}
Beispiel #3
0
void
button_class_setup(lua_State *L)
{
    static const struct luaL_Reg button_methods[] =
    {
        LUA_CLASS_METHODS(button)
        { "__call", luaA_button_new },
        { NULL, NULL }
    };

    static const struct luaL_Reg button_meta[] =
    {
        LUA_OBJECT_META(button)
        LUA_CLASS_META
        { NULL, NULL }
    };

    luaA_class_setup(L, &button_class, "button", NULL,
                     (lua_class_allocator_t) button_new, NULL, NULL,
                     luaA_class_index_miss_property, luaA_class_newindex_miss_property,
                     button_methods, button_meta);
    luaA_class_add_property(&button_class, "button",
                            (lua_class_propfunc_t) luaA_button_set_button,
                            (lua_class_propfunc_t) luaA_button_get_button,
                            (lua_class_propfunc_t) luaA_button_set_button);
    luaA_class_add_property(&button_class, "modifiers",
                            (lua_class_propfunc_t) luaA_button_set_modifiers,
                            (lua_class_propfunc_t) luaA_button_get_modifiers,
                            (lua_class_propfunc_t) luaA_button_set_modifiers);

    /** When bound mouse button + modifiers are pressed.
     * @param ... One or more arguments are possible
     * @signal .press
     */
    signal_add(&button_class.signals, "press");
    /** When property changes.
     * @signal property::button
     */
    signal_add(&button_class.signals, "property::button");
    /** When property changes.
     * @signal property::modifiers
     */
    signal_add(&button_class.signals, "property::modifiers");
    /** When bound mouse button + modifiers are pressed.
     * @param ... One or more arguments are possible
     * @signal .release
     */
    signal_add(&button_class.signals, "release");
}
Beispiel #4
0
void
window_class_setup(lua_State *L)
{
    static const struct luaL_Reg window_methods[] =
    {
        { NULL, NULL }
    };

    static const struct luaL_Reg window_meta[] =
    {
        { "struts", luaA_window_struts },
        { "buttons", luaA_window_buttons },
        { NULL, NULL }
    };

    luaA_class_setup(L, &window_class, "window", NULL,
                     NULL, (lua_class_collector_t) window_wipe, NULL,
                     luaA_class_index_miss_property, luaA_class_newindex_miss_property,
                     window_methods, window_meta);

    luaA_class_add_property(&window_class, "window",
                            NULL,
                            (lua_class_propfunc_t) luaA_window_get_window,
                            NULL);
    luaA_class_add_property(&window_class, "opacity",
                            (lua_class_propfunc_t) luaA_window_set_opacity,
                            (lua_class_propfunc_t) luaA_window_get_opacity,
                            (lua_class_propfunc_t) luaA_window_set_opacity);
    luaA_class_add_property(&window_class, "border_color",
                            (lua_class_propfunc_t) luaA_window_set_border_color,
                            (lua_class_propfunc_t) luaA_window_get_border_color,
                            (lua_class_propfunc_t) luaA_window_set_border_color);
    luaA_class_add_property(&window_class, "border_width",
                            (lua_class_propfunc_t) luaA_window_set_border_width,
                            (lua_class_propfunc_t) luaA_window_get_border_width,
                            (lua_class_propfunc_t) luaA_window_set_border_width);

    signal_add(&window_class.signals, "property::border_color");
    signal_add(&window_class.signals, "property::border_width");
    signal_add(&window_class.signals, "property::buttons");
    signal_add(&window_class.signals, "property::opacity");
    signal_add(&window_class.signals, "property::struts");
    signal_add(&window_class.signals, "property::type");
    signal_add(&window_class.signals, "button::press");
    signal_add(&window_class.signals, "button::release");
    signal_add(&window_class.signals, "mouse::move");
}
Beispiel #5
0
void
drawable_class_setup(lua_State *L)
{
    static const struct luaL_Reg drawable_methods[] =
    {
        LUA_CLASS_METHODS(drawable)
        { NULL, NULL }
    };

    static const struct luaL_Reg drawable_meta[] =
    {
        LUA_OBJECT_META(drawable)
        LUA_CLASS_META
        { "refresh", luaA_drawable_refresh },
        { "geometry", luaA_drawable_geometry },
        { NULL, NULL },
    };

    luaA_class_setup(L, &drawable_class, "drawable", NULL,
                     (lua_class_allocator_t) drawable_new,
                     (lua_class_collector_t) drawable_wipe, NULL,
                     luaA_class_index_miss_property, luaA_class_newindex_miss_property,
                     drawable_methods, drawable_meta);
    luaA_class_add_property(&drawable_class, "surface",
                            NULL,
                            (lua_class_propfunc_t) luaA_drawable_get_surface,
                            NULL);

    signal_add(&drawable_class.signals, "button::press");
    signal_add(&drawable_class.signals, "button::release");
    signal_add(&drawable_class.signals, "mouse::enter");
    signal_add(&drawable_class.signals, "mouse::leave");
    signal_add(&drawable_class.signals, "mouse::move");
    signal_add(&drawable_class.signals, "property::height");
    signal_add(&drawable_class.signals, "property::width");
    signal_add(&drawable_class.signals, "property::x");
    signal_add(&drawable_class.signals, "property::y");
    signal_add(&drawable_class.signals, "property::surface");
}
Beispiel #6
0
void
window_class_setup(lua_State *L)
{
    static const struct luaL_Reg window_methods[] =
    {
        { NULL, NULL }
    };

    static const struct luaL_Reg window_meta[] =
    {
        { "struts", luaA_window_struts },
        { "buttons", luaA_window_buttons },
        { "set_xproperty", luaA_window_set_xproperty },
        { "get_xproperty", luaA_window_get_xproperty },
        { NULL, NULL }
    };

    luaA_class_setup(L, &window_class, "window", NULL,
                     NULL, (lua_class_collector_t) window_wipe, NULL,
                     luaA_class_index_miss_property, luaA_class_newindex_miss_property,
                     window_methods, window_meta);

    luaA_class_add_property(&window_class, "window",
                            NULL,
                            (lua_class_propfunc_t) luaA_window_get_window,
                            NULL);
    luaA_class_add_property(&window_class, "opacity",
                            (lua_class_propfunc_t) luaA_window_set_opacity,
                            (lua_class_propfunc_t) luaA_window_get_opacity,
                            (lua_class_propfunc_t) luaA_window_set_opacity);
    luaA_class_add_property(&window_class, "border_color",
                            (lua_class_propfunc_t) luaA_window_set_border_color,
                            (lua_class_propfunc_t) luaA_window_get_border_color,
                            (lua_class_propfunc_t) luaA_window_set_border_color);
    luaA_class_add_property(&window_class, "border_width",
                            (lua_class_propfunc_t) luaA_window_set_border_width,
                            (lua_class_propfunc_t) luaA_window_get_border_width,
                            (lua_class_propfunc_t) luaA_window_set_border_width);
}
Beispiel #7
0
void
timer_class_setup(lua_State *L)
{
    static const struct luaL_Reg timer_methods[] =
    {
        LUA_CLASS_METHODS(timer)
        { "__call", luaA_timer_new },
        { NULL, NULL }
    };

    static const struct luaL_Reg timer_meta[] =
    {
        LUA_OBJECT_META(timer)
            LUA_CLASS_META
            { "start", luaA_timer_start },
            { "stop", luaA_timer_stop },
            { "again", luaA_timer_again },
            { NULL, NULL },
    };

    luaA_class_setup(L, &timer_class, "timer", NULL,
                     (lua_class_allocator_t) timer_new, NULL, NULL,
                     luaA_class_index_miss_property, luaA_class_newindex_miss_property,
                     timer_methods, timer_meta);
    luaA_class_add_property(&timer_class, "timeout",
                            (lua_class_propfunc_t) luaA_timer_set_timeout,
                            (lua_class_propfunc_t) luaA_timer_get_timeout,
                            (lua_class_propfunc_t) luaA_timer_set_timeout);
    luaA_class_add_property(&timer_class, "started",
                            NULL,
                            (lua_class_propfunc_t) luaA_timer_get_started,
                            NULL);

    signal_add(&timer_class.signals, "property::timeout");
    signal_add(&timer_class.signals, "timeout");
}