Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://kodomo.cmm.msu.su/trac/cca/changeset/15%3Ab9d58d90c534/Interface.py?old=13%3A556e04a9a417&old_path=Interface.py
Äàòà èçìåíåíèÿ: Unknown
Äàòà èíäåêñèðîâàíèÿ: Sun Mar 2 23:03:11 2014
Êîäèðîâêà: IBM-866
Diff [556e04a9a417be4d4d4bc01535135f41530a65d5:b9d58d90c534f8e3efac5aa62c01b27956829252] for Interface.py òÀÓ Cyclyc Cell Automata

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Interface.py

    r13 r15 ˆà
    11from Tkinter import *ˆà
    22ˆà
    ˆà3from State import *ˆà
    ˆà4from Automata import *ˆà
    ˆà5ˆà
    ˆà6ˆà
    37class Handlers(object):ˆà
    48        ˆà
    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ˆà
    610                self.cell_size = cell_sizeˆà
    ˆà11                self.line_width = line_widthˆà
    712                self.delay = delayˆà
    813                self.offset_x = offset_xˆà
    914                self.offset_y = offset_yˆà
    1015                self.after_id = 0ˆà
    ˆà16                self.mouse_x = 0ˆà
    ˆà17                self.mouse_y = 0ˆà
    ˆà18                self.mouse_zoom = 0ˆà
    ˆà19                self.zoom_divisor = 10ˆà
    1120                self.is_started = Falseˆà
    12ˆà        ˆà
    ˆà21                self.keys = dict()ˆà
    1322        def start(self):ˆà
    1423                if not self.is_started:ˆà
    òÀæ òÀæ ˆà
    3443                passˆà
    3544        ˆà
    36ˆà        def close_help_windowˆà
    ˆà45        def close_help_window():ˆà
    3746                passˆà
    3847        ˆà
    òÀæ òÀæ ˆà
    6372                                automata.change_size(dx / 2, 3)ˆà
    6473                                automata.change_size(dx - dx / 2, 1)ˆà
    65ˆà                        else ˆà
    ˆà74                        else:ˆà
    6675                                automata.change_size(dx, 1)ˆà
    6776                        if position == 0 or position == 1 or position == 2:ˆà
    òÀæ òÀæ ˆà
    7079                                automata.change_size(dy / 2, 0)ˆà
    7180                                automata.change_size(dy - dy / 2, 2)ˆà
    72ˆà                        else ˆà
    ˆà81                        else:ˆà
    7382                                automata.change_size(dy, 2)ˆà
    7483                        self.draw()ˆà
    òÀæ òÀæ ˆà
    7887        ˆà
    7988        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()ˆà
    8194        ˆà
    8295        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()ˆà
    84101        ˆà
    85102        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()ˆà
    87108        ˆà
    88109        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()ˆà
    96140        ˆà
    97141        def press12(self, event):# zoomˆà
    98ˆà                passˆà
    ˆà142                self.mouse_zoom = event.yˆà
    99143        ˆà
    100144        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()ˆà
    102153        ˆà
    103154        def automata_frame(self):# show automata_frameˆà
    òÀæ òÀæ ˆà
    137188        def change():# change chosen stateˆà
    138189                passˆà
    139ˆà        ˆà
    ˆà190        def show_size_window(self):ˆà
    ˆà191                size_window.deiconify()ˆà
    ˆà192        def hide_size_window(self):ˆà
    ˆà193                size_window.withdraw()ˆà
    140194ˆà
    141195ˆà
Note: See TracChangeset for help on using the changeset viewer.