Examples

You have to make a function which consists of some widgets and call the function with "Wx.start" like this. See main.ml.

Figure 1.1. wxcaml examples

wxcaml examples
(* file: main.ml *)
let prints msg = Printf.printf "%s\n" msg; flush stdout
let print msg evt = prints msg
let destroy frame evt = frame#destroy ()

let wxmain () =
  let frame = Wx.frame ~title:"wxWindows" ~pos:(50,50) ~size:(300,300) () in

  let menubar = Wx.menubar ~frame () in
  let menu = Wx.menu ~name:"&File" ~menubar () in

  let item = menu#append ~name:"&New" ~help:"New File" () in
  item#connect (print "[New File] selected");

  let item = menu#append ~name:"&Open" ~help:"Open File" () in
  item#connect (print "[Open File] selected");

  let item = menu#append ~name:"&Close" ~help:"Close File" () in
  item#connect (print "[Close File] selected");

  menu#append_separator ();
  let item = menu#append ~name:"&Quit" ~help:"Quit the program" () in
  item#connect (destroy frame);

  let menu = Wx.menu ~name:"&Edit" ~menubar () in
  menu#append ~name:"C&opy" ~help:"Copy to clipboard" ();
  menu#append ~name:"&Paste" ~help:"Paste from clipboard" ();

  let sbar = Wx.status_bar ~frame () in

  frame#show ()

let _ = Wx.start wxmain