(************************************************************************)
(*         *      The Rocq Prover / The Rocq Development Team           *)
(*  v      *         Copyright INRIA, CNRS and contributors             *)
(* <O___,, * (see version control and CREDITS file for authors & dates) *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
(*         *     (see LICENSE file for the text of the license)         *)
(************************************************************************)

let osx = GosxApplication.osxapplication ()

let () =
  let _ = osx#connect#ns_application_open_file
    ~callback:(fun x -> Coqide.do_load x; true)
  in
  let _ = osx#connect#ns_application_block_termination
    ~callback:Coqide.forbid_quit
  in
  let _ = osx#connect#ns_application_will_terminate
    ~callback:Coqide.close_and_quit
  in ()

let init () =
  let () = GtkosxApplication.Application.set_menu_bar osx#as_osxapplication
    (GtkMenu.MenuShell.cast
       (Coqide_ui.ui_m#get_widget "/CoqIDE MenuBar")#as_widget)
  in
  let () = GtkosxApplication.Application.insert_app_menu_item
    osx#as_osxapplication
    (Coqide_ui.ui_m#get_widget "/CoqIDE MenuBar/Edit/Prefs")#as_widget 1
  in
  let () = GtkosxApplication.Application.set_help_menu osx#as_osxapplication
    (Some (GtkMenu.MenuItem.cast
             (Coqide_ui.ui_m#get_widget "/CoqIDE MenuBar/Help")#as_widget))
  in
  osx#ready ()
