| 10 | ################################################################################ |
| 11 | |
| 12 | class MarkovDemo: |
| 13 | |
| 14 | def __init__(self, master): |
| 15 | self.prompt_size = Label(master, anchor=W, text='Encode Word Size') |
| 16 | self.prompt_size.pack(side=TOP, fill=X) |
| 17 | |
| 18 | self.size_entry = Entry(master) |
| 19 | self.size_entry.insert(0, '8') |
| 20 | self.size_entry.pack(fill=X) |
| 21 | |
| 22 | self.prompt_plain = Label(master, anchor=W, text='Plaintext Characters') |
| 23 | self.prompt_plain.pack(side=TOP, fill=X) |
| 24 | |
| 25 | self.plain_entry = Entry(master) |
| 26 | self.plain_entry.insert(0, '""') |
| 27 | self.plain_entry.pack(fill=X) |
| 28 | |
| 29 | self.showframe = Frame(master) |
| 30 | self.showframe.pack(fill=X, anchor=W) |
| 31 | |
| 32 | self.showvar = StringVar(master) |
| 33 | self.showvar.set("encode") |
| 34 | |
| 35 | self.showfirstradio = Radiobutton(self.showframe, |
| 36 | text="Encode Plaintext", |
| 37 | variable=self.showvar, |
| 38 | value="encode", |
| 39 | command=self.reevaluate) |
| 40 | self.showfirstradio.pack(side=LEFT) |
| 41 | |
| 42 | self.showallradio = Radiobutton(self.showframe, |
| 43 | text="Decode Cyphertext", |
| 44 | variable=self.showvar, |
| 45 | value="decode", |
| 46 | command=self.reevaluate) |
| 47 | self.showallradio.pack(side=LEFT) |
| 48 | |
| 49 | self.inputbox = ScrolledText(master, width=60, height=10, wrap=WORD) |
| 50 | self.inputbox.pack(fill=BOTH, expand=1) |
| 51 | |
| 52 | self.dynamic_var = IntVar() |
| 53 | self.dynamic_box = Checkbutton(master, variable=self.dynamic_var, |
| 54 | text='Dynamic Evaluation', |
| 55 | offvalue=False, onvalue=True, |
| 56 | command=self.reevaluate) |
| 57 | self.dynamic_box.pack() |
| 58 | |
| 59 | self.output = Label(master, anchor=W, text="This is your output:") |
| 60 | self.output.pack(fill=X) |
| 61 | |
| 62 | self.outbox = ScrolledText(master, width=60, height=10, wrap=WORD) |
| 63 | self.outbox.pack(fill=BOTH, expand=1) |
| 64 | |
| 65 | self.inputbox.bind('<Key>', self.reevaluate) |
| 66 | |
| 67 | def select_all(event=None): |
| 68 | event.widget.tag_add(SEL, 1.0, 'end-1c') |
| 69 | event.widget.mark_set(INSERT, 1.0) |