/*
 * Définition des variables et constantes globales
 */
package fr.free.cdmrail;

import javax.swing.JMenuItem;
import java.awt.Color;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;

import fr.free.cdmrail.CdmWin.CdmWinMain;
public class Global {
	// Version de CDM-Rail
	public static final String CDM_VERSION = "V26";
	
	// Pour choisir la langue, en Français par défaut
	public static final byte LANGUAGE_FR = 1;
	public static final byte LANGUAGE_EN = 2;
	public static byte whichLanguage = LANGUAGE_FR;
	
	// Liste des écrans disponibles
	// On ne tient compte que de deux écrans au maximum
	public static final GraphicsEnvironment G_ENV = GraphicsEnvironment.getLocalGraphicsEnvironment();
	public static final GraphicsDevice[] G_DEVICES = G_ENV.getScreenDevices();
	public static final GraphicsDevice SCREEN_PRIMARY = G_DEVICES[0];
	public static final GraphicsDevice SCREEN_SECONDARY = G_DEVICES.length > 1 ? G_DEVICES[1] : G_DEVICES[0];
	
	// Les deux confighurations graphiques
	public static final GraphicsConfiguration SCREEN_PRIMARY_CONF = SCREEN_PRIMARY.getDefaultConfiguration();
	public static final GraphicsConfiguration SCREEN_SECONDARY_CONF = SCREEN_SECONDARY.getDefaultConfiguration();
	
	// Pour utiliser le second écran
	public static boolean useScreenSecondary = false;
	
	// Taille et position de l'écran principal
	public static final Rectangle SCREEN_PRIMARY_BOUNDS = SCREEN_PRIMARY_CONF.getBounds();
	
	// Taille et position de l'écran secondaire
	public static final Rectangle SCREEN_SECONDARY_BOUNDS = SCREEN_SECONDARY_CONF.getBounds();
	
	// Couleurs de fond des zones d'affichage des fenêtres
	public static Color primaryBackgroundColor = new Color(192,192,192);
	public static Color secondaryBackgroundColor = new Color(192,192,192);
	
	/*
	 * Les types de fenêtres utilisées
	 */
	public static final String WIN_MAIN = "MAIN"; // Fenêtre principale
	
	// La fenêtre principale
	public static CdmWinMain theWinMain = null;
	
//	// Création du menu
//	// Si un menu existe déjà on le supprime
//	// pframe : la fenêtre qui contient le menu
//	// pmenuBar : la barre des menus
//	// ptheMenu : tableau pour définir les titres des menus
////	public static void SetMenu(JFrame pframe, JMenuBar pmenuBar, JMenu [] ptheMenu) {
//	public static void SetMenu(JFrame pframe) {
//		JMenuBar pmenuBar = new JMenuBar();
//		JMenu [] ptheMenu = new JMenu[Menu.MENU_MAIN_FR.length];
//		// Si un menu existe on le supprime
//		if (pframe.getMenuBar() != null) {
//			// Annule la barre de menu
//			pframe.setMenuBar(null);
//			// Valide l'effacement
//			pframe.revalidate();
//			// Maj l'affichage
//			pframe.repaint();
//		}
//		// Les titres du menu
//		if (Global.whichLanguage == Global.LANGUAGE_FR) {
//			// Menu en Français
//			for (byte lin = 0; lin < Menu.MENU_MAIN_FR.length; lin++) {
//				// Titre du menu
//				ptheMenu[lin] = new JMenu(Menu.MENU_MAIN_FR[lin]);
//				// Les éléments du titre
//				if (Menu.MENU_MAIN_ITEMS_FR[lin].length > 0) {
//					SetMenuItems(lin, ptheMenu[lin]);
//				}
//				// Ajout du titre à la barre des menus
//				pmenuBar.add(ptheMenu[lin]);
//			}
//		}
//		else {
//			// Menu en Anglais
//			for (byte lin = 0; lin < Menu.MENU_MAIN_EN.length; lin++) {
//				// Titre du menu
//				ptheMenu[lin] = new JMenu(Menu.MENU_MAIN_EN[lin]);
//				// Les éléments du titre
//				if (Menu.MENU_MAIN_ITEMS_EN[lin].length > 0) {
//					SetMenuItems(lin, ptheMenu[lin]);
//				}
//				// Ajout du titre à la barre des menus
//				pmenuBar.add(ptheMenu[lin]);
//			}
//		}
//		// Indique la barre de menu
//		pframe.setJMenuBar(pmenuBar);
//	}
//	
//	// Création des éléments d'un titre du menu
//	// pframe : la fenêtre qui contient les menus
//	// plin : l'index dans le tableau MENU_MAIN_ITEMS_XX de la ligne des éléments du titre ptheMenu
//	// ptheMenu : titre de menu
//	// ptheMenuItems : tableau pour définir les éléments du titre
//	public static void SetMenuItems(byte plin, JMenu ptheMenu) {
//		if (Global.whichLanguage == Global.LANGUAGE_FR) {
//			// Eléments en Français
//			for (byte col = 0; col < Menu.MENU_MAIN_ITEMS_FR[plin].length; col++ ) {
//				if (Menu.MENU_MAIN_ITEMS_FR[plin][col].equals("-")) {
//					// C'est un séparateur
//					ptheMenu.addSeparator();
//				}
//				else {
//					ptheMenu.add(new JMenuItem(Menu.MENU_MAIN_ITEMS_FR[plin][col]));
//				}			
//			}
//		}
//		else {
//			// Eléments en Anglais
//			for (byte col = 0; col < Menu.MENU_MAIN_ITEMS_EN[plin].length; col++ ) {
//				if (Menu.MENU_MAIN_ITEMS_EN[plin][col].equals("-")) {
//					// C'est un séparateur
//					ptheMenu.addSeparator();
//				}
//				else {
//					ptheMenu.add(new JMenuItem(Menu.MENU_MAIN_ITEMS_EN[plin][col]));
//				}			
//			}
//		}
//	}
//	
////	// Change la langue des menus
////	public static void SetMenuLanguage(JFrame pframe, byte planguage) {
////		// Annule la barre de menu
////		pframe.setMenuBar(null);
////		// Valide l'effacement
////		pframe.revalidate();
////		// Maj l'affichage
////		pframe.repaint();
////		
////		// Positionne la langue
////		Global.whichLanguage = planguage;
////		// Création du menu avec la langue indiquée
////		SetMenu(pframe, pframe.getMenuBar(), Menu.theMenu);
////	}
}


