Commit 399f10cd authored by Barry Warsaw's avatar Barry Warsaw

Lots of good UI working, but not yet update-while-dragging

parent 46670a2d
......@@ -16,8 +16,10 @@ class ListViewer:
#
# create the canvas which holds everything, and its scrollbar
#
canvas = self.__canvas = Canvas(root, width=160, height=300)
self.__scrollbar = Scrollbar(root)
frame = self.__frame = Frame(root)
frame.pack()
canvas = self.__canvas = Canvas(frame, width=160, height=300)
self.__scrollbar = Scrollbar(frame)
self.__scrollbar.pack(fill=Y, side=RIGHT)
canvas.pack(fill=BOTH, expand=1)
canvas.configure(yscrollcommand=(self.__scrollbar, 'set'))
......@@ -43,7 +45,8 @@ class ListViewer:
textend+3, row*20 + 23,
outline='',
tags=(exactcolor,))
canvas.tag_bind(boxid, '<ButtonPress>', self.__onselection)
canvas.bind('<ButtonRelease>', self.__onrelease)
canvas.bind('<Motion>', self.__onmotion)
bboxes.append(boxid)
if textend+3 > widest:
widest = textend+3
......@@ -53,8 +56,16 @@ class ListViewer:
for box in bboxes:
x1, y1, x2, y2 = canvas.coords(box)
canvas.coords(box, x1, y1, widest, y2)
#
# Update while dragging?
#
self.__uwd = BooleanVar()
self.__uwdbtn = Checkbutton(root,
text='Update while dragging',
variable=self.__uwd)
self.__uwdbtn.pack()
def __onselection(self, event=None):
def __onmotion(self, event=None):
canvas = self.__canvas
# find the current box
x = canvas.canvasx(event.x)
......@@ -64,17 +75,12 @@ class ListViewer:
if boxid in self.__bboxes:
break
else:
print 'No box found!'
## print 'No box found!'
return
tags = canvas.gettags(boxid)
for t in tags:
if t[0] == '#':
break
if self.__uwd.get():
self.__onrelease(event)
else:
print 'No color tag found!'
return
red, green, blue = ColorDB.rrggbb_to_triplet(t)
self.__sb.update_views(red, green, blue)
self.__selectbox(boxid)
def __selectbox(self, boxid):
canvas = self.__canvas
......@@ -84,6 +90,18 @@ class ListViewer:
self.__lastbox = boxid
canvas.itemconfigure(boxid, outline='black')
def __onrelease(self, event=None):
if self.__lastbox:
tags = self.__canvas.gettags(self.__lastbox)
for t in tags:
if t[0] == '#':
break
else:
## print 'No color tag found!'
return
red, green, blue = ColorDB.rrggbb_to_triplet(t)
self.__sb.update_views(red, green, blue)
def __quit(self, event=None):
sys.exit(0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment