Scroll containers yay
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
package main
|
||||
|
||||
import "image"
|
||||
// import "image"
|
||||
import "git.tebibyte.media/sashakoshka/tomo"
|
||||
import "git.tebibyte.media/sashakoshka/tomo/layouts"
|
||||
import "git.tebibyte.media/sashakoshka/tomo/elements"
|
||||
import _ "git.tebibyte.media/sashakoshka/tomo/backends/all"
|
||||
import "git.tebibyte.media/sashakoshka/tomo/elements/containers"
|
||||
@@ -14,58 +13,56 @@ func main () {
|
||||
func run () {
|
||||
window, _ := tomo.NewWindow(tomo.Bounds(0, 0, 360, 240))
|
||||
window.SetTitle("Scroll")
|
||||
container := containers.NewContainer(layouts.Vertical { true, true })
|
||||
container := containers.NewVBox(true, true)
|
||||
window.Adopt(container)
|
||||
|
||||
textBox := elements.NewTextBox("", copypasta)
|
||||
scrollContainer := containers.NewScrollContainer(true, false)
|
||||
scrollContainer := containers.NewScroll(true, false)
|
||||
|
||||
disconnectedContainer := containers.NewContainer (layouts.Horizontal {
|
||||
Gap: true,
|
||||
})
|
||||
list := elements.NewList (
|
||||
elements.NewListEntry("This is list item 0", nil),
|
||||
elements.NewListEntry("This is list item 1", nil),
|
||||
elements.NewListEntry("This is list item 2", nil),
|
||||
elements.NewListEntry("This is list item 3", nil),
|
||||
elements.NewListEntry("This is list item 4", nil),
|
||||
elements.NewListEntry("This is list item 5", nil),
|
||||
elements.NewListEntry("This is list item 6", nil),
|
||||
elements.NewListEntry("This is list item 7", nil),
|
||||
elements.NewListEntry("This is list item 8", nil),
|
||||
elements.NewListEntry("This is list item 9", nil),
|
||||
elements.NewListEntry("This is list item 10", nil),
|
||||
elements.NewListEntry("This is list item 11", nil),
|
||||
elements.NewListEntry("This is list item 12", nil),
|
||||
elements.NewListEntry("This is list item 13", nil),
|
||||
elements.NewListEntry("This is list item 14", nil),
|
||||
elements.NewListEntry("This is list item 15", nil),
|
||||
elements.NewListEntry("This is list item 16", nil),
|
||||
elements.NewListEntry("This is list item 17", nil),
|
||||
elements.NewListEntry("This is list item 18", nil),
|
||||
elements.NewListEntry("This is list item 19", nil),
|
||||
elements.NewListEntry("This is list item 20", nil))
|
||||
list.Collapse(0, 32)
|
||||
scrollBar := elements.NewScrollBar(true)
|
||||
list.OnScrollBoundsChange (func () {
|
||||
scrollBar.SetBounds (
|
||||
list.ScrollContentBounds(),
|
||||
list.ScrollViewportBounds())
|
||||
})
|
||||
scrollBar.OnScroll (func (viewport image.Point) {
|
||||
list.ScrollTo(viewport)
|
||||
})
|
||||
disconnectedContainer := containers.NewHBox(false, true)
|
||||
// list := elements.NewList (
|
||||
// elements.NewListEntry("This is list item 0", nil),
|
||||
// elements.NewListEntry("This is list item 1", nil),
|
||||
// elements.NewListEntry("This is list item 2", nil),
|
||||
// elements.NewListEntry("This is list item 3", nil),
|
||||
// elements.NewListEntry("This is list item 4", nil),
|
||||
// elements.NewListEntry("This is list item 5", nil),
|
||||
// elements.NewListEntry("This is list item 6", nil),
|
||||
// elements.NewListEntry("This is list item 7", nil),
|
||||
// elements.NewListEntry("This is list item 8", nil),
|
||||
// elements.NewListEntry("This is list item 9", nil),
|
||||
// elements.NewListEntry("This is list item 10", nil),
|
||||
// elements.NewListEntry("This is list item 11", nil),
|
||||
// elements.NewListEntry("This is list item 12", nil),
|
||||
// elements.NewListEntry("This is list item 13", nil),
|
||||
// elements.NewListEntry("This is list item 14", nil),
|
||||
// elements.NewListEntry("This is list item 15", nil),
|
||||
// elements.NewListEntry("This is list item 16", nil),
|
||||
// elements.NewListEntry("This is list item 17", nil),
|
||||
// elements.NewListEntry("This is list item 18", nil),
|
||||
// elements.NewListEntry("This is list item 19", nil),
|
||||
// elements.NewListEntry("This is list item 20", nil))
|
||||
// list.Collapse(0, 32)
|
||||
// scrollBar := elements.NewScrollBar(true)
|
||||
// list.OnScrollBoundsChange (func () {
|
||||
// scrollBar.SetBounds (
|
||||
// list.ScrollContentBounds(),
|
||||
// list.ScrollViewportBounds())
|
||||
// })
|
||||
// scrollBar.OnScroll (func (viewport image.Point) {
|
||||
// list.ScrollTo(viewport)
|
||||
// })
|
||||
|
||||
scrollContainer.Adopt(textBox)
|
||||
container.Adopt(elements.NewLabel("A ScrollContainer:", false), false)
|
||||
container.Adopt(scrollContainer, false)
|
||||
disconnectedContainer.Adopt(list, false)
|
||||
// disconnectedContainer.Adopt(list, false)
|
||||
disconnectedContainer.Adopt (elements.NewLabel (
|
||||
"Notice how the scroll bar to the right can be used to " +
|
||||
"control the list, despite not even touching it. It is " +
|
||||
"indeed a thing you can do. It is also terrible UI design so " +
|
||||
"don't do it.", true), true)
|
||||
disconnectedContainer.Adopt(scrollBar, false)
|
||||
// disconnectedContainer.Adopt(scrollBar, false)
|
||||
container.Adopt(disconnectedContainer, true)
|
||||
|
||||
window.OnClose(tomo.Stop)
|
||||
|
||||
Reference in New Issue
Block a user