diff --git a/7lna.py b/7lna.py index f9aeac6..fb8bf98 100644 --- a/7lna.py +++ b/7lna.py @@ -259,30 +259,42 @@ class Antivirus7LnA(ctk.CTk): def init_scanner_view(self): frame = ctk.CTkFrame(self, fg_color="transparent") - frame.grid_rowconfigure(3, weight=1) - frame.grid_columnconfigure((0, 1, 2), weight=1) self.views["scanner"] = frame - ctk.CTkLabel(frame, text="Analyse Système", font=ctk.CTkFont(size=38, weight="bold")).grid(row=0, column=0, columnspan=3, sticky="w", pady=(0, 30)) + # 1. En-tête + ctk.CTkLabel(frame, text="Analyse Système", font=ctk.CTkFont(size=38, weight="bold"), text_color=TEXT_MAIN).pack(anchor="w", pady=(0, 20)) - self.btn_scan_f = ctk.CTkButton(frame, text="📄 Fichier", command=lambda: self.start_manual_scan(is_dir=False), height=50, fg_color=BG_CARD, hover_color="#374151", border_width=1, border_color=ACCENT_BLUE) - self.btn_scan_f.grid(row=1, column=0, padx=(0, 5), pady=5, sticky="ew") + # 2. Le Panneau de Contrôle (Une carte qui regroupe les actions) + control_card = ctk.CTkFrame(frame, fg_color=BG_CARD, corner_radius=15, border_width=1, border_color="#374151") + control_card.pack(fill="x", pady=(0, 20), ipady=10) + control_card.grid_columnconfigure((0, 1, 2), weight=1) - self.btn_scan_d = ctk.CTkButton(frame, text="📁 Dossier", command=lambda: self.start_manual_scan(is_dir=True), height=50, fg_color=BG_CARD, hover_color="#374151", border_width=1, border_color=ACCENT_BLUE) - self.btn_scan_d.grid(row=1, column=1, padx=(5, 5), pady=5, sticky="ew") + # Boutons avec des couleurs profondes et professionnelles + self.btn_scan_f = ctk.CTkButton(control_card, text="📄 Analyser Fichier", command=lambda: self.start_manual_scan(is_dir=False), + height=45, fg_color="#1E3A8A", hover_color=ACCENT_BLUE, font=ctk.CTkFont(weight="bold")) + self.btn_scan_f.grid(row=0, column=0, padx=15, pady=15, sticky="ew") - self.btn_db_update = ctk.CTkButton(frame, text="🔄 MaJ Signatures", command=self.update_virus_db_prompt, height=50, fg_color="#059669", hover_color="#047857") - self.btn_db_update.grid(row=1, column=2, padx=(5, 0), pady=5, sticky="ew") + self.btn_scan_d = ctk.CTkButton(control_card, text="📁 Analyser Dossier", command=lambda: self.start_manual_scan(is_dir=True), + height=45, fg_color="#1E3A8A", hover_color=ACCENT_BLUE, font=ctk.CTkFont(weight="bold")) + self.btn_scan_d.grid(row=0, column=1, padx=15, pady=15, sticky="ew") + + self.btn_db_update = ctk.CTkButton(control_card, text="🔄 MaJ Signatures", command=self.update_virus_db_prompt, + height=45, fg_color="#064E3B", hover_color="#059669", font=ctk.CTkFont(weight="bold")) + self.btn_db_update.grid(row=0, column=2, padx=15, pady=15, sticky="ew") - self.btn_rootkit = ctk.CTkButton(frame, text="🕵️ Hunt Rootkits (rkhunter)", command=self.run_rootkit_scan, height=50, fg_color=ACCENT_VIOLET, hover_color="#7C3AED") - self.btn_rootkit.grid(row=2, column=0, columnspan=3, pady=(15, 20), sticky="ew") + self.btn_rootkit = ctk.CTkButton(control_card, text="🕵️ Chasse aux Rootkits (rkhunter)", command=self.run_rootkit_scan, + height=45, fg_color="#4C1D95", hover_color=ACCENT_VIOLET, font=ctk.CTkFont(weight="bold")) + self.btn_rootkit.grid(row=1, column=0, columnspan=3, padx=15, pady=(0, 15), sticky="ew") - self.scan_progress = ctk.CTkProgressBar(frame, mode="indeterminate", height=4, progress_color=ACCENT_BLUE) - self.scan_progress.grid(row=3, column=0, columnspan=3, sticky="ew") + # 3. La barre de progression (Subtile, juste en dessous des contrôles) + self.scan_progress = ctk.CTkProgressBar(frame, mode="indeterminate", height=4, progress_color=ACCENT_BLUE, fg_color="transparent") + self.scan_progress.pack(fill="x", pady=(0, 15)) self.scan_progress.set(0) - self.scan_console = ctk.CTkTextbox(frame, font=ctk.CTkFont(family="Consolas", size=14), fg_color=BG_CARD, corner_radius=15, border_width=1, border_color="#374151") - self.scan_console.grid(row=4, column=0, columnspan=3, pady=10, sticky="nsew") + # 4. Le Terminal Géant (Prend tout l'espace restant) + self.scan_console = ctk.CTkTextbox(frame, font=ctk.CTkFont(family="Consolas", size=14), fg_color=BG_CARD, + corner_radius=15, border_width=1, border_color="#374151") + self.scan_console.pack(fill="both", expand=True) self.setup_console_tags(self.scan_console) self.scan_console.insert("end", f"{self.get_time_prefix()}[*] Moteur d'analyse prêt.\n", "info")