cca
changeset 51:f411a1e0a5cb
corections in mouse handlers
author | is_rusinov |
---|---|
date | Mon, 06 Dec 2010 16:02:35 +0300 |
parents | 94406d1874a2 |
children | 6630f82e4675 |
files | Interface.py |
diffstat | 1 files changed, 21 insertions(+), 20 deletions(-) [+] |
line diff
1.1 --- a/Interface.py Mon Dec 06 12:36:59 2010 +0300 1.2 +++ b/Interface.py Mon Dec 06 16:02:35 2010 +0300 1.3 @@ -13,8 +13,10 @@ 1.4 self.offset_x = offset_x 1.5 self.offset_y = offset_y 1.6 self.after_id = 0 1.7 - self.mouse_x = 0 1.8 - self.mouse_y = 0 1.9 + self.mouse_col=0 1.10 + self.mouse_row=0 1.11 + self.mouse_offset_x = 0 1.12 + self.mouse_offset_y = 0 1.13 self.mouse_zoom = 0 1.14 self.zoom_divisor = 10 1.15 self.is_started = False 1.16 @@ -115,52 +117,52 @@ 1.17 row = (event.y - self.offset_y * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.18 index = (automata.symbols[automata.field[row][column]] + 1) % len(automata.states) 1.19 automata.field[row][column] = automata.states[index].symbol 1.20 - self.draw() 1.21 + self.draw_cell(tuple([column, row])) 1.22 1.23 def motion1(self, event):# drawer 1.24 column = (event.x - self.offset_x * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.25 row = (event.y - self.offset_y * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.26 index = (automata.symbols[automata.field[row][column]] + 1) % len(automata.states) 1.27 automata.field[row][column] = automata.states[index].symbol 1.28 - self.draw() 1.29 + self.draw_cell(tuple([column, row])) 1.30 1.31 def press3(self, event):# drawer 1.32 column = (event.x - self.offset_x * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.33 row = (event.y - self.offset_y * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.34 index = (automata.symbols[automata.field[row][column]] + len(automata.states) - 1) % len(automata.states) 1.35 automata.field[row][column] = automata.states[index].symbol 1.36 - self.draw() 1.37 + self.draw_cell(tuple([column, row])) 1.38 1.39 def motion3(self, event):# drawer 1.40 column = (event.x - self.offset_x * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.41 row = (event.y - self.offset_y * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.42 index = (automata.symbols[automata.field[row][column]] + len(automata.states) - 1) % len(automata.states) 1.43 automata.field[row][column] = automata.states[index].symbol 1.44 - self.draw() 1.45 + self.draw_cell(tuple([column, row])) 1.46 1.47 def press1_key(self, event):# drawer 1.48 if keys.has_key(event.char): 1.49 column = (event.x - self.offset_x * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.50 row = (event.y - self.offset_y * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.51 automata.field[row][column] = automata.states[keys[event.char]].symbol 1.52 - self.draw() 1.53 + self.draw_cell(tuple([column, row])) 1.54 1.55 def motion1_key(self, event):# drawer 1.56 if keys.has_key(event.char): 1.57 column = (event.x - self.offset_x * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.58 row = (event.y - self.offset_y * (self.cell_size + self.line_width)) / (self.cell_size + self.line_width) 1.59 automata.field[row][column] = automata.states[keys[event.char]].symbol 1.60 - self.draw() 1.61 + self.draw_cell(tuple([column, row])) 1.62 1.63 def press1_ctrl(self, event):# change_offset (B1+ctrl) 1.64 - self.mouse_x = event.x 1.65 - self.mouse_y = event.y 1.66 + self.mouse_offset_x = event.x 1.67 + self.mouse_offset_y = event.y 1.68 1.69 def motion1_ctrl(self, event):# change_offset (B1+ctrl) 1.70 - self.offset_x = (event.x - self.mouse_x) / (self.cell_size + self.line_width) 1.71 - self.offset_y = (event.y - self.mouse_y) / (self.cell_size + self.line_width) 1.72 - self.mouse_x = event.x 1.73 - self.mouse_y = event.y 1.74 + self.offset_x = (event.x - self.mouse_offset_x) / (self.cell_size + self.line_width) 1.75 + self.offset_y = (event.y - self.mouse_offset_y) / (self.cell_size + self.line_width) 1.76 + self.mouse_offset_x = event.x 1.77 + self.mouse_offset_y = event.y 1.78 self.draw() 1.79 1.80 def press13(self, event):# zoom 1.81 @@ -180,35 +182,34 @@ 1.82 automata_frame.pack(side="right", fill="y", expand="no", before=canvas) 1.83 1.84 def to_top(self):# replace choosen state to top 1.85 - index = automata.symbols.get(state_list.get("active").split()[1]) 1.86 + index = automata.symbols.get(state_list.get("active").split()[0]) 1.87 state = automata.states[index] 1.88 del automata.states[index] 1.89 automata.states.insert(0, state) 1.90 1.91 def to_bottom(self):# replace choosen state to botton 1.92 - index = automata.symbols.get(state_list.get("active").split()[1]) 1.93 + index = automata.symbols.get(state_list.get("active").split()[0]) 1.94 state = automata.states[index] 1.95 del automata.states[index] 1.96 automata.states.append(state) 1.97 1.98 def upwards(self): 1.99 - index = automata.symbols.get(state_list.get("active").split()[1]) 1.100 + index = automata.symbols.get(state_list.get("active").split()[0]) 1.101 state = automata.states[index] 1.102 del automata.states[index] 1.103 automata.states.insert(index - 1, state) 1.104 1.105 def downwards(self): 1.106 - index = automata.symbols.get(state_list.get("active").split()[1]) 1.107 + index = automata.symbols.get(state_list.get("active").split()[0]) 1.108 state = automata.states[index] 1.109 del automata.states[index] 1.110 automata.states.insert(index + 1, state) 1.111 1.112 def delete_state(self):# delete choosen state 1.113 - index = automata.symbols.get(state_list.get("active").split()[1]) 1.114 + index = automata.symbols.get(state_list.get("active").split()[0]) 1.115 del automata.states[index] 1.116 1.117 def add(self):# add new state 1.118 - pass 1.119 name = state_name.get() 1.120 symbol = state_symbol.get() 1.121 key = lower(state_key.get())