- borderCurrentImage.PreviewMouseLeftButtonDown.AddHandler(fun obj args ->
- scrollStartPosition <- args.GetPosition(scrollViewCurrentImage)
- scrollStartOffsetX <- scrollViewCurrentImage.HorizontalOffset
- scrollStartOffsetY <- scrollViewCurrentImage.VerticalOffset
- borderCurrentImage.Cursor <- Input.Cursors.ScrollAll
- borderCurrentImage.CaptureMouse() |> ignore
- args.Handled <- true)
-
- borderCurrentImage.PreviewMouseMove.AddHandler(fun obj args ->
- if borderCurrentImage.IsMouseCaptured
- then
- let position = args.GetPosition(scrollViewCurrentImage)
- let deltaX = scrollStartPosition.X - position.X
- let deltaY = scrollStartPosition.Y - position.Y
- scrollViewCurrentImage.ScrollToHorizontalOffset(deltaX + scrollStartOffsetX)
- scrollViewCurrentImage.ScrollToVerticalOffset(deltaY + scrollStartOffsetY)
-
- args.Handled <- true)
-
- borderCurrentImage.PreviewMouseLeftButtonUp.AddHandler(fun obj args ->
- if borderCurrentImage.IsMouseCaptured
- then
- borderCurrentImage.Cursor <- Input.Cursors.Arrow
- borderCurrentImage.ReleaseMouseCapture()
- args.Handled <- true)
+ win.borderCurrentImage.PreviewMouseLeftButtonDown.AddHandler (
+ fun _obj args ->
+ scrollStartPosition <- args.GetPosition win.scrollViewCurrentImage
+ scrollStartOffsetX <- win.scrollViewCurrentImage.HorizontalOffset
+ scrollStartOffsetY <- win.scrollViewCurrentImage.VerticalOffset
+ win.borderCurrentImage.Cursor <- Input.Cursors.ScrollAll
+ win.borderCurrentImage.CaptureMouse () |> ignore
+ args.Handled <- true
+ )
+
+ win.borderCurrentImage.PreviewMouseMove.AddHandler (
+ fun _obj args ->
+ if win.borderCurrentImage.IsMouseCaptured then
+ let position = args.GetPosition win.scrollViewCurrentImage
+ let deltaX = scrollStartPosition.X - position.X
+ let deltaY = scrollStartPosition.Y - position.Y
+ win.scrollViewCurrentImage.ScrollToHorizontalOffset (deltaX + scrollStartOffsetX)
+ win.scrollViewCurrentImage.ScrollToVerticalOffset (deltaY + scrollStartOffsetY)
+
+ args.Handled <- true
+ )
+
+ win.borderCurrentImage.PreviewMouseLeftButtonUp.AddHandler (
+ fun _obj args ->
+ if win.borderCurrentImage.IsMouseCaptured then
+ win.borderCurrentImage.Cursor <- Input.Cursors.Arrow
+ win.borderCurrentImage.ReleaseMouseCapture ()
+ args.Handled <- true
+ )
+
+ // Shortcuts.
+ // Save.
+ win.InputBindings.Add (
+ Input.KeyBinding (
+ ViewModule.FunCommand ((fun obj -> saveCurrentDocument ()), (fun obj -> true)),
+ Input.KeyGesture (Input.Key.S, Input.ModifierKeys.Control)
+ )
+ ) |> ignore
+
+ // Save as.
+ win.InputBindings.Add (
+ Input.KeyBinding (
+ ViewModule.FunCommand ((fun obj -> saveCurrentDocumentAsNewFile ()), (fun obj -> true)),
+ Input.KeyGesture (Input.Key.S, Input.ModifierKeys.Control ||| Input.ModifierKeys.Shift)
+ )
+ ) |> ignore
+
+ // Open.
+ win.InputBindings.Add (
+ Input.KeyBinding (
+ ViewModule.FunCommand ((fun obj -> askLoadFile ()), (fun obj -> true)),
+ Input.KeyGesture (Input.Key.O, Input.ModifierKeys.Control)
+ )
+ ) |> ignore
+
+ // New file.
+ win.InputBindings.Add (
+ Input.KeyBinding (
+ ViewModule.FunCommand ((fun obj -> newFile ()), (fun obj -> true)),
+ Input.KeyGesture (Input.Key.N, Input.ModifierKeys.Control)
+ )
+ ) |> ignore
+
+ // Export results.
+ win.InputBindings.Add (
+ Input.KeyBinding (
+ ViewModule.FunCommand ((fun obj -> exportResults ()), (fun obj -> true)),
+ Input.KeyGesture (Input.Key.E, Input.ModifierKeys.Control)
+ )
+ ) |> ignore
+
+ // Import an image.
+ win.InputBindings.Add (
+ Input.KeyBinding (
+ ViewModule.FunCommand ((fun obj -> importImage ()), (fun obj -> true)),
+ Input.KeyGesture (Input.Key.A, Input.ModifierKeys.Control)
+ )
+ ) |> 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