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

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Interface.py

    r15 r13 ˆà
    11from Tkinter import *ˆà
    22ˆà
    3ˆàfrom State import *ˆà
    4ˆàfrom Automata import *ˆà
    5ˆàˆà
    6ˆàˆà
    73class Handlers(object):ˆà
    84        ˆà
    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ˆà
    106                self.cell_size = cell_sizeˆà
    11ˆà                self.line_width = line_widthˆà
    127                self.delay = delayˆà
    138                self.offset_x = offset_xˆà
    149                self.offset_y = offset_yˆà
    1510                self.after_id = 0ˆà
    16ˆà                self.mouse_x = 0ˆà
    17ˆà                self.mouse_y = 0ˆà
    18ˆà                self.mouse_zoom = 0ˆà
    19ˆà                self.zoom_divisor = 10ˆà
    2011                self.is_started = Falseˆà
    21ˆà                self.keys = dict()ˆà
    ˆà12        ˆà
    2213        def start(self):ˆà
    2314                if not self.is_started:ˆà
    òÀæ òÀæ ˆà
    4334                passˆà
    4435        ˆà
    45ˆà        def close_help_window():ˆà
    ˆà36        def close_help_windowˆà
    4637                passˆà
    4738        ˆà
    òÀæ òÀæ ˆà
    7263                                automata.change_size(dx / 2, 3)ˆà
    7364                                automata.change_size(dx - dx / 2, 1)ˆà
    74ˆà                        else:ˆà
    ˆà65                        else ˆà
    7566                                automata.change_size(dx, 1)ˆà
    7667                        if position == 0 or position == 1 or position == 2:ˆà
    òÀæ òÀæ ˆà
    7970                                automata.change_size(dy / 2, 0)ˆà
    8071                                automata.change_size(dy - dy / 2, 2)ˆà
    81ˆà                        else:ˆà
    ˆà72                        else ˆà
    8273                                automata.change_size(dy, 2)ˆà
    8374                        self.draw()ˆà
    òÀæ òÀæ ˆà
    8778        ˆà
    8879        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ˆà
    9481        ˆà
    9582        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ˆà
    10184        ˆà
    10285        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ˆà
    10887        ˆà
    10988        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ˆà
    14096        ˆà
    14197        def press12(self, event):# zoomˆà
    142ˆà                self.mouse_zoom = event.yˆà
    ˆà98                passˆà
    14399        ˆà
    144100        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ˆà
    153102        ˆà
    154103        def automata_frame(self):# show automata_frameˆà
    òÀæ òÀæ ˆà
    188137        def change():# change chosen stateˆà
    189138                passˆà
    190ˆà        def show_size_window(self):ˆà
    191ˆà                size_window.deiconify()ˆà
    192ˆà        def hide_size_window(self):ˆà
    193ˆà                size_window.withdraw()ˆà
    ˆà139        ˆà
    194140ˆà
    195141ˆà
Note: See TracChangeset for help on using the changeset viewer.