Changes in Interface.py [15:b9d58d90c534:13:556e04a9a417]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Interface.py
r15 r13 ˆà 1 1 from Tkinter import *ˆà 2 2 ˆà 3 ˆà from State import *ˆà4 ˆà from Automata import *ˆà5 ˆà ˆà6 ˆà ˆà7 3 class Handlers(object):ˆà 8 4 ˆà 9 ˆà def __init__(self, cell_size=5, line_width=1 ,delay=10, offset_x=0, offset_y=0):# cell_size is size of cell, including line width, if there is itˆàˆà 5 def __init__(self, cell_size=5, delay=10, offset_x=0, offset_y=0):# cell_size is size of cell, including line width, if there is itˆà 10 6 self.cell_size = cell_sizeˆà 11 ˆà self.line_width = line_widthˆà12 7 self.delay = delayˆà 13 8 self.offset_x = offset_xˆà 14 9 self.offset_y = offset_yˆà 15 10 self.after_id = 0ˆà 16 ˆà self.mouse_x = 0ˆà17 ˆà self.mouse_y = 0ˆà18 ˆà self.mouse_zoom = 0ˆà19 ˆà self.zoom_divisor = 10ˆà20 11 self.is_started = Falseˆà 21 ˆà self.keys = dict()ˆàˆà 12 ˆà 22 13 def start(self):ˆà 23 14 if not self.is_started:ˆà òÀæ òÀæ ˆà 43 34 passˆà 44 35 ˆà 45 ˆà def close_help_window ():ˆàˆà 36 def close_help_windowˆà 46 37 passˆà 47 38 ˆà òÀæ òÀæ ˆà 72 63 automata.change_size(dx / 2, 3)ˆà 73 64 automata.change_size(dx - dx / 2, 1)ˆà 74 ˆà else :ˆàˆà 65 else ˆà 75 66 automata.change_size(dx, 1)ˆà 76 67 if position == 0 or position == 1 or position == 2:ˆà òÀæ òÀæ ˆà 79 70 automata.change_size(dy / 2, 0)ˆà 80 71 automata.change_size(dy - dy / 2, 2)ˆà 81 ˆà else :ˆàˆà 72 else ˆà 82 73 automata.change_size(dy, 2)ˆà 83 74 self.draw()ˆà òÀæ òÀæ ˆà 87 78 ˆà 88 79 def press1(self, event):# drawerˆà 89 ˆà column = (event.x - self.offset_x) / (self.cell_size + self.line_width)ˆà 90 ˆà row = (event.y - self.offset_y) / (self.cell_size + self.line_width)ˆà 91 ˆà index = (automata.symbols[automata.field[row][column]] + 1) % len(automata.states)ˆà 92 ˆà automata.field[row][column] = automata.states[index].symbolˆà 93 ˆà self.draw()ˆà ˆà 80 passˆà 94 81 ˆà 95 82 def motion1(self, event):# drawerˆà 96 ˆà column = (event.x - self.offset_x) / (self.cell_size + self.line_width)ˆà 97 ˆà row = (event.y - self.offset_y) / (self.cell_size + self.line_width)ˆà 98 ˆà index = (automata.symbols[automata.field[row][column]] + 1) % len(automata.states)ˆà 99 ˆà automata.field[row][column] = automata.states[index].symbolˆà 100 ˆà self.draw()ˆà ˆà 83 passˆà 101 84 ˆà 102 85 def press3(self, event):# drawerˆà 103 ˆà column = (event.x - self.offset_x) / (self.cell_size + self.line_width)ˆà 104 ˆà row = (event.y - self.offset_y) / (self.cell_size + self.line_width)ˆà 105 ˆà index = (automata.symbols[automata.field[row][column]] + len(automata.states) - 1) % len(automata.states)ˆà 106 ˆà automata.field[row][column] = automata.states[index].symbolˆà 107 ˆà self.draw()ˆà ˆà 86 passˆà 108 87 ˆà 109 88 def motion3(self, event):# drawerˆà 110 ˆà column = (event.x - self.offset_x) / (self.cell_size + self.line_width)ˆà 111 ˆà row = (event.y - self.offset_y) / (self.cell_size + self.line_width)ˆà 112 ˆà index = (automata.symbols[automata.field[row][column]] + len(automata.states) - 1) % len(automata.states)ˆà 113 ˆà automata.field[row][column] = automata.states[index].symbolˆà 114 ˆà self.draw()ˆà 115 ˆà ˆà 116 ˆà def press1_key(self, event):# drawerˆà 117 ˆà if keys.has_key(event.char):ˆà 118 ˆà column = (event.x - self.offset_x) / (self.cell_size + self.line_width)ˆà 119 ˆà row = (event.y - self.offset_y) / (self.cell_size + self.line_width)ˆà 120 ˆà automata.field[row][column] = automata.states[keys[event.char]].symbolˆà 121 ˆà self.draw()ˆà 122 ˆà ˆà 123 ˆà def motion1_key(self, event):# drawerˆà 124 ˆà if keys.has_key(event.char):ˆà 125 ˆà column = (event.x - self.offset_x) / (self.cell_size + self.line_width)ˆà 126 ˆà row = (event.y - self.offset_y) / (self.cell_size + self.line_width)ˆà 127 ˆà automata.field[row][column] = automata.states[keys[event.char]].symbolˆà 128 ˆà self.draw()ˆà 129 ˆà ˆà 130 ˆà def press1_ctrl(self, event):# change_scale (B1+ctrl)ˆà 131 ˆà self.mouse_x = event.xˆà 132 ˆà self.mouse_y = event.yˆà 133 ˆà ˆà 134 ˆà def motion1_ctrl(self, event):# change_scale (B1+ctrl)ˆà 135 ˆà self.offset_x = event.x - self.mouse_xˆà 136 ˆà self.offset_y = event.y - self.mouse_yˆà 137 ˆà self.mouse_x = event.xˆà 138 ˆà self.mouse_y = event.yˆà 139 ˆà self.draw()ˆà ˆà 89 passˆà ˆà 90 ˆà ˆà 91 def press_key1(self, event):# drawer+change_scale (B1+ctrl)ˆà ˆà 92 passˆà ˆà 93 ˆà ˆà 94 def motion_key1(self, event):# drawer+change_scale (B1+ctrl)ˆà ˆà 95 passˆà 140 96 ˆà 141 97 def press12(self, event):# zoomˆà 142 ˆà self.mouse_zoom = event.yˆàˆà 98 passˆà 143 99 ˆà 144 100 def motion12(self, event):# zoomˆà 145 ˆà delta = (event.y - self.mouse_zoom) / self.zoom_divisorˆà 146 ˆà self.cell_size = self.cell_size + deltaˆà 147 ˆà if self.cell_size > 50:ˆà 148 ˆà self.cell_size = 50ˆà 149 ˆà if self.cell_size < 1:ˆà 150 ˆà self.cell_size = 1ˆà 151 ˆà self.mouse_zoom = event.yˆà 152 ˆà self.draw()ˆà ˆà 101 passˆà 153 102 ˆà 154 103 def automata_frame(self):# show automata_frameˆà òÀæ òÀæ ˆà 188 137 def change():# change chosen stateˆà 189 138 passˆà 190 ˆà def show_size_window(self):ˆà 191 ˆà size_window.deiconify()ˆà 192 ˆà def hide_size_window(self):ˆà 193 ˆà size_window.withdraw()ˆà ˆà 139 ˆà 194 140 ˆà 195 141 ˆà
Note: See TracChangeset
for help on using the changeset viewer.