X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaGtkMisc.ml;h=d45452a5235176e88a3d27f43cc609d9ebee6b96;hb=8aaf525856e25bcd8f355e505fd00f45c62bc18f;hp=7c8b611a2b0e2daa92efeb8f187a58af85517b54;hpb=ccca8f161bcbe57b58e651656a4a825c5227abf2;p=helm.git diff --git a/helm/matita/matitaGtkMisc.ml b/helm/matita/matitaGtkMisc.ml index 7c8b611a2..d45452a52 100644 --- a/helm/matita/matitaGtkMisc.ml +++ b/helm/matita/matitaGtkMisc.ml @@ -57,11 +57,19 @@ let connect_key (ev:GObj.event_ops) ?(modifiers = []) ?(stop = false) key stop | _ -> false))) -let toggle_visibility ~(win: GWindow.window) ~(check: GMenu.check_menu_item) = +let toggle_widget_visibility ~(widget: GObj.widget) + ~(check: GMenu.check_menu_item) += + ignore (check#connect#toggled (fun _ -> + if check#active then widget#misc#show () else widget#misc#hide ())) + +let toggle_window_visibility ~(window: GWindow.window) + ~(check: GMenu.check_menu_item) += ignore (check#connect#toggled (fun _ -> - if check#active then win#show () else win#misc#hide ())); - ignore (win#event#connect#delete (fun _ -> - win#misc#hide (); + if check#active then window#show () else window#misc#hide ())); + ignore (window#event#connect#delete (fun _ -> + window#misc#hide (); check#set_active false; true)) @@ -71,6 +79,9 @@ let toggle_win ?(check: GMenu.check_menu_item option) (win: GWindow.window) () = | None -> () | Some check -> check#set_active (not check#active) +let toggle_callback ~callback ~(check: GMenu.check_menu_item) = + ignore (check#connect#toggled (fun _ -> callback check#active)) + let add_key_binding key callback (evbox: GBin.event_box) = ignore (evbox#event#connect#key_press (function | key' when GdkEvent.Key.keyval key' = key ->