def build_view(self): exterior_frame = Frame(self, background='light grey') frame = Frame(exterior_frame, background='light grey') # Widgets self.editor = TextEditor(frame) self.viewer = PDFViewer(frame) self.command_bar = CommandBar(exterior_frame, self.editor, self.viewer) self.tree = TreeView(frame, self.editor) # Window Configuration frame.columnconfigure(3, weight=1) frame.rowconfigure(0, weight=1) # Widget Locations self.tree.grid(column=0, row=0, columnspan=1, sticky=('N', 'E', 'S', 'W'), pady=(5, 5)) self.editor.grid(column=1, row=0, columnspan=3, sticky=('N', 'E', 'S', 'W'), padx=(5, 0), pady=(5, 5)) self.viewer.grid(column=4, row=0, columnspan=1, sticky=('N', 'E', 'S', 'W'), padx=(5, 0), pady=(5, 5)) self.command_bar.grid(column=0, row=0, rowspan=1, sticky=('N', 'E', 'S', 'W')) frame.grid(column=0, row=1, rowspan=3, sticky=('N', 'E', 'S', 'W')) exterior_frame.columnconfigure(0, weight=1) exterior_frame.rowconfigure(3, weight=1) exterior_frame.pack(expand=True, fill=BOTH, padx=(10,10))
def new_file(text_editor: TextEditor, file_tree: TreeView): file_name = asksaveasfilename() if file_name == '': return text_editor.delete(0.0, tkinter.END) set_file(file_name) save_file(text_editor) file_tree.__update__()
def cut_to_clipboard(text_editor: TextEditor): r = Tk() r.withdraw() r.clipboard_clear() r.clipboard_append(text_editor.selection_get()) r.update() r.destroy() text_editor.delete(SEL_FIRST, SEL_LAST)
def copy_to_clipboard(text_editor: TextEditor): r = Tk() r.withdraw() r.clipboard_clear() r.clipboard_append(text_editor.selection_get()) r.update() r.destroy()
class Window(Tk): def __init__(self, workspace_folder): super().__init__() self.workspace_folder = workspace_folder self.title("Discrept Editor's Settings") self.tree = None self.frame = None self.build_view() self.menu_bar = MenuBar(self) self.config(menu=self.menu_bar) self.protocol("WM_DELETE_WINDOW", self.on_closing) self.mainloop() def build_view(self): exterior_frame = Frame(self) frame = Frame(exterior_frame) # Widgets self.editor = TextEditor(frame) self.command_bar = CommandBar(exterior_frame, self.editor) self.tree = TreeView(frame, self.editor) # Window Configuration frame.columnconfigure(3, weight=1) frame.rowconfigure(0, weight=1) # Widget Locations self.tree.grid(column=0, row=0, columnspan=1, sticky=('N', 'E', 'S', 'W')) self.editor.grid(column=1, row=0, columnspan=3, sticky=('N', 'E', 'S', 'W')) self.command_bar.grid(column=0, row=0, rowspan=1, sticky=('N', 'E', 'S', 'W')) frame.grid(column=0, row=1, rowspan=3, sticky=('N', 'E', 'S', 'W')) exterior_frame.columnconfigure(0, weight=1) exterior_frame.rowconfigure(2, weight=1) exterior_frame.pack(expand=True, fill=BOTH, padx=(10,10)) @staticmethod def on_closing(): # if messagebox.askokcancel("Quit", "Do you want to quit?"): # self.destroy() quit(0)
def discrept(text_field: TextEditor, pdf_viewer: PDFViewer): if not FileTools.save_file(text_field): return data = text_field.get(0.0, END) token_stream = parse(data) styles_path = "" for path in sys.path: if 'python3.6' in path: styles_path = os.path.dirname( os.path.abspath(path)) + "/../styles/" break if 'Python36' in path: styles_path = os.path.dirname(os.path.abspath(path)) + "\\styles\\" break compiler = Compiler(token_stream, {'styles': styles_path}) with open(get_file().replace(".dis", '.html'), 'w') as file_: file_.write(compiler.build()) print_pdf(get_file().replace(".dis", "")) pdf_viewer._update_page()
def open_file(file_name:str, text_editor: TextEditor): set_file(file_name) with open(file_name) as file: text_editor.print_data(file.read().replace('\t', ' ')) text_editor.__update__(None)
def save_file(text_editor: TextEditor): text = text_editor.get_data() file_name = get_file() with open(file_name, 'w') as file: file.write(text) return True
def paste_from_clip_board(text_editor: TextEditor): r = Tk() r.withdraw() text_editor.insert(INSERT, r.clipboard_get())
class Window(Tk): def __init__(self, workspace_folder): super().__init__() self.workspace_folder = workspace_folder self.title("Discrept Editor") self.tree = None self.editor = None self.command_bar = None self.viewer = None self.build_view() self.menu_bar = MenuBar(self) self.config(menu=self.menu_bar, background='grey') self.key_binding() self.mainloop() def key_binding(self): top = self.winfo_toplevel() top.bind('<Control-s>', lambda: FileTools.save_file(self.editor)) top.bind('<Command-s>', lambda: FileTools.save_file(self.editor)) top.bind('<Control-Shift-s>', lambda: FileTools.save_file_as(self.editor)) top.bind('<Command-Shift-s>', lambda: FileTools.save_file_as(self.editor)) self.protocol("WM_DELETE_WINDOW", self.on_closing) def build_view(self): exterior_frame = Frame(self, background='light grey') frame = Frame(exterior_frame, background='light grey') # Widgets self.editor = TextEditor(frame) self.viewer = PDFViewer(frame) self.command_bar = CommandBar(exterior_frame, self.editor, self.viewer) self.tree = TreeView(frame, self.editor) # Window Configuration frame.columnconfigure(3, weight=1) frame.rowconfigure(0, weight=1) # Widget Locations self.tree.grid(column=0, row=0, columnspan=1, sticky=('N', 'E', 'S', 'W'), pady=(5, 5)) self.editor.grid(column=1, row=0, columnspan=3, sticky=('N', 'E', 'S', 'W'), padx=(5, 0), pady=(5, 5)) self.viewer.grid(column=4, row=0, columnspan=1, sticky=('N', 'E', 'S', 'W'), padx=(5, 0), pady=(5, 5)) self.command_bar.grid(column=0, row=0, rowspan=1, sticky=('N', 'E', 'S', 'W')) frame.grid(column=0, row=1, rowspan=3, sticky=('N', 'E', 'S', 'W')) exterior_frame.columnconfigure(0, weight=1) exterior_frame.rowconfigure(3, weight=1) exterior_frame.pack(expand=True, fill=BOTH, padx=(10,10)) def on_closing(self): self.destroy() # if messagebox.askokcancel("Quit", "Do you want to quit?"): # self.destroy() quit(0)