blob: 6c9cbc32f4a79a6bec33e43e3e734f07f993a3ec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
module TextViewport.Render.RenderItem where
import TextViewport.Buffer.Item (Item(..))
import TextViewport.Render.CachedRender
import TextViewport.Render.RenderedItem
import TextViewport.Render.Segmentation (applyStrategy)
renderItem :: Int -> Int -> Item -> Maybe CachedRender -> CachedRender
renderItem width itemIx (Item txt strategy) mOld =
case mOld of
Just old
| crWidth old == width
, crText old == txt
-> old
_ ->
let linesV = applyStrategy strategy width itemIx txt
rendered = RenderedItem linesV
in CachedRender
{ crWidth = width
, crStrategy = strategy
, crText = txt
, crRendered = rendered
}
|