home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ca100b3.zip / QUEUE.ERX < prev    next >
Text File  |  1995-09-28  |  7KB  |  280 lines

  1. /* Custom mainline for macro */
  2.  
  3.     call RXFuncAdd "VRLoadFuncs", "VROBJ", "VRLoadFuncs"
  4.     call VRLoadFuncs
  5.  
  6.     _VREVersion = SubWord( VRVersion( "VRObj" ), 1, 1 )
  7.     if( _VREVersion < 2.13 )then do
  8.         call VRMessage "", "This program requires VX-REXX version 2.1c to run.", "Error!"
  9.         return 32000
  10.     end
  11.  
  12.  
  13.     signal on SYNTAX name _VRESyntax
  14.     signal _VREMain
  15.  
  16. _VRESyntax:
  17.     parse source . . _VRESourceSpec
  18.     call VRMessage "", "Syntax error in" _VRESourceSpec "line" SIGL":" ErrorText(rc), "Error!"
  19.     call VRFini
  20.     exit 32000
  21.  
  22. _VREMain:
  23. /*:VRX         Main
  24. */
  25. /*  Main
  26. */
  27. Main:
  28. /*  Process the arguments.
  29.     Get the parent window.
  30. */
  31.     parse source . calledAs .
  32.     parent = ""
  33.     argCount = arg()
  34.     argOff = 0
  35.     if( calledAs \= "COMMAND" )then do
  36.         if argCount >= 1 then do
  37.             parent = arg(1)
  38.             argCount = argCount - 1
  39.             argOff = 1
  40.         end
  41.     end; else do
  42.         call VROptions 'ImplicitNames'
  43.         call VROptions 'NoEchoQuit'
  44.     end
  45.     InitArgs.0 = argCount
  46.     if( argCount > 0 )then do i = 1 to argCount
  47.         InitArgs.i = arg( i + argOff )
  48.     end
  49.     drop calledAs argCount argOff
  50.  
  51. /*  Load the windows
  52. */
  53.     call VRInit
  54.     parse source . . spec
  55.     _VREPrimaryWindowPath = ,
  56.         VRParseFileName( spec, "dpn" ) || ".VRW"
  57.     _VREPrimaryWindow = ,
  58.         VRLoad( parent, _VREPrimaryWindowPath )
  59.     drop parent spec
  60.     if( _VREPrimaryWindow == "" )then do
  61.         call VRMessage "", "Cannot load window:" VRError(), ,
  62.             "Error!"
  63.         _VREReturnValue = 32000
  64.         signal _VRELeaveMain
  65.     end
  66.  
  67. /*  Process events
  68. */
  69.     call Init
  70.     signal on halt
  71.     do while( \ VRGet( _VREPrimaryWindow, "Shutdown" ) )
  72.         _VREEvent = VREvent()
  73.         interpret _VREEvent
  74.     end
  75. _VREHalt:
  76.     _VREReturnValue = Fini()
  77.     call VRDestroy _VREPrimaryWindow
  78. _VRELeaveMain:
  79.     call VRFini
  80. exit _VREReturnValue
  81.  
  82. VRLoadSecondary:
  83.     __vrlsWait = abbrev( 'WAIT', translate(arg(2)), 1 )
  84.     if __vrlsWait then do
  85.         call VRFlush
  86.     end
  87.     __vrlsHWnd = VRLoad( VRWindow(), VRWindowPath(), arg(1) )
  88.     if __vrlsHWnd = '' then signal __vrlsDone
  89.     if __vrlsWait \= 1 then signal __vrlsDone
  90.     call VRSet __vrlsHWnd, 'WindowMode', 'Modal' 
  91.     __vrlsTmp = __vrlsWindows.0
  92.     if( DataType(__vrlsTmp) \= 'NUM' ) then do
  93.         __vrlsTmp = 1
  94.     end
  95.     else do
  96.         __vrlsTmp = __vrlsTmp + 1
  97.     end
  98.     __vrlsWindows.__vrlsTmp = VRWindow( __vrlsHWnd )
  99.     __vrlsWindows.0 = __vrlsTmp
  100.     do while( VRIsValidObject( VRWindow() ) = 1 )
  101.         __vrlsEvent = VREvent()
  102.         interpret __vrlsEvent
  103.     end
  104.     __vrlsTmp = __vrlsWindows.0
  105.     __vrlsWindows.0 = __vrlsTmp - 1
  106.     call VRWindow __vrlsWindows.__vrlsTmp 
  107.     __vrlsHWnd = ''
  108. __vrlsDone:
  109. return __vrlsHWnd
  110.  
  111. /*:VRX         Fini
  112. */
  113. Fini:
  114.     window = VRWindow()
  115.     call VRSet window, "Visible", 0
  116.     drop window
  117. return 0
  118.  
  119. /*:VRX         Halt
  120. */
  121. Halt:
  122.     signal _VREHalt
  123. return
  124.  
  125. /*:VRX         Init
  126. */
  127. Init:
  128.     window = VRWindow()
  129.     call VRMethod window, "CenterWindow"
  130.     call VRSet window, "Visible", 0
  131.     call VRMethod window, "Activate"
  132.     drop window
  133. return
  134.  
  135. /*:VRX         Quit
  136. */
  137. Quit:
  138.     window = VRWindow()
  139.     call VRSet window, "Shutdown", 1
  140.     drop window
  141. return
  142.  
  143. /*:VRX         Window1_Close
  144. */
  145. Window1_Close:
  146.  
  147.     
  148.     call Quit
  149. return
  150.  
  151. /*:VRX         Window1_Create
  152. */
  153. Window1_Create: 
  154.  
  155. /* Clear the Clipboard */
  156. rc = VRMethod("Application", "PutClipboard", "")
  157.  
  158. win = ""
  159. win = VRMethod('Screen', 'FindWindow', 'Code Assistant', 'Desktop', 'descendents', 'exact', 'exact')
  160. if win == "" then
  161. Do
  162.  
  163.         Buttons.1 = "OK"
  164.         Buttons.0 = 1
  165.         id = VRMessage( VRWindow(), "The Code Assistant program is not active", "Status", "Error", "Buttons.", 1, 1 )
  166.         call Quit
  167.  
  168.  
  169. End
  170. Else
  171. Do
  172.     dbpath = VRGetIni("Code Assistant", "DBPATH", "User")
  173.     hwndfile = dbpath || '\HWND.DAT'
  174.     epmfile = dbpath || '\EPM.DAT'
  175.  
  176.     hwnd = VRGet( "Window1", "HWnd" )
  177. /*      
  178.     ok = VRCreateFile(hwndfile)
  179.     a = LineOut(hwndfile, hwnd)
  180.                 
  181.     call LineOut(hwndfile) /* close it */
  182. */
  183.     ok = VRCreateFile(epmfile)
  184.     a = LineOut(epmfile, hwnd)
  185.                 
  186.     call LineOut(epmfile) /* close it */
  187.  
  188.     
  189.     call VRMethod win, "Restore"
  190.     
  191.     call VRMethod win, "SetFocus" 
  192. End   
  193.  
  194.  
  195.  
  196.    
  197.  
  198. return
  199.  
  200. /*:VRX         Window1_Resize
  201. */
  202. Window1_Resize: 
  203.  
  204.     cc = 1
  205.     rc = VRMethod("Application", "GetClipboard")
  206.     if rc = "" then
  207.         cc = 0
  208.  
  209.             
  210. /* EPM Editor */
  211.     if rc <> 0 then /* insert text in EPM */
  212.         Do 
  213.           x = 0
  214.           spot = Pos('0d'x, rc)
  215.           if spot <> 0 then
  216.           Do
  217.                   Len = Length(rc)
  218.                   Value = ""
  219.                   do while spot > 1
  220.                         lfoffset = 1
  221.                         lf = Pos('0a'x,rc)
  222.                         if lf <> 0 then
  223.                         Do
  224.                             if lf = (spot + 1) then
  225.                             Do
  226.                                 spot = spot + 1
  227.                                 lfoffset = 2
  228.                             End
  229.                         End
  230.                         Value = Left(rc, (spot - lfoffset))
  231.                         diff = Len - spot  
  232.              /*           diff = Len - (spot + 1)  */
  233.                         rc = Right(rc, diff)
  234.                         Len = Length(rc)
  235.                         spot = Pos('0d'x, rc)
  236.                         x = x + 1
  237.                         if x > 50 then
  238.                             spot = 0
  239.  
  240.                         call etkinserttext Value  
  241.                     end
  242.                     if Len > 1 then
  243.                     Do
  244.                         spot = Pos('0d'x,rc)
  245.                         if spot > 1 then
  246.                         Do
  247.                             lfoffset = 1
  248.                             lf = Pos('0a'x,rc)
  249.                             if lf <> 0 then
  250.                             Do
  251.                                 if lf = (spot + 1) then
  252.                                 Do
  253.                                     spot = spot + 1
  254.                                     lfoffset = 2
  255.                                 End
  256.                             End
  257.                             Value = Left(rc, (spot - lfoffset))
  258.                             call etkinserttext Value 
  259.                         End
  260.  
  261.                     End
  262.             End
  263.  
  264.             Else
  265.             Do
  266.                 if cc <> 0 then                
  267.                    call etkinserttext rc  
  268.             End
  269.                 
  270.             
  271.                                                   
  272.         End
  273.  
  274.    call Quit
  275.       
  276.  
  277.  
  278. return
  279.  
  280.