Add status bar, progress bar, command line.
[virt-resize-ui.git] / main.ml
1 (* Virt resize UI.
2  * Copyright (C) 2011 Red Hat Inc.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  *)
18
19 open Utils
20
21 let () =
22   let cli_request = Cmdline.command_line () in
23
24   (* If we're in verbose mode, print some debug information which
25      could be useful in bug reports.  *)
26   if verbose () then (
27     debug "%s %s" Config.package Config.version;
28     debug "libguestfs %s" (libguestfs_version_string ());
29     debug "libvirt %s" (libvirt_version_string ());
30   );
31
32   (* Create the main window. *)
33   let w = new Window.window in
34
35   (* Wire up hooks that carry messages from the slave thread
36    * to the main thread.
37    *)
38 (*
39   Slave.set_failure_hook w#failure;
40   Slave.set_busy_hook w#throbber_busy;
41   Slave.set_idle_hook w#throbber_idle;
42 *)
43   Slave.set_status_hook w#set_statusbar;
44   Slave.set_progress_hook w#progress;
45
46   (* What did the user request on the command line? *)
47   w#source_tab#run_cli_request cli_request;
48
49   (* Run the main display thread.  When this returns, the application
50      has been closed so force the slave thread to exit.  *)
51   GtkThread.main ();
52   Slave.exit_thread ()