Lines Matching refs:self
129 def __init__(self, filename=None):
130 self.root = root = turtle._root = Tk()
132 root.wm_protocol("WM_DELETE_WINDOW", self._destroy)
155 self.mBar = Menu(root, relief=RAISED, borderwidth=2)
156 self.mBar.add_cascade(menu=self.makeLoadDemoMenu(self.mBar),
158 self.mBar.add_cascade(menu=self.makeFontMenu(self.mBar),
160 self.mBar.add_cascade(menu=self.makeHelpMenu(self.mBar),
162 root['menu'] = self.mBar
166 pane.add(self.makeTextFrame(pane))
167 pane.add(self.makeGraphFrame(pane))
170 self.output_lbl = Label(root, height= 1, text=" --- ", bg="#ddf",
174 self.start_btn = Button(root, text=" START ", font=btnfont,
175 fg='#00cc22', command=self.startDemo)
176 self.stop_btn = Button(root, text=" STOP ", font=btnfont,
177 fg='#00cc22', command=self.stopIt)
178 self.clear_btn = Button(root, text=" CLEAR ", font=btnfont,
179 fg='#00cc22', command = self.clearCanvas)
181 self.start_btn = Button(root, text=" START ", font=btnfont,
183 command=self.startDemo)
184 self.stop_btn = Button(root, text=" STOP ", font=btnfont,
186 command=self.stopIt)
187 self.clear_btn = Button(root, text=" CLEAR ", font=btnfont,
189 command = self.clearCanvas)
190 self.output_lbl.grid(row=1, column=0, sticky='news', padx=(0,5))
191 self.start_btn.grid(row=1, column=1, sticky='ew')
192 self.stop_btn.grid(row=1, column=2, sticky='ew')
193 self.clear_btn.grid(row=1, column=3, sticky='ew')
195 Percolator(self.text).insertfilter(ColorDelegator())
196 self.dirty = False
197 self.exitflag = False
199 self.loadfile(filename)
200 self.configGUI(DISABLED, DISABLED, DISABLED,
202 self.state = STARTUP
205 def onResize(self, event):
206 cwidth = self.canvas.winfo_width()
207 cheight = self.canvas.winfo_height()
208 self.canvas.xview_moveto(0.5*(self.canvwidth-cwidth)/self.canvwidth)
209 self.canvas.yview_moveto(0.5*(self.canvheight-cheight)/self.canvheight)
211 def makeTextFrame(self, root):
212 self.text_frame = text_frame = Frame(root)
213 self.text = text = Text(text_frame, name='text', padx=5,
217 self.vbar = vbar = Scrollbar(text_frame, name='vbar')
220 self.hbar = hbar = Scrollbar(text_frame, name='hbar', orient=HORIZONTAL)
228 text.bind_all('<%s-minus>' % shortcut, self.decrease_size)
229 text.bind_all('<%s-underscore>' % shortcut, self.decrease_size)
230 text.bind_all('<%s-equal>' % shortcut, self.increase_size)
231 text.bind_all('<%s-plus>' % shortcut, self.increase_size)
232 text.bind('<Control-MouseWheel>', self.update_mousewheel)
233 text.bind('<Control-Button-4>', self.increase_size)
234 text.bind('<Control-Button-5>', self.decrease_size)
239 def makeGraphFrame(self, root):
246 self.canvwidth = 1000
247 self.canvheight = 800
248 turtle._Screen._canvas = self.canvas = canvas = turtle.ScrolledCanvas(
249 root, 800, 600, self.canvwidth, self.canvheight)
251 canvas._rootwindow.bind('<Configure>', self.onResize)
254 self.screen = screen = turtle.Screen()
259 def set_txtsize(self, size):
261 self.text['font'] = tuple(txtfont)
262 self.output_lbl['text'] = 'Font size %d' % size
264 def decrease_size(self, dummy=None):
265 self.set_txtsize(max(txtfont[1] - 1, MINIMUM_FONT_SIZE))
268 def increase_size(self, dummy=None):
269 self.set_txtsize(min(txtfont[1] + 1, MAXIMUM_FONT_SIZE))
272 def update_mousewheel(self, event):
276 return self.decrease_size()
278 return self.increase_size()
280 def configGUI(self, start, stop, clear, txt="", color="blue"):
282 self.start_btn.config(state=start)
283 self.stop_btn.config(state=stop)
284 self.clear_btn.config(state=clear)
286 self.start_btn.config(state=start,
288 self.stop_btn.config(state=stop,
290 self.clear_btn.config(state=clear,
292 self.output_lbl.config(text=txt, fg=color)
294 def makeLoadDemoMenu(self, master):
299 self.loadfile(entry)
304 def makeFontMenu(self, master):
306 menu.add_command(label="Decrease (C-'-')", command=self.decrease_size,
308 menu.add_command(label="Increase (C-'+')", command=self.increase_size,
314 self.set_txtsize(size)
319 def makeHelpMenu(self, master):
324 view_text(self.root, help_label, help_file)
328 def refreshCanvas(self):
329 if self.dirty:
330 self.screen.clear()
331 self.dirty=False
333 def loadfile(self, filename):
334 self.clearCanvas()
338 self.module = sys.modules[modname]
339 with open(self.module.__file__, 'r') as f:
341 self.text.delete("1.0", "end")
342 self.text.insert("1.0", chars)
343 self.root.title(filename + " - a Python turtle graphics example")
344 self.configGUI(NORMAL, DISABLED, DISABLED,
346 self.state = READY
348 def startDemo(self):
349 self.refreshCanvas()
350 self.dirty = True
352 self.configGUI(DISABLED, NORMAL, DISABLED,
354 self.screen.clear()
355 self.screen.mode("standard")
356 self.state = RUNNING
359 result = self.module.main()
361 self.state = EVENTDRIVEN
363 self.state = DONE
365 if self.root is None:
367 self.state = DONE
369 if self.state == DONE:
370 self.configGUI(NORMAL, DISABLED, NORMAL,
372 elif self.state == EVENTDRIVEN:
373 self.exitflag = True
374 self.configGUI(DISABLED, NORMAL, DISABLED,
377 def clearCanvas(self):
378 self.refreshCanvas()
379 self.screen._delete("all")
380 self.canvas.config(cursor="")
381 self.configGUI(NORMAL, DISABLED, DISABLED)
383 def stopIt(self):
384 if self.exitflag:
385 self.clearCanvas()
386 self.exitflag = False
387 self.configGUI(NORMAL, DISABLED, DISABLED,
391 def _destroy(self):
393 self.root.destroy()
394 self.root = None