For Programmers: Free Programming Magazines  


Home > Archive > Clarion > September 2004 > how to detect a click on a folder list and where









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author how to detect a click on a folder list and where
google

2004-09-24, 3:55 pm

If WinEvent() <> 0200H
QWET(LQW,WinEvent(),Clock())
End
Case WinEvent()
Of WM_LBUTTONDOWN
If CWS[17] = 0
MouseYY = MouseY()
MouseXX = MouseX()
DisActivatePulldown = 1
CWS[17] = 0
If MouseXX > LocalXPos And MouseXX < LocalXPos +
LocalWidth And VScrollbar = 1 And MouseIsDown = 0
If MouseYY > ThumbYPos And MouseYY < ThumbYPos +
ThumbHeight
MDownYPos = MouseYY
MouseInThumbYPos = MouseYY - ThumbYPos
MouseIsDown = 1
LastQFTreePropYPos = ?QFTree{Prop:YPos}
End
End
End
Return(0)
Of WM_LBUTTONUP


MouseIsDown = 0
DisActivatePulldown = 1
If CWS[17] = 3
CWS[17] = 7
End
If PaintingDone = 1 And MouseXX < LocalXPos + LocalWidth -
20 And MouseIsDown = 0 And CWS[17] = 0
PointerInScreenList =
((MouseYY+(QFTreePropYPos*-1))/16) + 0.5
!PointerInScreenList = (((MouseYY-LocalQFTree_YPos) -
LocalQFTree_YPos)/16) + 0.5
If PointerInScreenList =< Records(QPFolder) And
PointerInScreenList > 0 !And MouseYY < LocalHeight
If MouseXX > ArrayExpBoxesXPos[PointerInScreenList]
And MouseXX < ArrayExpBoxesXPos[PointerInScreenList] + 20

!Message(ArrayTextPixelsLength[PointerIn
ScreenList])




Get(QPFolder,PointerInScreenList)
QFolders:Number = QPFolder:QFolderNumber
Get(QFolders,+QFolders:Number)
Changed# = 0
If QFolders:Collections > 0
If QFolders:IsExp = 0
QFolders:IsExp = 1
Changed# = 1
Else
QFolders:IsExp = 0
Changed# = 1
End
Put(QFolders)
Else
If QFolders:IsExp = 0
Changed# = 1
QFolders:IsExp = 1
Else
Changed# = 1
QFolders:IsExp = 0
End
Put(QFolders)
End
If Changed# = 1
CurrentPointer# = Pointer(QFolders)
CurrentQFoldersLevel = QFolders:Level
If QFolders:Collections > 0 And
Len(Clip(QFolders:Path)) > 3
GetSubQFiles# = 0
If Len(Clip(QFolders:Path)) < 4
TheFile = QFolders:Path[1:2]
Else
TheFile = QFolders:Path
End
Clear(QFiles)
Free(QFiles)

Directory(QFiles,Clip(TheFile)&'\*.*',02h+04h+010h+020h)
Sort(QFiles,+QFiles:Name)
CurrentCollections = 0
CurrentItems = 0
GetSubQFiles# = 0
CurrentQFoldersLevel =
CurrentQFoldersLevel + 1

Loop Records(QFiles) Times
GetSubQFiles# = GetSubQFiles# + 1
Get(QFiles,GetSubQFiles#)
If Errorcode() <> 0 then Break.
If QFiles:ShortName[1] = '.'
then Cycle.
If QFiles:ShortName[1:2] = '..'
then Cycle.
If Band(QFiles:Attrib,010h) <> 0
QFolders:Path = Clip(TheFile)
&''& Clip(QFiles:Name)
Get(QFolders,+QFolders:Path)
If Errorcode() <> 0
QFoldersNumberMax
= QFoldersNumberMax + 1
QFolders:Number
= QFoldersNumberMax
QFolders:Path
= Clip(TheFile) &''& Clip(QFiles:Name)
QFolders:Name
= Clip(QFiles:Name)
QFolders:Line
= Clip(QFiles:Name)
QFolders:IcoCon
= 477
QFolders:IcoExp
= 477
QFolders:Level
= CurrentQFoldersLevel
QFolders:IsExp
= False
QFolders:Parent
= CurrentParentQFolders
QFolders:Collections
= 0
QFolders:Items
= 0
QFolders:LevelAgain
= QFolders:Level

Add(QFolders,CurrentPointer#+1)
!QFTreePropHeight =
QFTreePropHeight + 16 !!!!!
CurrentPointer# =
CurrentPointer# + 1

CurrentParentQFoldersL3#
= QFolders:Number

Clear(Q2Files)
Free(Q2Files)

Directory(Q2Files,Clip(TheFile)&''&
Clip(QFiles:Name)&'\*.*',02h+04h+010h+020h)
LastPath =
Clip(TheFile)&''& Clip(QFiles:Name)
CurrentCollections = 0
CurrentItems = 0
G2# = 0
Loop Records(Q2Files) Times
G2# = G2# + 1
Get(Q2Files,G2#)
If Q2Files:ShortName[1]
= '.' then Cycle.
If Q2Files:ShortName[1:2]
= '..' then Cycle.
If
Band(Q2Files:Attrib,010h) <> 0
CurrentCollections =
CurrentCollections + 1
Else
CurrentItems =
CurrentItems + 1
End
End
QFolders:Collections =
CurrentCollections
QFolders:Items =
CurrentItems
Put(QFolders)

CurrentQFoldersLevel =
CurrentQFoldersLevel + 1
CurrentCollections = 0
CurrentItems = 0
G2# = 0
Loop Records(Q2Files) Times
G2# = G2# + 1
Get(Q2Files,G2#)
If Q2Files:ShortName[1]
= '.' then Cycle.
If Q2Files:ShortName[1:2]
= '..' then Cycle.
If
Band(Q2Files:Attrib,010h) <> 0
QFoldersNumberMax
= QFoldersNumberMax + 1
QFolders:Number
= QFoldersNumberMax
QFolders:Path
= Clip(LastPath)&''&Clip(Q2Files:Name)
QFolders:Name
= Clip(Q2Files:Name)
QFolders:Line
= Clip(Q2Files:Name)
QFolders:IcoCon
= 477
QFolders:IcoExp
= 477
QFolders:Level
= CurrentQFoldersLevel
QFolders:IsExp
= False
QFolders:Parent
= CurrentParentQFoldersL3#
QFolders:Collections
= 0
QFolders:Items
= 0
QFolders:LevelAgain
= QFolders:Level

Add(QFolders,CurrentPointer#+1)
!QFTreePropHeight =
QFTreePropHeight + 16 !!!!!
CurrentPointer# =
CurrentPointer# + 1
End
End
CurrentQFoldersLevel =
CurrentQFoldersLevel - 1
End
End
End
CurrentQFoldersLevel =
CurrentQFoldersLevel - 1
End
End
If Changed# = 1
!Do RecalcImageHeightR
Do PaintNowR
!Do RecalcImageHeightR
Changed# = 0
End
Else
! Get(QPFolder,PointerInScreenList)
! QFolders:Number = QPFolder:QFolderNumber
! Get(QFolders,+QFolders:Number)
Do PaintSelectionR
!Message(QFolders:Name)
End
End
End
!QFTree{Prop:Height} = QFTreePropHeight
!MouseIsDown = 0
!Do SetVScrollR
Return(0)
End
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com