|
|
|
from model import Translation, Sense, Example
|
|
|
|
from message.simple_messages import ClickMessage
|
|
|
|
|
|
|
|
|
|
|
|
class ShowMenu(ClickMessage):
|
|
|
|
def on_event(self, event):
|
|
|
|
location_x = event.currentTarget.offsetLeft
|
|
|
|
location_y = event.currentTarget.offsetTop + event.currentTarget.offsetHeight
|
|
|
|
self.menu_location = (location_x, location_y)
|
|
|
|
super().on_event(event)
|
|
|
|
|
|
|
|
|
|
|
|
class ShowTranslationMenu(ShowMenu):
|
|
|
|
def update_model(self, model):
|
|
|
|
model.menu_location = self.menu_location
|
|
|
|
model.translation = self.get_arg(0, Translation)
|
|
|
|
model.menu_target = model.translation
|
|
|
|
|
|
|
|
|
|
|
|
class ShowSenseMenu(ShowMenu):
|
|
|
|
def update_model(self, model):
|
|
|
|
model.menu_location = self.menu_location
|
|
|
|
sense = self.get_arg(0, Sense)
|
|
|
|
model.menu_target = sense
|
|
|
|
|
|
|
|
|
|
|
|
class ShowExampleMenu(ShowMenu):
|
|
|
|
def update_model(self, model):
|
|
|
|
model.menu_location = self.menu_location
|
|
|
|
example = self.get_arg(0, Example)
|
|
|
|
model.menu_target = example
|