let box param_list tt =
  let main_box = GPack.vbox  () in
  let f parameter =
    match parameter with
      String_param p ->
        let box = new string_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | Combo_param p ->
        let box = new combo_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | Text_param p ->
        let box = new text_param_box p tt in
        let _ = main_box#pack ~expand: p.string_expand ~padding: 2 box#box in
        box
    | Bool_param p ->
        let box = new bool_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | Filename_param p ->
        let box = new filename_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | List_param f ->
        let box = f tt in
        let _ = main_box#pack ~expand: true ~padding: 2 box#box in
        box
    | Custom_param p ->
        let box = new custom_param_box p tt in
        let _ = main_box#pack ~expand: p.custom_expand ~padding: 2 box#box in
        box
    | Color_param p ->
        let box = new color_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | Font_param p ->
        let box = new font_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | Date_param p ->
        let box = new date_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | Hotkey_param p ->
        let box = new hotkey_param_box p tt in
        let _ = main_box#pack ~expand: false ~padding: 2 box#box in
        box
    | Html_param p ->
        let box = new html_param_box p tt in
        let _ = main_box#pack ~expand: p.string_expand ~padding: 2 box#box in
        box
  in
  let list_param_box = List.map f param_list in
  let f_apply () =
    List.iter (fun param_box -> param_box#apply) list_param_box
  in
  (main_box, f_apply)