1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
package withscrollbar
import (
"fmt"
"strings"
"testing"
"github.com/gcla/gowid"
"github.com/gcla/gowid/gwtest"
"github.com/gcla/gowid/widgets/button"
"github.com/gcla/gowid/widgets/list"
"github.com/gcla/gowid/widgets/text"
"github.com/stretchr/testify/assert"
)
type scrollingListBox struct {
*list.Widget
}
func (t *scrollingListBox) Up(lines int, size gowid.IRenderSize, app gowid.IApp) {}
func (t *scrollingListBox) Down(lines int, size gowid.IRenderSize, app gowid.IApp) {}
func (t *scrollingListBox) UpPage(num int, size gowid.IRenderSize, app gowid.IApp) {}
func (t *scrollingListBox) DownPage(num int, size gowid.IRenderSize, app gowid.IApp) {}
func (t *scrollingListBox) ScrollLength() int {
return 8
}
func (t *scrollingListBox) ScrollPosition() int {
return 0
}
func Test1(t *testing.T) {
bws := make([]gowid.IWidget, 8)
for i := 0; i < len(bws); i++ {
bws[i] = button.NewBare(text.New(fmt.Sprintf("%03d", i)))
}
walker := list.NewSimpleListWalker(bws)
lbox := &scrollingListBox{Widget: list.New(walker)}
sbox := New(lbox)
canvas1 := sbox.Render(gowid.MakeRenderBox(4, 8), gowid.NotSelected, gwtest.D)
res := strings.Join([]string{
"000▲",
"001█",
"002 ",
"003 ",
"004 ",
"005 ",
"006 ",
"007▼",
}, "\n")
assert.Equal(t, res, canvas1.String())
sbox = New(lbox, Options{
HideIfContentFits: true,
})
canvas1 = sbox.Render(gowid.MakeRenderBox(4, 8), gowid.NotSelected, gwtest.D)
res = strings.Join([]string{
"000 ",
"001 ",
"002 ",
"003 ",
"004 ",
"005 ",
"006 ",
"007 ",
}, "\n")
assert.Equal(t, res, canvas1.String())
canvas1 = sbox.Render(gowid.MakeRenderBox(4, 5), gowid.NotSelected, gwtest.D)
res = strings.Join([]string{
"000▲",
"001█",
"002 ",
"003 ",
"004▼",
}, "\n")
assert.Equal(t, res, canvas1.String())
}
|