diff options
author | IOhannes m zmölnig <zmoelnig@iem.at> | 2016-08-04 10:52:15 +0200 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@iem.at> | 2016-08-04 10:52:15 +0200 |
commit | 595a8d637b81d45fe73f566b25d64cf8bca672c1 (patch) | |
tree | 0a88f6ef6f0c857ba5c37842a0c5ad63b84d3915 /snd-menu.c | |
parent | 3eb3c4d013403119c639870bf55d61e3456c1078 (diff) |
Imported Upstream version 16.7
Diffstat (limited to 'snd-menu.c')
-rw-r--r-- | snd-menu.c | 22 |
1 files changed, 16 insertions, 6 deletions
@@ -352,8 +352,8 @@ func (a function of no args) when the new menu is activated. Returns the new men widget_t result; char *errmsg = NULL; - Xen_check_type(Xen_is_string(label) || Xen_is_false(label), label, 2, S_add_to_menu, "a string"); Xen_check_type(Xen_is_integer(menu), menu, 1, S_add_to_menu, "an integer"); + Xen_check_type(Xen_is_string(label) || Xen_is_false(label), label, 2, S_add_to_menu, "a string"); Xen_check_type(Xen_is_procedure(callback) || Xen_is_false(callback), callback, 3, S_add_to_menu, "a procedure"); Xen_check_type(Xen_is_integer_or_unbound(gpos), gpos, 4, S_add_to_menu, "an integer"); @@ -406,8 +406,8 @@ static Xen gl_remove_from_menu(Xen menu, Xen label) #define H_remove_from_menu "(" S_remove_from_menu " menu label): removes menu item label from menu" int m; - Xen_check_type(Xen_is_string(label), label, 2, S_remove_from_menu, "a string"); Xen_check_type(Xen_is_integer(menu), menu, 1, S_remove_from_menu, "an integer"); + Xen_check_type(Xen_is_string(label), label, 2, S_remove_from_menu, "a string"); m = Xen_integer_to_C_int(menu); if (m < 0) @@ -438,8 +438,18 @@ Xen_wrap_1_arg(g_main_menu_w, g_main_menu) void g_init_menu(void) { - Xen_define_procedure(S_add_to_main_menu, gl_add_to_main_menu_w, 1, 1, 0, H_add_to_main_menu); - Xen_define_procedure(S_add_to_menu, gl_add_to_menu_w, 3, 1, 0, H_add_to_menu); - Xen_define_procedure(S_remove_from_menu, gl_remove_from_menu_w, 2, 0, 0, H_remove_from_menu); - Xen_define_procedure(S_main_menu, g_main_menu_w, 1, 0, 0, H_main_menu); +#if HAVE_SCHEME + s7_pointer i, p, b, fnc, s; + i = s7_make_symbol(s7, "integer?"); + p = s7_make_symbol(s7, "pair?"); + b = s7_make_symbol(s7, "boolean?"); + fnc = s7_make_symbol(s7, "procedure?"); + s = s7_make_symbol(s7, "string?"); +#endif + + Xen_define_typed_procedure(S_add_to_main_menu, gl_add_to_main_menu_w, 1, 1, 0, H_add_to_main_menu, s7_make_signature(s7, 3, i, s, fnc)); + Xen_define_typed_procedure(S_add_to_menu, gl_add_to_menu_w, 3, 1, 0, H_add_to_menu, + s7_make_signature(s7, 5, p, i, s7_make_signature(s7, 2, s, b), s7_make_signature(s7, 2, fnc, b), i)); + Xen_define_typed_procedure(S_remove_from_menu, gl_remove_from_menu_w, 2, 0, 0, H_remove_from_menu, s7_make_signature(s7, 3, i, i, s)); + Xen_define_typed_procedure(S_main_menu, g_main_menu_w, 1, 0, 0, H_main_menu, s7_make_signature(s7, 2, p, i)); } |