diff --git a/myNotebook.py b/myNotebook.py index 46f79622..7098fad3 100644 --- a/myNotebook.py +++ b/myNotebook.py @@ -14,6 +14,7 @@ import tkinter as tk from tkinter import ttk, messagebox from PIL import ImageGrab from l10n import translations as tr +from typing import Callable if sys.platform == 'win32': PAGEFG = 'SystemWindowText' @@ -171,6 +172,7 @@ class ScrollableNotebook(Notebook): self, master: ttk.Frame | None = None, tabmenu: bool = False, + on_tab_change: Callable | None = None, *args, **kwargs ) -> None: @@ -191,6 +193,8 @@ class ScrollableNotebook(Notebook): self.notebookTab: ttk.Notebook = ttk.Notebook(self, **kwargs) self.notebookTab.place(x=0, y=0) self.notebookTab.bind("<>", self._tab_changer) + if on_tab_change: + self.notebookTab.bind("<>", on_tab_change, add='+') # Sliding frame and controls slide_frame: ttk.Frame = ttk.Frame(self) diff --git a/prefs.py b/prefs.py index 71e03087..f122b9e3 100644 --- a/prefs.py +++ b/prefs.py @@ -276,8 +276,7 @@ class PreferencesDialog(tk.Toplevel): frame.rowconfigure(0, weight=1) frame.rowconfigure(1, weight=0) - notebook: nb.ScrollableNotebook = nb.ScrollableNotebook(frame, tabmenu=True) - notebook.bind('<>', self.tabchanged) # Recompute on tab change + notebook: nb.ScrollableNotebook = nb.ScrollableNotebook(frame, tabmenu=True, on_tab_change=self.tabchanged) self.PADX = 10 self.BUTTONX = 12 # indent Checkbuttons and Radiobuttons