MACXT_Menu = {}
PosY_Selecteur_MACXT_Menu = MACXT_Barre1:height() + 8
PosX_Selecteur_MACXT_Barre = MACXT_Barre1:width()
PosY_Selecteur_MACXT_Barre_Fonction = MACXT_Barre1:height() + 5
Selecteur_MACXT_Menu = 1
Selecteur_MACXT_Barre_Fonction = 1
Selecteur_MACXT_Barre = 0
Selecteur_MACXT_Properties = 1
Selecteur_MACXT_Button = 1
Selecteur_Personnal_Texte = 1
Afficher__Proprietes = 0
Other_Process = 0
REGISTRY:Read("MACXT","XHDD")
REGISTRY:Read("MACXT","YHDD")
REGISTRY:Read("MACXT","Nom_HDD")
REGISTRY:Read("MACXT","XDISC")
REGISTRY:Read("MACXT","YDISC")
fichiersmm = System.listDirectory(MACXT_Path)
n_fichiersmm = table.getn(fichiersmm)
for i=1,n_fichiersmm do
   if fichiersmm[i].name == "webbrowser.PBP" then
      Afficher_WB_SY = 1
      fichiersmm = nil
      n_fichiersmm = nil
   end
end
function MACXT_Menu:Afficher_Bureau()
   screen:blit(XHDD,YHDD,Sprite_MAC_MACXT,139,126,28,30)
   screen:fillRect((XHDD + 25) - string.len(Nom_HDD)*10/2,YHDD + 33,string.len(Nom_HDD)*8,12,Color.new(0,0,255))
   screen:print((XHDD + 28) - string.len(Nom_HDD)*10/2,YHDD + 35,Nom_HDD,Color.new(255,255,255))
   if UMD.checkDisk() == 1 then
      UMD.init()
      screen:blit(XDISC,YDISC,disc_MACXT)
   end
   Nom_HDD_String = string.len(Nom_HDD)
   if x >= XDISC and x <= XDISC+disc_MACXT:width() and y >= YDISC and y <= YDISC+disc_MACXT:height() and UMD.checkDisk() then
      if MACXTKeyPad:cross() then
         if math.abs(MACXTKeyPad:analogX()) > 32 then
            XDISC = XDISC + MACXTKeyPad:analogX() / 20
         end
         if math.abs(MACXTKeyPad:analogY()) > 32 then
            YDISC = YDISC + MACXTKeyPad:analogY() / 20
         end
      end
      MACXT_Objets_Properties[1] = {Caption = "Ouvrir UMD (Finder)",Action = "Open_DISCFINDER"}
      MACXT_Objets_Properties[2] = {Caption = "Lancer UMD",Action = "Launch UMD"}
      MACXT_Objets_Properties[3] = {Caption = "Lire Informations",Action = "OpenInfos_UMD"}
      MACXT_Repertoire:Actualise_Properties()
   end
   if x >= XHDD and x <= XHDD + MACXT_HDD_MACXT:width() and y >= YHDD and y <= YHDD + MACXT_HDD_MACXT:height() then
      if MACXTKeyPad:cross() then
         if math.abs(MACXTKeyPad:analogX()) > 32 then
            XHDD = XHDD + MACXTKeyPad:analogX() / 20
         end
         if math.abs(MACXTKeyPad:analogY()) > 32 then
            YHDD = YHDD + MACXTKeyPad:analogY() / 20
         end
      end
      MACXT_Objets_Properties[1] = {Caption = "Ouvrir MACXT HD",Action = "Open_MACXTHD"}
      MACXT_Objets_Properties[2] = {Caption = "Lire Informations",Action = "Read_Info_MACXHD"}
      MACXT_Objets_Properties[3] = {Caption = "Renommer",Action = "Rename_HDD_MACXT"}
      MACXT_Repertoire:Actualise_Properties()
   end
   if string.len(Nom_HDD) == 0 then
      Nom_HDD = Last_HDD_Name
      REGISTRY:Write_On_File("MACXT","Nom_HDD","Nom_HDD = "..'"'..Nom_HDD..'"')
      REGISTRY:Read("MACXT","Nom_HDD")
   end
   if Action_Properties == "Rename_HDD_MACXT" then
      Window_Hauteur = 45
      Window_Longueur = 225
      MACXT_Graphic:Init_New_Personnal_Window()
      MACXT_Title = "Informations"
      MACXT_Texte_Window[1] = {Caption = "Veuillez actualiser apres"}
      MACXT_Repertoire:Actualise_Texte_Window()
      Affichage_Button = "Horizontal_Drawing"
      MACXT_Draw_Button[1] = {Caption = "Accepter",Action = "AcceptRename"}
      MACXT_Draw_Button[2] = {Caption = "Annuler",Action = "AnnulerRename"}
      MACXT_Repertoire:Actualise_Draw_Button()
      if Action_Button == "AcceptRename" then
         Afficher_Personnal_Window = 0
         Last_HDD_Name = Nom_HDD
         Nom_HDD = System.startOSK(Nom_HDD,"")
         REGISTRY:Write_On_File("MACXT","Nom_HDD","Nom_HDD = "..'"'..Nom_HDD..'"')
         REGISTRY:Read("MACXT","Nom_HDD")
         MACXT_Repertoire:Anti_Bug()
      end
      if Action_Button == "AnnulerRename" then
         Afficher_Personnal_Window = 0
         MACXT_Repertoire:Anti_Bug()
      end
   end
   if Action_Properties == "Launch UMD" then
      System.startUMD()
   end
   if Action_Properties == "Open_DISCFINDER" then
      UMD.init()
      dossier = "disk0:/"
      MACXT_Finder:Init_Finder()
      Afficher_Wallpaper_MACXT_TRUE = false
      MACXT_Repertoire:Anti_Bug()
   end
   if Action_Properties == "OpenInfos_UMD" then
      UMD.init()
      MACXT_Title = "Information sur l'UMD"
      Window_Longueur = 200
      Window_Hauteur = 85
      MACXT_Graphic:Init_New_Personnal_Window()
      MACXT_Repertoire:Reinitialiser_Window()
      MACXT_Texte_Window[1] = {Caption = "Taille = "..UMD.getSize()/(512*2).." KB"}
      MACXT_Repertoire:Actualise_Texte_Window()
      Affichage_Images = "Horizontal_Screen"
      MACXT_Images_Window[1] = {Images = disc_MACXT}
      MACXT_Repertoire:Actualise_Images()
      Affichage_Button = "Horizontal_Drawing"
      MACXT_Draw_Button[1] = {Caption = "Fermer",Action = "Fermer_Fenetre_MACXTHD"}
      MACXT_Repertoire:Actualise_Draw_Button()
      MACXT_Repertoire:Anti_Bug()
   end
   if Action_Properties == "Open_MACXTHD" then
      dossier = "ms0:/"
      MACXT_Finder:Init_Finder()
      Afficher_Wallpaper_MACXT_TRUE = false
      MACXT_Repertoire:Anti_Bug()
   end
   if Action_Properties == "Read_Info_MACXHD" then
      MACXT_Title = "Information sur "..Nom_HDD
      Window_Longueur = string.len(MACXT_Title)*9
      Window_Hauteur = 150
      MACXT_Graphic:Init_New_Personnal_Window()
      MACXT_Repertoire:Reinitialiser_Window()
      MACXT_Texte_Window[1] = {Caption = "Nom : "..Nom_HDD}
      MACXT_Texte_Window[2] = {Caption = "restant : "..System.getFreeSpace("ms0:/")/(512*2).." KB"}
      MACXT_Texte_Window[3] = {Caption = "Total : "..System.getTotalSize("ms0:/")/(512*2).." KB"}
      MACXT_Texte_Window[4] = {Caption = "Utilise : "..(System.getTotalSize("ms0:/")/(512*2))-(System.getFreeSpace("ms0:/")/(512*2)).." KB"}
      MACXT_Repertoire:Actualise_Texte_Window()
      Affichage_Images = "Horizontal_Screen"
      MACXT_Images_Window[1] = {Images = MACXT_HDD_MACXT}
      MACXT_Repertoire:Actualise_Images()
      Affichage_Button = "Horizontal_Drawing"
      MACXT_Draw_Button[1] = {Caption = "Fermer",Action = "Fermer_Fenetre_MACXTHD"}
      MACXT_Repertoire:Actualise_Draw_Button()
      MACXT_Repertoire:Anti_Bug()
   end
   if Action_Button == "Fermer_Fenetre_MACXTHD" then
      Afficher_Personnal_Window = 0
      MACXT_Repertoire:Reinitialiser_Window()
      MACXT_Repertoire:Anti_Bug()
   end
end
function MACXT_Menu:Go_To_Menu()
   MACXT_Objets_Menu[1] = {Caption = "A propos de MACXT",Action = "Go_To_Propos"}
   MACXT_Objets_Menu[2] = {Caption = "Mise a jour Logiciels",Action = "Mise_A_Jour"}
   MACXT_Objets_Menu[3] = {Caption = "Preferences Systeme",Action = "Preferences_Systeme"}
   MACXT_Objets_Menu[4] = {Caption = "Dock",Action = "Options_Dock"}
   MACXT_Objets_Menu[5] = {Caption = "Redemarrer...",Action = "Redemarrer_MACXT"}
   MACXT_Objets_Menu[6] = {Caption = "Eteindre...",Action = "Arreter_MACXT"}
   MACXT_Objets_Menu[7] = {Caption = "Acualiser Dock",Action = "Actualiser_Dock"}
   if Afficher_WB_SY == 1 then
      MACXT_Objets_Menu[8] = {Caption = "Internet Browser",Action = "Launch_SY"}
   end
   MACXT_Repertoire:Actualise_Menu()
   if x >= 0 and x <= MACXT_Barre1:width() and y > 0 and y <= MACXT_Barre1:height() and MACXT_Menu_Afficher_Menu ~= 1 then
      MACXTAide = "Menu MACXT"
      if MACXTKeyPad:cross() then
         Selecteur_MACXT_Menu = 1
         PosY_Selecteur_MACXT_Menu = MACXT_Barre1:height() + 8
         MACXT_Menu_Afficher_Menu = 1
      end
   end
   if MACXT_Menu_Afficher_Menu ~= 1 then
      Selecteur_MACXT_Menu = 0
   end
   if MACXT_Menu_Afficher_Menu == 1 then
      Other_Process = 1
      oldpad = Controls.read()
      screen:fillRect(0,MACXT_Barre1:height(),180,MACXT_Objets_Menu_Nombre*20+5,Color.new(255,255,255))
      screen:fillRect(180,MACXT_Barre1:height(),2,MACXT_Objets_Menu_Nombre*20+7)
      screen:fillRect(0,MACXT_Barre1:height()+MACXT_Objets_Menu_Nombre*20+5,180,2)
      MACXT_Repertoire:Afficher__Objets__Menu()
      if x > 180 or y > MACXT_Barre1:height() + MACXT_Objets_Menu_Nombre*20+7 or x > MACXT_Barre1:width() and y < MACXT_Barre1:height() then
         if MACXTKeyPad:cross() then
            MACXT_Menu_Afficher_Menu = 0
            Other_Process = 0
         end
      end
      if x < 180 and y < MACXT_Barre1:height()+MACXT_Objets_Menu_Nombre*20+7 and y > MACXT_Barre1:height() then
         if y > PosY_Selecteur_MACXT_Menu and Seleceur_MACXT_Menu ~= MACXT_Objets_Menu_Nombre then
            Selecteur_MACXT_Menu = Selecteur_MACXT_Menu + 1
            PosY_Selecteur_MACXT_Menu = PosY_Selecteur_MACXT_Menu + 20
         end
         if y < PosY_Selecteur_MACXT_Menu and Selecteur_MACXT_Menu > 1 then
            Selecteur_MACXT_Menu = Selecteur_MACXT_Menu - 1
            PosY_Selecteur_MACXT_Menu = PosY_Selecteur_MACXT_Menu - 20
         end
         if MACXTKeyPad:cross() then
            Action_Menu_MACXT = MACXT_Objets_Menu[Selecteur_MACXT_Menu].Action
            MACXT_Menu_Afficher_Menu = 0
            Other_Process = 0
         end
         if Action_Menu_MACXT == "Launch_SY" then
            System.webbrowser(MACXT_Path,"www.google.fr")
            MACXT_Repertoire:Anti_Bug()
         end
         if Action_Menu_MACXT == "Arreter_MACXT" then
            REGISTRY:Write_On_File("MACXT","YHDD","YHDD = "..YHDD)
            REGISTRY:Write_On_File("MACXT","XHDD","XHDD = "..XHDD)
            REGISTRY:Write_On_File("MACXT","XDISC","XDISC = "..XDISC)
            REGISTRY:Write_On_File("MACXT","YDISC","YDISC = "..YDISC)
            System.Quit()
            MACXT_Repertoire:Anti_Bug()
         end
         if Action_Menu_MACXT == "Redemarrer_MACXT" then
            REGISTRY:Write_On_File("MACXT","YHDD","YHDD = "..YHDD)
            REGISTRY:Write_On_File("MACXT","XHDD","XHDD = "..XHDD)
            REGISTRY:Write_On_File("MACXT","XDISC","XDISC = "..XDISC)
            REGISTRY:Write_On_File("MACXT","YDISC","YDISC = "..YDISC)
            System.memclean()
            System.currentDirectory(MACXT_Path)
            dofile(MACXT_Path.."/System/System.lua")
         end
         if Action_Menu_MACXT == "Go_To_Propos" then
            dofile(MACXT_Path.."/MACXT/Systeme/Outils/Propos.lua")
            MACXT_Repertoire:Anti_Bug()
         end
         if Action_Menu_MACXT == "Options_Dock" then
            Afficher_Options_Dock = 1
            MACXT_Graphic:New_Textes()
            dofile(MACXT_Path.."/MACXT/Systeme/Outils/Configurations.lua")
            MACXT_Repertoire:Anti_Bug()
         end
         if Action_Menu_MACXT == "Preferences_Systeme" then
            Affichage_Principale = 1
            Afficher_Options_Alim = 0
            Afficher_Options_Dock = 0
            Afficher_Options_MACXT = 0
            Afficher_Options_Skin_MACXT = 0
            dofile(MACXT_Path.."/MACXT/Systeme/Outils/Configurations.lua")
            MACXT_Repertoire:Anti_Bug()
         end
         if Action_Menu_MACXT == "Mise_A_Jour" then
            System.currentDirectory(MACXT_Path.."/MACXT/Systeme/Update")
            Fichiers_Update = nil
            Fichiers_Update = System.listDirectory()
            n_Fichiers_Update = table.getn(Fichiers_Update)
            for Update=1,n_Fichiers_Update do
               if Fichiers_Update[Update].name == "Index.lua" or Fichiers_Update[Update].name == "Index.LUA" then
                  dofile("Index.lua")
                else
                  System.currentDirectory(MACXT_Path)
               end
            end
            MACXT_Repertoire:Anti_Bug()
         end
         if Action_Menu_MACXT == "Actualiser_Dock" then
            MACXT_Fichiers_Programmes = nil
            MACXT_Fichiers_Programmes = System.listDirectory(MACXT_Path.."/Programs/")
            MACXT_Fichiers_Programmes_Nombre = table.getn(MACXT_Fichiers_Programmes)
            MACXT_Repertoire:Anti_Bug()
         end
         screen:fillRect(0,PosY_Selecteur_MACXT_Menu-4,180,15,Color.new(0,0,255))
      end
   end
end
function MACXT_Menu:Afficher_Barre()
   if y < MACXT_Barre1:height() then
      if Selecteur_MACXT_Barre < MACXT_Objets_Barre_Nombre and x > PosX_Selecteur_MACXT_Barre + string.len(MACXT_Objets_Barre[Selecteur_MACXT_Barre].Caption)*8.5 + 5 then
         Selecteur_MACXT_Barre = Selecteur_MACXT_Barre + 1
         PosX_Selecteur_MACXT_Barre = PosX_Selecteur_MACXT_Barre + string.len(MACXT_Objets_Barre[Selecteur_MACXT_Barre - 1].Caption)*8.5 + 5
         MACXT_Objets_Barre_Fonction_Nombre = nil
         Fonction_Barre = MACXT_Objets_Barre[Selecteur_MACXT_Barre].Fonction
         MACXT_Objets_Barre_Fonction = nil
         MACXT_Objets_Barre_Fonction = {}
         Selecteur_MACXT_Barre_Fonction = 1
         PosY_Selecteur_MACXT_Barre_Fonction = MACXT_Barre1:height() + 5
         MACXT_Repertoire:Actualise_Fonction()
      end
      if Selecteur_MACXT_Barre > 1 and x < PosX_Selecteur_MACXT_Barre then
         Selecteur_MACXT_Barre = Selecteur_MACXT_Barre - 1
         PosX_Selecteur_MACXT_Barre = PosX_Selecteur_MACXT_Barre - 5 - string.len(MACXT_Objets_Barre[Selecteur_MACXT_Barre].Caption)*8.5
         MACXT_Objets_Barre_Fonction_Nombre = nil
         Fonction_Barre = MACXT_Objets_Barre[Selecteur_MACXT_Barre].Fonction
         MACXT_Objets_Barre_Fonction = nil
         MACXT_Objets_Barre_Fonction = {}
         Selecteur_MACXT_Barre_Fonction = 1
         PosY_Selecteur_MACXT_Barre_Fonction = MACXT_Barre1:height() + 5
         MACXT_Repertoire:Actualise_Fonction()
      end
      if MACXTKeyPad:cross() and MACXT_Objets_Barre_Fonction_Nombre ~= 0 and x < PosX_Selecteur_MACXT_Barre+string.len(MACXT_Objets_Barre[Selecteur_MACXT_Barre].Caption)*8.5  then
         Afficher_Objets_Barre_Menu = 1
         MACXT_Objets_Barre_Fonction_Nombre = nil
         MACXT_Objets_Barre_Fonction = nil
         MACXT_Objets_Barre_Fonction = {}
         Fonction_Barre = MACXT_Objets_Barre[Selecteur_MACXT_Barre].Fonction
         Selecteur_MACXT_Barre_Fonction = 1
         PosY_Selecteur_MACXT_Barre_Fonction = MACXT_Barre1:height() + 5
         MACXT_Repertoire:Actualise_Fonction()
      end
   end
   if Afficher_Objets_Barre_Menu == 1 then
      Other_Process = 1
      screen:fillRect(PosX_Selecteur_MACXT_Barre,MACXT_Barre1:height(),185,MACXT_Objets_Barre_Fonction_Nombre * 20 + 5,Color.new(255,255,255))
      screen:fillRect(PosX_Selecteur_MACXT_Barre + 185,MACXT_Barre1:height(),2,MACXT_Objets_Barre_Fonction_Nombre * 20 + 7)
      screen:fillRect(PosX_Selecteur_MACXT_Barre,MACXT_Barre1:height() + MACXT_Objets_Barre_Fonction_Nombre * 20 + 5,185,2)
      if y > MACXT_Barre1:height() and x > PosX_Selecteur_MACXT_Barre and x < PosX_Selecteur_MACXT_Barre + 185 and y < MACXT_Barre1:height() + MACXT_Objets_Barre_Fonction_Nombre * 20 + 7 then
         screen:fillRect(PosX_Selecteur_MACXT_Barre,PosY_Selecteur_MACXT_Barre_Fonction,185,15,Color.new(0,0,255))
         if Selecteur_MACXT_Barre_Fonction > 1 and y < PosY_Selecteur_MACXT_Barre_Fonction then
            PosY_Selecteur_MACXT_Barre_Fonction = PosY_Selecteur_MACXT_Barre_Fonction - 20
            Selecteur_MACXT_Barre_Fonction = Selecteur_MACXT_Barre_Fonction - 1
         end
         if Selecteur_MACXT_Barre_Fonction < MACXT_Objets_Barre_Fonction_Nombre and y > PosY_Selecteur_MACXT_Barre_Fonction + 20 then
            PosY_Selecteur_MACXT_Barre_Fonction = PosY_Selecteur_MACXT_Barre_Fonction + 20
            Selecteur_MACXT_Barre_Fonction = Selecteur_MACXT_Barre_Fonction + 1
         end
         if MACXTKeyPad:cross() then
            Action_Barre = MACXT_Objets_Barre_Fonction[Selecteur_MACXT_Barre_Fonction].Action
            screen.waitVblankStart(10)
            Afficher_Objets_Barre_Menu = 0
            Other_Process = 0
         end
      end
      MACXT_Repertoire:Afficher__Objets__Barre__Fonctions()
      if x < PosX_Selecteur_MACXT_Barre or x > PosX_Selecteur_MACXT_Barre + 180 or y > MACXT_Barre1:height() + MACXT_Objets_Barre_Fonction_Nombre * 20 + 5 then
         if MACXTKeyPad:cross() then
            Afficher_Objets_Barre_Menu = 0
            Other_Process = 0
         end
      end
   end
end
function MACXT_Menu:Afficher_Proprietes()
   if Afficher__Proprietes ~= 1 then
      PosX__Properties_MACXT = x
      PosY__Properties_MACXT = y
      PosY_Selecteur_MACXT_Properties = PosY__Properties_MACXT+3
      MACXT_Objets_Properties = nil
      MACXT_Objets_Properties = {}
      MACXT_Objets_Properties[0] = {Caption = ""}
   end
   if y > MACXT_Barre1:height() and MACXT_Menu_Afficher_Menu ~= 1 and MACXTKeyPad:circle() and MACXT_Objets_Properties_Nombre ~= 0 then
      PosY_Selecteur_MACXT_Properties = PosY__Properties_MACXT+3
      Selecteur_MACXT_Properties = 1
	  MACXT_Repertoire:Actualise_Properties()
	  Afficher__Proprietes = 1
	  xproperties = 0
      yproperties = 0
   end
   if Afficher__Proprietes == 1 then
      Other_Process = 1
      if xproperties < 180 then
         xproperties = xproperties + 10
      end
      if yproperties < MACXT_Objets_Properties_Nombre*20+5 then
         yproperties = yproperties + 10
      end
      screen:fillRect(PosX__Properties_MACXT,PosY__Properties_MACXT,xproperties,yproperties,Color.new(255,255,255))
      screen:fillRect(PosX__Properties_MACXT+xproperties,PosY__Properties_MACXT,2,yproperties)
      screen:fillRect(PosX__Properties_MACXT,PosY__Properties_MACXT+yproperties,xproperties,2)
      if PosX__Properties_MACXT > 480 - 180 then
         PosX__Properties_MACXT = 480 - 180 - (480-PosX__Properties_MACXT)
      end
      if PosY__Properties_MACXT + MACXT_Objets_Properties_Nombre*20+5 > 272 then
         PosY__Properties_MACXT = 272 - (MACXT_Objets_Properties_Nombre*20)-5
      end
      if x >= PosX__Properties_MACXT and x <= PosX__Properties_MACXT+180 and y >= PosY__Properties_MACXT and y <= PosY__Properties_MACXT+MACXT_Objets_Properties_Nombre*20+10 then
         if y > PosY_Selecteur_MACXT_Properties and Selecteur_MACXT_Properties < MACXT_Objets_Properties_Nombre then
            Selecteur_MACXT_Properties = Selecteur_MACXT_Properties + 1
            PosY_Selecteur_MACXT_Properties = PosY_Selecteur_MACXT_Properties+20
         end
         if y < PosY_Selecteur_MACXT_Properties and Selecteur_MACXT_Properties > 1 then
            Selecteur_MACXT_Properties = Selecteur_MACXT_Properties - 1
            PosY_Selecteur_MACXT_Properties = PosY_Selecteur_MACXT_Properties-20
         end
         if MACXTKeyPad:cross() and MACXT_Objets_Properties_Nombre ~= 0 then
            screen.waitVblankStart(10)
            Action_Properties = MACXT_Objets_Properties[Selecteur_MACXT_Properties].Action
            Afficher__Proprietes = 0
            Other_Process = 0
         end
         screen:fillRect(PosX__Properties_MACXT,PosY_Selecteur_MACXT_Properties,180,15,Color.new(0,0,255))
      end
      MACXT_Repertoire:Afficher__Objets__Properties()
      if x < PosX__Properties_MACXT or y < PosY__Properties_MACXT or x > PosX__Properties_MACXT + 182 or y > PosY__Properties_MACXT+MACXT_Objets_Properties_Nombre*20+10 then
         if MACXTKeyPad:cross() then
            screen.waitVblankStart(10)
            Afficher__Proprietes = 0
            Other_Process = 0
            MACXT_Objets_Properties_Nombre = 0
         end
      end
   end
end
