Welcome, guest | Sign In | My Account | Store | Cart
	from tkinter import Tk, END, INSERT
	from tkinter.scrolledtext import ScrolledText
	from tkinter.filedialog import asksaveasfilename, askopenfilename

	# Onager Text Editor
	# 2016 Mickey Kocic

	class Scratchpad:

		def __init__(self, Tk):
			self.display = Tk()
			self.display.title("Onager Text Editor--<F7> save, <F5> open and insert")
			self.display.bind('<F7>', self.save_file)
			self.display.bind('<F5>', self.open_file)
			self.display.bind('<Control-c>', self.copy)
			self.display.bind('<Control-p>', self.cut)
			self.display.bind('<Control-v>', self.paste)
			self.display.bind('<Control-d>', self.clear_editor)

		def create_editor(self, ScrolledText):
			self.editing_window = ScrolledText(self.display)
			self.editing_window.configure(fg='gold', bg='blue', insertbackground='cyan',
				height='25', width='70', padx='12', pady='12',
				wrap='word', tabs='48', font='serif 12')
			self.editing_window.pack()

		def save_file(self, event=None):
			name = asksaveasfilename()
			outfile = open(name, 'w')
			contents = self.editing_window.get(0.0, END)
			outfile.write(contents)
			outfile.close()

		def open_file(self, event=None):
			name = askopenfilename()
			infile = open(name, 'r')
			contents = infile.read()
			self.editing_window.insert(INSERT, contents)
			infile.close()

		def copy(self, event=None):
			self.display.clipboard_clear()
			text = self.editing_window.get("sel.first", "sel.last")
			self.display.clipboard_append(text)

		def cut(self, event):
			self.copy()
			self.editing_window.delete("sel.first", "sel.last")

		def paste(self, event):
			self.editing_window.insert(INSERT, self.display.clipboard_get())

		def clear_editor(self, event=None):
			self.editing_window.delete(0.0, END)

	def main():
		onager = Scratchpad(Tk)
		onager.create_editor(ScrolledText)
		onager.display.mainloop()

	if __name__=='__main__':
		main()

History