keera-posture-0.2.2: src/Controller/Conditions/Precalibration.hs
-- | Controls the behaviour of the precalibration step in the calibration
-- assistant
module Controller.Conditions.Precalibration where
import Control.Monad
import Data.ReactiveValue
import Graphics.UI.Gtk.Reactive
import CombinedEnvironment
import Controller.Conditions.Calibration
import Paths
import I18N.Strings
-- | Detects when the window is closed or its button is depressed
installHandlers :: CEnv -> IO()
installHandlers cenv = void $ do
let ui = mainWindowBuilder $ view cenv
-- Precalibration widgets
preWin <- precalibrationWindow ui
btn <- precalibrationOkBtn ui
-- Calibration widgets
calWin <- calibrationWindow ui
-- Signal that triggers changes
let precalibrationNext = lMerge (windowCloseReactive preWin)
(buttonActivateField btn)
-- Hide the precalibration window
precalibrationNext =:> constW False (widgetVisibleReactive preWin)
-- Show the calibration window
precalibrationNext =:> constW True (widgetVisibleReactive calWin)
btnCls <- calibrationCloseBtn ui
btnCal <- calibrationRecalibrateBtn ui
let btnClsSensitive = widgetSensitiveReactive btnCls
btnCalSensitive = widgetSensitiveReactive btnCal
lblT <- calibrationTitleLbl ui
lblE <- calibrationExplanationLbl ui
calImg <- calibrationImage ui
fn <- getDataFileName "calibration-preview.png"
precalibrationNext =:>
( (constW False (btnClsSensitive &.& btnCalSensitive))
&.& (constW title1 (labelTextReactive lblT))
&.& (constW explanation1 (labelTextReactive lblE))
&.& (constW fn (imageFileReactive calImg))
&.& (wrapDo_ (calibrate cenv))
)
-- import Graphics.UI.Gtk
---- | Hides the dialog when necessary, and shows the next step
--condition :: CEnv -> IO()
--condition cenv = onViewAsync $ do
-- let ui = mainWindowBuilder $ view cenv
--
-- -- -- Hide precalibration window
-- -- preWin <- precalibrationWindow ui
-- -- widgetHide preWin
--
-- -- -- Show calibration window
-- -- calWin <- calibrationWindow ui
-- -- widgetShowAll calWin
--
-- -- -- Disable buttons
-- -- btn1 <- calibrationCloseBtn ui
-- -- btn2 <- calibrationRecalibrateBtn ui
--
-- -- widgetSetSensitive btn1 False
-- -- widgetSetSensitive btn2 False
--
-- -- Readjust title, explanation and image
-- lblT <- calibrationTitleLbl ui
-- reactiveValueWrite (labelTextReactive lblT) title1
--
-- lblE <- calibrationExplanationLbl ui
-- reactiveValueWrite (labelTextReactive lblE) title1
--
-- calImg <- calibrationImage ui
-- fn <- getDataFileName "calibration-preview.png"
-- reactiveValueWrite (imageFileReactive calImg) fn
--
-- -- Run calibration
-- calibrate cenv
--