home *** CD-ROM | disk | FTP | other *** search
/ Computer Buyer 1998 October / dpcb1098.iso / Business / Ventura / Ventura / Scripts / UnSpace.csc < prev    next >
Text File  |  1998-07-07  |  9KB  |  269 lines

  1. REM Removes double spaces [CorelSCRIPT 8]
  2. REM UnSpace.csc  March, 1998
  3. REM ⌐ 1998 Corel Corporation. All rights reserved.
  4.  
  5. REM **************************************************************************************
  6. REM This script replaces every instance of a double space with a single space.
  7. REM You need an open publication to run this script.
  8. REM **************************************************************************************
  9.  
  10. ' Create a temporary folder to provide a path for the include files
  11. '  -this enables the include files to be located 
  12. #addfol "..\..\Scripts"
  13. #include "ScpConst.csi"
  14. #include "VPConst.csi"
  15.  
  16. ' Embed bitmaps if script is to be compiled into exe or csb formats
  17. ' -this will eliminate the need to include these files
  18. #ADDRESBMP IntroBMP "Bitmaps\IntroBMP.bmp"
  19. #ADDRESBMP LastBMP "Bitmaps\LastBMP.bmp"
  20.  
  21. 'Constants for Dialog Return Values
  22. GLOBAL CONST DIALOG_RETURN_CANCEL% = 2
  23. GLOBAL CONST DIALOG_RETURN_NEXT% = 3
  24. GLOBAL CONST DIALOG_RETURN_BACK% = 4
  25. GLOBAL CONST DIALOG_RETURN_BROWSE% = 5
  26.  
  27. '/////FUNCTION & SUBROUTINE DECLARATIONS/////////////////////////////////////////
  28. DECLARE SUB RegQuery()
  29. DECLARE FUNCTION ShowIntro%()
  30. DECLARE FUNCTION ShowFinish%()
  31. DECLARE FUNCTION RemoveSpaces%()
  32.  
  33. '/////GLOBAL VARIABLES //////////////////////////////////////////////////////////
  34. GLOBAL VenturaRoot$        'root directory where Ventura is installed
  35.  
  36. '////// LOCAL VARIABLES /////////////////////////////////////////////////////////
  37. CONST MAXSTEP% = 3        'maximum number of pages in the Wizard
  38. DIM DialogReturn%        'identifies user's selection for next step in Wizard                                        
  39. DIM NextStep%            'specifies which page appears next in the Wizard
  40.  
  41. ' **************************************************************************************
  42. ' MAIN
  43. ' **************************************************************************************
  44. ON ERROR GOTO ErrorHandler
  45.  
  46. RegQuery                'get root directory where Ventura is installed
  47.  
  48. 'this section controls traversal through the dialog pages
  49. NextStep% = 1
  50. DO
  51.     SELECT CASE NextStep%
  52.         CASE 1: DialogReturn%  = ShowIntro()        
  53.         CASE 2: DialogReturn%  = RemoveSpaces()        
  54.         CASE 3: DialogReturn%  = ShowFinish()        
  55.     END SELECT
  56.     NextStep% = NextStep% + DialogReturn% 
  57. LOOP UNTIL NextStep% = MAXSTEP + 1
  58.  
  59. ExitScript:
  60. STOP
  61. ErrorHandler:
  62. SELECT CASE ErrNum
  63.     CASE 800
  64.         MESSAGE "FATAL ERROR" & CHR(13) & "Script will now exit."
  65.         RESUME AT ExitScript
  66.     CASE ELSE
  67.         MESSAGE "ERROR: " & STR(ErrNum) & CHR(13) & "Script will now exit."
  68.         RESUME AT ExitScript
  69.     END SELECT
  70.  
  71.  
  72. ' *******************************************************************************
  73. ' RegQuery
  74. ' This subroutine queries the Registry to determine the root directory where 
  75. ' Ventura is installed.
  76. ' *******************************************************************************
  77. SUB RegQuery
  78. ON ERROR GOTO ErrorHandler
  79.  
  80.     'get Ventura config directory
  81.     VentDir$ = REGISTRYQUERY(HKEY_LOCAL_MACHINE,VENTURA_REGQUERY_CONST,"ConfigDir")     
  82.     
  83.     'isolate Ventura root directory from Ventura config directory
  84.     first% = 1
  85.     pos% = 1
  86.     DO WHILE first <> 0
  87.         first = INSTR(VentDir$, "\", first )
  88.         IF first <> 0 THEN
  89.             pos = first
  90.             first = first + 1
  91.         END IF
  92.     LOOP
  93.     VenturaRoot$ = LEFT(VentDir$, pos - 1)     'root directory where Ventura is installed
  94.  
  95. EXIT SUB
  96. ErrorHandler:
  97.     MESSAGE "Error reading registry:" & CHR(13) & RegString$
  98.     ErrNum = 800
  99. END SUB
  100.  
  101.  
  102. ' *******************************************************************************
  103. ' ShowIntro
  104. ' This function displays the introduction dialog.
  105. ' PARAMS: None
  106. '
  107. ' RETURNS: ShowIntro AS INTEGER - Integer indicating dialog return value.
  108. ' *******************************************************************************
  109. FUNCTION ShowIntro%
  110. BEGIN DIALOG OBJECT IntroDialog 290, 180, "Ventura Space Remover", SUB IntroDialogEventHandler
  111.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  112.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  113.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  114.     TEXT  95, 10, 185, 20, .Text2, "This wizard removes all double spaces from your publication."
  115.     TEXT  95, 40, 185, 12, .Text3, "To begin removing spaces, click Next."
  116.     IMAGE  10, 10, 75, 130, .IntroImage
  117.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  118. END DIALOG
  119.  
  120.     IntroDialog.SetStyle STYLE_INVISIBLE
  121.     IntroDialog.IntroImage.SetImage "#IntroBMP"
  122.     IntroDialog.IntroImage.SetStyle STYLE_IMAGE_CENTERED
  123.  
  124.     IntroRet%=DIALOG(IntroDialog)
  125.     IF IntroRet% = DIALOG_RETURN_CANCEL THEN STOP            
  126.     IF IntroRet% = DIALOG_RETURN_NEXT THEN ShowIntro = 1        
  127. END FUNCTION
  128.  
  129.  
  130. ' *******************************************************************************
  131. ' IntroDialogEventHandler
  132. ' This subroutine responds to user interface with the introduction dialog.
  133. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  134. '                            generating a dialog event.
  135. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  136. ' *******************************************************************************
  137. SUB IntroDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  138.     IF Event% = EVENT_INITIALIZATION THEN         
  139.         IntroDialog.BackButton.Enable FALSE 
  140.         IntroDialog.SetStyle STYLE_VISIBLE
  141.     ENDIF
  142.     IF Event% = EVENT_MOUSE_CLICK THEN     
  143.         SELECT CASE ControlID%
  144.             CASE IntroDialog.NextButton.GetID()
  145.                 BEGINWAITCURSOR
  146.                 WITHOBJECT OBJECT_VENTURA8
  147.                 ENDWAITCURSOR
  148.                     'Make sure there is an open pub
  149.                     IF .CountWindows() = 0 THEN
  150.                         PubMsg$ = "You need an open publication to run this script." & CHR(13) & "Open one now?"
  151.                         MsgVal% = MESSAGEBOX(PubMsg$, "WARNING", MB_YES_NO OR MB_STOP_ICON)
  152.                         IF MsgVal% = MSG_YES THEN         'Yes, open a pub
  153.                             SETCURRFOLDER VenturaRoot$
  154.                             PubName$ = GETFILEBOX("Publication files (*.VP*)|*.VP*", , , ,"*.vp*", VenturaRoot$ & "\Ventura\Samples" )
  155.                             IF PubName$ <> "" THEN
  156.                                 .SetVisible TRUE
  157.                                 .FileOpen PubName$, , TRUE, 1, TRUE, FALSE
  158.                                 IntroDialog.closedialog DIALOG_RETURN_NEXT
  159.                             ENDIF
  160.                         ELSE
  161.                             'STOP
  162.                         ENDIF
  163.                     ELSE
  164.                         IntroDialog.closedialog DIALOG_RETURN_NEXT
  165.                     ENDIF
  166.                 END WITHOBJECT
  167. '                IntroDialog.CloseDialog DIALOG_RETURN_NEXT
  168.             CASE IntroDialog.CancelButton.GetID()
  169.                 IntroDialog.CloseDialog DIALOG_RETURN_CANCEL
  170.         END SELECT
  171.     ENDIF
  172. END SUB
  173.  
  174.  
  175. ' *******************************************************************************
  176. ' RemoveSpaces
  177. ' This function removes all double spaces in the active publication.
  178. ' PARAMS: None
  179. '
  180. ' RETURNS: RemoveSpaces AS INTEGER - Integer indicating dialog return value.
  181. ' *******************************************************************************
  182. FUNCTION RemoveSpaces%
  183. ON ERROR GOTO ErrorHandler
  184.  
  185.     DIM Found AS BOOLEAN
  186.     WITHOBJECT OBJECT_VENTURA8
  187.         .PageFirstLine
  188.         .EditInitFindText SPACE(2), SPACE(1)
  189.         DO
  190.             .EditReplace TRUE
  191.             Found = .EditFindText()    
  192.         LOOP UNTIL Found = FALSE
  193.         RemoveSpaces = 1
  194.  
  195. ExitFunction:
  196.     END WITHOBJECT
  197. EXIT FUNCTION
  198.  
  199. ErrorHandler:
  200.     RESUME AT ExitFunction
  201.     
  202. END FUNCTION
  203.  
  204.  
  205. ' *******************************************************************************
  206. ' ShowFinish
  207. ' This function displays the finish dialog.
  208. '
  209. ' PARAMS:None
  210. '
  211. ' RETURNS: ShowFinish AS INTEGER - Integer indicating dialog return value.
  212. ' *******************************************************************************
  213. FUNCTION ShowFinish%
  214. BEGIN DIALOG OBJECT FinishDialog 290, 180, "Ventura Space Remover", SUB FinishDialogEventHandler
  215.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Done"
  216.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  217.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  218.     TEXT  95, 10, 185, 12, .Text1, "All double spaces have been removed."
  219.     TEXT  95, 30, 185, 12, .Text2, "To run this wizard again, click Back."
  220.     TEXT  95, 50, 185, 12, .Text3, "To exit, click Done."
  221.     IMAGE  10, 10, 75, 130, .FinishImage
  222.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  223. END DIALOG
  224.  
  225.     FinishDialog.SetStyle STYLE_INVISIBLE
  226.     FinishDialog.FinishImage.SetImage "#LastBMP"
  227.     FinishDialog.FinishImage.SetStyle STYLE_IMAGE_CENTERED
  228.  
  229.     FinishRet%=DIALOG(FinishDialog)
  230.     SELECT CASE FinishRet%
  231.         CASE DIALOG_RETURN_CANCEL        
  232.             STOP
  233.         CASE DIALOG_RETURN_NEXT        
  234.             ShowFinish = 1
  235.         CASE DIALOG_RETURN_BACK         
  236.             ShowFinish = -2
  237.     END SELECT
  238. END FUNCTION
  239.  
  240.  
  241. ' *******************************************************************************
  242. ' FinishDialogEventHandler
  243. ' This subroutine handles events for the finish dialog.
  244. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  245. '                            generating a dialog event.
  246. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  247. ' *******************************************************************************
  248. SUB FinishDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  249.     IF Event% = EVENT_INITIALIZATION THEN     
  250.         FinishDialog.SetStyle STYLE_VISIBLE
  251.         FinishDialog.CancelButton.Enable FALSE
  252.     ENDIF
  253.     
  254.     IF Event% = EVENT_MOUSE_CLICK THEN     
  255.         SELECT CASE ControlID%
  256.             CASE FinishDialog.NextButton.GetID()
  257.                 FinishDialog.CloseDialog DIALOG_RETURN_NEXT
  258.             CASE FinishDialog.BackButton.GetID()
  259.                 FinishDialog.CloseDialog DIALOG_RETURN_BACK
  260.             CASE FinishDialog.CancelButton.GetID()
  261.                 FinishDialog.CloseDialog DIALOG_RETURN_CANCEL
  262.         END SELECT
  263.     ENDIF
  264. END SUB
  265.