method click_button ?name ?number ?value ?xy () =
let args = ref [] in
let add name f = function
| None -> ()
| Some p -> args := sv_of_string name :: f p :: !args
in
add "name" sv_of_string name;
add "number" sv_of_int number;
add "value" sv_of_string value;
(match xy with
None -> ()
| Some (x, y) ->
args := sv_of_string "x" :: sv_of_int x ::
sv_of_string "y" :: sv_of_int y :: !args);
call_method_void sv "click" !args