MACXT_Graphic = {}
OneClick = 0
PosY_Selecteur_Personnal_Texte = 0
Posx_Personnal_Texte = 0
function MACXT_Graphic:NewWindow()
   screen:blit(0,MACXT_Barre1:height(),MACXT_Top)
   screen:blit(0,MACXT_Barre1:height()+MACXT_Top:height(),MACXT_Left)
   screen:blit(480-MACXT_Right:width(),MACXT_Barre1:height()+MACXT_Top:height(),MACXT_Right)
   screen:blit(0,MACXT_Barre1:height()+MACXT_Top:height()+MACXT_Left:height(),MACXT_Bottom)
   screen:blit(MACXT_Left:width(),MACXT_Barre1:height()+MACXT_Top:height(),Sprite_Blanc_MACXT)
   if MACXT_Title_Window then
      screen:print(480/2 - string.len(MACXT_Title_Window)*8.5/2,MACXT_Barre1:height()+5,MACXT_Title_Window)
   end
end
function MACXT_Graphic:DrawRectangle(PosX_Rectangle,PosY_Rectangle,Longueur_Rectangle,Largeur_Rectangle,Couleur_Rectangle)
   screen:fillRect(PosX_Rectangle,PosY_Rectangle,Longueur_Rectangle,2,Couleur_Rectangle)
   screen:fillRect(PosX_Rectangle,PosY_Rectangle,2,Largeur_Rectangle,Couleur_Rectangle)
   screen:fillRect(PosX_Rectangle+Longueur_Rectangle,PosY_Rectangle,2,Largeur_Rectangle,Couleur_Rectangle)
   screen:fillRect(PosX_Rectangle,PosY_Rectangle+Largeur_Rectangle,Longueur_Rectangle+2,2,Couleur_Rectangle)
end
function MACXT_Graphic:Screen_Graphic()
   screen:blit(0,0,MACXT_Barre1)
   screen:blit(MACXT_Barre1:width(),0,MACXT_Barre2)
   screen:blit(MACXT_Barre1:width()+MACXT_Barre2:width(),0,MACXT_Barre3)
   screen:print(480-string.len(System.getTime(1)..":"..System.getTime(2))*8.5,8,System.getTime(1)..":"..System.getTime(2))
   screen:print(480-string.len(System.getTime(1)..":"..System.getTime(2).."/"..System.powerGetBatteryLifePercent().."%")*8.5,8,System.powerGetBatteryLifePercent().."%/")
   if x >= 480-string.len(System.getTime(1)..":"..System.getTime(2))*8.5 and y < 20 then
      Date_MACXT__ = System.getDate(1).." "..System.getDate(2).." "..System.getDate(3)
      screen:fillRect(480-string.len(Date_MACXT__)*8.8,MACXT_Barre1:height()+3,string.len(Date_MACXT__)*8.3,10,Color.new(255,255,255))
      screen:fillRect(480-string.len(Date_MACXT__)*8.8-2,MACXT_Barre1:height()+3,2,10)
      screen:fillRect(480-string.len(Date_MACXT__)*8.8-2,MACXT_Barre1:height()+1,string.len(Date_MACXT__)*8.3,2)
      screen:print(480-string.len(Date_MACXT__)*8.5,MACXT_Barre1:height()+5,Date_MACXT__)
   end
end
function MACXT_Graphic:Afficher_Wallpaper()
   if Afficher_Wallpaper_MACXT_TRUE == true then
      if MACXT_Wallpaper:height() ~= 272 or MACXT_Wallpaper:width() ~= 480 then
         screen:blit(0,0,Sprite_Blanc_MACXT)
         screen:blit(480/2-MACXT_Wallpaper:width()/2,272/2-MACXT_Wallpaper:height()/2,MACXT_Wallpaper)
       else
         if MACXT_Wallpaper:height() == 272 and MACXT_Wallpaper:width() == 480 then
            screen:blit(0,0,MACXT_Wallpaper)
         end
      end
   end
end
function MACXT_Graphic:New_Textes()
   MACXT_Texte_Window = nil
   MACXT_Texte_Window = {}
   MACXT_Texte_Window[0] = {Caption = ""}
   MACXT_Repertoire:Actualise_Texte_Window()
   Selecteur_Window_MACXT = 1
end
function MACXT_Graphic:Afficher_Personnal_Texte()
   if n_Personnal_Texte > 0 then
      screen:fillRect(Posx_Personnal_Texte-1,PosY_Selecteur_Personnal_Texte-2,string.len(MACXT_Personnal_Texte[Selecteur_Personnal_Texte].Caption)*8,10,Color.new(0,128,192))
   end
   MACXT_Repertoire:Afficher_Personnal_Texte()
   if n_Personnal_Texte > 0 then
      if x >= Posx_Personnal_Texte and x <= Posx_Personnal_Texte+(string.len(MACXT_Personnal_Texte[Selecteur_Personnal_Texte].Caption)*8) and Other_Process ~= 1 and y > Posy_Personnal_Texte-1 and y < Posy_Personnal_Texte+(n_Personnal_Texte*20) then
         if y > PosY_Selecteur_Personnal_Texte and Selecteur_Personnal_Texte < n_Personnal_Texte then
            PosY_Selecteur_Personnal_Texte = PosY_Selecteur_Personnal_Texte + 20
            Selecteur_Personnal_Texte = Selecteur_Personnal_Texte + 1
         end
         if y < PosY_Selecteur_Personnal_Texte-5 and Selecteur_Personnal_Texte > 1 then
            PosY_Selecteur_Personnal_Texte = PosY_Selecteur_Personnal_Texte - 20
            Selecteur_Personnal_Texte = Selecteur_Personnal_Texte - 1
         end
         if MACXTKeyPad:cross() then
            Action_Personnal_Texte = MACXT_Personnal_Texte[Selecteur_Personnal_Texte].Action
         end
      end
   end
end
function MACXT_Graphic:New_Personnal_Window()
   if Afficher_Personnal_Window ~= 1 then
      Other_Process = 0
      NombreChoixMACXT = nil
   end
   if Afficher_Personnal_Window == 1 then
      Other_Process = 1
      if Window_Longueur and Window_Hauteur then
         screen:blit(PosX-Window_Longueur/2,PosY+Window_Hauteur/2+MACXT_Top:height(),MACXT_Bottom,0,0,Window_Longueur-10,MACXT_Bottom:height())
         screen:blit(PosX-Window_Longueur/2,PosY-Window_Hauteur/2,MACXT_Top,0,0,Window_Longueur,MACXT_Top:height())
         screen:blit(PosX-Window_Longueur/2,PosY-Window_Hauteur/2+MACXT_Top:height(),MACXT_Left,0,0,MACXT_Left:width(),Window_Hauteur)
         screen:blit(PosX+Window_Longueur/2-MACXT_Right:width(),PosY-Window_Hauteur/2+MACXT_Top:height(),MACXT_Right,0,0,MACXT_Right:width(),Window_Hauteur)
         screen:blit(PosX+Window_Longueur/2-10,PosY+Window_Hauteur/2+MACXT_Top:height(),MACXT_Bottom,MACXT_Bottom:width()-10,0,10,MACXT_Bottom:height())
         screen:blit(PosX-Window_Longueur/2+MACXT_Left:width(),PosY-Window_Hauteur/2+MACXT_Top:height(),Sprite_Blanc_MACXT,0,0,Window_Longueur-MACXT_Right:width()*2,Window_Hauteur)
         screen:blit(PosX-Window_Longueur/2+5,PosY-Window_Hauteur/2+3,Exit_MACXT)
         if x >= PosX-Window_Longueur/2+5+Exit_MACXT:width() and x <= PosX+Window_Longueur/2 and y >= PosY-Window_Hauteur/2 and y <= PosY-Window_Hauteur/2+15 then
            if MACXTKeyPad:cross() then
               if math.abs( MACXTKeyPad:analogX()) > 32 then
                  PosX = PosX + MACXTKeyPad:analogX() / Vitesse_Souris
               end
               if math.abs( MACXTKeyPad:analogY()) > 32 then
                  PosY = PosY + MACXTKeyPad:analogY() / Vitesse_Souris
               end
            end
         end
         if MACXT_Title then
            screen:print(PosX-Window_Longueur/2+20,PosY-Window_Hauteur/2+5,MACXT_Title)
         end
         if Afficher_Texte == 1 then
            MACXT_Repertoire:Afficher_Texte_Window()
         end
         if Afficher_Button == 1 then
            MACXT_Repertoire:Afficher_Drawing_Button()
         end
         if Afficher_Image_Window == 1 then
            MACXT_Repertoire:Afficher_Images()
         end
       else
         MACXT_Graphic:NewWindow()
      end
      if x >= PosX-Window_Longueur/2+3 and x <= PosX-Window_Longueur/2+15 and y >= PosY-Window_Hauteur/2 and y <= PosY-Window_Hauteur/2+MACXT_Top:height() and MACXT_Menu_Afficher_Menu ~= 1 then
         MACXTAide = "Fermer cette fenetre"
         if MACXTKeyPad:cross() then
            screen.waitVblankStart(10)
            Afficher_Personnal_Window = 0
            Afficher_Texte = 0
            Afficher_Button = 0
            Afficher_Image_Window = 0
            Other_Process = 0
            MACXT_Repertoire:Reinitialiser_Window()
         end
      end
      if x > PosX-Window_Longueur/2 and x < PosX+Window_Longueur/2 and y > PosY-Window_Hauteur/2 + 15 and y < PosY+Window_Hauteur/2+15 then
         if NombreChoixMACXT then
            screen:fillRect(PosX-Window_Longueur/2+10,ypos_selecteur_Window,string.len(MACXT_Texte_Window[Selecteur_Window_MACXT].Caption)*8,10,Color.new(0,0,255))
            screen:print(PosX-Window_Longueur/2+12,ypos_selecteur_Window+2,MACXT_Texte_Window[Selecteur_Window_MACXT].Caption,Color.new(255,255,255))
            if y > ypos_selecteur_Window and Selecteur_Window_MACXT < NombreChoixMACXT then
               Selecteur_Window_MACXT = Selecteur_Window_MACXT + 1
               ypos_selecteur_Window = ypos_selecteur_Window + 20
            end
            if y < ypos_selecteur_Window-10 and Selecteur_Window_MACXT > 1 then
               Selecteur_Window_MACXT = Selecteur_Window_MACXT - 1
               ypos_selecteur_Window = ypos_selecteur_Window - 20
            end
            if MACXTKeyPad:cross() then
               screen.waitVblankStart(10)
               Action_Window = MACXT_Texte_Window[Selecteur_Window_MACXT].Action
            end
         end
         if Afficher_Button == 1 and n_Draw_Button_MACXT ~= 0 then
            if Affichage_Button == "Horizontal_Drawing" then
               if x > PosX_Selecteur_Button_MACXT+string.len(MACXT_Draw_Button[Selecteur_Button_MACXT].Caption)*8 and Selecteur_Button_MACXT < n_Draw_Button_MACXT then
                  PosX_Selecteur_Button_MACXT = PosX_Selecteur_Button_MACXT+string.len(MACXT_Draw_Button[Selecteur_Button_MACXT-1].Caption)*8+13
                  Selecteur_Button_MACXT = Selecteur_Button_MACXT + 1
               end
               if Selecteur_Button_MACXT > 1 and x < PosX_Selecteur_Button_MACXT then
                  PosX_Selecteur_Button_MACXT = PosX_Selecteur_Button_MACXT-string.len(MACXT_Draw_Button[Selecteur_Button_MACXT].Caption)*8-15
                  Selecteur_Button_MACXT = Selecteur_Button_MACXT - 1
               end
               if n_Images_Window ~= 0 then
                  if MACXTKeyPad:cross() and y >= PosY-Window_Hauteur/2+n_Textes*20+15+MACXT_Images_Window[1].Images:height()+10 and y <= PosY-Window_Hauteur/2+n_Textes*20+15+MACXT_Images_Window[1].Images:height()+10+15 then
                     if OneClick == 1 then
                        Afficher_Personnal_Window = 0
                        Other_Process = 0
                     end
                     Action_Button = MACXT_Draw_Button[Selecteur_Button_MACXT].Action
                  end
                else
                  if MACXTKeyPad:cross() and y >= PosY-Window_Hauteur/2+n_Textes*20+15 and y <= PosY-Window_Hauteur/2+n_Textes*20+15+15 then
                     if OneClick == 1 then
                        Afficher_Personnal_Window = 0
                        Other_Process = 0
                     end
                     Action_Button = MACXT_Draw_Button[Selecteur_Button_MACXT].Action
                     screen.waitVblankStart(10)
                  end
               end
            end
            if Affichage_Button == "Vertical_Drawing" then
               if y > PosY_Selecteur_Button_MACXT+30 and Selecteur_Button_MACXT < n_Draw_Button_MACXT then
                  PosY_Selecteur_Button_MACXT = PosY_Selecteur_Button_MACXT + 20
                  Selecteur_Button_MACXT = Selecteur_Button_MACXT + 1
               end
               if y < PosY_Selecteur_Button_MACXT and Selecteur_Button_MACXT > 1 then
                  PosY_Selecteur_Button_MACXT = PosY_Selecteur_Button_MACXT - 20
                  Selecteur_Button_MACXT = Selecteur_Button_MACXT - 1
               end
               if MACXTKeyPad:cross() and y >= PosY-Window_Hauteur/2+n_Textes*20+15 and y <= PosY-Window_Hauteur/2+n_Textes*20+15+n_Draw_Button_MACXT*20 then
                  screen.waitVblankStart(10)
                  if OneClick == 1 then
                     Afficher_Personnal_Window = 0
                     Other_Process = 0
                  end
                  Action_Button = MACXT_Draw_Button[Selecteur_Button_MACXT].Action
               end
            end
         end
      end
   end
end
function MACXT_Graphic:Init_New_Personnal_Window()
   MACXT_Repertoire:Reinitialiser_Window()
   Afficher_Personnal_Window = 1
   Afficher_Texte = 1
   Afficher_Button = 1
   Afficher_Image_Window = 1
   PosY = 272/2
   PosX = 480/2
   PosY_Selecteur_Button_MACXT = PosY-Window_Hauteur/2+n_Textes*20+15+15
   PosX_Selecteur_Button_MACXT = PosX-Window_Longueur/2+10
   ypos_selecteur_Window = PosY-Window_Hauteur/2+20
   Selecteur_Window_MACXT = 1
   Selecteur_Button_MACXT = 1
end
