let create ?label ?(use_mnemonic=false) ?stock ?accel_group () = 
    match stock with 
    | None -> 
        begin match label with
        | None -> create []
        | Some l -> 
            if use_mnemonic then create_with_mnemonic l 
            else create_with_label l 
        end
    | Some s -> create_from_stock ?accel_group s