Implement pulse mode progress bar.
[guestfs-browser.git] / window.mli
index 916bb15..b2877bb 100644 (file)
 (** The Window module handles all aspects of the main window, menus,
     dialogs and so on. *)
 
-type display_state = {
-  window : GWindow.window;
-  throbber_busy : unit -> unit;
-  throbber_idle : unit -> unit;
-  set_statusbar : string -> unit;
-  clear_statusbar : unit -> unit;
-  set_vmlist : string list -> unit;
-  clear_vmlist : unit -> unit;
-  clear_notebook : unit -> unit;
-  filesystem : GPack.box;
-  notebook : GPack.notebook;
-}
-    (** This structure describes various variables and functions
-        for the main window.  It is returned from {!open_main_window}
-        and passed around to various other functions. *)
-
-val open_main_window : unit -> display_state
+type window_state
+
+val open_main_window : unit -> window_state
   (** Open the main Gtk window, set up the menus, callbacks and so on. *)
 
-val failure : display_state -> exn -> unit
+val failure : window_state -> exn -> unit
   (** This is the global error handling function.  It is invoked in
       the main thread for failures in the slave thread (see
       {!Slave.set_failure_hook}). *)
 
-val run_cli_request : display_state -> Cmdline.cli_request -> unit
+val throbber_busy : window_state -> unit -> unit
+val throbber_idle : window_state -> unit -> unit
+  (** These are callbacks from the slave thread (invoked in the main
+      thread) which are called whenever the throbber should be
+      animated/busy or idle.  *)
+
+val set_statusbar : window_state -> string -> unit
+  (** This callback from the slave thread (invoked in the main thread)
+      updates the status bar when some slave operation starts or
+      stops. *)
+
+val progress : window_state -> int64 * int64 -> unit
+  (** This called whenever the progress bar should move. *)
+
+val run_cli_request : window_state -> Cmdline.cli_request -> unit
   (** This function performs the {!Cmdline.cli_request} operation.
       The actual operation happens asynchronously after this function
       has returned. *)