The theming around List makes slightly more sense

This commit is contained in:
2023-01-30 02:22:16 -05:00
parent 174beba79f
commit 35870951a2
6 changed files with 60 additions and 41 deletions

View File

@@ -366,7 +366,6 @@ func (element *List) updateMinimumSize () {
_, inset := theme.ListPattern(theme.PatternState {
Case: listCase,
})
minimumWidth += inset[1] + inset[3]
minimumHeight += inset[0] + inset[2]
element.core.SetMinimumSize(minimumWidth, minimumHeight)
@@ -387,24 +386,14 @@ func (element *List) draw () {
bounds.Min.X,
bounds.Min.Y - element.scroll,
}
innerCanvas := tomo.Cut(element, bounds)
for index, entry := range element.entries {
entryPosition := dot
dot.Y += entry.Bounds().Dy()
if dot.Y < bounds.Min.Y { continue }
if entryPosition.Y > bounds.Max.Y { break }
if element.selectedEntry == index {
pattern, _ := theme.ItemPattern(theme.PatternState {
Case: listEntryCase,
On: true,
})
artist.FillRectangle (
element,
pattern,
entry.Bounds().Add(entryPosition))
}
entry.Draw (
element, entryPosition,
element.selectedEntry == index && element.Selected())
innerCanvas, entryPosition,
element.Selected(), element.selectedEntry == index)
}
}

View File

@@ -56,11 +56,23 @@ func (entry *ListEntry) Draw (
destination tomo.Canvas,
offset image.Point,
selected bool,
on bool,
) (
updatedRegion image.Rectangle,
) {
pattern, _ := theme.ItemPattern(theme.PatternState {
Case: listEntryCase,
Selected: selected,
On: on,
})
artist.FillRectangle (
destination,
pattern,
entry.Bounds().Add(offset))
foreground, _ := theme.ForegroundPattern (theme.PatternState {
Case: listEntryCase,
Selected: selected,
On: on,
})
return entry.drawer.Draw (
destination,