Update FixedLayout. Add demo launcher.
from .layout import Layout
from tuikit.core.coords import Point
class OffsetLayout(Layout):
"""Offsets widget position. Used by Viewport and ScrollView."""
def __init__(self):
Layout.__init__(self)
self._offset = Point()
self._widget_pos = {}
@property
def offset(self):
"""Offset of child widgets."""
return self._offset
def add(self, widget, x=0, y=0):
Layout.add(self, widget)
self._widget_pos[widget] = (x, y)
def update(self, _w, _h):
for widget in self._managed_widgets:
widget.resize(*widget.sizereq)
widget.pos.update(*(self.offset + self._widget_pos[widget]))