--- /dev/null
+(* $Id$ *)
+
+open Gtk
+open GtkBase
+open GtkMisc
+open GtkWindow
+open GtkRange
+open GtkPack
+open GtkButton
+open GtkMain
+
+
+class bar bar = object
+ val bar : progress_bar obj = bar
+ val mutable pstat = true
+ method progress =
+ let pvalue = Progress.get_percentage bar in
+ let pvalue =
+ if pvalue >= 1.0 || not pstat then (pstat <- true; 0.0)
+ else pvalue +. 0.01
+ in
+ ProgressBar.update bar percent:pvalue;
+ true
+ method progress_r =
+ pstat <- false
+end
+
+let main () =
+
+ let window = Window.create `TOPLEVEL in
+ GtkSignal.connect sig:Object.Signals.destroy window callback:Main.quit;
+ Container.set_border_width window 10;
+
+ let table = Table.create rows:3 columns:2 in
+ Container.add window table;
+
+ let label = Label.create "Progress Bar Example" in
+ Table.attach table label left:0 right:2 top:0 expand:`X shrink:`BOTH;
+
+ let pbar = ProgressBar.create () in
+ Table.attach table pbar left:0 right:2 top:1 fill:`X shrink:`BOTH;
+
+ let bar = new bar pbar in
+ let ptimer = Timeout.add 100 callback:(fun () -> bar#progress) in
+
+ let button = Button.create label:"Reset" in
+ GtkSignal.connect sig:Button.Signals.clicked button
+ callback:(fun () -> bar#progress_r);
+ Table.attach table button left:0 top:2 expand:`NONE fill:`X shrink:`BOTH;
+
+ let button = Button.create label:"Cancel" in
+ GtkSignal.connect sig:Button.Signals.clicked button callback:Main.quit;
+ Table.attach table button left:1 top:2 expand:`NONE fill:`X shrink:`BOTH;
+
+ Widget.show_all window
+
+
+let _ =
+ main ();
+ Main.main ()