]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/examples/progressbar.ml
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20000829-0.1.0 / examples / progressbar.ml
1 (* $Id$ *)
2
3 open GMain
4
5 class bar bar = object
6   val bar : #GRange.progress = bar
7   val mutable pstat = true
8   method progress () =
9     let pvalue = bar#percentage in
10     let pvalue =
11       if pvalue > 0.99 || not pstat then (pstat <- true; 0.0)
12       else pvalue +. 0.01
13     in
14     bar#set_percentage pvalue;
15     true
16   method reset () =
17     pstat <- false
18 end
19
20 let main () =
21
22   let window = GWindow.window ~border_width: 10 () in
23   window#connect#destroy ~callback:Main.quit;
24
25   let table = GPack.table ~rows:3 ~columns:2 ~packing: window#add () in
26   
27   GMisc.label ~text:"Progress Bar Example" ()
28     ~packing:(table#attach ~left:0 ~right:2 ~top:0 ~expand:`X ~shrink:`BOTH);
29   
30   let pbar =
31     GRange.progress_bar ~bar_style:`DISCRETE ~discrete_blocks:20 ()
32       ~packing:(table#attach ~left:0 ~right:2 ~top:1
33                   ~expand:`BOTH ~fill:`X ~shrink:`BOTH) in
34
35   let bar = new bar pbar in
36   let ptimer = Timeout.add ~ms:50 ~callback:bar#progress in
37
38   let button = GButton.button ~label:"Reset" ()
39       ~packing:(table#attach ~left:0 ~top:2
40                   ~expand:`NONE ~fill:`X ~shrink:`BOTH) in
41   button#connect#clicked ~callback:bar#reset;
42
43   let button = GButton.button ~label:"Cancel" ()
44       ~packing:(table#attach ~left:1 ~top:2
45                   ~expand:`NONE ~fill:`X ~shrink:`BOTH) in
46   button#connect#clicked ~callback:Main.quit;
47
48   window#show ();
49   Main.main ()
50
51 let _ = main ()