home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 October A / Pcwk10a98.iso / Corel / Ventura8 / Ventura / Scripts / ResizeObjects.csc < prev    next >
Text File  |  1998-07-08  |  8KB  |  217 lines

  1. REM Resizes selected objects [CorelSCRIPT 8]
  2. REM ResizeObjects.csc  March, 1998
  3. REM ⌐ 1998 Corel Corporation. All rights reserved.
  4.  
  5. REM **************************************************************************************
  6. REM This script resizes the selected object or group of objects.
  7. REM An object(s) must be selected (message appears if no selection).
  8. REM Objects cannot be resized off the page.
  9. REM User is informed of an invalid selection (ie. master page, text, etc.).
  10. REM **************************************************************************************
  11.  
  12. ' Create a temporary folder to provide a path for the include files
  13. '  -this enables the include files to be located 
  14. #addfol "..\..\Scripts"
  15. #include "ScpConst.csi"
  16. #include "VPConst.csi"
  17.  
  18. ' Embed bitmaps if script is to be compiled into exe or csb formats
  19. ' -this will eliminate the need to include these files
  20. #ADDRESBMP IntroBMP "Bitmaps\IntroBMP.bmp"
  21.  
  22. 'Constants for Dialog Return Values
  23. GLOBAL CONST DIALOG_RETURN_CANCEL% = 2
  24. GLOBAL CONST DIALOG_RETURN_NEXT% = 3
  25. GLOBAL CONST DIALOG_RETURN_BACK% = 4
  26. GLOBAL CONST DIALOG_RETURN_BROWSE% = 5
  27.  
  28. 'Constants for setting aspect ratio
  29. GLOBAL CONST SEPARATE_ASPECT% = 0
  30. GLOBAL CONST MAINTAIN_ASPECT% = 1
  31.  
  32. '/////FUNCTION & SUBROUTINE DECLARATIONS/////////////////////////////////////////
  33. DECLARE SUB RegQuery()
  34. DECLARE SUB GetResizeInfo()
  35. DECLARE SUB Resize()
  36.  
  37. '/////GLOBAL VARIABLES //////////////////////////////////////////////////////////
  38. GLOBAL VenturaRoot$            'root directory where Ventura is installed
  39. GLOBAL AspectRatio&            'specifies whether to maintain aspect ratio: 0-separate aspect ratio; 1-maintain aspect ratio
  40. GLOBAL HorizontalResize&        'specifies the amount to scale the object horizontally
  41. GLOBAL VerticalResize&        'specifies the amount to scale the object vertically
  42.  
  43.  
  44. ' **************************************************************************************
  45. ' MAIN
  46. ' **************************************************************************************
  47. ON ERROR GOTO ErrorHandler
  48.  
  49. RegQuery            'get root directory where Ventura is installed
  50. GetResizeInfo        'get size of selected object and resize as required
  51.  
  52. ExitScript:
  53. STOP
  54.  
  55. ErrorHandler:
  56. SELECT CASE ErrNum
  57.     CASE 800
  58.         MESSAGE "FATAL ERROR" & CHR(13) & "Script will now exit."
  59.         RESUME AT ExitScript
  60.     CASE ELSE
  61.         MESSAGE "ERROR: " & STR(ErrNum) & CHR(13) & "Script will now exit."
  62.         RESUME AT ExitScript
  63.     END SELECT
  64.  
  65.  
  66. ' *******************************************************************************
  67. ' RegQuery
  68. ' This subroutine queries the Registry to determine the root directory where 
  69. ' Ventura is installed.
  70. ' *******************************************************************************
  71. SUB RegQuery
  72. ON ERROR GOTO ErrorHandler
  73.  
  74.     'get Ventura config directory
  75.     VentDir$ = REGISTRYQUERY(HKEY_LOCAL_MACHINE,VENTURA_REGQUERY_CONST,"ConfigDir")     
  76.     
  77.     'isolate Ventura root directory from Ventura config directory
  78.     first% = 1
  79.     pos% = 1
  80.     DO WHILE first <> 0
  81.         first = INSTR(VentDir$, "\", first )
  82.         IF first <> 0 THEN
  83.             pos = first
  84.             first = first + 1
  85.         END IF
  86.     LOOP
  87.     VenturaRoot$ = LEFT(VentDir$, pos - 1)     'root directory where Ventura is installed
  88.  
  89. EXIT SUB
  90. ErrorHandler:
  91.     MESSAGE "Error reading registry:" & CHR(13) & RegString$
  92.     ErrNum = 800
  93. END SUB
  94.  
  95.  
  96. ' *******************************************************************************
  97. ' GetResizeInfo
  98. ' This function prompts the user for resizing information.
  99. ' PARAMS: None
  100. ' *******************************************************************************
  101. SUB GetResizeInfo
  102. BEGIN DIALOG OBJECT GetResizeInfoDialog 290, 180, "Object Resizer", SUB GetResizeInfoDialogEventHandler
  103.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Apply"
  104.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  105.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  106.     TEXT  95, 10, 185, 12, .Text1, "This wizard resizes the selected object(s)."
  107.     IMAGE  10, 10, 75, 130, .GetResizeInfoImage
  108.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  109.     GROUPBOX  95, 27, 185, 55, .GroupBox2, "Resize:"
  110.     TEXT  222, 40, 10, 11, .Text6, "%"
  111.     TEXT  222, 61, 10, 11, .Text7, "%"
  112.     TEXT  115, 40, 50, 12, .Text5, "&Horizontal:"
  113.     SPINCONTROL  174, 39, 40, 12, .HorizontalSpinControl
  114.     TEXT  116, 61, 50, 12, .Text4, "&Vertical:"
  115.     SPINCONTROL  174, 59, 40, 12, .VerticalSpinControl
  116.     CHECKBOX  99, 93, 94, 11, .MaintainAspectCheckBox, "&Maintain aspect ratio"
  117.     TEXT  95, 117, 185, 10, .Text8, "Positive values increase the size of the object(s)."
  118.     TEXT  95, 129, 185, 9, .Text9, "Negative values decrease the size of the object(s)."
  119. END DIALOG
  120.  
  121.     GetResizeInfoDialog.SetStyle STYLE_INVISIBLE
  122.     GetResizeInfoDialog.GetResizeInfoImage.SetImage "#IntroBMP"
  123.     GetResizeInfoDialog.GetResizeInfoImage.SetStyle STYLE_IMAGE_CENTERED
  124.     GetResizeInfoDialog.MaintainAspectCheckBox.SetThreeState FALSE
  125.  
  126.     GetResizeInfoRet% = DIALOG(GetResizeInfoDialog)
  127.     IF GetResizeInfoRet% = DIALOG_RETURN_CANCEL THEN STOP        
  128. END FUNCTION
  129.  
  130.  
  131. ' *******************************************************************************
  132. ' GetResizeInfoDialogEventHandler
  133. ' This subroutine responds to user interface with the GetResizeInfoDialog.
  134. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  135. '                            generating a dialog event.
  136. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  137. ' *******************************************************************************
  138. SUB GetResizeInfoDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  139.     IF Event% = EVENT_INITIALIZATION THEN         
  140.         GetResizeInfoDialog.BackButton.Enable FALSE 
  141.         GetResizeInfoDialog.HorizontalSpinControl.SetMinRange -99
  142.         GetResizeInfoDialog.HorizontalSpinControl.SetMaxRange 1000
  143.         GetResizeInfoDialog.VerticalSpinControl.SetMinRange -99
  144.         GetResizeInfoDialog.VerticalSpinControl.SetMaxRange 1000
  145.         GetResizeInfoDialog.HorizontalSpinControl.SetValue 0
  146.         GetResizeInfoDialog.VerticalSpinControl.SetValue 0
  147.         GetResizeInfoDialog.SetStyle STYLE_VISIBLE
  148.     ENDIF
  149.  
  150.     IF Event% = EVENT_CHANGE_IN_CONTENT THEN     
  151.         SELECT CASE ControlID%
  152.             CASE GetResizeInfoDialog.HorizontalSpinControl.GetID()
  153.                 IF AspectRatio = MAINTAIN_ASPECT THEN
  154.                     GetResizeInfoDialog.VerticalSpinControl.SetValue GetResizeInfoDialog.HorizontalSpinControl.GetValue() 
  155.                 ENDIF
  156.             CASE GetResizeInfoDialog.VerticalSpinControl.GetID()
  157.                 IF AspectRatio = MAINTAIN_ASPECT THEN
  158.                     GetResizeInfoDialog.HorizontalSpinControl.SetValue GetResizeInfoDialog.VerticalSpinControl.GetValue() 
  159.                 ENDIF
  160.         END SELECT
  161.     ENDIF
  162.  
  163.     IF Event% = EVENT_MOUSE_CLICK THEN     
  164.         SELECT CASE ControlID%
  165.             CASE GetResizeInfoDialog.NextButton.GetID()
  166.                 HorizontalResize& = GetResizeInfoDialog.HorizontalSpinControl.GetValue()
  167.                 VerticalResize& = GetResizeInfoDialog.VerticalSpinControl.GetValue()
  168.                 Resize
  169. '                GetResizeInfoDialog.CloseDialog DIALOG_RETURN_NEXT
  170.             CASE GetResizeInfoDialog.CancelButton.GetID()
  171.                 GetResizeInfoDialog.CloseDialog DIALOG_RETURN_CANCEL
  172.             CASE GetResizeInfoDialog.MaintainAspectCheckBox.GetID()
  173.                 AspectRatio& = GetResizeInfoDialog.MaintainAspectCheckBox.GetValue()
  174.                 IF AspectRatio = MAINTAIN_ASPECT THEN
  175.                     GetResizeInfoDialog.VerticalSpinControl.SetValue GetResizeInfoDialog.HorizontalSpinControl.GetValue() 
  176.                 ENDIF
  177.         END SELECT
  178.     ENDIF
  179. END FUNCTION
  180.  
  181.  
  182. ' *******************************************************************************
  183. ' Resize
  184. ' This function applies the specified horizontal and vertical resizing to the 
  185. ' selected object(s).
  186. ' PARAMS: None
  187. ' *******************************************************************************
  188. SUB Resize
  189. ON ERROR GOTO ErrorHandler
  190.     WITHOBJECT OBJECT_VENTURA8
  191.         .SetVisible TRUE
  192.         SelectStatus& = .GetSelectionType()
  193.         IF SelectStatus& < 2 THEN        'nothing selected
  194.             MESSAGE "You need to select something first!"
  195.         ELSEIF SelectStatus& = 2 THEN        'not a valid selection
  196.             MESSAGE "That is not a valid selection!"
  197.         ELSE
  198.             HorizontalResize& = (HorizontalResize& * 1000) + 100000
  199.             VerticalResize& = (VerticalResize& * 1000) + 100000
  200.             .ResizeObject HorizontalResize&, VerticalResize&
  201.         ENDIF
  202.     END WITHOBJECT
  203. EXIT SUB
  204.  
  205. ErrorHandler:
  206. SELECT CASE ErrNum
  207.     CASE IS > 1000
  208.         RESUME NEXT
  209.     CASE ELSE
  210.         MESSAGE "FATAL ERROR !!" & CHR(13) & "Number: " & STR(ErrNum) & CHR(13) & "Script will now exit"
  211. '        STOP
  212.     END SELECT
  213. END SUB
  214.