let setter ~cont ?hadjustment ?vadjustment ?(button_actions=[])
      ?titles_show =
    cont (fun w ->
      let may_set f param = may param ~f:(f w) in
      may_set set_hadjustment hadjustment;
      may_set set_vadjustment vadjustment;
      List.iter button_actions ~f:(fun (n,act) -> set_button_actions w n act);
      may_set set_titles_show titles_show)