import tkinter as tk from tkinter import ttk class CommitDialog(tk.Toplevel): """ A dialog window for entering a commit message. """ def __init__(self, parent): super().__init__(parent) self.title("Commit Message") self.geometry("400x300") self.result = None self._setup_ui() # Make the dialog modal self.transient(parent) self.grab_set() def _setup_ui(self) -> None: """ Initializes the dialog components. """ label = ttk.Label(self, text="Enter the commit message for this package:") label.pack(pady=10, padx=10, anchor="w") self.text_area = tk.Text(self, wrap="word", height=8) self.text_area.pack(padx=10, pady=5, fill="both", expand=True) btn_frame = ttk.Frame(self) btn_frame.pack(fill="x", pady=10) ok_btn = ttk.Button(btn_frame, text="✅ Confirm", command=self._on_confirm) ok_btn.pack(side="right", padx=10) cancel_btn = ttk.Button(btn_frame, text="✖ Cancel", command=self.destroy) cancel_btn.pack(side="right", padx=5) def _on_confirm(self) -> None: """ Stores the message and closes the dialog. """ self.result = self.text_area.get("1.0", "end-1c").strip() self.destroy() def get_message(self) -> str: """ Waits for the user and returns the entered message. """ self.wait_window() return self.result