@@ -69,13 +69,16 @@ picForLayers is = Picture
70-- todo: The Cursor can be given a (character,row) offset outside of the visible bounds of the
70-- todo: The Cursor can be given a (character,row) offset outside of the visible bounds of the
71-- output region. In this case the cursor will not be shown.
71-- output region. In this case the cursor will not be shown.
72−data Cursor =
72+data Cursor =
75+ -- | Show the cursor at the given logical column accounting for char width and row
74− | Cursor Int Int
76+ | Cursor !Int !Int
77+ -- | Show the cursor at the given absolute terminal column and row
78+ | AbsoluteCursor !Int !Int
76instance NFData Cursor where
80instance NFData Cursor where
77− rnf NoCursor = ()
81+ rnf c = c `seq` ()
78− rnf (Cursor w h) = w `seq` h `seq` ()
80-- | A 'Picture' has a background pattern. The background is either ClearBackground. Which shows the
83-- | A 'Picture' has a background pattern. The background is either ClearBackground. Which shows the
81-- layer below or is blank if the bottom layer. Or the background pattern is a character and a
84-- layer below or is blank if the bottom layer. Or the background pattern is a character and a
@@ -85,11 +88,11 @@ instance NFData Cursor where
85-- \todo The current attribute is always set to the default attributes at the start of updating the
88-- \todo The current attribute is always set to the default attributes at the start of updating the
86-- screen to a picture.
89-- screen to a picture.
87data Background
90data Background
88− = Background
91+ = Background
89 { backgroundChar :: Char
92 { backgroundChar :: Char
90 , backgroundAttr :: Attr
93 , backgroundAttr :: Attr
92− -- | A ClearBackground is:
95+ -- | A ClearBackground is:
94 -- * the space character if there are remaining non-skip ops
97 -- * the space character if there are remaining non-skip ops