You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lexonomy_custom_editor/src/update.py

40 lines
955 B

import lib.screenful as screenful
class Update:
def __init__(self):
self.message_queue = []
self.model = None
self.view = None
def update_model(self):
# any update resets menu_location, except if it explicitly defines it
for msg in self.message_queue:
if msg.reset():
self.model.reset()
break
for msg in self.message_queue:
if msg.data_change():
screenful.changed()
for msg in self.message_queue:
msg.update_model(self.model)
self.message_queue = []
self.view.view(self.model)
def schedule(self, msg):
self.message_queue.append(msg)
# for now, directly clearing message queue
self.update_model()
def set_model(self, model):
self.model = model
def set_view(self, view):
self.view = view
update = Update()