Skip to content

Commit 85e6965

Browse files
committed
Fixed toggle b/w hex and decimal
1 parent d344165 commit 85e6965

1 file changed

Lines changed: 21 additions & 4 deletions

File tree

Tools/pynche/TypeinViewer.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,24 @@ def __init__(self, switchboard, parent=None):
3939
# Hex/Dec
4040
self.__hex = Checkbutton(self.__frame,
4141
text='Hexadecimal',
42-
variable=self.__hexp)
42+
variable=self.__hexp,
43+
command=self.__togglehex)
4344
self.__hex.grid(row=4, column=0, columnspan=2, sticky=W)
4445

46+
def __togglehex(self, event=None):
47+
rstr = self.__x.get()
48+
gstr = self.__y.get()
49+
bstr = self.__z.get()
50+
if self.__hexp.get():
51+
# it was decimal and is now hex
52+
apply(self.update_yourself, tuple(map(int, (rstr, gstr, bstr))))
53+
else:
54+
# it was hex and is now decimal
55+
red = string.atoi(rstr, 16)
56+
green = string.atoi(gstr, 16)
57+
blue = string.atoi(bstr, 16)
58+
self.update_yourself(red, green, blue)
59+
4560
def __normalize(self, event=None):
4661
ew = event.widget
4762
contents = ew.get()
@@ -55,9 +70,11 @@ def __normalize(self, event=None):
5570
v = string.atoi(contents)
5671
except ValueError:
5772
v = None
58-
# if value is not legal, delete the last character and ring the bell
73+
# if value is not legal, delete the last character inserted and ring
74+
# the bell
5975
if v is None or v < 0 or v > 255:
60-
contents = contents[:-1]
76+
i = ew.index(INSERT)
77+
contents = contents[:i-1] + contents[i:]
6178
ew.bell()
6279
elif self.__hexp.get():
6380
contents = hex(v)
@@ -86,7 +103,7 @@ def update_yourself(self, red, green, blue):
86103
if self.__hexp.get():
87104
redstr, greenstr, bluestr = map(hex, (red, green, blue))
88105
else:
89-
redstr, greenstr, bluestr = map(int, (red, green, blue))
106+
redstr, greenstr, bluestr = red, green, blue
90107
self.__x.delete(0, END)
91108
self.__y.delete(0, END)
92109
self.__z.delete(0, END)

0 commit comments

Comments
 (0)