split mainLoop up into eventHandler and draw functions
This commit is contained in:
@@ -22,6 +22,7 @@ description: Please see the README on GitHub at <https://github.com/jlam
|
|||||||
dependencies:
|
dependencies:
|
||||||
- base >= 4.7 && < 5
|
- base >= 4.7 && < 5
|
||||||
- aeson >= 1.4.4.0 && < 1.5
|
- aeson >= 1.4.4.0 && < 1.5
|
||||||
|
- extra >= 1.6.17 && < 1.7
|
||||||
- microlens-th >= 0.4.2.3 && < 0.5
|
- microlens-th >= 0.4.2.3 && < 0.5
|
||||||
- ncurses >= 0.2.16 && < 0.3
|
- ncurses >= 0.2.16 && < 0.3
|
||||||
- raw-strings-qq >= 1.1 && < 1.2
|
- raw-strings-qq >= 1.1 && < 1.2
|
||||||
|
|||||||
@@ -21,10 +21,15 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
module Mtlstats (initState, mainLoop) where
|
module Mtlstats (initState, mainLoop) where
|
||||||
|
|
||||||
import Control.Monad.Trans.State (StateT)
|
import Control.Monad.Extra (whenM)
|
||||||
|
import Control.Monad.Trans.Class (lift)
|
||||||
|
import Control.Monad.Trans.State (StateT, get)
|
||||||
|
import Data.Maybe (fromJust)
|
||||||
import qualified UI.NCurses as C
|
import qualified UI.NCurses as C
|
||||||
|
|
||||||
|
import Mtlstats.Events
|
||||||
import Mtlstats.Types
|
import Mtlstats.Types
|
||||||
|
import Mtlstats.UI
|
||||||
|
|
||||||
-- | Initializes the progran
|
-- | Initializes the progran
|
||||||
initState :: C.Curses ProgState
|
initState :: C.Curses ProgState
|
||||||
@@ -32,4 +37,8 @@ initState = return newProgState
|
|||||||
|
|
||||||
-- | Main program loop
|
-- | Main program loop
|
||||||
mainLoop :: StateT ProgState C.Curses ()
|
mainLoop :: StateT ProgState C.Curses ()
|
||||||
mainLoop = return ()
|
mainLoop = do
|
||||||
|
get >>= lift . draw
|
||||||
|
w <- lift C.defaultWindow
|
||||||
|
whenM (lift (fromJust <$> C.getEvent w Nothing) >>= handleEvent)
|
||||||
|
mainLoop
|
||||||
|
|||||||
34
src/Mtlstats/Events.hs
Normal file
34
src/Mtlstats/Events.hs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{- |
|
||||||
|
|
||||||
|
mtlstats
|
||||||
|
Copyright (C) 2019 Rhéal Lamothe
|
||||||
|
<rheal.lamothe@gmail.com>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or (at
|
||||||
|
your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
-}
|
||||||
|
|
||||||
|
module Mtlstats.Events (handleEvent) where
|
||||||
|
|
||||||
|
import Control.Monad.Trans.State (StateT)
|
||||||
|
import qualified UI.NCurses as C
|
||||||
|
|
||||||
|
import Mtlstats.Types
|
||||||
|
|
||||||
|
-- | Event handler
|
||||||
|
handleEvent
|
||||||
|
:: C.Event
|
||||||
|
-- ^ The even being handled
|
||||||
|
-> StateT ProgState C.Curses Bool
|
||||||
|
handleEvent _ = return False
|
||||||
30
src/Mtlstats/UI.hs
Normal file
30
src/Mtlstats/UI.hs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{- |
|
||||||
|
|
||||||
|
mtlstats
|
||||||
|
Copyright (C) 2019 Rhéal Lamothe
|
||||||
|
<rheal.lamothe@gmail.com>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or (at
|
||||||
|
your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
-}
|
||||||
|
|
||||||
|
module Mtlstats.UI (draw) where
|
||||||
|
|
||||||
|
import qualified UI.NCurses as C
|
||||||
|
|
||||||
|
import Mtlstats.Types
|
||||||
|
|
||||||
|
-- | Drawing function
|
||||||
|
draw :: ProgState -> C.Curses ()
|
||||||
|
draw _ = return ()
|
||||||
Reference in New Issue
Block a user