Пример #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");
}
Пример #2
0
void
timer_class_setup(lua_State *L)
{
    static const struct luaL_reg timer_methods[] =
    {
        LUA_CLASS_METHODS(timer)
        { "__call", luaH_timer_new },
        { NULL, NULL }
    };

    static const struct luaL_reg timer_meta[] =
    {
        LUA_OBJECT_META(timer)
        LUA_CLASS_META
        { "start", luaH_timer_start },
        { "stop", luaH_timer_stop },
        { "__gc", luaH_object_gc },
        { NULL, NULL },
    };

    luaH_class_setup(L, &timer_class, "timer",
            (lua_class_allocator_t) timer_new,
            luaH_class_index_miss_property, luaH_class_newindex_miss_property,
            timer_methods, timer_meta);

    luaH_class_add_property(&timer_class, L_TK_INTERVAL,
            (lua_class_propfunc_t) luaH_timer_set_interval,
            (lua_class_propfunc_t) luaH_timer_get_interval,
            (lua_class_propfunc_t) luaH_timer_set_interval);

    luaH_class_add_property(&timer_class, L_TK_STARTED,
            NULL,
            (lua_class_propfunc_t) luaH_timer_get_started,
            NULL);
}
Пример #3
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);
}
Пример #4
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");
}
Пример #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");
}
Пример #6
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");
}
Пример #7
0
/**
 * Creates the Lua download class.
 *
 * \param L The Lua VM state.
 */
void
download_class_setup(lua_State *L)
{
    static const struct luaL_reg download_methods[] =
    {
        LUA_CLASS_METHODS(download)
        { "__call", luaH_download_new },
        { NULL, NULL }
    };

    static const struct luaL_reg download_meta[] =
    {
        LUA_OBJECT_META(download)
        LUA_CLASS_META
        { "start", luaH_download_start },
        { "cancel", luaH_download_cancel },
        { "__gc", luaH_download_gc },
        { NULL, NULL },
    };

    luaH_class_setup(L, &download_class, "download",
             (lua_class_allocator_t) download_new,
             NULL, NULL,
             download_methods, download_meta);

    luaH_class_add_property(&download_class, L_TK_DESTINATION,
            (lua_class_propfunc_t) luaH_download_set_destination,
            (lua_class_propfunc_t) luaH_download_get_destination,
            (lua_class_propfunc_t) luaH_download_set_destination);

    luaH_class_add_property(&download_class, L_TK_PROGRESS,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_progress,
            NULL);

    luaH_class_add_property(&download_class, L_TK_STATUS,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_status,
            NULL);

    luaH_class_add_property(&download_class, L_TK_ERROR,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_error,
            NULL);

    luaH_class_add_property(&download_class, L_TK_TOTAL_SIZE,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_total_size,
            NULL);

    luaH_class_add_property(&download_class, L_TK_CURRENT_SIZE,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_current_size,
            NULL);

    luaH_class_add_property(&download_class, L_TK_ELAPSED_TIME,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_elapsed_time,
            NULL);

    luaH_class_add_property(&download_class, L_TK_MIME_TYPE,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_mime_type,
            NULL);

    luaH_class_add_property(&download_class, L_TK_SUGGESTED_FILENAME,
            NULL,
            (lua_class_propfunc_t) luaH_download_get_suggested_filename,
            NULL);

    luaH_class_add_property(&download_class, L_TK_URI,
            (lua_class_propfunc_t) luaH_download_set_uri,
            (lua_class_propfunc_t) luaH_download_get_uri,
            (lua_class_propfunc_t) NULL);
}