home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / vxcliser.zip / VXREXX.3 / SAMPLES / SCAN / SCAN.VRX < prev    next >
Text File  |  1994-12-23  |  4KB  |  189 lines

  1. /*:VRX         Main
  2. */
  3. /*  Main
  4. */
  5. Main:
  6. /*  Process the arguments.
  7.     Get the parent window.
  8. */
  9.     parse source . calledAs .
  10.     parent = ""
  11.     argCount = arg()
  12.     argOff = 0
  13.     if( calledAs \= "COMMAND" )then do
  14.         if argCount >= 1 then do
  15.             parent = arg(1)
  16.             argCount = argCount - 1
  17.             argOff = 1
  18.         end
  19.     end
  20.     InitArgs.0 = argCount
  21.     if( argCount > 0 )then do i = 1 to argCount
  22.         InitArgs.i = arg( i + argOff )
  23.     end
  24.     drop calledAs argCount argOff
  25.  
  26. /*  Load the windows
  27. */
  28.     call VRInit
  29.     parse source . . spec
  30.     _VREPrimaryWindowPath = ,
  31.         VRParseFileName( spec, "dpn" ) || ".VRW"
  32.     _VREPrimaryWindow = ,
  33.         VRLoad( parent, _VREPrimaryWindowPath )
  34.     drop parent spec
  35.     if( _VREPrimaryWindow == "" )then do
  36.         call VRMessage "", "Cannot load window:" VRError(), ,
  37.             "Error!"
  38.         _VREReturnValue = 32000
  39.         signal _VRELeaveMain
  40.     end
  41.  
  42. /*  Process events
  43. */
  44.     call Init
  45.     signal on halt
  46.     do while( \ VRGet( _VREPrimaryWindow, "Shutdown" ) )
  47.         _VREEvent = VREvent()
  48.         interpret _VREEvent
  49.     end
  50. _VREHalt:
  51.     _VREReturnValue = Fini()
  52.     call VRDestroy _VREPrimaryWindow
  53. _VRELeaveMain:
  54.     call VRFini
  55. exit _VREReturnValue
  56.  
  57. VRLoadSecondary: procedure
  58.     name = arg( 1 )
  59.  
  60.     window = VRLoad( VRWindow(), VRWindowPath(), name )
  61.     call VRMethod window, "CenterWindow"
  62.     call VRSet window, "Visible", 1
  63.     call VRMethod window, "Activate"
  64. return window
  65.  
  66. /*:VRX         Fini
  67. */
  68. Fini: 
  69.     window = VRWindow()
  70.     call VRSet window, "Visible", 0
  71.     if( Label = "" ) then do
  72.         call ETKSetFileField "Line", CurrLine
  73.     end
  74.     else do
  75.         "top"
  76.         "locate /" || Label || ":/"
  77.     end
  78.  
  79.     call VRSet window, "FrameOwner", ""
  80.     call VRSet epmWindow, "Enabled", 1
  81.     drop window
  82.  
  83. return 0
  84.  
  85. /*:VRX         Halt
  86. */
  87. Halt:
  88.     signal _VREHalt
  89. return
  90.  
  91. /*:VRX         Init
  92. */
  93. Init: 
  94.     window = VRWindow()
  95.     if( Address() <> "EPM" ) then do
  96.         call VRMessage window, "You must run this macro from EPM.", "E"
  97.         call Quit
  98.         signal InitDone
  99.     end
  100.  
  101.     /* Set the window owner to the EPM window
  102.     */
  103.     epmWindow = VRMethod( "Screen", "GetActiveWindow" )
  104.     call VRSet window, "FrameOwner", epmWindow
  105.  
  106.     /* Disable the EPM window
  107.     */
  108.     call VRSet epmWindow, "Enabled", 0
  109.  
  110.     call VRMethod window, "CenterWindow"
  111.     call VRSet window, "Visible", 1
  112.     call VRMethod window, "Activate"
  113.  
  114.     "extract /line"
  115.     CurrLine = line.1
  116.     "sayerror Found" ListLabels() "labels"   
  117.     Label = ""
  118.     
  119. InitDone:
  120. return
  121.  
  122. ListLabels: procedure
  123.     "sayerror Locating labels"
  124.     "all /^[abcdefghijklmnopqrstuvwxyz0123456789_]+:/g c"
  125.     if( rc = 0 ) then do
  126.         count = 0
  127.         signal ListDone
  128.     end
  129.  
  130.     "sayerror Extracting labels"
  131.     call VRSet "LB_Labels", "Painting", 0
  132.     "extract /last"
  133.     count = last.1
  134.     "top"
  135.     do i = 1 to count
  136.         "extract /getline"
  137.         parse var getline.1 lineNum name ":" .
  138.         call VRMethod "LB_Labels", "AddString", name
  139.         "+1"
  140.     end
  141.     call VRSet "LB_Labels", "Painting", 1
  142.     "quit"
  143.  
  144. ListDone:
  145. return count
  146.  
  147. /*:VRX         LB_Labels_Click
  148. */
  149. LB_Labels_Click:
  150.     call VRMethod "LB_Labels", "GetSelectedStringList", "list."
  151.     if( list.0 = 1 ) then do
  152.         Label = list.1
  153.     end
  154. return
  155.  
  156. /*:VRX         LB_Labels_DoubleClick
  157. */
  158. LB_Labels_DoubleClick:
  159.     call Quit
  160. return
  161.  
  162. /*:VRX         PB_Cancel_Click
  163. */
  164. PB_Cancel_Click:
  165.     Label = ""
  166.     call Quit
  167. return
  168.  
  169. /*:VRX         PB_OK_Click
  170. */
  171. PB_OK_Click:
  172.     call Quit
  173. return
  174.  
  175. /*:VRX         Quit
  176. */
  177. Quit: 
  178.     window = VRWindow()
  179.     call VRSet window, 'shutdown', 'true'
  180.     drop window
  181. return
  182.  
  183. /*:VRX         Window1_Close
  184. */
  185. Window1_Close:
  186.     call Quit
  187. return
  188.  
  189.