""" - Helper module for ui listbox channels - Author: alexrjs - License: Unlicense """ from flet import Container, GridView, UserControl from flet import border, border_radius, colors class GridEntryVideo(UserControl): """Video grid entry""" def __init__(self, parent, **kwargs): super().__init__(parent, **kwargs) self._id = kwargs['id'] if 'id' in kwargs else None self._name = kwargs['name'] if 'name' in kwargs else None self._selected = kwargs['selected'] if 'selected' in kwargs else None self._onSelect = kwargs['onSelect'] if 'onSelect' in kwargs else None self._label = self.addLabel() self._label.text = self._name self._label.onSelect = self._onSelect if self._selected: self._label.select() def _onSelect(self, sender, args): """On select channel""" self._selected = True def _onDeselect(self, sender, args): """On deselect channel""" self._selected = False class GridViewVideos(UserControl): """Channels listbox""" def __init__(self): super().__init__() self.videosGrid = None def build(self): self.videosGrid = GridView( expand=True, auto_scroll=False, max_extent=450, spacing=5, ) return Container( content=self.videosGrid, border=border.all(color=colors.WHITE, width=1), border_radius=border_radius.all(5), expand=True, )