/*! \brief Define a hook. * \par Function Description * Creates a Guile new hook with \a n_args arguments, and binds it to * the variable \a name, returning the newly created hook. * * \param n_args Number of arguments the hook should take. * \param name Name of variable to bind the hook to. * * \return the newly-created hook. */ static SCM create_hook (const char *name, int n_args) { SCM hook = scm_make_hook (scm_from_int (n_args)); scm_c_define (name, hook); return scm_permanent_object (hook); }
void gram_keydown_hook_init (void) { gram_keydown_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (2))); gram_keydown_hook_object = scm_permanent_object (scm_c_define ("keydown-hook", gram_keydown_hook)); scm_c_export ("keydown-hook", NULL); }
void gram_view_focus_hook_init (void) { gram_view_focus_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (2))); gram_view_focus_hook_object = scm_permanent_object (scm_c_define ("view-focus-hook", gram_view_focus_hook)); scm_c_export ("view-focus-hook", NULL); }
void gram_output_created_hook_init (void) { gram_output_created_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (1))); gram_output_created_hook_object = scm_permanent_object (scm_c_define ("output-created-hook", gram_output_created_hook)); scm_c_export ("output-created-hook", NULL); }
void gram_compositor_ready_hook_init (void) { gram_compositor_ready_hook = scm_permanent_object (scm_make_hook (scm_from_unsigned_integer (0))); gram_compositor_ready_hook_object = scm_permanent_object (scm_c_define ("compositor-ready-hook", gram_compositor_ready_hook)); scm_c_export ("compositor-ready-hook", NULL); }
void *init_scheme(void *data) { scm_c_define_gsubr("nwm-stop", 0, 0, 0, &scm_nwm_stop); scm_c_define_gsubr("count-clients", 0, 0, 0, &scm_count_clients); scm_c_define_gsubr("all-clients", 0, 0, 0, &scm_all_clients); scm_c_define_gsubr("visible-clients", 0, 0, 0, &scm_visible_clients); scm_c_define_gsubr("first-client", 0, 0, 0, &scm_first_client); scm_c_define_gsubr("next-client", 1, 0, 0, &scm_next_client); scm_c_define_gsubr("prev-client", 1, 0, 0, &scm_prev_client); scm_c_define_gsubr("client-list-reverse", 0, 0, 0, &scm_client_list_reverse); scm_c_define_gsubr("client-list-swap", 2, 0, 0, &scm_client_list_swap); scm_c_define_gsubr("test-undefined", 0, 0, 0, &scm_test_undefined); scm_c_define_gsubr("move-client", 3, 0, 0, &scm_move_client); scm_c_define_gsubr("resize-client", 3, 0, 0, &scm_resize_client); scm_c_define_gsubr("map-client", 1, 0, 0, &scm_map_client); scm_c_define_gsubr("unmap-client", 1, 0, 0, &scm_unmap_client); scm_c_define_gsubr("mapped?", 1, 0, 0, &scm_is_mapped); scm_c_define_gsubr("destroy-client", 1, 0, 0, &scm_destroy_client); scm_c_define_gsubr("dump-client", 1, 0, 0, &scm_dump_client); scm_c_define_gsubr("client-x", 1, 0, 0, &scm_client_x); scm_c_define_gsubr("client-y", 1, 0, 0, &scm_client_y); scm_c_define_gsubr("client-width", 1, 0, 0, &scm_client_width); scm_c_define_gsubr("client-height", 1, 0, 0, &scm_client_height); scm_c_define_gsubr("screen-width", 0, 0, 0, &scm_screen_width); scm_c_define_gsubr("screen-height", 0, 0, 0, &scm_screen_height); scm_c_define_gsubr("bind-key", 3, 0, 0, &scm_bind_key); scm_c_define_gsubr("clear", 0, 0, 0, &scm_clear); scm_c_define_gsubr("draw-border", 3, 0, 0, &scm_draw_border); scm_c_define_gsubr("get-focus-client", 0, 0, 0, &scm_get_focus_client); scm_c_define_gsubr("focus-client", 1, 0, 0, &scm_focus_client); scm_c_define_gsubr("get-client-name", 1, 0, 0, &scm_get_client_name); scm_c_define_gsubr("launch-program", 1, 0, 0, &scm_launch_program); scm_c_define_gsubr("log", 1, 0, 0, &scm_nwm_log); scm_c_define_gsubr("trace-x-events", 1, 0, 0, &scm_trace_x_events); scm_c_define("create-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("map-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("unmap-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("destroy-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("focus-client-hook", scm_make_hook(scm_from_int(1))); scm_c_define("update-client-hook", scm_make_hook(scm_from_int(1))); init_client_type(); init_io_buffer_ports(); return NULL; }
void init_guile(void) { guile_current_session = NULL; // Set up the hooks. scm_c_define_gsubr("write-to-stderr", 1, 0, 0, &scheme_write_to_stderr); scm_c_define("send-command-hook", scm_make_hook(scm_from_int(1))); scm_c_define_gsubr("send-command", 1, 0, 0, &scheme_send_command); scm_c_define("config-filename", scm_from_locale_string("mud.scm")); // TODO: Make this configurable. scm_c_define_gsubr("reload-config", 0, 0, 0, &scheme_load_config_file); scm_c_define_gsubr("search-backwards", 1, 0, 0, &scheme_search_backwards); // Load up regex support. scm_c_use_module("ice-9 regex"); // Load the config file. scheme_load_config_file(); }
void Scm::createHook(const QString& symb, unsigned int nbargs) { SCM hook=scm_make_hook(SCM_MAKINUM(nbargs)); scm_c_define(symb.ascii(),hook); sym[symb] = hook; }