Set reference for relative position
This commit is contained in:
parent
fc50782116
commit
b4fbc7c7e2
11
painter.py
11
painter.py
@ -29,6 +29,9 @@ class Painter(Widget):
|
||||
# relative position of mouse when moving
|
||||
self.offset=Point(0,0)
|
||||
|
||||
# reference particle from which positions should be computed
|
||||
self.reference=None
|
||||
|
||||
# app is used to share information between widgets
|
||||
self.app=app
|
||||
|
||||
@ -130,6 +133,14 @@ class Painter(Widget):
|
||||
# reset
|
||||
self.set_zoom(1)
|
||||
|
||||
# set reference
|
||||
elif text=="r":
|
||||
if len(self.selected)>0:
|
||||
self.reference=self.selected[0]
|
||||
else:
|
||||
self.reference=None
|
||||
self.app.status_bar.draw()
|
||||
|
||||
def on_key_up(self, keyboard, keycode):
|
||||
if keycode[1]=="shift":
|
||||
if 's' in self.modifiers:
|
||||
|
@ -44,7 +44,10 @@ class Status_bar(Label):
|
||||
# number of spaces to align right (use 13 characters to print position)
|
||||
spaces=int(self.width/self.char_width)-len(self.raw_text)-13
|
||||
if spaces>0:
|
||||
self.raw_text+=" "*spaces+"({:05.2f},{:05.2f})\n".format(self.app.painter.selected[0].squares[0].pos.x,self.app.painter.selected[0].squares[0].pos.y)
|
||||
if self.app.painter.reference==None:
|
||||
self.raw_text+=" "*spaces+"({:05.2f},{:05.2f})\n".format(self.app.painter.selected[0].squares[0].pos.x,self.app.painter.selected[0].squares[0].pos.y)
|
||||
else:
|
||||
self.raw_text+=" "*spaces+"({:05.2f},{:05.2f})\n".format(self.app.painter.selected[0].squares[0].pos.x-self.app.painter.reference.squares[0].pos.x,self.app.painter.selected[0].squares[0].pos.y-self.app.painter.reference.squares[0].pos.y)
|
||||
|
||||
# do not wrap
|
||||
self.text=self.raw_text[:min(len(self.raw_text),int(self.width/self.char_width))]
|
||||
|
Loading…
Reference in New Issue
Block a user