1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
(**************************************************************************)
(* Lablgtk - Examples *)
(* *)
(* This code is in the public domain. *)
(* You may freely copy parts of it in your application. *)
(* *)
(**************************************************************************)
let start = GButton.button ~label:"Start" ~packing:vbox#pack ()
let stop = GButton.button ~label:"Stop" ~packing:vbox#pack ()
let text = GEdit.entry ~packing:vbox#pack ()
let cont = ref true
let n = ref 0
let body () =
prerr_endline "started";
while !cont do
incr n;
async text#set_text (string_of_int !n);
Thread.delay 1.
done
let () =
GMain.init ();
start#connect#clicked
(fun () -> cont:= true; ignore (Thread.create body ()));
stop#connect#clicked (fun () -> cont := false);
w#connect#destroy GMain.quit;
w#show ();
GMain.main ()
|