native-ui/native_ui/abstract/button.py

32 lines
970 B
Python

from . import Abstract, abstract_property
from typing import Callable
class Button(Abstract):
def __init__(self,
label: str = None,
pressed: Callable = lambda *args, **kwargs: None,
pressed_args: list = None,
pressed_kwargs: dict = None,
platform: str = None):
super().__init__(platform=platform)
self._label = label
self._pressed = pressed
if pressed_args is None:
pressed_args = []
if pressed_kwargs is None:
pressed_kwargs = {}
self.pressed_args = pressed_args
self.pressed_kwargs = pressed_kwargs
@abstract_property
def label(self, value):
self._label = value
@abstract_property
def pressed(self, value):
self._pressed = value
def press(self, *args, **kwargs):
self.call("pressed", self, *args, *self.pressed_args, **kwargs, **self.pressed_kwargs)