if noSourceImage then
updateCurrentImage ()
+ let showAnalysisWindow () =
+ if Analysis.showWindow win state then
+ updateGlobalParasitemia ()
+ updateCurrentImage ()
+
+ let setHighlightRBC (highlight : bool) =
+ displayHealthy <- highlight
+ updateRBCFramesPreview ()
+ updateRBCFramesCurrent ()
+
win.txtPatient.TextChanged.AddHandler(fun obj args -> state.PatientID <- win.txtPatient.Text)
win.menuExit.Click.AddHandler(fun obj args -> win.Close())
win.menuAnalysis.SubmenuOpened.AddHandler(fun obj args -> win.menuStartAnalysis.IsEnabled <- state.SourceImages.Count() > 0)
- win.menuStartAnalysis.Click.AddHandler(fun obj args ->
- if Analysis.showWindow win state then
- updateGlobalParasitemia ()
- updateCurrentImage ()
- )
+ win.menuStartAnalysis.Click.AddHandler(fun obj args -> showAnalysisWindow ())
- win.menuHightlightRBC.Click.AddHandler(fun obj args ->
- displayHealthy <- win.menuHightlightRBC.IsChecked
- updateRBCFramesPreview ()
- updateRBCFramesCurrent ()
- )
+ win.menuHightlightRBC.Click.AddHandler(fun obj args -> setHighlightRBC win.menuHightlightRBC.IsChecked)
win.menuAbout.Click.AddHandler(fun obj args -> About.showWindow win)
)
) |> ignore
+ // Show analysis dialog.
+ win.InputBindings.Add(
+ Input.KeyBinding(
+ ViewModule.FunCommand((fun obj -> showAnalysisWindow ()), (fun obj -> state.SourceImages.Count() > 0)),
+ Input.KeyGesture(Input.Key.Y, Input.ModifierKeys.Control)
+ )
+ ) |> ignore
+
+ // Toggle RBC highlight.
+ win.InputBindings.Add(
+ Input.KeyBinding(
+ ViewModule.FunCommand(
+ (
+ fun obj ->
+ win.menuHightlightRBC.IsChecked <- not win.menuHightlightRBC.IsChecked
+ setHighlightRBC win.menuHightlightRBC.IsChecked
+ ),
+ (fun obj -> true)
+ ),
+ Input.KeyGesture(Input.Key.H, Input.ModifierKeys.Control)
+ )
+ ) |> ignore
+
// Viewport preview.
win.scrollViewCurrentImage.ScrollChanged.AddHandler(fun obj args -> updateViewportPreview ())