Code: Select all
Screen 12
#Include "dir.bi"
#Include "fbgfx.bi"
Dim As Any Ptr folder,file,folder2,scrollptr,scroller
folder=Imagecreate(32,32)
file=Imagecreate(32,32)
folder2=Imagecreate(32,32)
scrollptr=Imagecreate(16,2)
scroller=Imagecreate(16,50)
line folder,(0,0)-(31,31),15,BF
line folder,(2,7)-(31,28),7,BF
pset folder,(31,7),15
pset folder,(31,28),15
pset folder,(30,28),15
pset folder,(31,27),15
line folder,(5,3)-(13,3),0
Pset folder,(14,4),0
line folder,(0,8)-(5,3),0
line folder,(15,5)-(28,5),0
line folder,(1,7)-(26,7),0
line folder,(0,8)-(0,26),0
line folder,(29,6)-(29,24),0
line folder,(27,8)-(27,26),0
pset folder,(28,25),0
line folder,(0,26)-(27,26),0
line folder,(1,8)-(26,8),14,,&b10101010101010101010101010
line folder,(1,10)-(26,10),14,,&b10101010101010101010101010
line folder,(1,12)-(26,12),14,,&b10101010101010101010101010
line folder,(1,14)-(26,14),14,,&b10101010101010101010101010
line folder,(1,16)-(26,16),14,,&b10101010101010101010101010
line folder,(1,18)-(26,18),14,,&b10101010101010101010101010
line folder,(1,20)-(26,20),14,,&b10101010101010101010101010
line folder,(1,22)-(26,22),14,,&b10101010101010101010101010
line folder,(1,24)-(26,24),14,,&b10101010101010101010101010
line folder,(1,9)-(26,9),14,,&b01010101010101010101010101
line folder,(1,11)-(26,11),14,,&b01010101010101010101010101
line folder,(1,13)-(26,13),14,,&b01010101010101010101010101
line folder,(1,15)-(26,15),14,,&b01010101010101010101010101
line folder,(1,17)-(26,17),14,,&b01010101010101010101010101
line folder,(1,19)-(26,19),14,,&b01010101010101010101010101
line folder,(1,21)-(26,21),14,,&b01010101010101010101010101
line folder,(1,23)-(26,23),14,,&b01010101010101010101010101
line folder,(1,25)-(26,25),14,,&b01010101010101010101010101
line folder,(2,8)-(27,8),15,,&b10101010101010101010101010
line folder,(2,10)-(27,10),15,,&b10101010101010101010101010
line folder,(2,12)-(27,12),15,,&b10101010101010101010101010
line folder,(2,14)-(27,14),15,,&b10101010101010101010101010
line folder,(2,16)-(27,16),15,,&b10101010101010101010101010
line folder,(2,18)-(27,18),15,,&b10101010101010101010101010
line folder,(2,20)-(27,20),15,,&b10101010101010101010101010
line folder,(2,22)-(27,22),15,,&b10101010101010101010101010
line folder,(2,24)-(27,24),15,,&b10101010101010101010101010
line folder,(1,9)-(26,9),15,,&b10101010101010101010101010
line folder,(1,11)-(26,11),15,,&b10101010101010101010101010
line folder,(1,13)-(26,13),15,,&b10101010101010101010101010
line folder,(1,15)-(26,15),15,,&b10101010101010101010101010
line folder,(1,17)-(26,17),15,,&b10101010101010101010101010
line folder,(1,19)-(26,19),15,,&b10101010101010101010101010
line folder,(1,21)-(26,21),15,,&b10101010101010101010101010
line folder,(1,23)-(26,23),15,,&b10101010101010101010101010
line folder,(1,25)-(26,25),15,,&b10101010101010101010101010
line folder,(3,6)-(27,6),14,,&b10101010101010101010101010
line folder,(4,6)-(28,6),15,,&b10101010101010101010101010
pset folder,(27,7),15
line folder,(28,7)-(28,24),14,,&b1010101010101010
line folder,(28,7)-(28,24),15,,&b0101010101010101
pset folder,(5,4),14
pset folder,(6,4),15
pset folder,(7,4),14
pset folder,(8,4),15
pset folder,(9,4),14
pset folder,(10,4),15
pset folder,(11,4),14
pset folder,(12,4),15
pset folder,(13,4),14
line folder,(0,5)-(14,5),14,,&b01010101010
line folder,(0,5)-(14,5),15,,&b10101010101
pset folder,(3,5),0
pset folder,(4,5),14
line file,(0,0)-(31,31),15,BF
line file,(5,12)-(28,31),7,BF
line file,(3,0)-(15,0),0
line file,(3,0)-(3,29),0
line file,(3,29)-(26,29),0
line file,(26,29)-(26,11),0
line file,(26,11)-(15,0),0
line file,(15,0)-(15,11),0
line file,(15,11)-(26,11),0
paint file,(5,2),15,0
paint file,(18,7),7,0
line folder2,(0,0)-(31,31),15,BF
line folder2,(2,7)-(31,28),7,BF
pset folder2,(31,7),15
pset folder2,(31,28),15
pset folder2,(30,28),15
pset folder2,(31,27),15
line folder2,(5,3)-(13,3),0
Pset folder2,(14,4),0
line folder2,(0,8)-(5,3),0
line folder2,(15,5)-(28,5),0
line folder2,(1,7)-(26,7),0
line folder2,(0,8)-(0,26),0
line folder2,(29,6)-(29,24),0
line folder2,(27,8)-(27,26),0
pset folder2,(28,25),0
line folder2,(0,26)-(27,26),0
line folder2,(1,8)-(26,8),14,,&b10101010101010101010101010
line folder2,(1,10)-(26,10),14,,&b10101010101010101010101010
line folder2,(1,12)-(26,12),14,,&b10101010101010101010101010
line folder2,(1,14)-(26,14),14,,&b10101010101010101010101010
line folder2,(1,16)-(26,16),14,,&b10101010101010101010101010
line folder2,(1,18)-(26,18),14,,&b10101010101010101010101010
line folder2,(1,20)-(26,20),14,,&b10101010101010101010101010
line folder2,(1,22)-(26,22),14,,&b10101010101010101010101010
line folder2,(1,24)-(26,24),14,,&b10101010101010101010101010
line folder2,(1,9)-(26,9),14,,&b01010101010101010101010101
line folder2,(1,11)-(26,11),14,,&b01010101010101010101010101
line folder2,(1,13)-(26,13),14,,&b01010101010101010101010101
line folder2,(1,15)-(26,15),14,,&b01010101010101010101010101
line folder2,(1,17)-(26,17),14,,&b01010101010101010101010101
line folder2,(1,19)-(26,19),14,,&b01010101010101010101010101
line folder2,(1,21)-(26,21),14,,&b01010101010101010101010101
line folder2,(1,23)-(26,23),14,,&b01010101010101010101010101
line folder2,(1,25)-(26,25),14,,&b01010101010101010101010101
line folder2,(2,8)-(27,8),15,,&b10101010101010101010101010
line folder2,(2,10)-(27,10),15,,&b10101010101010101010101010
line folder2,(2,12)-(27,12),15,,&b10101010101010101010101010
line folder2,(2,14)-(27,14),15,,&b10101010101010101010101010
line folder2,(2,16)-(27,16),15,,&b10101010101010101010101010
line folder2,(2,18)-(27,18),15,,&b10101010101010101010101010
line folder2,(2,20)-(27,20),15,,&b10101010101010101010101010
line folder2,(2,22)-(27,22),15,,&b10101010101010101010101010
line folder2,(2,24)-(27,24),15,,&b10101010101010101010101010
line folder2,(1,9)-(26,9),15,,&b10101010101010101010101010
line folder2,(1,11)-(26,11),15,,&b10101010101010101010101010
line folder2,(1,13)-(26,13),15,,&b10101010101010101010101010
line folder2,(1,15)-(26,15),15,,&b10101010101010101010101010
line folder2,(1,17)-(26,17),15,,&b10101010101010101010101010
line folder2,(1,19)-(26,19),15,,&b10101010101010101010101010
line folder2,(1,21)-(26,21),15,,&b10101010101010101010101010
line folder2,(1,23)-(26,23),15,,&b10101010101010101010101010
line folder2,(1,25)-(26,25),15,,&b10101010101010101010101010
line folder2,(3,6)-(27,6),14,,&b10101010101010101010101010
line folder2,(4,6)-(28,6),15,,&b10101010101010101010101010
pset folder2,(27,7),15
line folder2,(28,7)-(28,24),14,,&b1010101010101010
line folder2,(28,7)-(28,24),15,,&b0101010101010101
pset folder2,(5,4),14
pset folder2,(6,4),15
pset folder2,(7,4),14
pset folder2,(8,4),15
pset folder2,(9,4),14
pset folder2,(10,4),15
pset folder2,(11,4),14
pset folder2,(12,4),15
pset folder2,(13,4),14
line folder2,(0,5)-(14,5),14,,&b01010101010
line folder2,(0,5)-(14,5),15,,&b10101010101
pset folder2,(3,5),0
pset folder2,(4,5),14
line folder2,(22,20)-(8,20),0
line folder2,(8,20)-(8,15),0
line folder2,(5,14)-(11,14),0
line folder2,(5,14)-(8,11),0
line folder2,(9,12)-(11,14),0
paint folder2,(8,13),0
line scrollptr,(0,0)-(16,2),15,BF
line scrollptr,(0,0)-(0,2),7
line scrollptr,(1,0)-(16,2),7,,&b100010001000100
line scrollptr,(1,0)-(16,2),7,,&b001000100010001
line scroller,(0,0)-(16,50),7,BF
line scroller,(0,0)-(16,50),8,B
line scroller,(0,49)-(16,49),8
line scroller,(1,1)-(16,1),15
line scroller,(1,2)-(1,48),15
Chdir("../..")
Dim Shared As String filename,foldername
Type Icon
As String nam,typ
As Integer x,y,lenx
End Type
Color 0,15
ReDim Shared As Icon Files(999)
Declare Sub AddFile()
Dim Shared As Integer anzfiles,mx,my,mb,tempx,tempy,mz,oldmz,scroll,scrptry,maxy,tim,clicktim,clickbit
Declare Sub getMouseEvent()
Declare Sub ShowFiles()
ShowFiles()
scrptry=0
Do
Sleep 1,1
tim+=1
Getmouse mx,my,mz,mb
If mb <> -1 Then ' otherwise it will "jump" when you move the mouse out of the window
scroll += (mz - oldmz) * 10
oldmz = mz
End If
Var maxscroll = -(maxy + 60 - 480)
If scroll > 0 Then scroll = 0
Screenlock
Line (0,0)-(640,480),15,BF
For i As Integer=0 To 240
Put (628,i*2),scrollptr,Pset
Next
If scroll>-anzfiles*9 Then
Put (628,-scroll/anzfiles*50),scroller,Pset
Else
Put (628,430),scroller,Pset
End If
For i As Integer=1 To anzfiles
If Files(i).typ="Folder" Then Put (Files(i).x,Files(i).y+scroll),folder,Pset
If Files(i).typ="File" Or Files(i).typ="Picture" Then Put (Files(i).x,Files(i).y+scroll),file,Pset
If Files(i).typ="Bfolder" Then Put (Files(i).x,Files(i).y+scroll),folder2,Pset
If Len(Files(i).nam)<10 Then
If CurDir<>"/" Then Color 0,15
If CurDir="/" Then Color 12,0
Draw String(Files(1).lenx,Files(1).y+34+scroll),".."
Color 0,15
Draw String (Files(i).lenx,Files(i).y+34+scroll),Files(i).nam
Else
Draw String (Files(i).lenx,Files(i).y+34+scroll),Left(Files(i).nam,10)+"..."
End If
If mx>Files(i).x And mx<Files(i).x+32 And my>Files(i).y+scroll And my<Files(i).y+32+scroll And mb=1 And (Files(i).typ="Folder" Or Files(i).typ="Bfolder") Then
Chdir(Files(i).nam)
scroll=0
anzfiles=0
Files(i).x=0
Files(i).y=10
ShowFiles()
Sleep 200
End If
Next
Screenunlock
WindowTitle CurDIr
Loop Until Inkey= Chr(255, 107)
ImageDestroy folder
ImageDestroy folder2
ImageDestroy file
End
Sub AddFile()
anzfiles+=1
If anzfiles > UBound(Files) Then ReDim Preserve Files(UBound(Files) + 1000)
With Files(anzfiles)
.y = ((anzfiles - 1) \ 4) * 60 +5
If .y > maxy Then maxy = .y
.x = ((anzfiles - 1) mod 4) * (600 \ 4) +20
End With
End Sub
Sub ShowFiles()
anzfiles=0
maxy=0
Dim As Integer attr
AddFile()
With Files(anzfiles)
.y = ((anzfiles - 1) \ 4) * 60 +5
.x = ((anzfiles - 1) mod 4) * (600 \ 4) +20
.nam=".."
.typ="Bfolder"
End With
Files(anzfiles).lenx=(Files(anzfiles).x+16)-Len(Files(anzfiles).nam)*4
foldername = Dir("*",fbDirectory Or fbReadOnly,@attr)
Do
If (attr And fbDirectory) AndAlso foldername<>"" AndAlso foldername <> "." AndAlso foldername <> ".." Then
AddFile()
Files(anzfiles).nam=foldername
Files(anzfiles).typ="Folder"
If Len(Files(anzfiles).nam)<10 Then
Files(anzfiles).lenx=(Files(anzfiles).x+16)-Len(Files(anzfiles).nam)*4
Else
Files(anzfiles).lenx=(Files(anzfiles).x+16)-36
End If
end if
foldername =dir("",0)
Loop While Len(foldername)
filename = dir("*",&H00)
Do
if filename<>"" then
AddFile()
Files(anzfiles).nam=filename
If Right(Ucase(Files(anzfiles).nam),3)="BMP" Then
Files(anzfiles).typ="Picture"
Else
Files(anzfiles).typ="File"
End If
If Len(Files(anzfiles).nam)<10 Then
Files(anzfiles).lenx=(Files(anzfiles).x+16)-Len(Files(anzfiles).nam)*4
Else
Files(anzfiles).lenx=(Files(anzfiles).x+16)-36
End If
end if
filename = dir("",0)
Loop While Len(filename)
End Sub
Feedback?