diff --git a/gui/tabs/setup_tab.py b/gui/tabs/setup_tab.py index 27f3d62..99115d9 100644 --- a/gui/tabs/setup_tab.py +++ b/gui/tabs/setup_tab.py @@ -18,21 +18,25 @@ class SetupTab(ctk.CTkFrame): super().__init__(master, fg_color="transparent") self.store = store + # Scrollable container for all content + self._scroll = ctk.CTkScrollableFrame(self, fg_color="transparent") + self._scroll.pack(fill="both", expand=True) + # Header self.header_label = ctk.CTkLabel( - self, text=t("claude_integration"), + self._scroll, text=t("claude_integration"), font=ctk.CTkFont(size=20, weight="bold") ) self.header_label.pack(padx=20, pady=(20, 5)) self.desc_label = ctk.CTkLabel( - self, text=t("claude_desc"), + self._scroll, text=t("claude_desc"), text_color="#9ca3af", justify="center" ) self.desc_label.pack(padx=20, pady=(0, 15)) # Status card - self.status_frame = ctk.CTkFrame(self) + self.status_frame = ctk.CTkFrame(self._scroll) self.status_frame.pack(fill="x", padx=20, pady=10) self.status_title = ctk.CTkLabel( @@ -62,7 +66,7 @@ class SetupTab(ctk.CTkFrame): self._status_text_labels[key] = (text_label, i18n_key) # Buttons - btn_frame = ctk.CTkFrame(self, fg_color="transparent") + btn_frame = ctk.CTkFrame(self._scroll, fg_color="transparent") btn_frame.pack(fill="x", padx=20, pady=15) self.install_all_btn = ctk.CTkButton( @@ -91,7 +95,7 @@ class SetupTab(ctk.CTkFrame): self.refresh_btn.pack(side="right") # ── Monitoring section ───────────────────────── - monitor_frame = ctk.CTkFrame(self) + monitor_frame = ctk.CTkFrame(self._scroll) monitor_frame.pack(fill="x", padx=20, pady=(5, 5)) self.monitor_title = ctk.CTkLabel( @@ -120,7 +124,7 @@ class SetupTab(ctk.CTkFrame): self._interval_buttons[seconds] = btn # ── Configuration section ───────────────────── - config_frame = ctk.CTkFrame(self) + config_frame = ctk.CTkFrame(self._scroll) config_frame.pack(fill="x", padx=20, pady=(5, 5)) self.config_title = ctk.CTkLabel( @@ -201,8 +205,8 @@ class SetupTab(ctk.CTkFrame): self.import_backup_btn.pack(side="left", padx=5) # Log - self.log = ctk.CTkTextbox(self, height=150, font=ctk.CTkFont(family="Consolas", size=11), state="disabled") - self.log.pack(fill="both", expand=True, padx=20, pady=(5, 20)) + self.log = ctk.CTkTextbox(self._scroll, height=150, font=ctk.CTkFont(family="Consolas", size=11), state="disabled") + self.log.pack(fill="x", padx=20, pady=(5, 20)) # Initial status check self._refresh_status()