Changeset 87:08600f868875
- Timestamp:
- 12/13/10 02:23:13 (5 years ago)
- Branch:
- default
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Interface.py
r86 r87 š 13 13 class Handlers(object):š 14 14 š 15 š def __init__(self, cell_size=8, line_width=1 ,delay= 10, dx=0, dy=0):# cell_size is size of cell, including line width, if there is itšš 15 def __init__(self, cell_size=8, line_width=1 ,delay=8, dx=0, dy=0):# cell_size is size of cell, including line width, if there is itš 16 16 self.cell_size = cell_sizeš 17 17 self.line_width = line_widthš ? ? š 33 33 self.is_started = Trueš 34 34 self.repeat()š š 35 self.update_status()š 35 36 š 36 37 def repeat(self):š ? ? š 41 42 canvas.after_cancel(self.after_id)š 42 43 self.is_started = Falseš š 44 self.update_status()š 43 45 š 44 46 def next_step(self, event=None):š ? ? š 46 48 canvas.after_cancel(self.after_id)š 47 49 self.is_started = Falseš š 50 self.update_status()š 48 51 else:š 49 52 self.draw_cell(automata.next_step())š ? ? š 101 104 š 102 105 def slower(self, event=None, speed_rate=2):š 103 š self.stop()š104 š self.delay = self.delay*speed_rateš105 š self.start()šš 106 if self.delay <= 500:š š 107 self.delay = self.delay * speed_rateš š 108 self.update_status()š 106 109 š 107 110 def faster(self, event=None, speed_rate=2):š 108 š self.stop()š109 111 self.delay = self.delay / speed_rateš 110 112 if self.delay == 0:š 111 113 self.delay = 1š 112 š self. start()šš 114 self.update_status()š 113 115 š 114 116 def change_size(self):š ? ? š 134 136 self.hide_size_window()š 135 137 self.change_scroll_area()š š 138 self.update_status()š 136 139 except Exception:š 137 140 message.config(text="Operation is refused")š 138 141 message.after(2000, self.clear_message)š š 142 š 139 143 def draw_cell(self, cells):š 140 144 for row, col in cells:š ? ? š 392 396 š 393 397 def show_size_window(self, event=None):š š 398 size.config(text=str(len(automata.field[0])) + " x " + str(len(automata.field)))š 394 399 size_window.deiconify()š 395 400 š ? ? š 485 490 height = automata.height * (self.cell_size + self.line_width) + self.line_widthš 486 491 canvas.config(scrollregion=(0, 0, width, height))š š 492 def update_status(self):š š 493 status_size.config(text="size: " + str(len(automata.field[0])) + " x " + str(len(automata.field)))š š 494 state = "paused"š š 495 speed = 0š š 496 if self.is_started:š š 497 state = "running"š š 498 speed = 512 / self.delayš š 499 status_state.config(text="status: " + state)š š 500 status_speed.config(text="speed: " + str(speed))š 487 501 š 488 502 š ? ? š 503 517 canvas.bind_all("<KeyRelease>", handlers.release_key)š 504 518 š 505 š scroll_x=Scrollbar(root, orient="horizontal")š 506 š scroll_y=Scrollbar(root, orient="vertical")š š 519 scroll_x = Scrollbar(root, orient="horizontal")š š 520 scroll_y = Scrollbar(root, orient="vertical")š š 521 statusline = Frame(root)š š 522 status_size = Label(statusline)š š 523 status_state = Label(statusline)š š 524 status_speed = Label(statusline)š š 525 š š 526 handlers.update_status()š 507 527 š 508 528 canvas.grid(row=0, column=0, sticky="nsew")š 509 529 scroll_y.grid(row=0, column=1, sticky="ns")š 510 530 scroll_x.grid(row=1, column=0, sticky="ew")š š 531 statusline.grid(row=2, column=0, sticky="ew")š š 532 status_size.grid(row=0, column=0, sticky="w")š š 533 status_state.grid(row=0, column=1, sticky="w")š š 534 status_speed.grid(row=0, column=2, sticky="w")š 511 535 š 512 536 handlers.change_scroll_area()š ? ? š 516 540 root.columnconfigure(0, weight=1)š 517 541 root.rowconfigure(0, weight=1)š š 542 statusline.columnconfigure(0, weight=1)š š 543 statusline.columnconfigure(1, weight=1)š š 544 statusline.columnconfigure(2, weight=1)š 518 545 š 519 546 š ? ? š 632 659 size_window.protocol("WM_DELETE_WINDOW", handlers.hide_size_window)š 633 660 Label(size_window, text= "Current size of window:").pack(side="top", fill="x")š 634 š size = Label(size_window, text= str(len(automata.field )) + " x " + str(len(automata.field[0])))šš 661 size = Label(size_window, text= str(len(automata.field[0])) + " x " + str(len(automata.field)))š 635 662 size.pack(side="top", fill="x")š 636 663 Label(size_window, text= "New size:").pack(side="top", fill="x")š
Note: See TracChangeset
for help on using the changeset viewer.