40 lines
1.2 KiB
Python
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)
|