module Chiasma.Data.WindowState(
  WindowState(..),
) where

import qualified Chiasma.Codec.Data as Codec (Window, Pane)
import Chiasma.Data.Ident (Ident)
import Chiasma.Data.TmuxId (PaneId)
import Chiasma.Ui.Data.RenderableTree (RenderableTree)

data WindowState =
  WindowState {
    WindowState -> Window
wsNativeWindow :: Codec.Window,
    WindowState -> Pane
wsNativeRefPane :: Codec.Pane,
    WindowState -> Ident
wsWindowIdent :: Ident,
    WindowState -> RenderableTree
wsLayout :: RenderableTree,
    WindowState -> PaneId
wsReferencePane :: PaneId
  }
  deriving (WindowState -> WindowState -> Bool
(WindowState -> WindowState -> Bool)
-> (WindowState -> WindowState -> Bool) -> Eq WindowState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WindowState -> WindowState -> Bool
$c/= :: WindowState -> WindowState -> Bool
== :: WindowState -> WindowState -> Bool
$c== :: WindowState -> WindowState -> Bool
Eq, Int -> WindowState -> ShowS
[WindowState] -> ShowS
WindowState -> String
(Int -> WindowState -> ShowS)
-> (WindowState -> String)
-> ([WindowState] -> ShowS)
-> Show WindowState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WindowState] -> ShowS
$cshowList :: [WindowState] -> ShowS
show :: WindowState -> String
$cshow :: WindowState -> String
showsPrec :: Int -> WindowState -> ShowS
$cshowsPrec :: Int -> WindowState -> ShowS
Show)