from PySide6.QtGui import QColor, QPalette
from PySide6.QtWidgets import QApplication

class ThemeManager:
    """애플리케이션 전체의 테마(Light/Dark)를 관리"""
    
    LIGHT_THEME = {
        "bg": "#FFFFFF", "fg": "#000000", "panel": "#F0F0F0",
        "accent": "#0078D7", "border": "#CCCCCC", "text": "#333333"
    }
    
    DARK_THEME = {
        "bg": "#1E1E1E", "fg": "#FFFFFF", "panel": "#2D2D30",
        "accent": "#007ACC", "border": "#3E3E42", "text": "#D4D4D4"
    }

    @staticmethod
    def apply_theme(app: QApplication, theme="dark"):
        palette = QPalette()
        colors = ThemeManager.DARK_THEME if theme == "dark" else ThemeManager.LIGHT_THEME
        
        # 기본 팔레트 설정 (Qt 기본 위젯용)
        # (상세 팔레트 설정 코드는 생략하고 스타일시트 위주로 적용)
        
        # 공통 스타일시트 (Fusion 스타일 + 커스텀)
        qss = f"""
            QMainWindow {{ background-color: {colors['bg']}; color: {colors['text']}; }}
            QWidget {{ background-color: {colors['bg']}; color: {colors['text']}; font-family: 'Malgun Gothic', 'Segoe UI'; font-size: 10pt; }}
            QTabWidget::pane {{ border: 1px solid {colors['border']}; background: {colors['panel']}; }}
            QTabBar::tab {{ background: {colors['bg']}; border: 1px solid {colors['border']}; padding: 8px 16px; margin-right: 2px; }}
            QTabBar::tab:selected {{ background: {colors['accent']}; color: white; font-weight: bold; }}
            QSplitter::handle {{ background-color: {colors['border']}; width: 2px; }}
            QPushButton {{ background-color: {colors['panel']}; border: 1px solid {colors['border']}; padding: 6px 12px; border-radius: 4px; }}
            QPushButton:hover {{ background-color: {colors['accent']}; color: white; }}
            QStatusBar {{ background: {colors['panel']}; color: {colors['text']}; border-top: 1px solid {colors['border']}; }}
        """
        app.setStyleSheet(qss)