package fr.monkhanny.dorfromantik.game;

import fr.monkhanny.dorfromantik.components.Title;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;

public class EscapeMenu extends JFrame {

    private JButton resumeButton;
    private JButton mainMenuButton;
    private JButton settingsButton;

    public EscapeMenu(JFrame gameFrame, Game game) {
        // Paramétrer la fenêtre de la pause
        setTitle("Menu de Pause");
        setSize(550, 200);  // Taille de la fenêtre
        setMaximumSize(new Dimension(550,200));
        setMinimumSize(new Dimension(550,200));
        setLocationRelativeTo(gameFrame); // Centrer la fenêtre sur le jeu
        setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); // Fermer sans quitter l'application
        setLayout(new BorderLayout()); // Utiliser BorderLayout pour gérer les composants

        // Ajouter l'image de fond
        JLabel background = new JLabel(new ImageIcon("./ressources/images/MainMenu/backgroundBlured.jpg"));
        background.setLayout(new BorderLayout());  
        this.add(background);

        // Créer un panneau principal
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.setOpaque(false);  // Garder le fond transparent
        background.add(panel, BorderLayout.CENTER); // Ajouter le panneau dans le centre de l'image

        // Ajouter le message "Jeu en pause" centré en haut
        Title pauseLabel = new Title("Jeu en pause", 34f);
        panel.add(pauseLabel, BorderLayout.NORTH);  // Placer le titre dans la partie nord du BorderLayout

        // Créer le panneau des boutons avec un FlowLayout horizontal
        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 20, 10));
        buttonPanel.setOpaque(false);  // Garder le fond transparent

        // Créer les boutons et ajouter les écouteurs d'événements
        resumeButton = createButton("Reprendre");
        settingsButton = createButton("Paramètres");
        mainMenuButton = createButton("Quitter");

        // Ajouter les boutons dans le panneau
        buttonPanel.add(resumeButton);
        buttonPanel.add(settingsButton);
        buttonPanel.add(mainMenuButton);

        // Ajouter le panneau des boutons au panneau principal
        panel.add(buttonPanel, BorderLayout.SOUTH);

        setVisible(true); // Afficher la fenêtre
    }

    private JButton createButton(String text) {
        JButton button = new JButton(text);
        button.setFont(new Font("Tahoma", Font.PLAIN, 18));
        button.setBackground(new Color(0, 122, 255));  // Bleu lumineux pour les boutons
        button.setForeground(Color.WHITE);
        button.setFocusPainted(false);
        button.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2));  // Bordure blanche
        button.setPreferredSize(new Dimension(150, 50));  // Taille des boutons
        return button;
    }

    public void setResumeButtonListener(ActionListener listener) {
        resumeButton.addActionListener(listener);
    }

    public void setQuitButtonListener(ActionListener listener) {
        mainMenuButton.addActionListener(listener);
    }

    public void setSettingsButtonListener(ActionListener listener) {
        settingsButton.addActionListener(listener);
    }

    public void setMenuVisible(boolean visible) {
        setVisible(visible);
    }
}
