home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / SHMOD10.LHA / ShowModule / Modules / Pmodules / PMHeader.e < prev   
Encoding:
Text File  |  1994-08-19  |  18.7 KB  |  407 lines

  1.  
  2. /*=========================================================================================*/
  3. /* Source code generate by Gui2E v0.1 © 1994 NasGûl                                        */
  4. /*=========================================================================================*/
  5.  
  6. OPT OSVERSION=37
  7.  
  8. MODULE 'intuition/intuition',
  9.        'gadtools',
  10.        'libraries/gadtools',
  11.        'intuition/gadgetclass',
  12.        'intuition/screens',
  13.        'graphics/text',
  14.        'exec/lists',
  15.        'exec/nodes',
  16.        'exec/ports',
  17.        'eropenlib',
  18.        'utility/tagitem'
  19. MODULE 'utility','datanode','dos/dos'
  20. MODULE 'reqtools','libraries/reqtools'
  21. ENUM ER_NONE,ER_LOCKSCREEN,ER_VISUAL,ER_CONTEXT,ER_MENUS,ER_GADGET,ER_WINDOW,
  22.      ER_LIST
  23.  
  24. DEF screen:PTR TO screen,
  25.     visual=NIL,
  26.     tattr:PTR TO textattr,
  27.     reelquit=FALSE,
  28.     offy,pmodules
  29. /*=======================================
  30.  = tl Definitions
  31.  =======================================*/
  32. DEF tl_window=NIL:PTR TO window
  33. DEF tl_glist=NIL
  34. /*==================*/
  35. /*     Gadgets      */
  36. /*==================*/
  37. CONST GA_G_ADD=0
  38. CONST GA_G_REM=1
  39. CONST GA_G_UP=2
  40. CONST GA_G_DOWN=3
  41. CONST GA_G_SORT=4
  42. CONST GA_G_GETADR=5
  43. CONST GA_G_GETNUM=6
  44. CONST GA_G_COUNT=7
  45. CONST GA_G_DATA=8
  46. CONST GA_G_LIST=9
  47. CONST GA_G_NODENAME=10
  48. /*=============================
  49.  = Gadgets labels of tl
  50.  =============================*/
  51. DEF g_add
  52. DEF g_rem
  53. DEF g_up
  54. DEF g_down
  55. DEF g_sort
  56. DEF g_getadr
  57. DEF g_getnum
  58. DEF g_count
  59. DEF g_data
  60. DEF g_list
  61. DEF g_nodename
  62. /*===============================
  63.  = App Definitions
  64.  ================================*/
  65. DEF mylist:PTR TO lh
  66. DEF currentnode=0
  67. PMODULE 'Pmodules:Plist'
  68. PROC main() HANDLE /*"main()"*/
  69. /*===============================================================================
  70.  = Para         : NONE.
  71.  = Return       : ER_NONE if ok,else the error.
  72.  = Description  : Main Procedure.
  73.  ==============================================================================*/
  74.     DEF testmain
  75.     tattr:=['topaz.font',8,0,0]:textattr
  76.     IF (testmain:=p_OpenLibraries())<>ER_NONE THEN Raise(testmain)
  77.     IF (mylist:=p_InitList())=NIL THEN Raise(ER_LIST)
  78.     IF arg<>NIL THEN p_MakeCurrentDirList(arg)
  79.     IF (testmain:=p_SetUpScreen())<>ER_NONE THEN Raise(testmain)
  80.     IF (testmain:=p_InittlWindow())<>ER_NONE THEN Raise(testmain)
  81.     IF (testmain:=p_OpentlWindow())<>ER_NONE THEN Raise(testmain)
  82.     REPEAT
  83.         p_LookAllMessage()
  84.     UNTIL reelquit=TRUE
  85.     Raise(ER_NONE)
  86. EXCEPT
  87.     IF mylist THEN p_CleanList(mylist,-1,[14,DISL,DISE],LIST_REMOVE)
  88.     IF tl_window THEN p_RemtlWindow()
  89.     IF screen THEN p_SetDownScreen()
  90.     p_CloseLibraries()
  91.     SELECT exception
  92.         CASE ER_LOCKSCREEN; WriteF('Lock Screen Failed.\n')
  93.         CASE ER_VISUAL;     WriteF('Error Visual.\n')
  94.         CASE ER_CONTEXT;    WriteF('Error Context.\n')
  95.         CASE ER_MENUS;      WriteF('Error Menus.\n')
  96.         CASE ER_GADGET;     WriteF('Error Gadget.\n')
  97.         CASE ER_WINDOW;     WriteF('Error Window.\n')
  98.         CASE ER_LIST;       WriteF('Error List.\n')
  99.     ENDSELECT
  100.     CleanUp(exception)
  101. ENDPROC
  102. PROC p_OpenLibraries() HANDLE /*"p_OpenLibraries()"*/
  103. /*===============================================================================
  104.  = Para         : NONE.
  105.  = Return       : ER_NONE if ok,else the error.
  106.  = Description  : Open libraries.
  107.  ==============================================================================*/
  108.     IF (intuitionbase:=OpenLibrary('intuition.library',37))=NIL THEN Raise(ER_INTUITIONLIB)
  109.     IF (gadtoolsbase:=OpenLibrary('gadtools.library',37))=NIL THEN Raise(ER_GADTOOLSLIB)
  110.     IF (gfxbase:=OpenLibrary('graphics.library',37))=NIL THEN Raise(ER_GRAPHICSLIB)
  111.     IF (utilitybase:=OpenLibrary('utility.library',37))=NIL THEN Raise(ER_UTILITYLIB)
  112.     IF (reqtoolsbase:=OpenLibrary('reqtools.library',37))=NIL THEN Raise(ER_REQTOOLSLIB)
  113.     Raise(ER_NONE)
  114. EXCEPT
  115.     RETURN exception
  116. ENDPROC
  117. PROC p_CloseLibraries()  /*"p_CloseLibraries()"*/
  118. /*===============================================================================
  119.  = Para         : NONE.
  120.  = Return       : NONE.
  121.  = Description  : Close Libraries
  122.  ==============================================================================*/
  123.     IF reqtoolsbase THEN CloseLibrary(reqtoolsbase)
  124.     IF utilitybase THEN CloseLibrary(utilitybase)
  125.     IF gfxbase THEN CloseLibrary(gfxbase)
  126.     IF gadtoolsbase THEN CloseLibrary(gadtoolsbase)
  127.     IF intuitionbase THEN CloseLibrary(intuitionbase)
  128. ENDPROC
  129. PROC p_SetUpScreen() HANDLE /*"p_SetUpScreen()"*/
  130. /*===============================================================================
  131.  = Para         : NONE.
  132.  = Return       : ER_NONE if ok,else the error.
  133.  = Description  : Lock screen and get the visualinfo.
  134.  ==============================================================================*/
  135.     IF (screen:=LockPubScreen('Workbench'))=NIL THEN Raise(ER_LOCKSCREEN)
  136.     IF (visual:=GetVisualInfoA(screen,NIL))=NIL THEN Raise(ER_VISUAL)
  137.     offy:=screen.wbortop+Int(screen.rastport+58)+1
  138.     Raise(ER_NONE)
  139. EXCEPT
  140.     RETURN exception
  141. ENDPROC
  142. PROC p_SetDownScreen() /*"p_SetDownScreen()"*/
  143. /*===============================================================================
  144.  = Para         : NONE.
  145.  = Return       : NONE.
  146.  = Description  : Free Visual and unlock Screen.
  147.  ==============================================================================*/
  148.  
  149.     IF visual THEN FreeVisualInfo(visual)
  150.     IF screen THEN UnlockPubScreen(NIL,screen)
  151. ENDPROC
  152. PROC p_InittlWindow() HANDLE /*"p_InittlWindow()"*/
  153. /*===============================================================================
  154.  = Para         : NONE.
  155.  = Return       : ER_NONE if ok,else the error.
  156.  = Description  : Build the gadgetlist.
  157.  ==============================================================================*/
  158.     IF (tl_glist:=CreateContext({tl_glist}))=NIL THEN Raise(ER_CONTEXT)
  159.     IF (g_add:=CreateGadgetA(BUTTON_KIND,tl_glist,[23,18,91,12,'AddNode',tattr,0,16,visual,0]:newgadget,[GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  160.     IF (g_rem:=CreateGadgetA(BUTTON_KIND,g_add,[114,18,91,12,'RemNode',tattr,1,16,visual,0]:newgadget,[GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  161.     IF (g_up:=CreateGadgetA(BUTTON_KIND,g_rem,[205,18,91,12,'UpNode',tattr,2,16,visual,0]:newgadget,[GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  162.     IF (g_down:=CreateGadgetA(BUTTON_KIND,g_up,[296,18,91,12,'DownNode',tattr,3,16,visual,0]:newgadget,[GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  163.     IF (g_sort:=CreateGadgetA(BUTTON_KIND,g_down,[23,32,91,12,'SortList',tattr,4,16,visual,0]:newgadget,[GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  164.     IF (g_getadr:=CreateGadgetA(BUTTON_KIND,g_sort,[296,32,91,12,'GetAdr',tattr,5,16,visual,0]:newgadget,[GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  165.     IF (g_getnum:=CreateGadgetA(BUTTON_KIND,g_getadr,[205,32,91,12,'GetNum',tattr,6,16,visual,0]:newgadget,[GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  166.     IF (g_count:=CreateGadgetA(BUTTON_KIND,g_getnum,[114,32,91,12,'CountNodes',tattr,7,16,visual,0]:newgadget,[GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  167.     IF (g_data:=CreateGadgetA(STRING_KIND,g_count,[21,131,370,13,'',tattr,8,0,visual,0]:newgadget,[GTST_STRING,'',GTST_MAXCHARS,100,GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  168.     IF (g_list:=CreateGadgetA(LISTVIEW_KIND,g_data,[21,53,370,65,'',tattr,9,0,visual,0]:newgadget,[GTLV_SHOWSELECTED,NIL,GTLV_LABELS,-1,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  169.     IF (g_nodename:=CreateGadgetA(STRING_KIND,g_list,[21,116,370,13,'',tattr,10,0,visual,0]:newgadget,[GTST_STRING,'',GTST_MAXCHARS,100,GA_RELVERIFY,TRUE,GA_DISABLED,FALSE,GT_UNDERSCORE,"_",TAG_DONE,0]))=NIL THEN Raise(ER_GADGET)
  170.     Raise(ER_NONE)
  171. EXCEPT
  172.     RETURN exception
  173. ENDPROC
  174. PROC p_RendertlWindow() /*"p_RendertlWindow()"*/
  175. /*===============================================================================
  176.  = Para         : NONE.
  177.  = Return       : NONE.
  178.  = Description  : Redraw the window (for the Bevelbox and the listview).
  179.  ==============================================================================*/
  180.     DEF dn:PTR TO datanode
  181.     DEF node:PTR TO ln
  182.     IF p_EmptyList(mylist)=-1
  183.         Gt_SetGadgetAttrsA(g_list,tl_window,NIL,[GTLV_SELECTED,NIL,GA_DISABLED,TRUE,GTLV_LABELS,-1,TAG_DONE,0])
  184.         Gt_SetGadgetAttrsA(g_rem,tl_window,NIL,[GA_DISABLED,TRUE,TAG_DONE,0])
  185.         Gt_SetGadgetAttrsA(g_up,tl_window,NIL,[GA_DISABLED,TRUE,TAG_DONE,0])
  186.         Gt_SetGadgetAttrsA(g_down,tl_window,NIL,[GA_DISABLED,TRUE,TAG_DONE,0])
  187.         Gt_SetGadgetAttrsA(g_sort,tl_window,NIL,[GA_DISABLED,TRUE,TAG_DONE,0])
  188.         Gt_SetGadgetAttrsA(g_getadr,tl_window,NIL,[GA_DISABLED,TRUE,TAG_DONE,0])
  189.         Gt_SetGadgetAttrsA(g_getnum,tl_window,NIL,[GA_DISABLED,TRUE,TAG_DONE,0])
  190.         Gt_SetGadgetAttrsA(g_count,tl_window,NIL,[GA_DISABLED,TRUE,TAG_DONE,0])
  191.         Gt_SetGadgetAttrsA(g_data,tl_window,NIL,[GA_DISABLED,TRUE,GTST_STRING,'',TAG_DONE,0])
  192.         Gt_SetGadgetAttrsA(g_nodename,tl_window,NIL,[GA_DISABLED,TRUE,GTST_STRING,'',TAG_DONE,0])
  193.     ELSE
  194.         dn:=p_GetAdrNode(mylist,currentnode)
  195.         node:=dn
  196.         /*WriteF('\s \s\n',node.name,dn.data)*/
  197.         Gt_SetGadgetAttrsA(g_list,tl_window,NIL,[GTLV_SHOWSELECTED,TRUE,GTLV_SELECTED,currentnode,GA_DISABLED,FALSE,GTLV_LABELS,mylist,TAG_DONE,0])
  198.         Gt_SetGadgetAttrsA(g_rem,tl_window,NIL,[GA_DISABLED,FALSE,TAG_DONE,0])
  199.         Gt_SetGadgetAttrsA(g_up,tl_window,NIL,[GA_DISABLED,FALSE,TAG_DONE,0])
  200.         Gt_SetGadgetAttrsA(g_down,tl_window,NIL,[GA_DISABLED,FALSE,TAG_DONE,0])
  201.         Gt_SetGadgetAttrsA(g_sort,tl_window,NIL,[GA_DISABLED,FALSE,TAG_DONE,0])
  202.         Gt_SetGadgetAttrsA(g_getadr,tl_window,NIL,[GA_DISABLED,FALSE,TAG_DONE,0])
  203.         Gt_SetGadgetAttrsA(g_getnum,tl_window,NIL,[GA_DISABLED,FALSE,TAG_DONE,0])
  204.         Gt_SetGadgetAttrsA(g_count,tl_window,NIL,[GA_DISABLED,FALSE,TAG_DONE,0])
  205.         Gt_SetGadgetAttrsA(g_data,tl_window,NIL,[GA_DISABLED,FALSE,GTST_STRING,dn.data,TAG_DONE,0])
  206.         Gt_SetGadgetAttrsA(g_nodename,tl_window,NIL,[GA_DISABLED,FALSE,GTST_STRING,node.name,TAG_DONE,0])
  207.     ENDIF
  208.     DrawBevelBoxA(tl_window.rport,10,15,391,32,[GT_VISUALINFO,visual,TAG_DONE,0])
  209.     DrawBevelBoxA(tl_window.rport,10,50,391,96,[GT_VISUALINFO,visual,TAG_DONE,0])
  210.     RefreshGList(g_add,tl_window,NIL,-1)
  211.     Gt_RefreshWindow(tl_window,NIL)
  212. ENDPROC
  213. PROC p_OpentlWindow() HANDLE /*"p_OpentlWindow()"*/
  214. /*===============================================================================
  215.  = Para         : NONE.
  216.  = Return       : ER_NONE if ok,else the error.
  217.  = Description  : Open the window.
  218.  ==============================================================================*/
  219.     IF (tl_window:=OpenWindowTagList(NIL,
  220.                       [WA_LEFT,568,
  221.                        WA_TOP,72,
  222.                        WA_WIDTH,408,
  223.                        WA_HEIGHT,149,
  224.                        WA_IDCMP,$400278,
  225.                        WA_FLAGS,$2E,
  226.                        WA_GADGETS,tl_glist,
  227.                        WA_TITLE,'WindowList Test v0.1 © 1994 NasGûl',
  228.                        WA_SCREENTITLE,'Made With GadToolsBox v2.0 © 1991-1993 - Convert With Gui2E v0.1 © 1994 NasGûl',
  229.                        TAG_DONE]))=NIL THEN Raise(ER_WINDOW)
  230.     p_RendertlWindow()
  231.     Raise(ER_NONE)
  232. EXCEPT
  233.     RETURN exception
  234. ENDPROC
  235. PROC p_RemtlWindow() /*"p_RemtlWindow()"*/
  236. /*===============================================================================
  237.  = Para         : NONE.
  238.  = Return       : NONE.
  239.  = Description  : Free window data.
  240.  ==============================================================================*/
  241.     IF tl_window THEN CloseWindow(tl_window)
  242.     IF tl_glist THEN FreeGadgets(tl_glist)
  243. ENDPROC
  244. PROC p_LockListView(gad,win) /*"p_LockListView(gad,win)"*/
  245. /*===============================================================================
  246.  = Para         : Address of gadget,Address of window.
  247.  = Return       : NONE.
  248.  = Description  : Just lock the LISTVIEW Gadet.
  249.  ==============================================================================*/
  250.     Gt_SetGadgetAttrsA(gad,win,NIL,[GTLV_LABELS,-1,TAG_DONE,0])
  251. ENDPROC
  252. PROC p_UnLockListView(gad,win,list) /*"p_UnLockListView(gad,win,list)"*/
  253. /*===============================================================================
  254.  = Para         : Address of gadget (gadget),address of window (winodw),address of list (lh)
  255.  = Return       : NONE.
  256.  = Description  : Unlock the LISTVIEW if the list is not empty.
  257.  ==============================================================================*/
  258.     IF p_EmptyList(list)<>-1
  259.         Gt_SetGadgetAttrsA(gad,win,NIL,[GA_DISABLED,FALSE,GTLV_LABELS,list,TAG_DONE,0])
  260.     ELSE
  261.         Gt_SetGadgetAttrsA(gad,win,NIL,[GA_DISABLED,TRUE,GTLV_LABELS,-1,TAG_DONE,0])
  262.     ENDIF
  263. ENDPROC
  264.  
  265. PROC p_LookAllMessage() /*"p_LookAllMessage()"*/
  266. /*===============================================================================
  267.  = Para         : NONE.
  268.  = Return       : NONE.
  269.  = Description  : Wait events on (window port and CTRL C/D/E/F ).
  270.  ==============================================================================*/
  271.     DEF sigreturn
  272.     DEF tlport:PTR TO mp
  273.     IF tl_window THEN tlport:=tl_window.userport ELSE tlport:=NIL
  274.     sigreturn:=Wait(Shl(1,tlport.sigbit) OR
  275.                     $F000)
  276.     IF (sigreturn AND Shl(1,tlport.sigbit))
  277.         p_LooktlMessage()
  278.     ENDIF
  279.     IF (sigreturn AND $F000)
  280.         reelquit:=TRUE
  281.     ENDIF
  282. ENDPROC
  283. PROC p_LooktlMessage() /*"p_LooktlMessage()"*/
  284. /*===============================================================================
  285.  = Para         : NONE
  286.  = Return       : NONE
  287.  = Description  : IDCMP Events.
  288.  ==============================================================================*/
  289.    DEF mes:PTR TO intuimessage
  290.    DEF g:PTR TO gadget
  291.    DEF gstr:PTR TO stringinfo
  292.    DEF type=0,infos=NIL
  293.    DEF ndn:PTR TO datanode
  294.    DEF nd:PTR TO ln
  295.    DEF pv[256]:STRING
  296.    DEF countnode
  297.    IF mes:=Gt_GetIMsg(tl_window.userport)
  298.        type:=mes.class
  299.        SELECT type
  300.            CASE IDCMP_MENUPICK
  301.               infos:=mes.code
  302.               SELECT infos
  303.               ENDSELECT
  304.            CASE IDCMP_CLOSEWINDOW
  305.                reelquit:=TRUE
  306.            CASE IDCMP_GADGETUP
  307.               g:=mes.iaddress
  308.               infos:=g.gadgetid
  309.               SELECT infos
  310.                   CASE GA_G_ADD
  311.                       p_LockListView(g_list,tl_window)
  312.                       ndn:=New(SIZEOF datanode)
  313.                       ndn.data:=String(EstrLen('(New)'))
  314.                       StrCopy(ndn.data,'(New)',ALL)
  315.                       currentnode:=p_AjouteNode(mylist,'(New)',ndn)
  316.                       p_UnLockListView(g_list,tl_window,mylist)
  317.                       p_RendertlWindow()
  318.                   CASE GA_G_REM
  319.                       p_LockListView(g_list,tl_window)
  320.                       ndn:=p_GetAdrNode(mylist,currentnode)
  321.                       IF ndn.data THEN DisposeLink(ndn.data)
  322.                       currentnode:=p_EnleveNode(mylist,currentnode,-1,[14,DISL,DISE])
  323.                       p_UnLockListView(g_list,tl_window,mylist)
  324.                       p_RendertlWindow()
  325.                   CASE GA_G_UP
  326.                       p_LockListView(g_list,tl_window)
  327.                       currentnode:=p_DoUpNode(mylist,currentnode)
  328.                       p_UnLockListView(g_list,tl_window,mylist)
  329.                       p_RendertlWindow()
  330.                   CASE GA_G_DOWN
  331.                       p_LockListView(g_list,tl_window)
  332.                       currentnode:=p_DoDownNode(mylist,currentnode)
  333.                       p_UnLockListView(g_list,tl_window,mylist)
  334.                       p_RendertlWindow()
  335.                   CASE GA_G_SORT
  336.                       p_LockListView(g_list,tl_window)
  337.                       p_SortList(mylist)
  338.                       p_UnLockListView(g_list,tl_window,mylist)
  339.                       p_RendertlWindow()
  340.                   CASE GA_G_GETADR
  341.                       nd:=p_GetAdrNode(mylist,currentnode)
  342.                       RtEZRequestA('Address :\h[8]\n'+
  343.                                   'Succ    :\h[8]\n'+
  344.                                   'Pred    :\h[8]\n','Ok',0,[nd,nd.succ,nd.pred],[RT_LOCKWINDOW,TRUE,RT_WINDOW,tl_window,TAG_DONE,0])
  345.                   CASE GA_G_GETNUM
  346.                       RtEZRequestA('Current Node Number:\d','Ok',0,[currentnode],[RT_LOCKWINDOW,TRUE,RT_WINDOW,tl_window,TAG_DONE,0])
  347.                   CASE GA_G_COUNT
  348.                       countnode:=p_CountNodes(mylist)
  349.                       RtEZRequestA('Number Of node(s):\d','Ok',0,[countnode],[RT_LOCKWINDOW,TRUE,RT_WINDOW,tl_window,TAG_DONE,0])
  350.                   CASE GA_G_DATA
  351.                       p_LockListView(g_list,tl_window)
  352.                       gstr:=g.specialinfo
  353.                       ndn:=p_GetAdrNode(mylist,currentnode)
  354.                       IF ndn.data THEN DisposeLink(ndn.data)
  355.                       StringF(pv,'\s',gstr.buffer)
  356.                       ndn.data:=String(EstrLen(pv))
  357.                       StrCopy(ndn.data,pv,ALL)
  358.                       p_UnLockListView(g_list,tl_window,mylist)
  359.                       p_RendertlWindow()
  360.                   CASE GA_G_LIST
  361.                       currentnode:=mes.code
  362.                       p_RendertlWindow()
  363.                   CASE GA_G_NODENAME
  364.                       p_LockListView(g_list,tl_window)
  365.                       gstr:=g.specialinfo
  366.                       nd:=p_GetAdrNode(mylist,currentnode)
  367.                       IF nd.name THEN DisposeLink(ndn.data)
  368.                       StringF(pv,'\s',gstr.buffer)
  369.                       nd.name:=String(EstrLen(pv))
  370.                       StrCopy(nd.name,pv,ALL)
  371.                       p_UnLockListView(g_list,tl_window,mylist)
  372.                       p_RendertlWindow()
  373.               ENDSELECT
  374.        ENDSELECT
  375.        Gt_ReplyIMsg(mes)
  376.    ENDIF
  377. ENDPROC
  378. PROC p_MakeCurrentDirList(dir) /*"p_MakeCurrentDirList()"*/
  379. /*===============================================================================
  380.  = Para         : directory.
  381.  = Return       : NONE.
  382.  = Description  : Just add some node to the list.
  383.  ==============================================================================*/
  384.     DEF lock,info:fileinfoblock
  385.     DEF f[256]:STRING,t[256]:STRING
  386.     DEF dnode:PTR TO datanode
  387.     IF lock:=Lock(dir,-2)
  388.         IF Examine(lock,info)
  389.             WHILE ExNext(lock,info)
  390.                 IF info.direntrytype>0
  391.                     StringF(t,'\s','Dir')
  392.                     StringF(f,'\s',info.filename)
  393.                 ELSE
  394.                     StringF(t,'\d Octets',info.size)
  395.                     StringF(f,'\s',info.filename)
  396.                 ENDIF
  397.                 dnode:=New(SIZEOF datanode)
  398.                 dnode.data:=String(EstrLen(t))
  399.                 StrCopy(dnode.data,t,ALL)
  400.                 p_AjouteNode(mylist,f,dnode)
  401.             ENDWHILE
  402.         ENDIF
  403.         IF lock THEN UnLock(lock)
  404.     ENDIF
  405. ENDPROC
  406.  
  407.