import tkinter as tk from tkinter import messagebox class DialogoAdicionarPet(tk.Toplevel): def __init__(self, parent): super().__init__(parent) self.result = None self.title("Adicionar Novo Pet") self.geometry("300x200") self.configure(bg="#1e1e1e") self.transient(parent) self.grab_set() self._criar_widgets() self.wait_window(self) def _criar_widgets(self): main_frame = tk.Frame(self, bg="#1e1e1e", padx=20, pady=20) main_frame.pack(fill="both", expand=True) tk.Label(main_frame, text="Nome:", bg="#1e1e1e", fg="white").pack(anchor="w") self.entry_nome = tk.Entry(main_frame, bg="#2c2c2c", fg="white", insertbackground="white") self.entry_nome.pack(fill="x", pady=(0, 10)) tk.Label(main_frame, text="Espécie:", bg="#1e1e1e", fg="white").pack(anchor="w") self.entry_especie = tk.Entry(main_frame, bg="#2c2c2c", fg="white", insertbackground="white") self.entry_especie.pack(fill="x", pady=(0, 20)) botoes_frame = tk.Frame(main_frame, bg="#1e1e1e") botoes_frame.pack(fill="x") btn_ok = tk.Button(botoes_frame, text="Adicionar", command=self._on_ok, bg="#4CAF50", fg="white", relief="flat") btn_ok.pack(side="right", padx=(10, 0)) btn_cancelar = tk.Button(botoes_frame, text="Cancelar", command=self.destroy, bg="#f44336", fg="white", relief="flat") btn_cancelar.pack(side="right") self.entry_nome.focus_set() def _on_ok(self): nome = self.entry_nome.get().strip() especie = self.entry_especie.get().strip() if not nome or not especie: messagebox.showwarning("Campos Vazios", "Por favor, preencha o nome e a espécie.", parent=self) return self.result = {"nome": nome, "especie": especie} self.destroy() class DialogoEditarPet(tk.Toplevel): def __init__(self, parent, pet_atual): super().__init__(parent) self.result = None self.pet_atual = pet_atual self.title("Editar Pet") self.geometry("300x200") self.configure(bg="#1e1e1e") self.transient(parent) self.grab_set() self._criar_widgets() def _criar_widgets(self): main_frame = tk.Frame(self, bg="#1e1e1e", padx=20, pady=20) main_frame.pack(fill="both", expand=True) tk.Label(main_frame, text="Nome:", bg="#1e1e1e", fg="white").pack(anchor="w") self.entry_nome = tk.Entry(main_frame, bg="#2c2c2c", fg="white", insertbackground="white") self.entry_nome.insert(0, self.pet_atual.nome) self.entry_nome.pack(fill="x", pady=(0, 10)) tk.Label(main_frame, text="Espécie:", bg="#1e1e1e", fg="white").pack(anchor="w") self.entry_especie = tk.Entry(main_frame, bg="#2c2c2c", fg="white", insertbackground="white") self.entry_especie.insert(0, self.pet_atual.especie) self.entry_especie.pack(fill="x", pady=(0, 20)) botoes_frame = tk.Frame(main_frame, bg="#1e1e1e") botoes_frame.pack(fill="x") btn_ok = tk.Button(botoes_frame, text="Salvar", command=self._on_ok, bg="#4CAF50", fg="white", relief="flat") btn_ok.pack(side="right", padx=(10, 0)) btn_cancelar = tk.Button(botoes_frame, text="Cancelar", command=self.destroy, bg="#f44336", fg="white", relief="flat") btn_cancelar.pack(side="right") def _on_ok(self): nome = self.entry_nome.get().strip() especie = self.entry_especie.get().strip() if not nome or not especie: messagebox.showerror("Erro", "Nome e espécie não podem ser vazios.", parent=self) return self.result = {"nome": nome, "especie": especie} self.destroy()