Put the RBC number text below border on the main image.
[master-thesis.git] / Parasitemia / ParasitemiaUI / GUI.fs
index 83e54c2..89f38e3 100644 (file)
@@ -54,13 +54,14 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
         max 1. (averageRBCSize / 60.)
 
     let frameFontSize (averageRBCSize : float) =
-        max 1. (averageRBCSize / 8.)
+        max 1. (averageRBCSize / 6.)
 
-    let createRBCFrameFromExisting (srcImg : SourceImage) (rbc : RBC) (frame : RBCFrame) (frameThickness : float) (fontSize : float) : RBCFrame =
+    let createRBCFrameFromExisting (srcImg : SourceImage) (rbc : RBC) (frame : RBCFrame) (frameThickness : float) (fontSize : float) (isTextBelow : bool) : RBCFrame =
         frame.Visibility <- Visibility.Visible
         frame.Width <- rbc.size.Width
         frame.Height <- rbc.size.Height
         frame.Tag <- rbc
+        frame.IsTextBelow <- isTextBelow
         setRBCFrameStyle srcImg rbc frame
         frame.border.StrokeThickness <- frameThickness
         frame.txtRBCNumber.Text <- string rbc.num
@@ -179,8 +180,8 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
         updateCurrentImageInformation ()
         updateGlobalParasitemia ()
 
-    and createRBCFrame (srcImg : SourceImage) (rbc : RBC) (frameThickness : float) (fontSize : float) : RBCFrame =
-        let frame = createRBCFrameFromExisting srcImg rbc (RBCFrame ()) frameThickness fontSize
+    and createRBCFrame (srcImg : SourceImage) (rbc : RBC) (frameThickness : float) (fontSize : float) (isTextBelow : bool) : RBCFrame =
+        let frame = createRBCFrameFromExisting srcImg rbc (RBCFrame ()) frameThickness fontSize isTextBelow
         frame.SetValue (Panel.ZIndexProperty, Int32.MaxValue - rbc.num) // To be sure the
         frame.menuRBCSetAsHealthy.Click.AddHandler (fun obj args -> setAsInfected srcImg (frame.Tag :?> RBC) false)
         frame.menuRBCSetAsInfected.Click.AddHandler (fun obj args -> setAsInfected srcImg (frame.Tag :?> RBC) true)
@@ -205,9 +206,9 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
             for rbc in srcImg.RBCs |> List.filter (fun rbc -> displayHealthy || rbc.infected) do
                 let previewInfected =
                     if currentPreview < win.stackRBC.Children.Count then
-                        createRBCFrameFromExisting srcImg rbc (win.stackRBC.Children.[currentPreview] :?> RBCFrame) 1. 12.
+                        createRBCFrameFromExisting srcImg rbc (win.stackRBC.Children.[currentPreview] :?> RBCFrame) 1. 12. false
                     else
-                        let f = createRBCFrame srcImg rbc 1. 12.
+                        let f = createRBCFrame srcImg rbc 1. 12. false
                         f.MouseLeftButtonUp.AddHandler (fun obj args -> zoomToRBC (f.Tag :?> RBC))
                         win.stackRBC.Children.Add f |> ignore
                         f
@@ -232,9 +233,9 @@ let run (defaultConfig : Config) (fileToOpen : string option) =
             for rbc in srcImg.RBCs do
                 let frame =
                     if currentCanvas < win.canvasCurrentImage.Children.Count then
-                        createRBCFrameFromExisting srcImg rbc (win.canvasCurrentImage.Children.[currentCanvas] :?> RBCFrame) strokeThickness fontSize
+                        createRBCFrameFromExisting srcImg rbc (win.canvasCurrentImage.Children.[currentCanvas] :?> RBCFrame) strokeThickness fontSize true
                     else
-                        let f = createRBCFrame srcImg rbc strokeThickness fontSize
+                        let f = createRBCFrame srcImg rbc strokeThickness fontSize true
                         win.canvasCurrentImage.Children.Add f |> ignore
                         f