/** Add a global signal. * \param L The Lua VM state. * \return The number of elements pushed on stack. * \luastack * \lparam A string with the event name. * \lparam The function to call. */ static int luaA_awesome_connect_signal(lua_State *L) { const char *name = luaL_checkstring(L, 1); luaA_checkfunction(L, 2); signal_connect(&global_signals, name, luaA_object_ref(L, 2)); return 0; }
/** Add a signal to an object. * \param L The Lua VM state. * \param oud The object index on the stack. * \param name The name of the signal. * \param ud The index of function to call when signal is emitted. */ void luaA_object_connect_signal_from_stack(lua_State *L, int oud, const char *name, int ud) { luaA_checkfunction(L, ud); lua_object_t *obj = lua_touserdata(L, oud); signal_connect(&obj->signals, name, luaA_object_ref_item(L, oud, ud)); }
Snes9xNetplayDialog::Snes9xNetplayDialog (Snes9xConfig *config) : GtkBuilderWindow ("netplay_dialog") { GtkBuilderWindowCallbacks callbacks[] = { { "server_toggled", G_CALLBACK (event_server_toggled) }, { "browse_clicked", G_CALLBACK (event_browse_clicked) }, { "clear_clicked", G_CALLBACK (event_clear_clicked) }, { NULL, NULL } }; signal_connect (callbacks); this->config = config; }
Snes9xPreferences::Snes9xPreferences (Snes9xConfig *config) : GtkBuilderWindow ("preferences_window") { GtkBuilderWindowCallbacks callbacks[] = { { "control_toggle", G_CALLBACK (event_control_toggle) }, { "on_key_press", G_CALLBACK (event_key_press) }, { "control_combo_changed", G_CALLBACK (event_control_combo_changed) }, { "sram_folder_browse", G_CALLBACK (event_sram_folder_browse) }, { "scale_method_changed", G_CALLBACK (event_scale_method_changed) }, { "hw_accel_changed", G_CALLBACK (event_hw_accel_changed) }, { "reset_current_joypad", G_CALLBACK (event_reset_current_joypad) }, { "swap_with", G_CALLBACK (event_swap_with) }, { "ntsc_composite_preset", G_CALLBACK (event_ntsc_composite_preset) }, { "ntsc_svideo_preset", G_CALLBACK (event_ntsc_svideo_preset) }, { "ntsc_rgb_preset", G_CALLBACK (event_ntsc_rgb_preset) }, { "ntsc_monochrome_preset", G_CALLBACK (event_ntsc_monochrome_preset) }, { "shader_select", G_CALLBACK (event_shader_select) }, { "game_data_browse", G_CALLBACK (event_game_data_browse) }, { "game_data_clear", G_CALLBACK (event_game_data_clear) }, { "about_clicked", G_CALLBACK (event_about_clicked) }, #ifdef USE_JOYSTICK { "calibrate", G_CALLBACK (event_calibrate) }, #endif { NULL, NULL } }; last_toggled = NULL; this->config = config; gtk_widget_realize (window); signal_connect (callbacks); g_signal_connect_data (get_widget ("sound_input_rate"), "value-changed", G_CALLBACK (event_input_rate_changed), get_widget ("relative_video_rate"), NULL, (GConnectFlags) 0); return; }
inline void signal_handling(){ signal_connect(signal_handle); }