Files
katrain-qt/katrain/gui/kivy_adapter.py
T

40 lines
1.2 KiB
Python

"""Kivy implementations of framework-neutral core notifications."""
from kivy.clock import Clock
class KivyEventSink:
def __init__(self, katrain):
self.katrain = katrain
def status(self, message, priority, node=None):
def update(_dt):
if self.katrain.controls:
self.katrain.controls.set_status(message, priority, at_node=node)
Clock.schedule_once(update, -1)
def state_changed(self, redraw_board=False):
self.katrain.update_state(redraw_board=redraw_board)
def engine_failure(self, message, code, engine_type):
Clock.schedule_once(
lambda _dt: self.katrain._do_engine_recovery_popup(message, code, engine_type),
-1,
)
def insert_mode_changed(self, insert_node):
def update(_dt):
move_tree = self.katrain.controls.move_tree
move_tree.insert_node = insert_node
move_tree.redraw()
Clock.schedule_once(update, -1)
def move_tree_changed(self):
Clock.schedule_once(lambda _dt: self.katrain.controls.move_tree.redraw_tree_trigger(), -1)
def contribution_game_changed(self, game):
self.katrain.game = game
self.state_changed(redraw_board=True)