X-Git-Url: http://git.euphorik.ch/?p=master-thesis.git;a=blobdiff_plain;f=Parasitemia%2FParasitemiaUI%2FGUI.fs;h=2ff3116245197b634b369b26065563011e63f3fd;hp=a71aa96e068d0379a09ff3992bac29d6ad6baeef;hb=cb90b01c85183b2c75ee6d22b378b3ca99df6bf3;hpb=074d6b0377f51e868deb1c427891c722d0270deb diff --git a/Parasitemia/ParasitemiaUI/GUI.fs b/Parasitemia/ParasitemiaUI/GUI.fs index a71aa96..2ff3116 100644 --- a/Parasitemia/ParasitemiaUI/GUI.fs +++ b/Parasitemia/ParasitemiaUI/GUI.fs @@ -24,9 +24,6 @@ let run (defaultConfig: Config) (fileToOpen: string option) = let mainWindow = Views.MainWindow() let ctrl (name: string): 'a = mainWindow.Root.FindName(name) :?> 'a - let colorRBCHealthy = Brushes.YellowGreen - let colorRBCInfected = Brushes.Red - let state = State.State() let mutable currentScale = 1. let mutable displayHealthy = false @@ -78,19 +75,19 @@ let run (defaultConfig: Config) (fileToOpen: string option) = System.Drawing.Size((if x + w >= img.Width then img.Width - x else w), (if y + h >= img.Height then img.Height - y else h)))) - let setRBCFrameStyle (rbc: RBC) (frame: Views.RBCFrame) = + let setRBCFrameStyle (srcImg: SourceImage) (rbc: RBC) (frame: Views.RBCFrame) = frame.Opacity <- if displayHealthy || rbc.setManually || rbc.infected then 1. else 0. - let color = if rbc.infected then colorRBCInfected else colorRBCHealthy + let color = if rbc.infected then srcImg.InfectedRBCColor else srcImg.HealthyRBCColor frame.manuallyAdded.Visibility <- if rbc.setManually then Visibility.Visible else Visibility.Hidden frame.manuallyAdded.Fill <- color frame.border.Stroke <- color - let RBCFrameFromExisting (rbc: RBC) (frame: Views.RBCFrame) : Views.RBCFrame = + let RBCFrameFromExisting (srcImg: SourceImage) (rbc: RBC) (frame: Views.RBCFrame) : Views.RBCFrame = frame.Visibility <- Visibility.Visible frame.Height <- rbc.size.Height frame.Width <- rbc.size.Width frame.Tag <- rbc - setRBCFrameStyle rbc frame + setRBCFrameStyle srcImg rbc frame frame.border.StrokeThickness <- 1. frame.txtRBCNumber.Text <- rbc.num.ToString() frame @@ -179,7 +176,7 @@ let run (defaultConfig: Config) (fileToOpen: string option) = else preview.viewport.Visibility <- Visibility.Hidden - let rec setAsInfected (rbc: RBC) (infected: bool) = + let rec setAsInfected (srcImg: SourceImage) (rbc: RBC) (infected: bool) = state.SetAsInfected rbc infected canvasCurrentImage.Children |> Seq.cast @@ -187,16 +184,16 @@ let run (defaultConfig: Config) (fileToOpen: string option) = (fun frame -> if (frame.Tag :?> RBC) = rbc then - setRBCFrameStyle rbc frame) + setRBCFrameStyle srcImg rbc frame) updateRBCFramesPreview () updateCurrentImageInformation () updateGlobalParasitemia () - and RBCFrame (rbc: RBC) : Views.RBCFrame = - let frame = RBCFrameFromExisting rbc (Views.RBCFrame()) + and RBCFrame (srcImg: SourceImage) (rbc: RBC) : Views.RBCFrame = + let frame = RBCFrameFromExisting srcImg rbc (Views.RBCFrame()) frame.SetValue(Panel.ZIndexProperty, Int32.MaxValue - rbc.num) // To be sure the - frame.menuRBCSetAsHealthy.Click.AddHandler(fun obj args -> setAsInfected (frame.Tag :?> RBC) false) - frame.menuRBCSetAsInfected.Click.AddHandler(fun obj args -> setAsInfected (frame.Tag :?> RBC) true) + 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) frame.ContextMenuOpening.AddHandler( fun obj args -> if (frame.Tag :?> RBC).infected @@ -220,9 +217,9 @@ let run (defaultConfig: Config) (fileToOpen: string option) = let previewInfected = if currentPreview < stackRBC.Children.Count then - RBCFrameFromExisting rbc (stackRBC.Children.[currentPreview] :?> Views.RBCFrame) + RBCFrameFromExisting srcImg rbc (stackRBC.Children.[currentPreview] :?> Views.RBCFrame) else - let f = RBCFrame rbc + let f = RBCFrame srcImg rbc f.MouseLeftButtonUp.AddHandler(fun obj args -> zoomToRBC (f.Tag :?> RBC)) stackRBC.Children.Add(f) |> ignore f @@ -246,9 +243,9 @@ let run (defaultConfig: Config) (fileToOpen: string option) = let frame = if currentCanvas < canvasCurrentImage.Children.Count then - RBCFrameFromExisting rbc (canvasCurrentImage.Children.[currentCanvas] :?> Views.RBCFrame) + RBCFrameFromExisting srcImg rbc (canvasCurrentImage.Children.[currentCanvas] :?> Views.RBCFrame) else - let f = RBCFrame rbc + let f = RBCFrame srcImg rbc f.Root.Opacity <- 0.7 canvasCurrentImage.Children.Add(f) |> ignore f @@ -327,8 +324,10 @@ let run (defaultConfig: Config) (fileToOpen: string option) = updateRBCFramesCurrent () updateRBCFramesPreview () + | None -> imgLogos.Visibility <- Visibility.Visible + stackRBC.Children.Clear() canvasCurrentImage.Children.Clear() canvasCurrentImage.Background <- canvasCurrentImageColor @@ -591,4 +590,4 @@ let run (defaultConfig: Config) (fileToOpen: string option) = | Some filepath -> loadFile filepath | None -> () - app.Run() \ No newline at end of file + app.Run()