Changes in Interface.py [13:556e04a9a417:15:b9d58d90c534]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Interface.py
r13 r15 ˆà 1 1 from Tkinter import *ˆà 2 2 ˆà ˆà 3 from State import *ˆà ˆà 4 from Automata import *ˆà ˆà 5 ˆà ˆà 6 ˆà 3 7 class Handlers(object):ˆà 4 8 ˆà 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ˆàˆà 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ˆà 6 10 self.cell_size = cell_sizeˆà ˆà 11 self.line_width = line_widthˆà 7 12 self.delay = delayˆà 8 13 self.offset_x = offset_xˆà 9 14 self.offset_y = offset_yˆà 10 15 self.after_id = 0ˆà ˆà 16 self.mouse_x = 0ˆà ˆà 17 self.mouse_y = 0ˆà ˆà 18 self.mouse_zoom = 0ˆà ˆà 19 self.zoom_divisor = 10ˆà 11 20 self.is_started = Falseˆà 12 ˆà ˆàˆà 21 self.keys = dict()ˆà 13 22 def start(self):ˆà 14 23 if not self.is_started:ˆà òÀæ òÀæ ˆà 34 43 passˆà 35 44 ˆà 36 ˆà def close_help_window ˆàˆà 45 def close_help_window():ˆà 37 46 passˆà 38 47 ˆà òÀæ òÀæ ˆà 63 72 automata.change_size(dx / 2, 3)ˆà 64 73 automata.change_size(dx - dx / 2, 1)ˆà 65 ˆà else ˆà 74 else:ˆà 66 75 automata.change_size(dx, 1)ˆà 67 76 if position == 0 or position == 1 or position == 2:ˆà òÀæ òÀæ ˆà 70 79 automata.change_size(dy / 2, 0)ˆà 71 80 automata.change_size(dy - dy / 2, 2)ˆà 72 ˆà else ˆà 81 else:ˆà 73 82 automata.change_size(dy, 2)ˆà 74 83 self.draw()ˆà òÀæ òÀæ ˆà 78 87 ˆà 79 88 def press1(self, event):# drawerˆà 80 ˆà passˆà ˆà 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()ˆà 81 94 ˆà 82 95 def motion1(self, event):# drawerˆà 83 ˆà passˆà ˆà 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()ˆà 84 101 ˆà 85 102 def press3(self, event):# drawerˆà 86 ˆà passˆà ˆà 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()ˆà 87 108 ˆà 88 109 def motion3(self, event):# drawerˆà 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ˆà ˆà 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()ˆà 96 140 ˆà 97 141 def press12(self, event):# zoomˆà 98 ˆà passˆàˆà 142 self.mouse_zoom = event.yˆà 99 143 ˆà 100 144 def motion12(self, event):# zoomˆà 101 ˆà passˆà ˆà 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()ˆà 102 153 ˆà 103 154 def automata_frame(self):# show automata_frameˆà òÀæ òÀæ ˆà 137 188 def change():# change chosen stateˆà 138 189 passˆà 139 ˆà ˆà ˆà 190 def show_size_window(self):ˆà ˆà 191 size_window.deiconify()ˆà ˆà 192 def hide_size_window(self):ˆà ˆà 193 size_window.withdraw()ˆà 140 194 ˆà 141 195 ˆà
Note: See TracChangeset
for help on using the changeset viewer.