SXXXXXXX_CodeBridge/codebridge/gui/commit_dialog.py
2025-12-23 10:32:22 +01:00

47 lines
1.5 KiB
Python

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