{-# LANGUAGE TemplateHaskell #-}
module Termonad.Lenses where
import Control.Lens (makeLensesFor, makePrisms)
import Termonad.Types
$(makeLensesFor
[ ("term", "lensTerm")
, ("pid", "lensPid")
, ("unique", "lensUnique")
]
''TMTerm
)
$(makeLensesFor
[ ("tmNotebookTabTermContainer", "lensTMNotebookTabTermContainer")
, ("tmNotebookTabTerm", "lensTMNotebookTabTerm")
, ("tmNotebookTabLabel", "lensTMNotebookTabLabel")
]
''TMNotebookTab
)
$(makeLensesFor
[ ("tmNotebook", "lensTMNotebook")
, ("tmNotebookTabs", "lensTMNotebookTabs")
]
''TMNotebook
)
$(makeLensesFor
[ ("tmStateApp", "lensTMStateApp")
, ("tmStateAppWin", "lensTMStateAppWin")
, ("tmStateNotebook", "lensTMStateNotebook")
, ("tmStateFontDesc", "lensTMStateFontDesc")
, ("tmStateConfig", "lensTMStateConfig")
, ("tmStateUserReqExit", "lensTMStateUserReqExit")
]
''TMState'
)
$(makePrisms ''FontSize)
$(makeLensesFor
[ ("fontFamily", "lensFontFamily")
, ("fontSize", "lensFontSize")
]
''FontConfig
)
$(
)
$(makeLensesFor
[ ("createTermHook", "lensCreateTermHook")
]
''ConfigHooks
)
$(makeLensesFor
[ ("options", "lensOptions")
, ("hooks", "lensHooks")
]
''TMConfig
)