def create_alignment_toolbar(self): settings = TkUtil.Settings.Data self.alignmentToolbar = ttk.Frame(self.toolbarFrame, relief=tk.RAISED) self.alignmentToolbar.text = ALIGNMENT_TOOLBAR self.alignmentToolbar.underline = 0 menuButton = ttk.Button(self.alignmentToolbar, text="Alignment Toolbar Menu", image=self.toolbarImages[TOOLBARMENU], command=self.toolbar_menu) TkUtil.bind_context_menu(menuButton, self.toolbar_menu) TkUtil.Tooltip.Tooltip(menuButton, text="Alignment Toolbar Menu") self.leftButton = ttk.Button(self.alignmentToolbar, text=ALIGN_LEFT, image=self.toolbarImages[ALIGNLEFT]) self.leftButton.config(command=lambda: self.toggle_alignment(tk.LEFT)) TkUtil.Tooltip.Tooltip(self.leftButton, text=ALIGN_LEFT) self.centerButton = ttk.Button(self.alignmentToolbar, text=ALIGN_CENTER, image=self.toolbarImages[ALIGNCENTER]) self.centerButton.config( command=lambda: self.toggle_alignment(tk.CENTER)) TkUtil.Tooltip.Tooltip(self.centerButton, text=ALIGN_CENTER) self.rightButton = ttk.Button(self.alignmentToolbar, text=ALIGN_RIGHT, image=self.toolbarImages[ALIGNRIGHT]) self.rightButton.config( command=lambda: self.toggle_alignment(tk.RIGHT)) TkUtil.Tooltip.Tooltip(self.rightButton, text=ALIGN_RIGHT) TkUtil.add_toolbar_buttons( self.alignmentToolbar, (menuButton, self.leftButton, self.centerButton, self.rightButton)) self.toolbars.append(self.alignmentToolbar) self.leftButton.state((TkUtil.SELECTED, )) self.alignment.set(tk.LEFT)
def create_alignment_toolbar(self): settings = TkUtil.Settings.Data self.alignmentToolbar = ttk.Frame(self.toolbarFrame, relief=tk.RAISED) self.alignmentToolbar.text = ALIGNMENT_TOOLBAR self.alignmentToolbar.underline = 0 menuButton = ttk.Button(self.alignmentToolbar, text="Alignment Toolbar Menu", image=self.toolbarImages[TOOLBARMENU], command=self.toolbar_menu) TkUtil.bind_context_menu(menuButton, self.toolbar_menu) TkUtil.Tooltip.Tooltip(menuButton, text="Alignment Toolbar Menu") self.leftButton = ttk.Button(self.alignmentToolbar, text=ALIGN_LEFT, image=self.toolbarImages[ALIGNLEFT]) self.leftButton.config( command=lambda: self.toggle_alignment(tk.LEFT)) TkUtil.Tooltip.Tooltip(self.leftButton, text=ALIGN_LEFT) self.centerButton = ttk.Button(self.alignmentToolbar, text=ALIGN_CENTER, image=self.toolbarImages[ALIGNCENTER]) self.centerButton.config( command=lambda: self.toggle_alignment(tk.CENTER)) TkUtil.Tooltip.Tooltip(self.centerButton, text=ALIGN_CENTER) self.rightButton = ttk.Button(self.alignmentToolbar, text=ALIGN_RIGHT, image=self.toolbarImages[ALIGNRIGHT]) self.rightButton.config( command=lambda: self.toggle_alignment(tk.RIGHT)) TkUtil.Tooltip.Tooltip(self.rightButton, text=ALIGN_RIGHT) TkUtil.add_toolbar_buttons(self.alignmentToolbar, (menuButton, self.leftButton, self.centerButton, self.rightButton)) self.toolbars.append(self.alignmentToolbar) self.leftButton.state((TkUtil.SELECTED,)) self.alignment.set(tk.LEFT)
def create_file_toolbar(self): settings = TkUtil.Settings.Data self.fileToolbar = ttk.Frame(self.toolbarFrame, relief=tk.RAISED) self.fileToolbar.text = FILE_TOOLBAR self.fileToolbar.underline = 0 menuButton = ttk.Button(self.fileToolbar, text="File Toolbar Menu", image=self.toolbarImages[TOOLBARMENU], command=self.toolbar_menu) TkUtil.bind_context_menu(menuButton, self.toolbar_menu) TkUtil.Tooltip.Tooltip(menuButton, text="File Toolbar Menu") newButton = ttk.Button(self.fileToolbar, text=NEW, image=self.toolbarImages[NEW], command=self.new) TkUtil.Tooltip.Tooltip(newButton, text="New Document") openButton = ttk.Button(self.fileToolbar, text=OPEN, image=self.toolbarImages[OPEN], command=self.open) TkUtil.Tooltip.Tooltip(openButton, text="Open Document") self.saveButton = ttk.Button(self.fileToolbar, text=SAVE, image=self.toolbarImages[SAVE], command=self.save) TkUtil.Tooltip.Tooltip(self.saveButton, text="Save Document") preferencesButton = ttk.Button(self.fileToolbar, text=PREFERENCES, image=self.toolbarImages[PREFERENCES], command=self.preferences) TkUtil.Tooltip.Tooltip(preferencesButton, text=PREFERENCES) TkUtil.add_toolbar_buttons(self.fileToolbar, (menuButton, newButton, openButton, self.saveButton, None, preferencesButton)) self.toolbars.append(self.fileToolbar)
def create_edit_toolbar(self): settings = TkUtil.Settings.Data self.editToolbar = ttk.Frame(self.toolbarFrame, relief=tk.RAISED) self.editToolbar.text = EDIT_TOOLBAR self.editToolbar.underline = 0 menuButton = ttk.Button( self.editToolbar, text="Edit Toolbar Menu", image=self.toolbarImages[TOOLBARMENU], command=self.toolbar_menu ) TkUtil.bind_context_menu(menuButton, self.toolbar_menu) TkUtil.Tooltip.Tooltip(menuButton, text="Edit Toolbar Menu") self.undoButton = ttk.Button( self.editToolbar, text=UNDO, image=self.toolbarImages[UNDO], command=self.editor.edit_undo ) TkUtil.Tooltip.Tooltip(self.undoButton, text=UNDO) self.redoButton = ttk.Button( self.editToolbar, text=REDO, image=self.toolbarImages[REDO], command=self.editor.edit_redo ) TkUtil.Tooltip.Tooltip(self.redoButton, text=REDO) self.copyButton = ttk.Button( self.editToolbar, text=COPY, image=self.toolbarImages[COPY], command=self.editor.text.event_generate("<<Copy>>"), ) TkUtil.Tooltip.Tooltip(self.copyButton, text=COPY) self.cutButton = ttk.Button( self.editToolbar, text=CUT, image=self.toolbarImages[CUT], command=self.editor.text.event_generate("<<Cut>>"), ) TkUtil.Tooltip.Tooltip(self.cutButton, text=CUT) self.pasteButton = ttk.Button( self.editToolbar, text=PASTE, image=self.toolbarImages[PASTE], command=self.editor.text.event_generate("<<Paste>>"), ) TkUtil.Tooltip.Tooltip(self.pasteButton, text=PASTE) self.findButton = ttk.Button(self.editToolbar, text=FIND, image=self.toolbarImages[FIND], command=self.find) TkUtil.Tooltip.Tooltip(self.findButton, text=FIND) TkUtil.add_toolbar_buttons( self.editToolbar, ( menuButton, self.undoButton, self.redoButton, None, self.copyButton, self.cutButton, self.pasteButton, None, self.findButton, ), ) self.toolbars.append(self.editToolbar)
def create_bindings(self): modifier = TkUtil.key_modifier() self.master.bind("<{}-f>".format(modifier), self.find) self.master.bind("<{}-n>".format(modifier), self.new) self.master.bind("<{}-o>".format(modifier), self.open) self.master.bind("<{}-q>".format(modifier), self.close) self.master.bind("<{}-s>".format(modifier), self.save) self.master.bind("<F1>", self.help) for key in "fnoqs": # Avoid conflicts self.unbind_class("Text", "<{}-{}>".format(modifier, key)) # Ctrl+C etc. from the edit menu are already supported by the # Text (Editor) widget. TkUtil.bind_context_menu(self.editor.text, self.context_menu)
def create_edit_toolbar(self): settings = TkUtil.Settings.Data self.editToolbar = ttk.Frame(self.toolbarFrame, relief=tk.RAISED) self.editToolbar.text = EDIT_TOOLBAR self.editToolbar.underline = 0 menuButton = ttk.Button(self.editToolbar, text="Edit Toolbar Menu", image=self.toolbarImages[TOOLBARMENU], command=self.toolbar_menu) TkUtil.bind_context_menu(menuButton, self.toolbar_menu) TkUtil.Tooltip.Tooltip(menuButton, text="Edit Toolbar Menu") self.undoButton = ttk.Button(self.editToolbar, text=UNDO, image=self.toolbarImages[UNDO], command=self.editor.edit_undo) TkUtil.Tooltip.Tooltip(self.undoButton, text=UNDO) self.redoButton = ttk.Button(self.editToolbar, text=REDO, image=self.toolbarImages[REDO], command=self.editor.edit_redo) TkUtil.Tooltip.Tooltip(self.redoButton, text=REDO) self.copyButton = ttk.Button( self.editToolbar, text=COPY, image=self.toolbarImages[COPY], command=self.editor.text.event_generate("<<Copy>>")) TkUtil.Tooltip.Tooltip(self.copyButton, text=COPY) self.cutButton = ttk.Button( self.editToolbar, text=CUT, image=self.toolbarImages[CUT], command=self.editor.text.event_generate("<<Cut>>")) TkUtil.Tooltip.Tooltip(self.cutButton, text=CUT) self.pasteButton = ttk.Button( self.editToolbar, text=PASTE, image=self.toolbarImages[PASTE], command=self.editor.text.event_generate("<<Paste>>")) TkUtil.Tooltip.Tooltip(self.pasteButton, text=PASTE) self.findButton = ttk.Button(self.editToolbar, text=FIND, image=self.toolbarImages[FIND], command=self.find) TkUtil.Tooltip.Tooltip(self.findButton, text=FIND) TkUtil.add_toolbar_buttons( self.editToolbar, (menuButton, self.undoButton, self.redoButton, None, self.copyButton, self.cutButton, self.pasteButton, None, self.findButton)) self.toolbars.append(self.editToolbar)
def create_view_toolbar(self): settings = TkUtil.Settings.Data self.viewToolbar = ttk.Frame(self.toolbarFrame, relief=tk.RAISED) self.viewToolbar.text = FORMAT_TOOLBAR self.viewToolbar.underline = 1 menuButton = ttk.Button(self.viewToolbar, text="Format Toolbar Menu", image=self.toolbarImages[TOOLBARMENU], command=self.toolbar_menu) TkUtil.bind_context_menu(menuButton, self.toolbar_menu) TkUtil.Tooltip.Tooltip(menuButton, text="Format Toolbar Menu") self.fontFamilyCombobox = ttk.Combobox(self.viewToolbar, width=15, textvariable=self.fontFamily, state="readonly", values=TkUtil.font_families()) self.fontFamilyCombobox.bind("<<ComboboxSelected>>", self.update_font) TkUtil.set_combobox_item(self.fontFamilyCombobox, self.fontFamily.get()) TkUtil.Tooltip.Tooltip(self.fontFamilyCombobox, text="Font Family") self.fontSizeSpinbox = Spinbox(self.viewToolbar, width=2, textvariable=self.fontPointSize, from_=6, to=72, justify=tk.RIGHT, validate="all") self.fontSizeSpinbox.config( validatecommand=(self.fontSizeSpinbox.register(self.validate_int), "fontSizeSpinbox", "%P")) TkUtil.Tooltip.Tooltip(self.fontSizeSpinbox, text="Font Point Size") self.boldButton = ttk.Button(self.viewToolbar, text=BOLD, image=self.toolbarImages[BOLD]) self.boldButton.config( command=lambda: self.toggle_button(self.boldButton, self.bold)) TkUtil.Tooltip.Tooltip(self.boldButton, text=BOLD) self.italicButton = ttk.Button(self.viewToolbar, text=ITALIC, image=self.toolbarImages[ITALIC]) self.italicButton.config( command=lambda: self.toggle_button(self.italicButton, self.italic)) TkUtil.Tooltip.Tooltip(self.italicButton, text=ITALIC) TkUtil.add_toolbar_buttons( self.viewToolbar, (menuButton, self.fontFamilyCombobox, self.fontSizeSpinbox, self.boldButton, self.italicButton)) self.toolbars.append(self.viewToolbar)
def create_view_toolbar(self): settings = TkUtil.Settings.Data self.viewToolbar = ttk.Frame(self.toolbarFrame, relief=tk.RAISED) self.viewToolbar.text = FORMAT_TOOLBAR self.viewToolbar.underline = 1 menuButton = ttk.Button(self.viewToolbar, text="Format Toolbar Menu", image=self.toolbarImages[TOOLBARMENU], command=self.toolbar_menu) TkUtil.bind_context_menu(menuButton, self.toolbar_menu) TkUtil.Tooltip.Tooltip(menuButton, text="Format Toolbar Menu") self.fontFamilyCombobox = ttk.Combobox(self.viewToolbar, width=15, textvariable=self.fontFamily, state="readonly", values=TkUtil.font_families()) self.fontFamilyCombobox.bind("<<ComboboxSelected>>", self.update_font) TkUtil.set_combobox_item(self.fontFamilyCombobox, self.fontFamily.get()) TkUtil.Tooltip.Tooltip(self.fontFamilyCombobox, text="Font Family") self.fontSizeSpinbox = Spinbox(self.viewToolbar, width=2, textvariable=self.fontPointSize, from_=6, to=72, justify=tk.RIGHT, validate="all") self.fontSizeSpinbox.config(validatecommand=( self.fontSizeSpinbox.register(self.validate_int), "fontSizeSpinbox", "%P")) TkUtil.Tooltip.Tooltip(self.fontSizeSpinbox, text="Font Point Size") self.boldButton = ttk.Button(self.viewToolbar, text=BOLD, image=self.toolbarImages[BOLD]) self.boldButton.config( command=lambda: self.toggle_button(self.boldButton, self.bold)) TkUtil.Tooltip.Tooltip(self.boldButton, text=BOLD) self.italicButton = ttk.Button(self.viewToolbar, text=ITALIC, image=self.toolbarImages[ITALIC]) self.italicButton.config( command=lambda: self.toggle_button(self.italicButton, self.italic)) TkUtil.Tooltip.Tooltip(self.italicButton, text=ITALIC) TkUtil.add_toolbar_buttons(self.viewToolbar, (menuButton, self.fontFamilyCombobox, self.fontSizeSpinbox, self.boldButton, self.italicButton)) self.toolbars.append(self.viewToolbar)