panda3d/tests/gui/test_DirectScrolledFrame.py
Fireclaw 5d93237386 dgui: fix regression in DirectScrolledFrame (see #699)
Made initialization ignore the setScrollBarWidth function
Respect the length/height of the scrollbar and only change the actual
width in the setScrollBarWidth function
Added a very basic unittest class for the scrolledFrame

Closes #864
2020-02-10 13:17:05 +01:00

37 lines
1.2 KiB
Python

from direct.gui.DirectScrolledFrame import DirectScrolledFrame
import pytest
def test_set_scrollbar_width():
w = 1
frm = DirectScrolledFrame(scrollBarWidth=w)
assert frm['scrollBarWidth'] == 1
assert frm.verticalScroll['frameSize'] == (-w / 2.0, w / 2.0, -1, 1)
assert frm.horizontalScroll['frameSize'] == (-1, 1, -w / 2.0, w / 2.0)
# manual changes to the framesize
frm.verticalScroll['frameSize'] = (-2, 2, -4, 4)
frm.horizontalScroll['frameSize'] = (-4, 4, -2, 2)
assert frm.verticalScroll['frameSize'] == (-2, 2, -4, 4)
assert frm.horizontalScroll['frameSize'] == (-4, 4, -2, 2)
# change scrollbar width to a new value
w = 2
frm['scrollBarWidth'] = w
# check, new value is set correct
assert frm['scrollBarWidth'] == 2
# check if new size is set correct
assert frm.verticalScroll['frameSize'] == (-w / 2.0, w / 2.0, -4, 4)
assert frm.horizontalScroll['frameSize'] == (-4, 4, -w / 2.0, w / 2.0)
def test_set_scrollbar_width_on_init():
frm = DirectScrolledFrame(verticalScroll_frameSize=(-2, 2, -4, 4), horizontalScroll_frameSize=(-4, 4, -2, 2))
assert frm.verticalScroll['frameSize'] == (-2, 2, -4, 4)
assert frm.horizontalScroll['frameSize'] == (-4, 4, -2, 2)