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); }
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"); }
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); }
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"); }
void unique_lib_setup(lua_State *L) { static const struct luaL_reg unique_lib[] = { LUA_CLASS_METHODS(unique) { "new", luaH_unique_new }, { "send_message", luaH_unique_send_message }, { "is_running", luaH_unique_is_running }, { NULL, NULL } }; /* create signals array */ unique_class.signals = signal_new(); /* export unique lib */ luaH_openlib(L, "unique", unique_lib, unique_lib); }
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"); }
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"); }
/** * 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); }