X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=window.ml;h=baa63b2b78808ebb41e219ba26e4d08e78b3708a;hb=23a1eac79ffcbab1801b89430fc0354e44cf7599;hp=7f35b04e8d25b23642750cba8cff70db6fee95c3;hpb=f53eb0cec9cd5272de5b0e9009b27231ed252487;p=guestfs-browser.git diff --git a/window.ml b/window.ml index 7f35b04..baa63b2 100644 --- a/window.ml +++ b/window.ml @@ -39,6 +39,11 @@ type guest_menu = { guest_inspection_item : GMenu.menu_item; } +type help_menu = { + help_menu : GMenu.menu; + about_item : GMenu.menu_item; +} + class window = (* Window. *) let title = "Guest Filesystem Browser" in @@ -74,6 +79,12 @@ class window = let inspection = factory#add_item "Operating system information ..." in { guest_menu = menu; guest_inspection_item = inspection } in + let help_menu = + let menu = factory#add_submenu "_Help" in + let factory = new GMenu.factory menu ~accel_group in + let about = factory#add_item "About guest filesystem browser ..." in + { help_menu = menu; about_item = about } in + (* Top toolbar. *) let hbox = let hbox = GPack.hbox ~border_width:4 ~packing:vbox#pack () in @@ -118,23 +129,29 @@ class window = let connect_xen_signal = new GUtil.signal () in let connect_none_signal = new GUtil.signal () in let connect_uri_signal = new GUtil.signal () in + let open_disk_signal = new GUtil.signal () in let reopen_signal = new GUtil.signal () in let inspection_signal = new GUtil.signal () in + let about_signal = new GUtil.signal () in object (self) inherit GUtil.ml_signals [connect_kvm_signal#disconnect; connect_xen_signal#disconnect; connect_none_signal#disconnect; connect_uri_signal#disconnect; + open_disk_signal#disconnect; reopen_signal#disconnect; - inspection_signal#disconnect] + inspection_signal#disconnect; + about_signal#disconnect] method connect_kvm_signal = connect_kvm_signal#connect ~after method connect_xen_signal = connect_xen_signal#connect ~after method connect_none_signal = connect_none_signal#connect ~after method connect_uri_signal = connect_uri_signal#connect ~after + method open_disk_signal = open_disk_signal#connect ~after method reopen_signal = reopen_signal#connect ~after method inspection_signal = inspection_signal#connect ~after + method about_signal = about_signal#connect ~after initializer ignore (statusbar_context#push title); @@ -159,10 +176,14 @@ object (self) ~callback:connect_none_signal#call); ignore (connect_menu.connect_uri_item#connect#activate ~callback:connect_uri_signal#call); + ignore (connect_menu.open_disk_item#connect#activate + ~callback:open_disk_signal#call); ignore (connect_menu.reopen_item#connect#activate ~callback:reopen_signal#call); ignore (guest_menu.guest_inspection_item#connect#activate ~callback:inspection_signal#call); + ignore (help_menu.about_item#connect#activate + ~callback:about_signal#call); (* VM combo box when changed by the user. * The refresh button acts like changing the VM combo too. @@ -227,7 +248,7 @@ object (self) self#when_opened_common name data (* When a set of disk images is selected by the user. *) - method private open_disk_images images = + method open_disk_images images = match images with | [] -> () | images ->