Page 1 of 2
					
				Show a directry in TreeGadget
				Posted: Thu Jan 12, 2006 7:08 pm
				by porfirio
				Hi!
I am building a small app to show help files
The Files are html and will be organized in folders
What i want is a TreeGadget that yould act like a ExplorerGadget but showing  the files in the Tree too ( kinda what winhelp have ) 
I have tryed to use ExamineDirectory and create a field for etch file\folder but i got losted :s 
If some one can help i will be glad 
Edit:
I will use a webgadgect to display the files
 
			 
			
					
				Re: Show a directry in TreeGadget
				Posted: Thu Jan 12, 2006 8:18 pm
				by PB
				> What i want is a TreeGadget that yould act like a ExplorerGadget
http://www.purebasic.com/documentation/ ... adget.html 
			 
			
					
				Re: Show a directry in TreeGadget
				Posted: Thu Jan 12, 2006 9:27 pm
				by porfirio
				
One of us is not understanding  

 
			 
			
					
				
				Posted: Fri Jan 13, 2006 9:34 pm
				by josku_x
				PB, porfirio wants to have a TeeGadget that is like a ExplorerTreeGadget, so it lists the contents of a directory etc...
but porfirio doesn't want a ExplorerTreeGadget!
is that right?
			 
			
					
				
				Posted: Fri Jan 13, 2006 10:09 pm
				by Fred
				Well, he asked for an 'ExplorerTreeGadget() which display files too'. As ExplorerTreeGadget() already display the files, it can fit its needs.
			 
			
					
				
				Posted: Sat Jan 14, 2006 12:03 am
				by fsw
				porfirio wrote:One of us is not understanding  

 
 
Code: Select all
  If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ExplorerTreeGadget") And CreateGadgetList(WindowID(0))
    ExplorerTreeGadget(0, 10, 10, 280, 280, "*.htm;*.html")
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf
 
 
 
			 
			
					
				
				Posted: Sat Jan 14, 2006 12:42 am
				by PB
				> porfirio doesn't want a ExplorerTreeGadget!
He never said that.  From his description, an ExplorerTreeGadget is precisely
what he needs, ie. a tree-type gadget that can list files (to quote: 
a TreeGadget that yould act like a ExplorerGadget but showing the files in the
Tree too).
And also: there's no such thing as an "ExplorerGadget" in PureBasic, so I
don't know where he's getting that from.  
 
			 
			
					
				
				Posted: Sat Jan 14, 2006 11:14 am
				by porfirio
				I dont want to show all windows tree i want to show just a tree begining on some folder and i want it to dysplay the html files too and not only the folders
i think i have to make my own using examinedirectory and a treegadgect but i got some problems  
Edit:
*fsw is kinda that what i want 

  but it should not show all tree directory but only the tree after the folder specified
Code: Select all
  If OpenWindow(0,0,0,300,300,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"ExplorerTreeGadget") And CreateGadgetList(WindowID(0))
    ExplorerTreeGadget(0, 10, 10, 280, 280, "help\*.html")
    Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
  EndIf 
I have seen that somewhere...
 
			 
			
					
				
				Posted: Sat Jan 14, 2006 11:59 am
				by PB
				> fsw is kinda that what i want
Just like I said first.  
> but it should not show all tree directory but only the tree after the folder specified
Well, only the ExplorerListGadget can do that (due to the #PB_Explorer_NoFolders
and #PB_Explorer_NoParentFolder flags), but unfortunately that means you don't
get a "tree" view.  But the ExplorerTreeGadget doesn't support those flags, and I
don't know if it's a Windows limitation or Fred not implementing them yet... Fred?
Or maybe someone knows how to make the ExplorerListGadget have a "tree"
view also (perhaps by way of some kind of Windows API flag or hack)?
 
			 
			
					
				
				Posted: Sat Jan 14, 2006 12:08 pm
				by porfirio
				I have already seen a program that do that
or mabe i am wrong
 :roll:
			 
			
					
				
				Posted: Sat Jan 14, 2006 1:48 pm
				by Dare2
				I am fairly sure there is code that does what you want at 
www.purearea.net -  in the code archive.
If not there, on these boards.
IIRC it uses the ExplorerComboGadget and a TreeGadget to give a windows-explorer like look.
 
			 
			
					
				
				Posted: Sat Jan 14, 2006 7:55 pm
				by porfirio
				i founded id 
Thank's!!
 
			 
			
					
				
				Posted: Sat Jan 14, 2006 11:14 pm
				by fsw
				porfirio wrote:i founded id 

 Thank's!!
 
 :roll: Would you enlighten us and tell which code serves your needs  

 
			 
			
					
				
				Posted: Sun Jan 15, 2006 12:24 am
				by PB
				Yes, please let us know what you found, as I'd like to see it too.
			 
			
					
				
				Posted: Sun Jan 15, 2006 12:07 pm
				by porfirio
				Original code on CodeArchieve
http://purearea.net/pb/CodeArchiv/Files ... le_Tree.pb
My current code:
Code: Select all
#Tree = 1 
#web=2
folder=LoadImage(0,"f.bmp")
filehtml=LoadImage(1,"i.bmp")
Procedure DirScan(DirectoryID.l, DirectoryName.s) 
  OpenTreeGadgetNode(#Tree) 
  If ExamineDirectory(DirectoryID, DirectoryName, "*.*") 
    Repeat 
      entry.l = NextDirectoryEntry() 
      If entry = 1   
        dname.s=DirectoryEntryName()
        dname_.s=ReplaceString(dname,"html","")
        If dname_<>dname ;And dname_<>"index"
          AddGadgetItem(#Tree, -1, dname_,UseImage(1)) ;(FileName found) 
        EndIf 
      ElseIf entry = 2 
        name.s = DirectoryEntryName() 
        If name <> "." And name <> ".." And name <> "core"
          While WindowEvent():Wend 
          AddGadgetItem(#Tree, -1, name,UseImage(0)) 
          DirScan(DirectoryID + 1, DirectoryName + name + "\") 
          UseDirectory(DirectoryID) 
        EndIf 
      EndIf 
    Until entry = 0 
  EndIf 
  CloseTreeGadgetNode(#Tree) 
EndProcedure 
OpenWindow(0, 0, 0, 800, 600, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Dir Scan...") 
CreateGadgetList(WindowID()) 
TreeGadget(#Tree,  2,  2, 230, 580) 
WebGadget(#web,234,3,560,580,"")
CreateStatusBar(0,WindowID())
DirScan(0, "help\") 
Repeat 
  EventID = WaitWindowEvent() 
    If EventID = #PB_EventGadget 
      Select EventGadgetID() 
        Case #Tree 
          If EventType() = #PB_EventType_LeftClick And GetGadgetState(#Tree) <> -1 
            CurrentLine = GetGadgetState(#Tree) 
            ;MessageRequester(Str(CurrentLine),GetGadgetText(#Tree))
            item.s =GetGadgetText(#Tree)
            item_.s= ReplaceString(item,".","")
            If item<>item_
              MessageRequester("","Its a File!!")
            Else
                MessageRequester("","Its a Folder!!")
            EndIf
            ;GetCurrentDirectory()
          EndIf  
      EndSelect 
    EndIf 
Until EventID = #PB_EventCloseWindow 
End