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

  1. REM Creates Corel VENTURA libraries [CorelSCRIPT 8]
  2. REM CreateLibrary.csc  February 5, 1998
  3. REM ⌐ 1998 Corel Corporation. All rights reserved.
  4.  
  5. REM **************************************************************************************
  6. REM This script creates a new (or updates an existing) VENTURA library with user specified
  7. REM files. The user is prompted to select the type of files to add to the library (Picture,
  8. REM Text, or Style Sheet). The user is prompted for a source directory containing the files
  9. REM to add to the library and the type of file (ie file extension) to use. 
  10. REM A list of all available files within the source directory and sub-directories is 
  11. REM provided for the user. The user is prompted to select those files to add to the library.
  12. REM The user is then prompted for the name and location of the library to be created or 
  13. REM appended. If the library exists the user is warned and prompted to continue or not.
  14. REM The selected files are placed in the specified library.
  15. REM **************************************************************************************
  16.  
  17. ' Create a temporary folder to provide a path for the include files
  18. '  -this enables the include files to be located 
  19. #addfol "..\..\Scripts"
  20. #include "ScpConst.csi"
  21. #include "VPConst.csi"
  22.  
  23. ' Embed bitmaps if script is to be compiled into exe or csb formats
  24. ' -this will eliminate the need to include these files
  25. #ADDRESBMP IntroBMP "Bitmaps\IntroBMP.bmp"
  26. #ADDRESBMP Step2BMP "Bitmaps\Step2BMP.bmp"
  27. #ADDRESBMP Step3BMP "Bitmaps\Step3BMP.bmp"
  28. #ADDRESBMP LastBMP "Bitmaps\LastBMP.bmp"
  29.  
  30. 'Constants for Dialog Return Values
  31. GLOBAL CONST DIALOG_RETURN_CANCEL% = 2
  32. GLOBAL CONST DIALOG_RETURN_NEXT% = 3
  33. GLOBAL CONST DIALOG_RETURN_BACK% = 4
  34. GLOBAL CONST DIALOG_RETURN_BROWSE% = 5
  35.  
  36. 'Constants for file types
  37. GLOBAL CONST PICTURE_FILES% = 0    'identifies file type as picture files
  38. GLOBAL CONST TEXT_FILES% = 1        'identifies file type as text files
  39. GLOBAL CONST STYLE_SHEETS% = 2    'identifes file type as style sheets
  40.  
  41. 'Constants for file arrays
  42. GLOBAL CONST MAX_FILES% = 10        'number of files in file list (redimensioned as required)
  43. GLOBAL CONST MAX_FILE_EXT% = 48    'number of file extensions in lists
  44.  
  45. '/////FUNCTION & SUBROUTINE DECLARATIONS/////////////////////////////////////////
  46. DECLARE SUB RegQuery()
  47. DECLARE SUB GetFileList(BYVAL SourceDir$, FileExt$)
  48. DECLARE SUB MakeLIB() 
  49. DECLARE FUNCTION ShowIntro%()
  50. DECLARE FUNCTION GetFileType%()
  51. DECLARE FUNCTION GetSourceDir%()
  52. DECLARE FUNCTION ShowFileList%()
  53. DECLARE FUNCTION GetLIBName%()
  54. DECLARE FUNCTION ShowFinish%()
  55. DECLARE FUNCTION ShowSummary%()
  56. DECLARE FUNCTION DoesFileExist(FileName$) AS BOOLEAN
  57.  
  58.  
  59. '/////GLOBAL VARIABLES //////////////////////////////////////////////////////////
  60. GLOBAL VenturaRoot$                'root directory where Ventura is installed
  61. GLOBAL SourceDir$                'directory at which to start the search for files
  62. GLOBAL FileExtVal%                'index referencing lists of file extension values
  63. GLOBAL FileType&                'type of files to use: 0-Picture files; 1-Text files; 2-Style Sheets
  64. GLOBAL FileExt$                'file extension used by GetFileList sub
  65.  
  66. GLOBAL AvailableFiles$(MAX_FILES)    'list of files available for selection 
  67. GLOBAL AvailableDirs$(MAX_FILES)    'list of directories corresponding to available files    
  68. GLOBAL AvailableFilesCount%        'number of files available for selection
  69.  
  70. GLOBAL SelectedFiles$(MAX_FILES)    'list of file names selected for addition to the library
  71. GLOBAL SelectedDirs$(MAX_FILES)    'list of directories corresponding to selected files
  72. GLOBAL SelectedFilesCount%        'number of files selected
  73.  
  74. GLOBAL LibraryDir$                'name of directory containing the library
  75. GLOBAL NewLIBName$                 'complete name (including path) of new library
  76. GLOBAL LIBName$                'name of library to create or append
  77. GLOBAL LibraryExists AS BOOLEAN    'flag indicating whether library exists: TRUE-it exist; FALSE-it doesn't exist
  78.  
  79.  
  80. 'list of graphic file extensions
  81. GLOBAL PicFileExtension$(MAX_FILE_EXT)
  82. PicFileExtension$(1) = "*.*" 
  83. PicFileExtension$(2) = "*.JPG" 
  84. PicFileExtension$(3) = "*.BMP"
  85. PicFileExtension$(4) = "*.BMP"
  86. PicFileExtension$(5) = "*.PCX"
  87. PicFileExtension$(6) = "*.TGA"
  88. PicFileExtension$(7) = "*.SCT"
  89. PicFileExtension$(8) = "*.CPT"
  90. PicFileExtension$(9) = "*.TIF"
  91. PicFileExtension$(10) = "*.CPT"
  92. PicFileExtension$(11) = "*.ICO"
  93. PicFileExtension$(12) = "*.CUR"
  94. PicFileExtension$(13) = "*.EXE"
  95. PicFileExtension$(14) = "*.IMG"
  96. PicFileExtension$(15) = "*.PCD"
  97. PicFileExtension$(16) = "*.PP4"
  98. PicFileExtension$(17) = "*.PSD"
  99. PicFileExtension$(18) = "*.EPS"
  100. PicFileExtension$(19) = "*.MAC"
  101. PicFileExtension$(20) = "*.WVL"
  102. PicFileExtension$(21) = "*.CAL"
  103. PicFileExtension$(22) = "*.CAL"
  104. PicFileExtension$(23) = "*.GEM"
  105. PicFileExtension$(24) = "*.CMX"
  106. PicFileExtension$(25) = "*.CMX"
  107. PicFileExtension$(26) = "*.CGM"
  108. PicFileExtension$(27) = "*.DRW"
  109. PicFileExtension$(28) = "*.DXF"
  110. PicFileExtension$(29) = "*.PLT"
  111. PicFileExtension$(30) = "*.MET"
  112. PicFileExtension$(31) = "*.PCT"
  113. PicFileExtension$(32) = "*.AI"
  114. PicFileExtension$(33) = "*.WPG"
  115. PicFileExtension$(34) = "*.CMF"
  116. PicFileExtension$(35) = "*.WMF"
  117. PicFileExtension$(36) = "*.EMF"
  118. PicFileExtension$(37) = "*.PIC"
  119. PicFileExtension$(38) = "*.CCH"
  120. PicFileExtension$(39) = "*.CDR"
  121. PicFileExtension$(40) = "*.CMV"
  122. PicFileExtension$(41) = "*.MLB"
  123.  
  124.  
  125. 'list of text file extensions
  126. GLOBAL TextFileExtension$(MAX_FILE_EXT)
  127. TextFileExtension$(1) = "*.*"
  128. TextFileExtension$(2) = "*.GEN"
  129. TextFileExtension$(3) = "*.TXT"
  130. TextFileExtension$(4) = "*.TXT"
  131. TextFileExtension$(5) = "*.TXT"
  132. TextFileExtension$(6) = "*.PRN"
  133. TextFileExtension$(7) = "*.WP*"
  134. TextFileExtension$(8) = "*.WP*"
  135. TextFileExtension$(9) = "*.WP*"
  136. TextFileExtension$(10) = "*.WP*"
  137. TextFileExtension$(11) = "*.WP*"
  138. TextFileExtension$(12) = "*.WPM"
  139. TextFileExtension$(13) = "*.WPM"
  140. TextFileExtension$(14) = "*.WPM"
  141. TextFileExtension$(15) = "*.PM6"
  142. TextFileExtension$(16) = "*.MIF"
  143. TextFileExtension$(17) = "*.MIF"
  144. TextFileExtension$(18) = "*.MIF"
  145. TextFileExtension$(19) = "*.DOC"
  146. TextFileExtension$(20) = "*.DOC"
  147. TextFileExtension$(21) = "*.DOC"
  148. TextFileExtension$(22) = "*.DOC"
  149. TextFileExtension$(23) = "*.DOC"
  150. TextFileExtension$(24) = "*.DOC"
  151. TextFileExtension$(25) = "*.DOC"
  152. TextFileExtension$(26) = "*.DOC"
  153. TextFileExtension$(27) = "*.DOC"
  154. TextFileExtension$(28) = "*.RTF"
  155. TextFileExtension$(29) = "*.WS*"
  156. TextFileExtension$(30) = "*.WS*"
  157. TextFileExtension$(31) = "*.WS*"
  158. TextFileExtension$(32) = "*.WS*"
  159. TextFileExtension$(33) = "*.WS*"
  160. TextFileExtension$(34) = "*.WS*"
  161. TextFileExtension$(35) = "*.WS*"
  162. TextFileExtension$(36) = "*.WS*"
  163. TextFileExtension$(37) = "*.WS*"
  164. TextFileExtension$(38) = "*.LEG"
  165. TextFileExtension$(39) = "*.XY*"
  166. TextFileExtension$(40) = "*.XY*"
  167. TextFileExtension$(41) = "*.XY*"
  168. TextFileExtension$(42) = "*.SAM"
  169. TextFileExtension$(43) = "*.SAM"
  170. TextFileExtension$(44) = "*.XLS"
  171. TextFileExtension$(45) = "*.XLS"
  172. TextFileExtension$(46) = "*.WK"
  173. TextFileExtension$(47) = "*.WQ"
  174. TextFileExtension$(48) = "*.WB"
  175.  
  176.  
  177. '/////LOCAL DECLARATIONS//////////////////////////////////////////////////////////////////
  178. CONST MAXSTEP% = 7        'maximum number of pages in the Wizard
  179. DIM DialogReturn%        'identifies user's selection for next step in Wizard
  180. DIM NextStep%            'specifies which page appears next in the Wizard
  181.  
  182.  
  183. ' **************************************************************************************
  184. ' MAIN
  185. ' **************************************************************************************
  186. ON ERROR GOTO ErrorHandler
  187.  
  188. RegQuery                                        'get root directory where Ventura is installed
  189. SourceDir$= VenturaRoot$                            'initialize source directory to Ventura root
  190. LibraryDir$ = VenturaRoot$ & "\Ventura\Library"        'initialize library directory to Ventura\Library directory
  191. FileExtVal% = 1                                'initialize file extensions to first element in list (ie. all files *.* )
  192.  
  193. 'this section controls traversal through the Wizard pages
  194. NextStep% = 1
  195. DO
  196.     SELECT CASE NextStep%
  197.         CASE 1: DialogReturn%  = ShowIntro()        'display introduction dialog
  198.         CASE 2: DialogReturn%  = GetFileType()        'display file type dialog and get file type (ie Picture, Text, Style Sheet)
  199.         CASE 3: DialogReturn%  = GetSourceDir()        'display source directory dialog and prompt user for source dir
  200.         CASE 4: DialogReturn%  = ShowFileList()        'display list of avaialable files for user selection
  201.         CASE 5: DialogReturn%  = GetLIBName()        'display lib name dialog and get name of library to be used
  202.         CASE 6: DialogReturn%  = ShowFinish()        'display finish dialog 
  203.         CASE 7: DialogReturn%  = ShowSummary()        'display summary dialog recapping results of library creation
  204.     END SELECT
  205.     NextStep% = NextStep% + DialogReturn% 
  206. LOOP UNTIL NextStep% = MAXSTEP + 1
  207.  
  208. ExitScript:
  209. STOP
  210.  
  211. ErrorHandler:
  212. SELECT CASE ErrNum
  213.     CASE 800
  214.         MESSAGE "FATAL ERROR" & CHR(13) & "Script will now exit."
  215.         RESUME AT ExitScript
  216.     CASE ELSE
  217.         MESSAGE "ERROR: " & STR(ErrNum) & CHR(13) & "Script will now exit."
  218.         RESUME AT ExitScript
  219.     END SELECT
  220.  
  221.  
  222. ' *******************************************************************************
  223. ' RegQuery
  224. ' This subroutine queries the Registry to determine the root directory where 
  225. ' Ventura is installed.
  226. ' *******************************************************************************
  227. SUB RegQuery
  228. ON ERROR GOTO ErrorHandler
  229.  
  230.     'get Ventura config directory
  231.     VentDir$ = REGISTRYQUERY(HKEY_LOCAL_MACHINE,VENTURA_REGQUERY_CONST,"ConfigDir")     
  232.     
  233.     'isolate Ventura root directory from Ventura config directory
  234.     first% = 1
  235.     pos% = 1
  236.     DO WHILE first <> 0
  237.         first = INSTR(VentDir$, "\", first )
  238.         IF first <> 0 THEN
  239.             pos = first
  240.             first = first + 1
  241.         END IF
  242.     LOOP
  243.     VenturaRoot$ = LEFT(VentDir$, pos - 1)     'root directory where Ventura is installed
  244.  
  245. EXIT SUB
  246. ErrorHandler:
  247.     MESSAGE "Error reading registry:" & CHR(13) & RegString$
  248.     ErrNum = 800
  249. END SUB
  250.  
  251.  
  252. ' *******************************************************************************
  253. ' ShowIntro
  254. ' This function displays the introduction dialog.
  255. ' PARAMS: None
  256. '
  257. ' RETURNS: ShowIntro AS INTEGER - Integer indicating dialog return value.
  258. ' *******************************************************************************
  259. FUNCTION ShowIntro%
  260. BEGIN DIALOG OBJECT IntroDialog 290, 180, "Corel VENTURA Library Wizard", SUB IntroDialogEventHandler
  261.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  262.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  263.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  264.     TEXT  95, 10, 189, 30, .Text2, "This Wizard guides you through the steps necessary to automate Corel VENTURA to create large libraries from existing files."
  265.     TEXT  95, 100, 185, 12, .Text3, "To begin creating your new library, click Next."
  266.     IMAGE  10, 10, 75, 130, .IntroImage
  267.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  268.     TEXT  95, 40, 185, 18, .Text4, "You can use picture files, text files, or previous version style sheets."
  269.     TEXT  95, 63, 185, 29, .Text5, "You cannot add Corel VENTURA style sheets to a Library with this Wizard, but you can add them to a Library yourself by dragging them from the Navigator."
  270. END DIALOG
  271.  
  272.     IntroDialog.SetStyle STYLE_INVISIBLE
  273.     IntroDialog.IntroImage.SetImage "#IntroBMP"
  274.     IntroDialog.IntroImage.SetStyle STYLE_IMAGE_CENTERED
  275.  
  276.     IntroRet%=DIALOG(IntroDialog)
  277.     IF IntroRet% = DIALOG_RETURN_CANCEL THEN STOP            
  278.     IF IntroRet% = DIALOG_RETURN_NEXT THEN ShowIntro = 1        
  279. END FUNCTION
  280.  
  281. ' *******************************************************************************
  282. ' IntroDialogEventHandler
  283. ' This subroutine responds to user interface with the introduction dialog.
  284. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  285. '                            generating a dialog event.
  286. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  287. ' *******************************************************************************
  288. SUB IntroDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  289.     IF Event% = EVENT_INITIALIZATION THEN         
  290.         IntroDialog.BackButton.Enable FALSE 
  291.         IntroDialog.SetStyle STYLE_VISIBLE
  292.     ENDIF
  293.     IF Event% = EVENT_MOUSE_CLICK THEN     
  294.         SELECT CASE ControlID%
  295.             CASE IntroDialog.NextButton.GetID()
  296.                 IntroDialog.CloseDialog DIALOG_RETURN_NEXT
  297.             CASE IntroDialog.CancelButton.GetID()
  298.                 IntroDialog.CloseDialog DIALOG_RETURN_CANCEL
  299.         END SELECT
  300.     ENDIF
  301. END SUB
  302.  
  303.  
  304. ' *******************************************************************************
  305. ' GetFileType
  306. ' This function prompts the user for the type of file to use (Picture, Text,
  307. ' or Style sheet).
  308. ' PARAMS: None
  309. '
  310. ' RETURNS: GetFileType AS INTEGER - Integer indicating dialog return value.
  311. ' *******************************************************************************
  312. FUNCTION GetFileType%
  313. BEGIN DIALOG OBJECT GetFileTypeDialog 290, 180, "Corel VENTURA Library Wizard", SUB GetFileTypeDialogEventHandler
  314.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  315.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  316.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  317.     IMAGE  10, 10, 75, 130, .GetFileTypeImage
  318.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  319.     OPTIONGROUP .FileTypeOptionGroup
  320.         OPTIONBUTTON  110, 35, 150, 12, .PictureFilesOption, "&Picture files"
  321.         OPTIONBUTTON  110, 55, 150, 12, .TextFilesOption, "&Text files"
  322.         OPTIONBUTTON  110, 75, 150, 12, .StyleSheetOption, "&Style sheets"
  323.     TEXT  95, 10, 185, 12, .Text4, "Select the type of file you wish to use."
  324.     TEXT  95, 128, 185, 12, .StatusText, ""
  325. END DIALOG
  326.  
  327.     GetFileTypeDialog.SetStyle STYLE_INVISIBLE
  328.     GetFileTypeDialog.GetFileTypeImage.SetImage "#Step2BMP"
  329.     GetFileTypeDialog.GetFileTypeImage.SetStyle STYLE_IMAGE_CENTERED
  330.     GetFileTypeDialog.StatusText.SetStyle STYLE_SUNKEN
  331.  
  332.     GetFileTypeRet%=DIALOG(GetFileTypeDialog)
  333.     SELECT CASE GetFileTypeRet%
  334.         CASE DIALOG_RETURN_CANCEL        
  335.             STOP
  336.         CASE DIALOG_RETURN_NEXT        
  337.             FileType& = GetFileTypeDialog.FileTypeOptionGroup.GetValue()
  338.             GetFileType = 1
  339.         CASE DIALOG_RETURN_BACK         
  340.             GetFileType = -1
  341.     END SELECT
  342. END FUNCTION
  343.  
  344.  
  345. ' *******************************************************************************
  346. ' GetFileTypeDialogEventHandler
  347. ' This subroutine responds to user interface with the file type dialog.
  348. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  349. '                            generating a dialog event.
  350. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  351. ' *******************************************************************************
  352. SUB GetFileTypeDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  353.     IF Event% = EVENT_INITIALIZATION THEN         
  354.         FileType& = GetFileTypeDialog.FileTypeOptionGroup.GetValue()
  355.         SELECT CASE FileType&
  356.             CASE PICTURE_FILES
  357.                 GetFileTypeDialog.StatusText.SetText "Picture files in any format supported by Corel VENTURA 8"
  358.             CASE TEXT_FILES
  359.                 GetFileTypeDialog.StatusText.SetText "Text files in any format supported by Corel VENTURA 8"
  360.             CASE STYLE_SHEETS
  361.                 GetFileTypeDialog.StatusText.SetText "VENTURA previous version style sheets(3.x, 4.x, 5.x)"
  362.         END SELECT
  363.         GetFileTypeDialog.SetStyle STYLE_VISIBLE
  364.     ENDIF
  365.  
  366.     IF Event% = EVENT_MOUSE_CLICK THEN     
  367.         SELECT CASE ControlID%
  368.             CASE GetFileTypeDialog.NextButton.GetID()
  369.                 GetFileTypeDialog.CloseDialog DIALOG_RETURN_NEXT
  370.             CASE GetFileTypeDialog.BackButton.GetID()
  371.                 GetFileTypeDialog.CloseDialog DIALOG_RETURN_BACK
  372.             CASE GetFileTypeDialog.CancelButton.GetID()
  373.                 GetFileTypeDialog.CloseDialog DIALOG_RETURN_CANCEL
  374.             CASE GetFileTypeDialog.PictureFilesOption.GetID()
  375.                 GetFileTypeDialog.StatusText.SetText "Picture files in any format supported by Corel VENTURA 8"
  376.             CASE GetFileTypeDialog.TextFilesOption.GetID()
  377.                 GetFileTypeDialog.StatusText.SetText "Text files in any format supported by Corel VENTURA 8"
  378.             CASE GetFileTypeDialog.StyleSheetOption.GetID()
  379.                 GetFileTypeDialog.StatusText.SetText "VENTURA previous version style sheets (3.x, 4.x, 5.x)"
  380.         END SELECT
  381.     ENDIF
  382. END SUB
  383.  
  384.  
  385. ' *******************************************************************************
  386. ' GetSourceDir
  387. ' This function prompts the user for the directory at which to begin the search 
  388. ' for files, as well as the type of file (ie. file extension) to use.
  389. '
  390. ' PARAMS:  None
  391. ' RETURNS: GetSourceDir AS INTEGER - Integer indicating dialog return value.
  392. '
  393. ' COMMENTS: A valid souce directory is required to continue to next dialog.
  394. ' *******************************************************************************
  395. FUNCTION GetSourceDir
  396. 'list of picture file types used by drop-down list box
  397. GLOBAL PictureFile$(MAX_FILE_EXT)
  398. PictureFile$(1) = "All Files" 
  399. PictureFile$(2) = "JPEG Bitmaps (JPG)" 
  400. PictureFile$(3) = "Windows Bitmap (BMP)"
  401. PictureFile$(4) = "OS/2 Bitmap (BMP)"
  402. PictureFile$(5) = "PaintBrush (PCX)"
  403. PictureFile$(6) = "Targa Bitmap (TGA)"
  404. PictureFile$(7) = "Scitex CT Bitmap (SCT)"
  405. PictureFile$(8) = "CompuServe Bitmap (CPT)"
  406. PictureFile$(9) = "TIFF Bitmap (TIF)"
  407. PictureFile$(10) = "Corel PHOTO-PAINT Image (CPT)"
  408. PictureFile$(11) = "Windows 3.x/NT Icon Resource (ICO)"
  409. PictureFile$(12) = "Windows 3.x/NT Cursor Resource (CUR)"
  410. PictureFile$(13) = "Windows 3.x/NT Bitmap Resource (EXE)"
  411. PictureFile$(14) = "GEM Paint File (IMG)"
  412. PictureFile$(15) = "Kodak Photo-CD Image (PCD)"
  413. PictureFile$(16) = "Picture Publisher 4 (PP4)"
  414. PictureFile$(17) = "Adobe Photoshop (PSD)"
  415. PictureFile$(18) = "Encapsulated PostScript (EPS)"
  416. PictureFile$(19) = "MACPaint Bitmap (MAC)"
  417. PictureFile$(20) = "Wavelet Compressed Bitmap (WVL)"
  418. PictureFile$(21) = "CALS Compressed Bitmap (CAL)"
  419. PictureFile$(22) = "Postscript Interpreted (CAL)"
  420. PictureFile$(23) = "GEM File (GEM)"
  421. PictureFile$(24) = "Corel Presentation Exchange 6.0 (CMX)"
  422. PictureFile$(25) = "Corel Presentation Exchange 5.0 (CMX)"
  423. PictureFile$(26) = "Computer Graphics Metafile (CGM)"
  424. PictureFile$(27) = "Micrografx 2.x, 3.x (DRW)"
  425. PictureFile$(28) = "AutoCAD (DXF)"
  426. PictureFile$(29) = "HPGL Plotter File (PLT)"
  427. PictureFile$(30) = "OS/2 PM MetaFile (MET)"
  428. PictureFile$(31) = "Macintosh PICT (PCT)"
  429. PictureFile$(32) = "Adobe Illustrator (AI)"
  430. PictureFile$(33) = "Corel WordPerfect Graphic (WPG)"
  431. PictureFile$(34) = "Corel Metafile (CMF)"
  432. PictureFile$(35) = "Windows Metafile (WMF)"
  433. PictureFile$(36) = "Enhanced Windows Metafile (EMF)"
  434. PictureFile$(37) = "Lotus Pic (PIC)"
  435. PictureFile$(38) = "CorelCHART (CCH)"
  436. PictureFile$(39) = "CorelDRAW (CDR)"
  437. PictureFile$(40) = "CorelMOVE (CMV)"
  438. PictureFile$(41) = "CorelMOVE (MLB)"
  439.  
  440. 'list of text file types used by drop-down list box
  441. GLOBAL TextFile$(MAX_FILE_EXT)
  442. TextFile$(1) = "All Files"
  443. TextFile$(2) = "VENTURA Generated File (GEN)"
  444. TextFile$(3) = "ANSI Text (TXT)"
  445. TextFile$(4) = "ASCII Text (TXT)"
  446. TextFile$(5) = "ASCII 8-bit Text (TXT)"
  447. TextFile$(6) = "Lotus/Excel Print Table (PRN)"
  448. TextFile$(7) = "Corel WordPerfect 7.0 (WP*)"
  449. TextFile$(8) = "Corel WordPerfect 6.x, 7.0 (WP*)"
  450. TextFile$(9) = "Corel WordPerfect 5.1, 5.2 (WP*)"
  451. TextFile$(10) = "Corel WordPerfect 5.0 (WP*)"
  452. TextFile$(11) = "Corel WordPerfect 4.2 (WP*)"
  453. TextFile$(12) = "Corel WordPerfect 3.x for Macintosh (WPM)"
  454. TextFile$(13) = "Corel WordPerfect 2.x for Macintosh (WPM)"
  455. TextFile$(14) = "Corel WordPerfect 3.x for Macintosh (WPM)"
  456. TextFile$(15) = "PageMaker 6.0 (Text Only) (PM6)"
  457. TextFile$(16) = "FrameMaker 3.0 (MIF)"
  458. TextFile$(17) = "FrameMaker 4.0 (MIF)"
  459. TextFile$(18) = "FrameMaker 5.0 (MIF)"
  460. TextFile$(19) = "MS Word for Windows 6.0, 7.0 (DOC)"
  461. TextFile$(20) = "MS Word for Windows 1.x (DOC)"
  462. TextFile$(21) = "MS Word for Windows 2.x (DOC)"
  463. TextFile$(22) = "MS Word 3.x (DOC)"
  464. TextFile$(23) = "MS Word 4.x (DOC)"
  465. TextFile$(24) = "MS Word 5.0, 5.5 (DOC)"
  466. TextFile$(25) = "MS Word for Mactinosh 3.0 (DOC)"
  467. TextFile$(26) = "MS Word for Mactinosh 4.0 (DOC)"
  468. TextFile$(27) = "MS Word for Mactinosh 5.0 (DOC)"
  469. TextFile$(28) = "Rich Text Format (RTF)"
  470. TextFile$(29) = "WordStar for Windows 1.x (WS*)"
  471. TextFile$(30) = "WordStar for Windows 2.0 (WS*)"
  472. TextFile$(31) = "WordStar 7.0 (WS*)"
  473. TextFile$(32) = "WordStar 6.0 (WS*)"
  474. TextFile$(33) = "WordStar 5.0, 5.5 (WS*)"
  475. TextFile$(34) = "WordStar 4.0 (WS*)"
  476. TextFile$(35) = "WordStar 3.45 (WS*)"
  477. TextFile$(36) = "WordStar 3.3, 3.31 (WS*)"
  478. TextFile$(37) = "WordStar 2000 (WS*)"
  479. TextFile$(38) = "Legacy 1.0, 2.0 (LEG)"
  480. TextFile$(39) = "XYWrite III (XY*)"
  481. TextFile$(40) = "XYWrite III Plus (XY*)"
  482. TextFile$(41) = "XYWrite IV,XYWrite for Windows 1.0 (XY*)"
  483. TextFile$(42) = "AmiProfessional 1.1, 1.2 (SAM)"
  484. TextFile$(43) = "AmiProfessional 2.0, 3.0 (SAM)"
  485. TextFile$(44) = "Microsoft Excel 1.0, 3.0, 4.0 (XLS)"
  486. TextFile$(45) = "Microsoft Excel 5.0 (XLS)"
  487. TextFile$(46) = "LOTUS 1-2-3 (WK)"
  488. TextFile$(47) = "Corel Quattro Pro (WQ)"
  489. TextFile$(48) = "Corel Quattro Pro (WB)"
  490.  
  491. 'list of style sheet types used by drop-down list box
  492. ' -this needs to be an array in order to accomodate the list box control
  493. GLOBAL StyleSheet$(1)
  494. StyleSheet$(1) = "VENTURA Style Sheet (*.STY)"
  495.  
  496. BEGIN DIALOG OBJECT SourceDialog 290, 180, "Corel VENTURA Library Wizard", SUB SourceDialogEventHandler
  497.     TEXTBOX  100, 47, 175, 13, .SourceDirectory
  498.     PUSHBUTTON  229, 66, 46, 14, .BrowseButton, "B&rowse..."
  499.     DDLISTBOX  130, 98, 150, 48, .FileExListBox
  500.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  501.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  502.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  503.     TEXT  95, 10, 185, 20, .Text1, "Enter the location and the extension of the files you wish to use."
  504.     TEXT  94, 100, 35, 10, .Text2, "Extension:"
  505.     IMAGE  10, 10, 75, 130, .SourceImage
  506.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  507.     GROUPBOX  95, 34, 185, 52, .GroupBox3, "Location of files:"
  508. END DIALOG
  509.  
  510.     SourceDialog.SetStyle STYLE_INVISIBLE
  511.     SourceDialog.SourceImage.SetImage "#Step3BMP"
  512.     SourceDialog.SourceImage.SetStyle STYLE_IMAGE_CENTERED
  513.     SourceRet%=DIALOG(SourceDialog)
  514.     SELECT CASE SourceRet%
  515.         CASE DIALOG_RETURN_CANCEL    
  516.             STOP
  517.         CASE DIALOG_RETURN_NEXT        
  518.             SELECT CASE FileType&
  519.                 CASE PICTURE_FILES
  520.                     FileExt$ = PicFileExtension$(FileExtVal%)
  521.                 CASE TEXT_FILES
  522.                     FileExt$ = TextFileExtension$(FileExtVal%)
  523.                 CASE STYLE_SHEETS
  524.                     FileExt$ = "*.STY"
  525.             END SELECT
  526.             GetSourceDir = 1
  527.         CASE DIALOG_RETURN_BACK         
  528.             GetSourceDir = -1
  529.     END SELECT
  530.  
  531. END FUNCTION
  532.  
  533.  
  534. ' *******************************************************************************
  535. ' SourceDialogEventHandler
  536. ' This subroutine responds to user interface with the source directory dialog.
  537. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  538. '                            generating a dialog event.
  539. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  540. ' *******************************************************************************
  541. SUB SourceDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  542.     IF Event% = EVENT_INITIALIZATION THEN         
  543.         SourceDialog.SetStyle STYLE_VISIBLE
  544.         SourceDialog.SourceDirectory.SetText SourceDir$
  545.         SELECT CASE FileType&
  546.             CASE PICTURE_FILES
  547.                 SourceDialog.FileExListBox.SetArray PictureFile$
  548.                 SourceDialog.FileExListBox.SetSelect FileExtVal%
  549.             CASE TEXT_FILES
  550.                 SourceDialog.FileExListBox.SetArray TextFile$
  551.                 SourceDialog.FileExListBox.SetSelect FileExtVal%
  552.             CASE STYLE_SHEETS
  553.                 SourceDialog.FileExListBox.SetArray StyleSheet$
  554.                 SourceDialog.FileExListBox.SetSelect 1
  555.         END SELECT
  556.     ENDIF
  557.  
  558.     IF Event% = EVENT_CHANGE_IN_CONTENT THEN         
  559.         SELECT CASE ControlID%
  560.             CASE SourceDialog.SourceDirectory.GetID()
  561.                 SourceDir$ = SourceDialog.SourceDirectory.GetText()    
  562.         END SELECT
  563.     ENDIF
  564.  
  565.     IF Event% = EVENT_MOUSE_CLICK THEN         
  566.         SELECT CASE ControlID%
  567.             CASE SourceDialog.NextButton.GetID()        
  568.                 'ensure SourceDir ends in a backslash
  569.                 IF INSTR(SourceDir$, "\", LEN(SourceDir$)) = 0 THEN 
  570.                     SourceDir$ = SourceDir$ & "\"
  571.                 ENDIF
  572.                 SourceDialog.closedialog DIALOG_RETURN_NEXT
  573.  
  574.             CASE SourceDialog.BackButton.GetID()        
  575.                 SourceDialog.closedialog DIALOG_RETURN_BACK
  576.             CASE SourceDialog.CancelButton.GetID()        
  577.                 SourceDialog.closedialog DIALOG_RETURN_CANCEL    
  578.  
  579.             CASE SourceDialog.BrowseButton.GetID()        
  580.                 NewSourceDir$ = GETFOLDER(SourceDir$)                
  581.                 IF NewSourceDir$ <> "" THEN 
  582.                     SourceDir$ = NewSourceDir$
  583.                 ENDIF
  584.                 SourceDialog.SourceDirectory.SetText SourceDir$
  585.  
  586.             CASE SourceDialog.FileExListBox.GetID()        
  587.                 FileExtVal% = SourceDialog.FileExListBox.GetSelect()
  588.         END SELECT
  589.     ENDIF
  590.  
  591.     IF SourceDir$ = "" THEN
  592.         SourceDialog.NextButton.Enable FALSE
  593.     ELSE
  594.         SourceDialog.NextButton.Enable TRUE
  595.     ENDIF    
  596. END SUB
  597.  
  598.  
  599. ' *******************************************************************************
  600. ' ShowFileList
  601. ' This function displays a list of available files of the specified type starting
  602. ' at the specified location.
  603. '
  604. ' PARAMS: None
  605. '
  606. ' RETURNS: ShowFileList AS INTEGER - Integer indicating dialog return value.
  607. ' *******************************************************************************
  608. FUNCTION ShowFileList
  609. BEGIN DIALOG OBJECT ShowFileListDialog 290, 180, "Corel VENTURA Library Wizard", SUB FileListDialogEventHandler
  610.     LISTBOX  10, 25, 100, 107, .FileListBox
  611.     PUSHBUTTON  122, 33, 46, 14, .SelectButton, "&Select >>"
  612.     PUSHBUTTON  122, 49, 46, 14, .DeselectButton, "<< &Deselect"
  613.     PUSHBUTTON  123, 95, 46, 14, .SelectAllButton, "Select &All"
  614.     PUSHBUTTON  123, 112, 46, 14, .DeselectAllButton, "D&eselect All"
  615.     LISTBOX  180, 25, 100, 107, .SelectedFileListBox
  616.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  617.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  618.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  619.     TEXT  10, 2, 269, 11, .Text2, "Select the files you wish to include in your library."
  620.     TEXT  10, 14, 56, 10, .Text4, "Available files:"
  621.     TEXT  88, 14, 20, 10, .FilesCountText, ""
  622.     TEXT  180, 14, 61, 10, .Text5, "Selected files:"
  623.     TEXT  258, 14, 20, 10, .SelectedFilesCountText, ""
  624.     TEXT  10, 136, 270, 12, .StatusText, "No files selected"
  625.     LISTBOX  10, 25, 100, 107, .DirectoryListBox
  626.     LISTBOX  180, 25, 100, 107, .SelectedDirectoryListBox
  627.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  628. END DIALOG
  629.     ShowFileListDialog.SetStyle STYLE_INVISIBLE
  630.     ShowFileListDialog.StatusText.SetStyle STYLE_SUNKEN
  631.     ShowFileListRet% = DIALOG(ShowFileListDialog)
  632.     
  633.     SELECT CASE ShowFileListRet%
  634.         CASE DIALOG_RETURN_CANCEL        
  635.             STOP
  636.         CASE DIALOG_RETURN_NEXT        
  637.             ShowFileList = 1
  638.         CASE DIALOG_RETURN_BACK         
  639.             ShowFileList = -1
  640.     END SELECT
  641. END FUNCTION
  642.  
  643.  
  644. ' *******************************************************************************
  645. ' FileListDialogEventHandler
  646. ' This subroutine responds to user interface with the file list dialog.
  647. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  648. '                            generating a dialog event.
  649. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  650. ' *******************************************************************************
  651. SUB FileListDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  652.     IF Event% = EVENT_INITIALIZATION THEN         
  653.         ShowFileListDialog.DirectoryListBox.SetStyle STYLE_INVISIBLE            'hide directory list box (for tracking files - user doesn't need to see this)
  654.         ShowFileListDialog.SelectedDirectoryListBox.SetStyle STYLE_INVISIBLE        'hide selected directory list box (for tracking files - user doesn't need to see this)
  655.         ShowFileListDialog.FilesCountText.SetStyle STYLE_RIGHT_JUSTIFY            'right justify text displaying file count
  656.         ShowFileListDialog.SelectedFilesCountText.SetStyle STYLE_RIGHT_JUSTIFY    'right justify text displaying selected files count
  657.  
  658.         'disable NEXT button until file(s) have been selected
  659.         IF ShowFileListDialog.SelectedFileListBox.GetItemCount() = 0 THEN 
  660.             ShowFileListDialog.NextButton.Enable FALSE
  661.         ELSE
  662.             ShowFileListDialog.NextButton.Enable TRUE
  663.         ENDIF    
  664.  
  665.         'IF files have already been selected, display same list
  666.         IF SelectedFilesCount > 0 THEN
  667.             ShowFileListDialog.FileListBox.SetArray AvailableFiles$            'display available files list in Available Files listbox
  668.             ShowFileListDialog.DirectoryListBox.SetArray AvailableDirs$            'display available dirs list in Avaialable Dirs listbox
  669.             ShowFileListDialog.SelectedFileListBox.SetArray SelectedFiles$        'display selected files list in Selected Files listbox
  670.             ShowFileListDialog.SelectedDirectoryListBox.SetArray SelectedDirs$    'display selected dirs list in Selected Dirs listbox
  671.  
  672.         'get and display list of files (with extension FileExt$) starting in Source directory
  673.         ELSE
  674.             GetFileList SourceDir$, FileExt$                                                'get file list
  675.             ShowFileListDialog.FileListBox.SetSelect 1                                        'give focus to first element in file list box
  676.             ShowFileListDialog.StatusText.SetText ShowFileListDialog.DirectoryListBox.GetItem(1)        'set status text to first item in file list
  677.             ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount()    'set file count to number of available files
  678.             ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount()    'set selected files count to number of selected files
  679.         ENDIF
  680.         ShowFileListDialog.SetStyle STYLE_VISIBLE
  681.     ENDIF
  682.  
  683.     IF Event% = EVENT_MOUSE_CLICK THEN         
  684.         SELECT CASE ControlID%
  685.             CASE ShowFileListDialog.NextButton.GetID()        
  686.                 'create list of selected files and directories
  687.                 SelectedFilesCount% = ShowFileListDialog.SelectedFileListBox.GetItemCount()
  688.                 REDIM SelectedFiles$(SelectedFilesCount%)    'redimension array to accomodate all selected files
  689.                 REDIM SelectedDirs$(SelectedFilesCount%)    'redimension array to accomodate all selected directories
  690.                 FOR i% = 1 TO SelectedFilesCount%            'FOR all items in selected files list
  691.                     SelectedFiles$(i%) = ShowFileListDialog.SelectedFileListBox.GetItem(i%)    'add item to file list        
  692.                     SelectedDirs$(i%) = ShowFileListDialog.SelectedDirectoryListBox.GetItem(i%)'add item to directory list
  693.                 NEXT i%
  694.     
  695.                 'create list of available files and directories
  696.                 AvailableFilesCount% = ShowFileListDialog.FileListBox.GetItemCount()
  697.                 REDIM AvailableFiles$(AvailableFilesCount)    'redimension array to accomodate all available files
  698.                 REDIM AvailableDirs$(AvailableFilesCount)    'redimension array to accomodate all available directories
  699.                 FOR i% = 1 TO AvailableFilesCount%            'FOR all items in avialable files list
  700.                     AvailableFiles$(i%) = ShowFileListDialog.FileListBox.GetItem(i%)        'add item to file list
  701.                     AvailableDirs$(i%) = ShowFileListDialog.DirectoryListBox.GetItem(i%)    'add item to directory list
  702.                 NEXT i%
  703.                 ShowFileListDialog.closedialog DIALOG_RETURN_NEXT
  704.  
  705.             CASE ShowFileListDialog.BackButton.GetID()        
  706.                 ShowFileListDialog.closedialog DIALOG_RETURN_BACK
  707.  
  708.             CASE ShowFileListDialog.SelectButton.GetID()            
  709.                 indx% = ShowFileListDialog.FileListBox.GetSelect()        'get index of current selection
  710.                 IF indx%=0 THEN        'no files selected, display appropriate message
  711.                     IF ShowFileListDialog.FileListBox.GetItemCount() = 0 THEN
  712.                         MESSAGE "There are no files available for selection."
  713.                     ELSE
  714.                         MESSAGE "Please select a file from the available files list."
  715.                     ENDIF
  716.                 ELSE                    'valid selection, add current selection to selected files list            
  717.                     ShowFileListDialog.SelectedFileListBox.AddItem ShowFileListDialog.FileListBox.GetItem(indx%)            'add current selection to selected files list
  718.                     ShowFileListDialog.FileListBox.RemoveItem indx%                                                'remove current selection from available files list
  719.                     ShowFileListDialog.SelectedDirectoryListBox.AddItem ShowFileListDialog.DirectoryListBox.GetItem(indx%)    'add current selection to selected directory list
  720.                     ShowFileListDialog.DirectoryListBox.RemoveItem indx%                                            'remove current selection from available directory list
  721.                     IF indx% > ShowFileListDialog.FileListBox.GetItemCount() THEN                                    'IF current selection is not the last         
  722.                         ShowFileListDialog.FileListBox.SetSelect indx%-1                                            'set focus to previous item
  723.                     ELSE                    
  724.                         ShowFileListDialog.FileListBox.SetSelect indx%                                            'ELSE set    focus to current selection
  725.                     ENDIF
  726.                      ShowFileListDialog.StatusText.SetText ShowFileListDialog.DirectoryListBox.GetItem(ShowFileListDialog.FileListBox.GetSelect())
  727.                     ShowFileListDialog.SelectedFileListBox.SetSelect 0
  728.                 ENDIF
  729.  
  730.             CASE ShowFileListDialog.DeselectButton.GetID()            
  731.                 indx% = ShowFileListDialog.SelectedFileListBox.GetSelect()    'get index of current selection
  732.                 IF indx%=0 THEN        'no files selected, display appropriate message
  733.                     IF ShowFileListDialog.SelectedFileListBox.GetItemCount() = 0 THEN
  734.                         MESSAGE "There are no files available for deselection"
  735.                     ELSE
  736.                         MESSAGE "Please select a file from the selected files list."
  737.                     ENDIF        
  738.                 ELSE                    'valid selection, remove current selection from selected files list
  739.                     ShowFileListDialog.FileListBox.AddItem ShowFileListDialog.SelectedFileListBox.GetItem(indx%)            'add current selection to available files list
  740.                     ShowFileListDialog.SelectedFileListBox.RemoveItem indx%                                        'remove current selection from selected files list
  741.                     ShowFileListDialog.DirectoryListBox.AddItem ShowFileListDialog.SelectedDirectoryListBox.GetItem(indx%)    'add current selection to available directory list
  742.                     ShowFileListDialog.SelectedDirectoryListBox.RemoveItem indx%                                    'remove current selection from selected directory list
  743.                     IF indx% > ShowFileListDialog.SelectedFileListBox.GetItemCount() THEN                                'IF current selection is not the last         
  744.                         ShowFileListDialog.SelectedFileListBox.SetSelect indx%-1                                    'set focus to previous item
  745.                     ELSE
  746.                         ShowFileListDialog.SelectedFileListBox.SetSelect indx%                                        'ELSE set    focus to current selection
  747.                     ENDIF
  748.                      ShowFileListDialog.StatusText.SetText ShowFileListDialog.SelectedDirectoryListBox.GetItem(ShowFileListDialog.SelectedFileListBox.GetSelect())
  749.                     ShowFileListDialog.FileListBox.SetSelect 0
  750.                 ENDIF
  751.  
  752.             CASE ShowFileListDialog.SelectAllButton.GetID()        
  753.                 ShowFileListDialog.StatusText.SetText "All files selected."
  754.                 ShowFileListDialog.SelectedFileListBox.SetSelect 0
  755.                 WHILE ShowFileListDialog.FileListBox.GetItemCount() > 0        'repeat while there are available files 
  756.                     ShowFileListDialog.SelectedFileListBox.AddItem ShowFileListDialog.FileListBox.GetItem(1)            'add first list item to selected files list
  757.                     ShowFileListDialog.FileListBox.RemoveItem 1                                                'remove first list item from available files list    
  758.                     ShowFileListDialog.SelectedDirectoryListBox.AddItem ShowFileListDialog.DirectoryListBox.GetItem(1)    'add first list item to selected directory list
  759.                     ShowFileListDialog.DirectoryListBox.RemoveItem 1                                            'remove first list item from available directory list
  760.                     ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount()                'display number of available files
  761.                     ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount()    'display number of selected files
  762.                 WEND
  763.  
  764.  
  765.             CASE ShowFileListDialog.DeselectAllButton.GetID()        
  766.                 ShowFileListDialog.StatusText.SetText "No files selected."
  767.                 ShowFileListDialog.FileListBox.SetSelect 0
  768.                 WHILE ShowFileListDialog.SelectedFileListBox.GetItemCount() > 0    'repeat while there are selected files
  769.                     ShowFileListDialog.FileListBox.AddItem ShowFileListDialog.SelectedFileListBox.GetItem(1)            'add first list item to FilesList
  770.                     ShowFileListDialog.SelectedFileListBox.RemoveItem 1                                        'remove first list item from selected files list
  771.                     ShowFileListDialog.DirectoryListBox.AddItem ShowFileListDialog.SelectedDirectoryListBox.GetItem(1)    'add first list item to available directory list
  772.                     ShowFileListDialog.SelectedDirectoryListBox.RemoveItem 1                                    'remove first list item from selected directory list
  773.                         ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount()            'display number of available files
  774.                     ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount()    'display number of selected files
  775.                 WEND
  776.  
  777.             CASE ShowFileListDialog.CancelButton.GetID()            
  778.                 ShowFileListDialog.closedialog DIALOG_RETURN_CANCEL    
  779.             CASE ShowFileListDialog.FileListBox.GetID()                    
  780.                  ShowFileListDialog.StatusText.SetText ShowFileListDialog.DirectoryListBox.GetItem(ShowFileListDialog.FileListBox.GetSelect())
  781.                 ShowFileListDialog.SelectedFileListBox.SetSelect 0
  782.             CASE ShowFileListDialog.SelectedFileListBox.GetID()            
  783.                  ShowFileListDialog.StatusText.SetText ShowFileListDialog.SelectedDirectoryListBox.GetItem(ShowFileListDialog.SelectedFileListBox.GetSelect())
  784.                 ShowFileListDialog.FileListBox.SetSelect 0
  785.         END SELECT
  786.         ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount()                'display number of available files
  787.         ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount()    'display number of selected files
  788.     ENDIF
  789.  
  790.     IF Event% = EVENT_DBL_MOUSE_CLICK THEN         
  791.         SELECT CASE ControlID%
  792.             CASE ShowFileListDialog.FileListBox.GetID()                    'files list
  793.                 indx% = ShowFileListDialog.FileListBox.GetSelect()                                    'get index of selection
  794.                 ShowFileListDialog.SelectedFileListBox.AddItem ShowFileListDialog.FileListBox.GetItem(indx%)    'add selection to SelectedFilesList
  795.                 ShowFileListDialog.FileListBox.RemoveItem indx%                                        'remove selection from available files list
  796.                 ShowFileListDialog.SelectedDirectoryListBox.AddItem ShowFileListDialog.DirectoryListBox.GetItem(indx%)    'add selection to selected path list
  797.                 ShowFileListDialog.DirectoryListBox.RemoveItem indx%                                        'remove selection from available paths list
  798.                 IF indx% > ShowFileListDialog.FileListBox.GetItemCount() THEN
  799.                     ShowFileListDialog.FileListBox.SetSelect indx%-1
  800.                 ELSE
  801.                     ShowFileListDialog.FileListBox.SetSelect indx%
  802.                 ENDIF
  803.  
  804.             CASE ShowFileListDialog.SelectedFileListBox.GetID()            'selected files list
  805.                 indx% = ShowFileListDialog.SelectedFileListBox.GetSelect()                                'get index of selection
  806.                 ShowFileListDialog.FileListBox.AddItem ShowFileListDialog.SelectedFileListBox.GetItem(indx%)    'add selection to FilesList
  807.                 ShowFileListDialog.SelectedFileListBox.RemoveItem indx%                                'remove selection from selected files list
  808.                 ShowFileListDialog.DirectoryListBox.AddItem ShowFileListDialog.SelectedDirectoryListBox.GetItem(indx%)    'add selection to available path list
  809.                 ShowFileListDialog.SelectedDirectoryListBox.RemoveItem indx%                                'remove selection from selected path list
  810.                 IF indx% > ShowFileListDialog.SelectedFileListBox.GetItemCount() THEN
  811.                     ShowFileListDialog.SelectedFileListBox.SetSelect indx%-1
  812.                 ELSE
  813.                     ShowFileListDialog.SelectedFileListBox.SetSelect indx%
  814.                 ENDIF
  815.  
  816.         END SELECT
  817.         ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount()                'number of available files
  818.         ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount()    'number of selected files
  819.     ENDIF
  820.     IF ShowFileListDialog.SelectedFileListBox.GetItemCount() = 0 THEN 
  821.         ShowFileListDialog.NextButton.Enable FALSE
  822.     ELSE
  823.         ShowFileListDialog.NextButton.Enable TRUE
  824.     ENDIF    
  825. END SUB
  826.  
  827.  
  828.  
  829. ' *******************************************************************************
  830. ' GetFileList
  831. ' This subroutine recursively searches for files of the specified type, starting
  832. ' in the specified directory (SourceDir). The found files are displayed in the 
  833. ' File List dialog (files and paths separately).
  834. '
  835. ' PARAMS: BYVAL SourceDir$ - The directory at which to begin the search.
  836. '               FileExt$  - The type of file (extension) for which to search.
  837. ' *******************************************************************************
  838. SUB GetFileList(BYVAL SourceDir$, FileExt$)
  839.     'This section finds files of the type specified by FileExt in the directory specified by SourceDir
  840.     File$ = FINDFIRSTFOLDER(SourceDir$ & FileExt$, FILEATTR_READ_ONLY OR FILEATTR_HIDDEN OR FILEATTR_SYSTEM OR FILEATTR_ARCHIVE OR FILEATTR_NORMAL_FILE OR FILEATTR_TEMPORARY OR FILEATTR_COMPRESSED)
  841.     DO WHILE File$ <> ""
  842.         ShowFileListDialog.FileListBox.AddItem File$                'add file name to File drop-down list
  843.         ShowFileListDialog.DirectoryListBox.AddItem SourceDir$        'add file dir to Directory drop-down list
  844.         File$ = FINDNEXTFOLDER()
  845.     LOOP 
  846.  
  847.     'This section finds directories starting in the directory specified by SourceDir
  848.     File$ = FINDFIRSTFOLDER(SourceDir$ & "*.*", FILEATTR_FOLDER OR FILEATTR_READ_ONLY OR FILEATTR_HIDDEN OR FILEATTR_SYSTEM OR FILEATTR_ARCHIVE OR FILEATTR_NORMAL_FILE OR FILEATTR_TEMPORARY OR FILEATTR_COMPRESSED)
  849.     DO WHILE File$ <> ""    
  850.         IF File$ <> "." AND File$ <> ".." AND File$ <> SourceDir$ THEN
  851.             GetFileList SourceDir$ &  File$ & "\", FileExt$
  852.             
  853.             ' This next loop resets the FINDNEXTFOLDER function to the same place as it was before 
  854.             ' we recursed into ourselves.
  855.             SearchFile$ = FINDFIRSTFOLDER(SourceDir$ & "*.*", FILEATTR_FOLDER OR FILEATTR_READ_ONLY OR FILEATTR_HIDDEN OR FILEATTR_SYSTEM OR FILEATTR_ARCHIVE OR FILEATTR_NORMAL_FILE OR FILEATTR_TEMPORARY OR FILEATTR_COMPRESSED)
  856.             DO WHILE File$ <> SearchFile$
  857.                 SearchFile$ = FINDNEXTFOLDER()
  858.             LOOP
  859.         ENDIF
  860.         File$ = FINDNEXTFOLDER()
  861.     LOOP 
  862. END SUB
  863.  
  864.  
  865. ' *******************************************************************************
  866. ' GetLIBName
  867. ' This function prompts the user for the name of the new Library.
  868. '
  869. ' RETURNS: GetLIBName AS INTEGER - Integer indicating dialog return value.
  870. ' *******************************************************************************
  871. FUNCTION GetLIBName%
  872. BEGIN DIALOG OBJECT GetLIBNameDialog 290, 180, "Corel VENTURA Library Wizard", SUB GetLIBNameDialogEventHandler
  873.     TEXTBOX  95, 25, 185, 13, .LibNameTextBox
  874.     TEXTBOX  95, 95, 185, 13, .LibDirTextBox
  875.     PUSHBUTTON  234, 112, 46, 14, .BrowseButton, "&Browse..."
  876.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  877.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  878.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  879.     TEXT  95, 10, 185, 12, .Text1, "What would you like to call your new Library?"
  880.     TEXT  95, 80, 175, 12, .Text2, "Where would you like to put your library?"
  881.     IMAGE  10, 10, 75, 130, .GetLIBNameImage
  882.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  883. END DIALOG
  884.  
  885.     GetLIBNameDialog.SetStyle STYLE_INVISIBLE
  886.     GetLIBNameDialog.GetLIBNameImage.SetImage "#Step2BMP"
  887.     GetLIBNameDialog.GetLIBNameImage.SetStyle STYLE_IMAGE_CENTERED
  888.  
  889.     GetLIBNameRet% = Dialog(GetLIBNameDialog)
  890.     SELECT CASE GetLIBNameRet%
  891.         CASE DIALOG_RETURN_CANCEL    
  892.             STOP
  893.         CASE DIALOG_RETURN_NEXT        
  894.             GetLIBName = 1
  895.         CASE DIALOG_RETURN_BACK         
  896.             GetLIBName = -1
  897.     END SELECT
  898. END FUNCTION
  899.  
  900.  
  901. ' *******************************************************************************
  902. ' GetLIBNameDialogEventHandler
  903. ' This subroutine responds to user interface with the library name dialog.
  904. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  905. '                            generating a dialog event.
  906. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  907. ' *******************************************************************************
  908. SUB GetLIBNameDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  909. ON ERROR RESUME NEXT
  910.     IF Event% = EVENT_INITIALIZATION THEN         
  911.         GetLIBNameDialog.LibNameTextBox.SetText NewLIBName$
  912.         GetLIBNameDialog.LibDirTextBox.SetText LibraryDir$
  913.         IF NewLIBName$  = "" THEN 
  914.             GetLIBNameDialog.NextButton.Enable FALSE
  915.         ELSE
  916.             GetLIBNameDialog.NextButton.Enable TRUE
  917.         ENDIF    
  918.         GetLIBNameDialog.SetStyle STYLE_VISIBLE
  919.     ENDIF
  920.  
  921.     IF Event% = EVENT_CHANGE_IN_CONTENT THEN         
  922.         SELECT CASE ControlID%
  923.             CASE GetLIBNameDialog.LibNameTextBox.GetID()        
  924.                 NewLIBName$ = GetLIBNameDialog.LibNameTextBox.gettext()        
  925.                 IF NewLIBName$  = "" THEN 
  926.                     GetLIBNameDialog.NextButton.Enable FALSE
  927.                 ELSE
  928.                     GetLIBNameDialog.NextButton.Enable TRUE
  929.                 ENDIF    
  930.             CASE GetLIBNameDialog.LibDirTextBox.GetID()            
  931.                 LibraryDir$ = GetLIBNameDialog.LibDirTextBox.gettext()
  932.         END SELECT
  933.     ENDIF
  934.  
  935.     IF Event% = EVENT_MOUSE_CLICK THEN         
  936.         SELECT CASE ControlID%
  937.             CASE GetLIBNameDialog.NextButton.GetID()        
  938.                 IF INSTR(NewLIBName$ , "vlb") = 0 THEN NewLIBName$  = NewLIBName$  & ".vlb"
  939.                 LIBName$  = LibraryDir$ & "\"  & NewLIBName$ 
  940.                 LibraryExists = DoesFileExist(LIBName$)
  941.                 IF LibraryExists = TRUE THEN         'library already exists, warn user
  942.                     LibraryMsg$= LIBName$ & CHR(13) & "already exists." & CHR(13) + CHR(13) & "Continue anyway?"
  943.                     MsgVal% = MESSAGEBOX(LibraryMsg$, "WARNING", 4 OR 16)
  944.                     IF MsgVal% = MSG_YES THEN     'yes, overwrite library
  945.                         GetLIBNameDialog.closedialog DIALOG_RETURN_NEXT
  946.                     ENDIF
  947.                 ELSE
  948.                     GetLIBNameDialog.closedialog DIALOG_RETURN_NEXT
  949.                 ENDIF        
  950.             CASE GetLIBNameDialog.BackButton.GetID()        
  951.                 GetLIBNameDialog.closedialog DIALOG_RETURN_BACK
  952.             CASE GetLIBNameDialog.CancelButton.GetID()        
  953.                 GetLIBNameDialog.closedialog DIALOG_RETURN_CANCEL    
  954.             CASE GetLIBNameDialog.BrowseButton.GetID()        
  955.                 GetLibraryDir$ = GetFolder(LibraryDir$)                
  956.                 IF GetLibraryDir$ = "" THEN 
  957.                     GetLIBNameDialog.LibDirTextBox.SetText LibraryDir$
  958.                 ELSE
  959.                     GetLIBNameDialog.LibDirTextBox.SetText GetLibraryDir$
  960.                     LibraryDir$ = GetLibraryDir$
  961.                 ENDIF
  962.         END SELECT
  963.     ENDIF
  964. END SUB
  965.  
  966.  
  967.  
  968. ' **************************************************************************************
  969. ' ShowFinish
  970. ' This function displays the finish dialog, showing a list of all files selected for
  971. ' addition to the specified library. As well, the complete name of the library to be
  972. ' used is displayed.
  973. '
  974. ' RETURNS: ShowFinish AS INTEGER - Integer indicating dialog return value.
  975. ' **************************************************************************************
  976. FUNCTION ShowFinish%
  977. BEGIN DIALOG OBJECT ShowFinishDialog 290, 180, "Corel VENTURA Library Wizard", SUB ShowFinishDialogEventHandler
  978.     PUSHBUTTON  181, 160, 46, 14, .FinishButton, "&Finish"
  979.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  980.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  981.     LISTBOX  95, 45, 185, 60, .FileListBox
  982.     IMAGE  10, 10, 75, 130, .ShowFinishImage
  983.     TEXT  95, 10, 185, 12, .Text1, InfoText$
  984.     TEXT  95, 23, 185, 20, .Text2, LIBName$
  985.     TEXT  95, 124, 185, 20, .Text3, "Click Finish, then sit back and watch Corel VENTURA create your new library for you."
  986.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  987.     TEXT  95, 107, 185, 12, .StatusText, ""
  988. END DIALOG
  989.  
  990.     IF SelectedFilesCount = 1 THEN 
  991.         InfoText$ = "The " & SelectedFilesCount & " file listed below will be added to the library:"
  992.     ELSE
  993.         InfoText$ = "The " & SelectedFilesCount & " files listed below will be added to the library:"
  994.     ENDIF
  995.     MKFOLDER(LibraryDir$)        
  996.     
  997.     ShowFinishDialog.SetStyle STYLE_INVISIBLE
  998.     ShowFinishDialog.ShowFinishImage.SetImage "#Step3BMP"
  999.     ShowFinishDialog.ShowFinishImage.SetStyle STYLE_IMAGE_CENTERED
  1000.     ShowFinishDialog.StatusText.SetStyle STYLE_SUNKEN
  1001.  
  1002.     ShowFinishRet% = Dialog(ShowFinishDialog)
  1003.     SELECT CASE ShowFinishRet%
  1004.         CASE DIALOG_RETURN_CANCEL     
  1005.             STOP
  1006.         CASE DIALOG_RETURN_NEXT      
  1007.             ShowFinishDialog.SetVisible FALSE
  1008.             MakeLIB
  1009.             ShowFinish = 1
  1010.         CASE DIALOG_RETURN_BACK 
  1011.             ShowFinish = -1
  1012.     END SELECT
  1013. END FUNCTION
  1014.  
  1015. ' *******************************************************************************
  1016. ' ShowFinishDialogEventHandler
  1017. ' This subroutine responds to user interface with the finish dialog.
  1018. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  1019. '                            generating a dialog event.
  1020. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  1021. ' *******************************************************************************
  1022. SUB ShowFinishDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  1023.     IF Event% = EVENT_INITIALIZATION THEN         
  1024.         ShowFinishDialog.FileListBox.SetArray SelectedFiles$
  1025.         ShowFinishDialog.StatusText.SetText SelectedDirs(1)
  1026.         ShowFinishDialog.SetStyle STYLE_VISIBLE
  1027.     ENDIF
  1028.  
  1029.     IF Event% = EVENT_MOUSE_CLICK THEN     
  1030.         SELECT CASE ControlID%
  1031.             CASE ShowFinishDialog.FinishButton.GetID()
  1032.                 ShowFinishDialog.CloseDialog DIALOG_RETURN_NEXT
  1033.             CASE ShowFinishDialog.BackButton.GetID()
  1034.                 ShowFinishDialog.CloseDialog DIALOG_RETURN_BACK
  1035.             CASE ShowFinishDialog.CancelButton.GetID()
  1036.                 ShowFinishDialog.CloseDialog DIALOG_RETURN_CANCEL
  1037.             CASE ShowFinishDialog.FileListBox.GetID()
  1038.                 ShowFinishDialog.StatusText.SetText SelectedDirs(ShowFinishDialog.FileListBox.GetSelect())
  1039.         END SELECT
  1040.     ENDIF
  1041. END SUB
  1042.  
  1043.  
  1044. ' *******************************************************************************
  1045. ' MakeLIB
  1046. ' This function opens the specified library if it exists (or creates a new one 
  1047. ' if it doesn't exist). The selected files are added to the library, and their
  1048. ' corresponding descriptions changed to that of the file name (without path).
  1049. ' A dialog appears at the completion of the process, indicating the number of
  1050. ' successful library entries.
  1051. '
  1052. ' PARAMS: None
  1053. ' *******************************************************************************
  1054. SUB MakeLIB
  1055. ON ERROR RESUME NEXT
  1056. GLOBAL ItemsInLIB&
  1057.     BEGINWAITCURSOR
  1058.     WITHOBJECT OBJECT_VENTURA8
  1059.     ENDWAITCURSOR
  1060.  
  1061.         IF LibraryExists = TRUE THEN
  1062.             .FileLibraryOpen LIBName$ 
  1063.         ELSE
  1064.             .FileLibraryNew LIBName$         
  1065.         ENDIF
  1066.         .FileLibraryView FALSE, TRUE                    'small icons show details
  1067.  
  1068.         FOR i% = 1 TO SelectedFilesCount%
  1069.             .FileLibraryCreateItem SelectedDirs$(i%) & SelectedFiles$(i%)
  1070.             .FileLibraryItemProperties SelectedFiles$(i%)
  1071.             IF i% MOD 20 = 0 THEN .FileLibrarySave        'save lib every 20 items
  1072.         NEXT i%
  1073.  
  1074.         ItemsInLIB& = .FileLibraryItemCount()
  1075.         .FileLibraryClose TRUE                        'close ALL open libs
  1076.     END WITHOBJECT
  1077. END SUB
  1078.  
  1079.  
  1080. ' *******************************************************************************
  1081. ' ShowSummary
  1082. ' This function displays the summary dialog indicating whether the library has 
  1083. ' been created or appended, and the number of items it now contains.
  1084. '
  1085. ' PARAMS: None
  1086. '
  1087. ' RETURNS: ShowFinish AS INTEGER - Integer indicating dialog return value.
  1088. ' *******************************************************************************
  1089. FUNCTION ShowSummary%
  1090. BEGIN DIALOG OBJECT ShowSummaryDialog 290, 180, "Corel VENTURA Library Wizard", SUB ShowSummaryDialogEventHandler
  1091.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  1092.     PUSHBUTTON  181, 160, 46, 14, .FinishButton, "&Done"
  1093.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  1094.     IMAGE  10, 10, 75, 130, .ShowSummaryImage
  1095.     TEXT  95, 25, 185, 12, .Text1, ""
  1096.     TEXT  95, 10, 185, 12, .Text2, ""
  1097.     TEXT  93, 130, 185, 12, .Text3, "To create another library, click Back."
  1098.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  1099. END DIALOG
  1100.     
  1101.     ShowSummaryDialog.SetStyle STYLE_INVISIBLE
  1102.     ShowSummaryDialog.ShowSummaryImage.SetImage "#LastBMP"
  1103.     ShowSummaryDialog.ShowSummaryImage.SetStyle STYLE_IMAGE_CENTERED
  1104.  
  1105.     ShowSummaryRet% = Dialog(ShowSummaryDialog)
  1106.     SELECT CASE ShowSummaryRet%
  1107.         CASE DIALOG_RETURN_CANCEL     
  1108.             STOP
  1109.         CASE DIALOG_RETURN_NEXT      
  1110.             ShowSummary = 1
  1111.         CASE DIALOG_RETURN_BACK     
  1112.             ShowSummary = -5
  1113.     END SELECT
  1114. END FUNCTION
  1115.  
  1116.  
  1117. ' *******************************************************************************
  1118. ' ShowSummaryDialogEventHandler
  1119. ' This subroutine responds to user interface with the summary dialog.
  1120. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  1121. '                            generating a dialog event.
  1122. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  1123. ' *******************************************************************************
  1124. SUB ShowSummaryDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  1125.     IF Event% = EVENT_INITIALIZATION THEN         
  1126.         NameText$ = LIBName$
  1127.         IF ItemsInLIB& > 1 THEN    
  1128.             ItemString$ = " items."
  1129.         ELSE
  1130.             ItemString$ = " item."
  1131.         ENDIF
  1132.         IF LibraryExists = TRUE THEN
  1133.             InfoText$ = "has been appended and now contains" & STR(ItemsInLIB&)  & ItemString$
  1134.         ELSE
  1135.             InfoText$ = "has been created and now contains" & STR(ItemsInLIB&)  & ItemString$
  1136.         ENDIF
  1137.         ShowSummaryDialog.Text2.SetText NameText$
  1138.         ShowSummaryDialog.Text1.SetText InfoText$
  1139.         ShowSummaryDialog.SetStyle STYLE_VISIBLE
  1140.         ShowSummaryDialog.CancelButton.Enable FALSE
  1141.     ENDIF
  1142.  
  1143.     IF Event% = EVENT_MOUSE_CLICK THEN     
  1144.         SELECT CASE ControlID%
  1145.             CASE ShowSummaryDialog.FinishButton.GetID()
  1146.                 ShowSummaryDialog.CloseDialog DIALOG_RETURN_NEXT
  1147.             CASE ShowSummaryDialog.BackButton.GetID()
  1148.                 ShowSummaryDialog.CloseDialog DIALOG_RETURN_BACK
  1149.             CASE ShowSummaryDialog.CancelButton.GetID()
  1150.                 ShowSummaryDialog.CloseDialog DIALOG_RETURN_CANCEL
  1151.         END SELECT
  1152.     ENDIF
  1153. END SUB
  1154.  
  1155.  
  1156. ' **************************************************************************************
  1157. ' DoesFileExist
  1158. ' This function determines whether the specified file exists.
  1159. '
  1160. ' PARAMS:FileName AS STRING - The name and path of the file in question.
  1161. ' RETURNS: DoesFileExist AS BOOLEAN - TRUE if the file exists.
  1162. '                                   - FALSE if the file does not exist.
  1163. ' **************************************************************************************
  1164. FUNCTION DoesFileExist(FileName$) AS BOOLEAN
  1165. ON ERROR GOTO ErrorHandler
  1166.     FileStatus$ = FINDFIRSTFOLDER(FileName$, FILEATTR_READ_ONLY OR FILEATTR_HIDDEN OR FILEATTR_SYSTEM OR FILEATTR_ARCHIVE OR FILEATTR_NORMAL_FILE OR FILEATTR_TEMPORARY)
  1167.     IF FileStatus$ = "" THEN
  1168.         DoesFileExist = FALSE
  1169.     ELSE
  1170.         DoesFileExist = TRUE
  1171.     ENDIF
  1172.  
  1173. FunctionEnd:
  1174. EXIT FUNCTION
  1175.  
  1176. ErrorHandler:
  1177.     SELECT CASE ErrNum
  1178.         CASE ELSE
  1179.             DoesFileExist = FALSE
  1180.     END SELECT
  1181.     RESUME AT FunctionEnd
  1182. END FUNCTION
  1183.  
  1184.  
  1185.