from PySide6.QtWidgets import QMessageBox
from .theme import theme_manager, set_dark_title_bar

def show_themed_messagebox(parent, icon, title, text, buttons=QMessageBox.Ok):
    msg = QMessageBox(parent)
    msg.setIcon(icon)
    msg.setWindowTitle(title)
    msg.setText(text)
    msg.setStandardButtons(buttons)

    if theme_manager.is_dark():
        msg.setStyleSheet("""
            QMessageBox {
                background-color: #2e2e2e;
                color: white;
                border: none;
                outline: none;
            }
            QMessageBox QLabel {
                color: white;
                border: none;
                outline: none;
            }
            QMessageBox QPushButton {
                background-color: #444;
                color: white;
                border: none;
                outline: none;
                border-radius: 6px;
                padding: 6px 12px;
            }
            QMessageBox QPushButton:hover {
                background-color: #666;
            }
        """)
    else:
        msg.setStyleSheet("""
            QMessageBox {
                background-color: white;
                color: black;
                border: none;
                outline: none;
            }
            QMessageBox QLabel {
                color: black;
                border: none;
                outline: none;
                background: transparent;
            }
            QMessageBox QPushButton {
                background-color: #e0e0e0;
                color: black;
                border: none;
                outline: none;
                border-radius: 6px;
                padding: 6px 12px;
            }
            QMessageBox QPushButton:focus,
            QMessageBox QPushButton:pressed {
                border: none;
                outline: none;
            }
            QMessageBox QPushButton:hover {
                background-color: #d0d0d0;
            }
        """)


    hwnd = int(msg.winId())
    set_dark_title_bar(hwnd, theme_manager.is_dark())

    return msg.exec()
