Пример #1
0
    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))
Пример #2
0
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__()
Пример #3
0
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)
Пример #4
0
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()
Пример #5
0
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)
Пример #6
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()
Пример #7
0
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)
Пример #8
0
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
Пример #9
0
def paste_from_clip_board(text_editor: TextEditor):
    r = Tk()
    r.withdraw()
    text_editor.insert(INSERT, r.clipboard_get())
Пример #10
0
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)