home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 600-699 / ff634.lha / APIG / apig33.lzh / gadtools3.rexx < prev    next >
OS/2 REXX Batch file  |  1992-03-11  |  3KB  |  114 lines

  1. /* Example of GadTools ListView Gadget  */
  2.  
  3. x = addlib("apig.library",0,-30,0)          /* make the lib avaiable */
  4.  
  5. call SET_APIG_GLOBALS()
  6.  
  7. scr          = LOCKPUBSCREEN("Workbench")   /* gonna put our window  */
  8.                                             /* Workbench screen      */
  9.  
  10. scrvinfo     = GETVISUALINFO(scr)           /* NewGadgets need this  */
  11.  
  12. scrfont      = GETVALUE(scr,40,4,'p')       /* NewGadgets need this  */
  13.                                             /* points to TextAttr    */
  14.  
  15. glistpointer = ALLOCVEC(4,MEMF_CLEAR)       /* a pointer for context */
  16.  
  17. conxgad      = CREATECONTEXT(glistpointer)  
  18.  
  19. previousgadget = conxgad
  20.  
  21. myid = 10
  22.  
  23.  
  24. /* we now create and initialize a NewGadget structure */
  25.  
  26. newgadx = MAKENEWGADGET(scrvinfo,scrfont,65,32,185,120,"YOUR LISTVIEW GADGET",
  27.                         ,PLACETEXT_ABOVE,myid,null())
  28.  
  29. /* before doing the gadget creation we need an Exec List */
  30.  
  31. myexeclist = build_me_a_list()
  32.  
  33.  
  34. /* we now create the gadget, a LISTVIEW gadget */
  35.  
  36. previousgadget = CREATEGADGET(LISTVIEW_KIND,previousgadget,newgadx,
  37.                                  ,GTLV_LABELS,myexeclist,
  38.                                  ,LAYOUTA_SPACING,1,
  39.                                  ,TAG_DONE,0)
  40.  
  41.  
  42. wintitle = "APIG v3.1 GadTools LISTVIEW Gadget Example"
  43. winidcmp = CLOSEWINDOW+GADGETUP+GADGETDOWN+MOUSEMOVE
  44. winflags = WINDOWCLOSE+WINDOWDRAG+WINDOWSIZING+WINDOWDEPTH+GIMMEZEROZERO,
  45.            +ACTIVATE
  46.  
  47. portname = "apiggadt3_port"
  48.  
  49. p = openport(portname)
  50.  
  51.  
  52. /* open window, last parm in OPENWINDOW call points to our gadgets  */
  53. w1  = OPENWINDOW(portname,0,30,640,200,2,4,winidcmp,winflags,wintitle,
  54.                  ,scr,0,null(),null(),conxgad)
  55.  
  56. call GT_REFRESHWINDOW(w1,null())  /* need after opening window */
  57.  
  58. rpw1 = GETWINDOWRASTPORT(w1) 
  59.  
  60. exitme = 0
  61. do while exitme = 0
  62.  
  63.      x = waitpkt(portname)
  64.      do forever 
  65.         msg = getpkt(portname)
  66.         if msg = '0000 0000'x then leave
  67.  
  68.         msgclass  = getarg(msg,0)
  69.         msgcode   = getarg(msg,1)
  70.         x = reply(msg,0)  
  71.         select
  72.            when msgclass = CLOSEWINDOW then exitme = 1
  73.            when msgclass = GADGETUP then 
  74.              do   
  75.                 call cleareol(rpw1,290,50)
  76.                 call pitext(rpw1,290,50,("You clicked line" msgcode),1,2,JAM2,null())
  77.              end
  78.            otherwise nop
  79.         end
  80.      end
  81. end
  82.  
  83. call CLOSEWINDOW(w1)
  84.  
  85. call UNLOCKPUBSCREEN(null(),scr)
  86.  
  87. call FREEVISUALINFO(scrvinfo)
  88.  
  89. call FREEGADGETS(conxgad)
  90.  
  91. call FREETHIS(newgadx)
  92.  
  93. call FREEVEC(glistpointer)
  94.  
  95. call FREE_EXEC_LIST(myexeclist,,1)
  96.  
  97. exit
  98.  
  99. build_me_a_list:
  100.  
  101.    mylist = ALLOCMEM(14,MEMF_CLEAR)  /* our list structure  */
  102.                                      /* always use ALLOCMEM */
  103.                                      /* so it can be freed  */
  104.                                      /* properly.           */
  105.  
  106.    call NEWLIST(mylist)
  107.  
  108.    do x = 1 to 30
  109.       txt = "This is Line " x
  110.       ptr_to_node_added = ADD_LIST_NODE(mylist,txt)
  111.    end
  112.  
  113. return mylist
  114.