Source code for editortools.nudgebutton

#-# Modified by D.C.-G. for translation purpose
from albow import Label
from albow.translate import _
from config import config
from glbackground import GLBackground
import pygame


[docs]class NudgeButton(GLBackground): """ A button that captures movement keys while pressed and sends them to a listener as nudge events. Poorly planned. """ is_gl_container = True def __init__(self, editor): GLBackground.__init__(self) nudgeLabel = Label("Nudge", margin=8) self.editor = editor self.add(nudgeLabel) self.shrink_wrap() self.root = self.get_root() # tooltipBacking = Panel() # tooltipBacking.bg_color = (0, 0, 0, 0.6) keys = [_(config.keys[config.convert(k)].get()) for k in ("forward", "back", "left", "right", "up", "down", "fast nudge")] if config.keys[config.convert("fast nudge")].get() == "None": keys[6] = _("Right mouse") nudgeLabel.tooltipText = _("Click and hold. While holding, use the movement keys ({0}/{1}/{2}/{3}/{4}/{5}) to nudge. Left mouse to nudge a block.\n{6} to nudge a greater distance.").format( *keys) # tooltipBacking.shrink_wrap()
[docs] def mouse_down(self, event): self.root.notMove = True self.root.nudge = self self.focus() if event.button == 3 and config.keys.fastNudge.get() == "None": self.editor.rightClickNudge = True
[docs] def mouse_up(self, event): self.root.notMove = False self.root.nudge = None if event.button == 3 and config.keys.fastNudge.get() == "None": self.editor.rightClickNudge = False self.editor.turn_off_focus() if event.button == 1: self.editor.turn_off_focus()
[docs] def key_down(self, evt): if not pygame.key.get_focused(): return keyname = evt.dict.get('keyname', None) or self.root.getKey(evt) if keyname == config.keys.fastNudge.get(): self.editor.rightClickNudge = True
[docs] def key_up(self, evt): keyname = evt.dict.get('keyname', None) or self.root.getKey(evt) if keyname == config.keys.fastNudge.get(): self.editor.rightClickNudge = False