Sinon Chris, voici un mini exploreur qui n'affiche que le répertoire courant, à toi de gérer le reste.
Avec ce code , on peut trier en cliquant sur le bouton de la 1ere colonne par ordre alphabétique ou inverse avec la flèche qui indique le sens du tri (j'ai mis quelques explications) et qui fonctionne avec les flèches XP sous XP et celles des datas pour les autres OS.
Code : Tout sélectionner
; Auteur : Denis
; Version de PB : 3.92 beta
; Librairie utilisée : MoreListIconGadget --> sur mon mini site
; Date : 15 octobre 2004
;
; Explication du programme :
; Affiche le contenu d'un dossier avec les icônes, le nom de fichier/dossier
; le type (fichier ou dossier) et la date du dernier accès en écriture du fichier
;
; En cliquant sur le bouton des entêtes de colonnes 'Fichiers', il est possible de trier soit
; par ordre alphabétique ou inverse, et en fonction des options de laisser les dossier
; en haut de la liste
; en fonction des options, on peut afficher ou non la date des dossiers
Enumeration
#MainWindow
#ListIcon
#Folder_En_Haut
#Folder_En_Bas
#Frame3DFolders
#Date_Dossier_Ok
#Date_Dossier_Non_Ok
#Frame3DDate
#Majuscule
#Minuscule
#Frame3DMaj
#CouleurSysteme
#CouleurPerso
#Frame3DCouleur
#Fleche_A_Droite
#Fleche_A_Gauche
#Frame3DFleche
#Font
#FontHeader
#UxTheme_dll
#Fleche_Up
#Fleche_Down
EndEnumeration
Structure HDITEM
mask.l
cxy.l
pszText.l
hbm.l
cchTextMax.l
fmt.l
lParam.l
iImage.l
iOrder.l
type.l
pvFilter.l
EndStructure
Structure SHFILEINFO_Ok ; la structure SHFILEINFO PB est fausse
hIcon.l
iIcon.l
dwAttributes.l
szDisplayName.b[#MAX_PATH]
szTypeName.b[80]
EndStructure
Structure LVITEM ; La structure LV_ITEM est incomplète
Mask.l
iItem.l
iSubItem.l
State.l
stateMask.l
pszText.l
cchTextMax.l
iImage.l
lParam.l
iIndent.l
iGroupId.l
cColumns.l
puColumns.l
EndStructure
Global Var.LVITEM ; utilisée pour relancer une séquence de tri de tous les éléments
Global TypeTri.l
Global Dossier.s
Global InfosFile.SHFILEINFO_Ok
Global ListIconHwnd
Global Position_Dossier ; mémorise la position des dossier, haute ou basse
Global TenirCompteMajuscule
Global ThemeActiver ; 0 si pas de theme sinon le handle du theme
Global Hwnd_ImageList ; le handle de l'image list lorsque les themes ne sont pas actifs
Global Index_FlecheUp ; index de l'image fleche montante dans la liste des images
Global Index_FlecheDown ; index de l'image fleche descendante dans la liste des images
Global Alignement ; indique l'alignement de l'image du Header
; #Image_A_Droite, à droite du texte
; #Image_A_Gauche, à gauche du texte
; #LOCALE_USER_DEFAULT = 1024
#LOCALE_SYSTEM_DEFAULT = 2048
#Date = "dd'/'MM'/'yyyy" ; format utiliser par l'API GetDateFormat
#Largeur_Fenetre = 800
#Hauteur_Fenetre = 495
#Position_Haute = 0
#Position_basse = 1
#Image_A_Droite = 0
#Image_A_Gauche = 1
; constantes du Header
#HDI_IMAGE = $0020
#HDI_ORDER = $0080
#HDF_IMAGE = $0800
#HDF_SORTUP = $400
#HDF_SORTDOWN = $200
#HDF_BITMAP_ON_RIGHT = 4096
#HDM_SETIMAGELIST = 4616
Procedure Resequence()
NbItem = CountGadgetItems(#ListIcon)
Var\Mask = #LVIF_PARAM
Var\iSubItem = 0
Var\iItem = 0
While NbItem
Var\lParam = Var\iItem
SendMessage_(ListIconHwnd, #LVM_SETITEM, 0, @Var)
Var\iItem + 1
NbItem - 1
Wend
EndProcedure
Procedure Tri(lParam1.l, lParam2.l, lParamSort.l)
; le fait qu'il y a peu de colonne permet d'utiliser pour exemple les 16 bits de poids fort
;
; le codage est le suivant
; 1000000000000000 --> tri ascendant
; 0100000000000000 --> tri descendant
#Ascendant = 1 << 31 ; le bit de poids fort à 1 tous les autres à 0
#Descendant = 1 << 30 ; le bite de poids fort à 0 puis le suivant à 1 puis tous les autres à 0
If TenirCompteMajuscule = #false
Chaine1.s = LCase(GetGadgetItemText(#ListIcon, lParam1, 0))
Chaine2.s = LCase(GetGadgetItemText(#ListIcon, lParam2, 0))
Else
Chaine1.s = GetGadgetItemText(#ListIcon, lParam1, 0)
Chaine2.s = GetGadgetItemText(#ListIcon, lParam2, 0)
EndIf
Dossier1 = FileSize(Dossier + Chaine1)
Dossier2 = FileSize(Dossier + Chaine2)
; Voici ce que dit la doc MS
; La procédure doit retourner une valeur négative si le 1er élément doit être affiché
; avant le second. Si l'élément 1 doit être affiché après le 2, la procédure doit
; retourner une valeur positive, si les 2 éléments sont identiques, la procédure
; doit retourner 0.
; 4 cas
; Cas 1
; ;------
; les 2 éléments sont des dossiers, on compare les chaînes.
; Si l'élément 1 doit être affiché avant le 2, on retourne une valeur négative (-1)
; Si l'élément 2 doit être affiché avant le 1, on retourne une valeur positive (1)
; Si les 2 chaines sont identiques, on retourne 0
; Cas 2
; ;------
; les 2 éléments sont des fichiers, on compare les chaînes
; Cas 3
; ;------
; l'élément 1 est un dosssier et pas le 2
; Si La position des dossiers est "haute", on retourne -1 car l'élément 1 doit être
; positionné avant l'élément 2, donc on retourne -1 sinon la position sélectionnée
; est "basse", on retourne 1 car l'élément 2 doit être positionné avant l'élément 1
; Cas 4
; ;------
; l'élément 2 est un dosssier et pas le 1er
; Si La position des dossiers est "haute", on retourne 1 car l'élément 2 doit être
; positionné avant l'élément , donc on retourne 1 sinon la position sélectionnée
; est "basse", on retourne -1 car l'élément 1 doit être positionné avant l'élément 2
Select Dossier1
Case -2 ; Dossier1 est un dossier
Select Dossier2
Case -2 ; Dossier2 est un dossier
; Cas 1
If lParamSort & #Ascendant
If Chaine1 > Chaine2
ProcedureReturn 1
Else
ProcedureReturn - 1
EndIf
Else
If Chaine1 > Chaine2
ProcedureReturn - 1
Else
ProcedureReturn 1
EndIf
EndIf
Default ; Dossier2 est un fichier
; Cas 3
If Position_Dossier = #Position_haute
ProcedureReturn - 1
Else
ProcedureReturn 1
EndIf
EndSelect
Default ; Dossier1 est un fichier
Select Dossier2
Case -2 ; Dossier2 est un dossier
; Cas 4
If Position_Dossier = #Position_haute
ProcedureReturn 1
Else
ProcedureReturn - 1
EndIf
Default ; Dossier2 est un fichier
; Cas 2
If lParamSort & #Ascendant
If Chaine1 > Chaine2
ProcedureReturn 1
Else
ProcedureReturn - 1
EndIf
Else
If Chaine1 > Chaine2
ProcedureReturn - 1
Else
ProcedureReturn 1
EndIf
EndIf
EndSelect
EndSelect
EndProcedure
Procedure Affiche_Fleche(Colonne.l, Sens.l)
; affiche la flèche montante ou descendante en fonction du paramètre sens dans le
; bouton de la colonne désignée par le paramètre colonne
; on affiche la flèche montante gérée par le système à gauche du texte
VarHeader.HDITEM\pszText = @"Fichiers" ; le texte du bouton colonne 1ere colonne
VarHeader\Mask = #HDI_IMAGE | #HDI_FORMAT | #HDI_TEXT
VarHeader\fmt = #HDF_IMAGE | #HDF_STRING
; VarHeader\fmt & #HDF_BITMAP_ON_RIGHT
If ThemeActiver
If sens = #ascendant
VarHeader\fmt| #HDF_SORTUP
Else
VarHeader\fmt| #HDF_SORTDOWN
EndIf
Else ; on utilise les icônes flèches bleues chargées par CatchImage
If sens = #ascendant
VarHeader\iImage = Index_FlecheUp
Else
VarHeader\iImage = Index_FlecheDown
EndIf
EndIf
If Alignement = #Image_A_Droite
VarHeader\fmt = VarHeader\fmt | #HDF_BITMAP_ON_RIGHT
EndIf
SendMessage_(HeaderID(#ListIcon), #HDM_SETITEM, Colonne, @VarHeader)
EndProcedure
Procedure Ma_CallBack(hWnd, Message, wParam, lParam)
resultat = #PB_ProcessPureBasicEvents
If Message = #WM_NOTIFY
*NotifyMsgInfos.NMLISTVIEW = lParam ; lParam est un pointeur sur une structure NMLISTVIEW
If * NotifyMsgInfos\hdr\hwndFrom = ListIconHwnd
; click sur le bouton de la colonne 1, --> on tri la liste
If * NotifyMsgInfos\hdr\code = #LVN_COLUMNCLICK
Colonne = *NotifyMsgInfos\iSubItem ; indice de la colonne du click
If colonne = 0 ; on ne prend en compte que le clique de le 1ere colonne
If TypeTri = #Ascendant
TypeTri = #Descendant
Else
TypeTri = #Ascendant
EndIf
; on affiche la flèche correspondante dans le bouton de la colonne
Affiche_Fleche(Colonne.l, TypeTri)
; on envoie le message indiquant que l'on va envoyer tous les éléments
; de la liste pour trier
SendMessage_(*NotifyMsgInfos\hdr\hwndFrom, #LVM_SORTITEMS, colonne | TypeTri, @Tri())
; on envoie les éléments en suivant pour les comparaisons pour le tri
Resequence()
EndIf
EndIf
EndIf
EndIf
ProcedureReturn resultat
EndProcedure
Procedure LectureDossier()
LockWindowUpdate_(ListIconHwnd)
ClearGadgetItemList(#ListIcon)
UpdateWindow_(WindowID(#MainWindow))
FileInfos.WIN32_FIND_DATA ; filetime
If ExamineDirectory(0, Dossier, "*.*")
Repeat
Type = NextDirectoryEntry()
If Type
NomFichier$ = DirectoryEntryName()
If NomFichier$ <> "." And NomFichier$ <> ".."
; on récupère les infos sur l'icône et sur la description du fichier
SHGetFileInfo_(Dossier + NomFichier$, 0, @InfosFile, SizeOf(SHFILEINFO_Ok), #SHGFI_SYSICONINDEX | #SHGFI_SMALLICON | #SHGFI_TYPENAME)
; on affiche le 1er élément dans la listicongadget, soit le fichier + l'icône
VarList.LVITEM\Mask = #LVIF_TEXT | #LVIF_IMAGE ; ; mask défini le type de données | #LVIF_PARAM
VarList\iImage = InfosFile\iIcon ; l'index de l'icon dans la liste système
VarList\pszText = @NomFichier$ ; la chaîne à afficher
VarList\iSubItem = 0 ; indique que c'est le premier élément et pas un sous-élément
; on envoie le message pour afficher le premier élément
SendMessage_(ListIconHwnd, #LVM_INSERTITEM, 0, @VarList)
; on envoie le message pour afficher le deuxième élément
VarList\Mask = #LVIF_TEXT
VarList\pszText = @InfosFile\szTypeName[0] ; la chaîne à afficher
VarList\iSubItem = 1 ; 1 indique que c'est le deuxième car débute à 0
; on envoie le message pour afficher le type dans la 2ème colonne
SendMessage_(ListIconHwnd, #LVM_SETITEM, 0, @VarList)
Nom.s = Dossier + NomFichier$
; on récupère la date du fichier
; ID = -2 c'est un dossier, -1 le fichier n'existe pas, sinon c'est un fichier
ID = FileSize(Nom)
If ID <> - 1
If (ID = -2 And GetGadgetState(#Date_Dossier_Ok)) Or (ID <> - 2)
ID = CreateFile_(@Nom, #GENERIC_READ, #FILE_SHARE_READ, 0, #OPEN_EXISTING, #FILE_ATTRIBUTE_SYSTEM, 0)
If ID
FileDateTime.s = Space(50)
String1.s = Space(50)
GetFileTime_(ID, lpCreationTime.FILETIME, lpLastAccessTime.FILETIME, lpLastWriteTime.FILETIME)
CloseHandle_(ID)
FileTimeToLocalFileTime_(@lpLastWriteTime, @OutPut.FILETIME)
FileTimeToSystemTime_(@OutPut, @OutPutSystemTime.SYSTEMTIME)
GetDateFormat_(#LOCALE_SYSTEM_DEFAULT, 0, @OutPutSystemTime, #Date, @String1, Len(String1))
GetTimeFormat_(#LOCALE_SYSTEM_DEFAULT, #TIME_FORCE24HOURFORMAT, @OutPutSystemTime, 0, @FileDateTime, 50)
String1 + " " + FileDateTime
VarList\iSubItem = 2 ; colonne 3
VarList\pszText = @String1
SendMessage_(ListIconHwnd, #LVM_SETITEM, 0, @VarList)
Else
String1 = "?"
VarList\iSubItem = 2 ; colonne 3
VarList\pszText = @String1
SendMessage_(ListIconHwnd, #LVM_SETITEM, 0, @VarList)
EndIf
EndIf
EndIf
EndIf
EndIf
Until Type = 0
EndIf
LockWindowUpdate_(0)
EndProcedure
If OpenWindow(#MainWindow, 0, 0, #Largeur_Fenetre, #Hauteur_Fenetre, #PB_Window_WindowCentered | #PB_Window_SystemMenu, "Mini Exploreur de fichiers")
If CreateGadgetList(WindowID())
ListIconHwnd = ListIconGadget(#ListIcon, #Largeur_Fenetre - 580, 10, 580, #Hauteur_Fenetre - 20, "Fichiers", 575 / 3, #LVS_SHAREIMAGELISTS)
AddGadgetColumn(#ListIcon, 1, "Type", 580 / 3)
AddGadgetColumn(#ListIcon, 2, "Date de la dernière écriture", 580 / 3 - 20)
Font = LoadFont(#Font, "ARIAL", 8, #PB_Font_Italic | #PB_Font_Bold)
SetColumnHeaderFont(#ListIcon, LoadFont(#FontHeader, "ARIAL", 10, #PB_Font_Italic ));| #PB_Font_Bold))
Dossier.s = "C:\" ; dossier à examiner
Position_Dossier = #Position_Haute ; position haute des dossier pour commencer
TenirCompteMajuscule = #false ; on ne tient pas compte des majuscules pour commencer
Alignement = #Image_A_Droite ; l'image est à droite du texte dans le header
Colonne = 0 ; on commence par trier en fonction de la 1er colonne
; Assign la listImage système à la listIcon
CurrentDirectory.s = Space(#MAX_PATH)
GetSystemDirectory_(CurrentDirectory, #MAX_PATH)
hImageListS.l = SHGetFileInfo_(CurrentDirectory, 0, @InfosFile, SizeOf(SHFILEINFO_Ok), #SHGFI_SYSICONINDEX | #SHGFI_SMALLICON)
ImageList_SetBkColor_(hImageListS, #CLR_NONE)
SendMessage_(ListIconHwnd, #LVM_SETIMAGELIST, #LVSIL_SMALL, hImageListS)
SetWindowCallback(@Ma_Callback())
; le fond en noir
SetListIconGadgetColor(#ListIcon, 0)
; le texte en jaune
SetListIconGadgetColor(#ListIcon, #PB_SetTextColor | #yellow)
; détermine si les thèmes sont activés ou non, résultat dans ThemeActiver
; ThemeActiver = 0 il n'y a pas de thèmes
HeaderID = HeaderID(#ListIcon) ; le handle du header
If OpenLibrary(#UxTheme_dll, "UxTheme.dll")
ThemeActiver = CallFunction(#UxTheme_dll, "GetWindowTheme", HeaderID)
CloseLibrary(#UxTheme_dll)
EndIf
; création des boutons pour les dossiers
OptionGadget(#Folder_En_Haut, 20, 38, 129, 15, " En haut")
OptionGadget(#Folder_En_Bas, 20, 56, 134, 15, " En bas")
SetGadgetState(#Folder_En_Haut, 1)
SetGadgetFont(#Folder_En_Haut, Font)
SetGadgetFont(#Folder_En_Bas, Font)
Frame3DGadget(#Frame3DFolders, 12, 18, 170, 62, " Afficher les Dossiers ")
; création des boutons pour la date
OptionGadget(#Date_Dossier_Ok, 20, 138, 129, 15, " Afficher")
OptionGadget(#Date_Dossier_Non_Ok, 20, 156, 134, 15, " Masquer")
SetGadgetState(#Date_Dossier_Non_Ok, 1)
SetGadgetFont(#Date_Dossier_Ok, Font)
SetGadgetFont(#Date_Dossier_Non_Ok, Font)
Frame3DGadget(#Frame3DDate, 12, 118, 170, 62, " Date des dossiers ")
; création des boutons pour la prise en compte majuscule/minuscule
OptionGadget(#Majuscule, 20, 238, 129, 15, " En tenir compte")
OptionGadget(#Minuscule, 20, 256, 160, 15, " Ne pas en tenir compte")
SetGadgetState(#Minuscule, 1)
SetGadgetFont(#Majuscule, Font)
SetGadgetFont(#Minuscule, Font)
Frame3DGadget(#Frame3DMaj, 12, 218, 170, 62, " Majuscules/Minuscules ")
; création des boutons pour la couleur de la liste
OptionGadget(#CouleurSysteme, 20, 338, 129, 15, " Couleurs système")
OptionGadget(#CouleurPerso, 20, 356, 160, 15, " Couleurs perso")
SetGadgetState(#CouleurPerso, 1)
SetGadgetFont(#CouleurSysteme, Font)
SetGadgetFont(#CouleurPerso, Font)
Frame3DGadget(#Frame3DCouleur, 12, 318, 170, 62, " Couleur de la liste ")
; création des boutons pour la position de la flèche dans le bouton du Header
OptionGadget(#Fleche_A_Droite, 20, 438, 129, 15, " A droite du texte")
OptionGadget(#Fleche_A_Gauche, 20, 456, 160, 15, " A gauche du texte")
SetGadgetFont(#Fleche_A_Droite, Font)
SetGadgetFont(#Fleche_A_Gauche, Font)
Frame3DGadget(#Frame3DFleche, 12, 418, 170, 62, " Position de la flèche du bouton ")
SetGadgetState(#Fleche_A_Droite, 1)
If ThemeActiver = 0 ; pas de thèmes, on charge les icônes flèches
; on assigne une liste image au Header
FlecheUp = CatchImage(#Fleche_Up, ?FlecheBleue_Montante)
FlecheDown = CatchImage(#Fleche_Down, ?FlecheBleue_Descendante)
; on cré la liste d'images
Hwnd_ImageList = ImageList_Create_(GetSystemMetrics_(#SM_CXSMICON), GetSystemMetrics_(#SM_CYSMICON), #ILC_MASK | #ILC_COLOR32, 2, 0)
; on assigne la liste d'images au control du Header
SendMessage_(HeaderID, #HDM_SETIMAGELIST, 0, Hwnd_ImageList)
; on ajoute les 2 images à la liste et on récupère l'index de chacune
Index_FlecheUp = ImageList_ReplaceIcon_(Hwnd_ImageList, -1, FlecheUp)
Index_FlecheDown = ImageList_ReplaceIcon_(Hwnd_ImageList, -1, FlecheDown)
Else
DisableGadget(#Fleche_A_Droite, 1) ; marche pas avec les thèmes XP
DisableGadget(#Fleche_A_Gauche, 1) ; marche pas avec les thèmes XP
EndIf
LectureDossier()
Resequence()
TypeTri = #Ascendant
; on affiche la flèche correspondante dans le bouton de la colonne
Affiche_Fleche(Colonne.l, TypeTri)
SendMessage_(ListIconHwnd, #LVM_SORTITEMS, 0 | TypeTri, @Tri()) ; colonne 0
Resequence()
;- Boucle evenements
Repeat
Select WaitWindowEvent()
Case #PB_EventGadget
event = EventGadgetID()
If event = #Date_Dossier_Ok Or event = #Date_Dossier_Non_Ok
LectureDossier()
Resequence()
SendMessage_(ListIconHwnd, #LVM_SORTITEMS, 0 | TypeTri, @Tri()) ; colonne 0
Resequence()
ElseIf event = #Folder_En_Haut
Position_Dossier = #Position_haute
LectureDossier()
Resequence()
SendMessage_(ListIconHwnd, #LVM_SORTITEMS, 0 | TypeTri, @Tri()) ; colonne 0
Resequence()
ElseIf event = #Folder_En_bas
Position_Dossier = #Position_basse
LectureDossier()
Resequence()
SendMessage_(ListIconHwnd, #LVM_SORTITEMS, 0 | TypeTri, @Tri()) ; colonne 0
Resequence()
ElseIf event = #Majuscule ; on tient compte des majuscule
TenirCompteMajuscule = #True
LectureDossier()
Resequence()
SendMessage_(ListIconHwnd, #LVM_SORTITEMS, 0 | TypeTri, @Tri()) ; colonne 0
Resequence()
ElseIf event = #Minuscule ; on ne tient pas compte des majuscule/minuscule
TenirCompteMajuscule = #false
LectureDossier()
Resequence()
SendMessage_(ListIconHwnd, #LVM_SORTITEMS, 0 | TypeTri, @Tri()) ; colonne 0
Resequence()
ElseIf event = #CouleurSysteme; on applique les couleurs systèmes à la liste
SetListIconGadgetColor(#ListIcon, #PB_NoListBackColor)
ElseIf event = #CouleurPerso; on applique les couleurs perso à la liste
; le fond en noir
SetListIconGadgetColor(#ListIcon, 0)
; le texte en jaune
SetListIconGadgetColor(#ListIcon, #PB_SetTextColor | #yellow)
ElseIf event = #Fleche_A_Droite; on positionne la flèche à droite du texte
Alignement = #Image_A_Droite
Affiche_Fleche(Colonne.l, TypeTri)
ElseIf event = #Fleche_A_Gauche; on positionne la flèche à gauche du texte
Alignement = #Image_A_Gauche
Affiche_Fleche(Colonne.l, TypeTri)
EndIf
Case #PB_Event_CloseWindow
Quit + 1
EndSelect
Until Quit
EndIf
EndIf
End
DataSection
FlecheBleue_Montante: ; format ico
Data.l $00010000, $10100001, $00010000, $03680018, $00160000, $00280000
Data.l $00100000, $00200000, $00010000, $00000018, $03000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $0B293737, $00000108, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $FF2060FF
Data.l $FFFFC0FF, $80FFFF80, $FF80FFFF, $80FF20C0, $2080FF20, $FF2080FF
Data.l $00002080, $00000000, $00000000, $00000000, $00000000, $FF000000
Data.l $FFFF2060, $80FFFFC0, $FF20C0FF, $C0FF20C0, $20C0FF20, $002080FF
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $60FF0000, $C0FFFF20, $FF80FFFF, $C0FF20C0, $2080FF20, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $2060FF00, $FFC0FFFF, $80FF80FF, $00000020, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $FF2060FF, $0000C0FF, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $FF000000, $00002060, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $FFFF0000, $FFFF0000, $FFFF0000
Data.l $FFFF0000, $03800000, $07C00000, $0FE00000, $1FF00000, $3FF80000
Data.l $7FFC0000, $FFFE0000, $FFFF0000, $FFFF0000, $FFFF0000, $FFFF0000
Data.b 0, 0, -1, -1, 0, 0
FlecheBleue_Descendante: ; format ico
Data.l $00010000, $10100001, $00010000, $03680018, $00160000, $00280000
Data.l $00100000, $00200000, $00010000, $00000018, $03000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $FF000000, $00002060, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $FF2060FF, $0000C0FF, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $2060FF00, $FFC0FFFF, $80FF80FF, $00000020, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $60FF0000, $C0FFFF20, $FF80FFFF, $C0FF20C0, $2080FF20, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $FF000000
Data.l $FFFF2060, $80FFFFC0, $FF20C0FF, $C0FF20C0, $20C0FF20, $002080FF
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $FF2060FF
Data.l $FFFFC0FF, $80FFFF80, $FF80FFFF, $80FF20C0, $2080FF20, $FF2080FF
Data.l $00002080, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $0B293737, $00000108, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
Data.l $00000000, $00000000, $00000000, $FFFF0000, $FFFF0000, $FFFF0000
Data.l $FFFF0000, $FFFE0000, $7FFC0000, $3FF80000, $1FF00000, $0FE00000
Data.l $07C00000, $03800000, $FFFF0000, $FFFF0000, $FFFF0000, $FFFF0000
Data.b 0, 0, -1, -1, 0, 0
EndDataSection