home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1998-07-08 | 52.6 KB | 1,194 lines
REM Creates Corel VENTURA libraries [CorelSCRIPT 8] REM CreateLibrary.csc February 5, 1998 REM ⌐ 1998 Corel Corporation. All rights reserved. REM ************************************************************************************** REM This script creates a new (or updates an existing) VENTURA library with user specified REM files. The user is prompted to select the type of files to add to the library (Picture, REM Text, or Style Sheet). The user is prompted for a source directory containing the files REM to add to the library and the type of file (ie file extension) to use. REM A list of all available files within the source directory and sub-directories is REM provided for the user. The user is prompted to select those files to add to the library. REM The user is then prompted for the name and location of the library to be created or REM appended. If the library exists the user is warned and prompted to continue or not. REM The selected files are placed in the specified library. REM ************************************************************************************** ' Create a temporary folder to provide a path for the include files ' -this enables the include files to be located #addfol "..\..\Scripts" #include "ScpConst.csi" #include "VPConst.csi" ' Embed bitmaps if script is to be compiled into exe or csb formats ' -this will eliminate the need to include these files #ADDRESBMP IntroBMP "Bitmaps\IntroBMP.bmp" #ADDRESBMP Step2BMP "Bitmaps\Step2BMP.bmp" #ADDRESBMP Step3BMP "Bitmaps\Step3BMP.bmp" #ADDRESBMP LastBMP "Bitmaps\LastBMP.bmp" 'Constants for Dialog Return Values GLOBAL CONST DIALOG_RETURN_CANCEL% = 2 GLOBAL CONST DIALOG_RETURN_NEXT% = 3 GLOBAL CONST DIALOG_RETURN_BACK% = 4 GLOBAL CONST DIALOG_RETURN_BROWSE% = 5 'Constants for file types GLOBAL CONST PICTURE_FILES% = 0 'identifies file type as picture files GLOBAL CONST TEXT_FILES% = 1 'identifies file type as text files GLOBAL CONST STYLE_SHEETS% = 2 'identifes file type as style sheets 'Constants for file arrays GLOBAL CONST MAX_FILES% = 10 'number of files in file list (redimensioned as required) GLOBAL CONST MAX_FILE_EXT% = 48 'number of file extensions in lists '/////FUNCTION & SUBROUTINE DECLARATIONS///////////////////////////////////////// DECLARE SUB RegQuery() DECLARE SUB GetFileList(BYVAL SourceDir$, FileExt$) DECLARE SUB MakeLIB() DECLARE FUNCTION ShowIntro%() DECLARE FUNCTION GetFileType%() DECLARE FUNCTION GetSourceDir%() DECLARE FUNCTION ShowFileList%() DECLARE FUNCTION GetLIBName%() DECLARE FUNCTION ShowFinish%() DECLARE FUNCTION ShowSummary%() DECLARE FUNCTION DoesFileExist(FileName$) AS BOOLEAN '/////GLOBAL VARIABLES ////////////////////////////////////////////////////////// GLOBAL VenturaRoot$ 'root directory where Ventura is installed GLOBAL SourceDir$ 'directory at which to start the search for files GLOBAL FileExtVal% 'index referencing lists of file extension values GLOBAL FileType& 'type of files to use: 0-Picture files; 1-Text files; 2-Style Sheets GLOBAL FileExt$ 'file extension used by GetFileList sub GLOBAL AvailableFiles$(MAX_FILES) 'list of files available for selection GLOBAL AvailableDirs$(MAX_FILES) 'list of directories corresponding to available files GLOBAL AvailableFilesCount% 'number of files available for selection GLOBAL SelectedFiles$(MAX_FILES) 'list of file names selected for addition to the library GLOBAL SelectedDirs$(MAX_FILES) 'list of directories corresponding to selected files GLOBAL SelectedFilesCount% 'number of files selected GLOBAL LibraryDir$ 'name of directory containing the library GLOBAL NewLIBName$ 'complete name (including path) of new library GLOBAL LIBName$ 'name of library to create or append GLOBAL LibraryExists AS BOOLEAN 'flag indicating whether library exists: TRUE-it exist; FALSE-it doesn't exist 'list of graphic file extensions GLOBAL PicFileExtension$(MAX_FILE_EXT) PicFileExtension$(1) = "*.*" PicFileExtension$(2) = "*.JPG" PicFileExtension$(3) = "*.BMP" PicFileExtension$(4) = "*.BMP" PicFileExtension$(5) = "*.PCX" PicFileExtension$(6) = "*.TGA" PicFileExtension$(7) = "*.SCT" PicFileExtension$(8) = "*.CPT" PicFileExtension$(9) = "*.TIF" PicFileExtension$(10) = "*.CPT" PicFileExtension$(11) = "*.ICO" PicFileExtension$(12) = "*.CUR" PicFileExtension$(13) = "*.EXE" PicFileExtension$(14) = "*.IMG" PicFileExtension$(15) = "*.PCD" PicFileExtension$(16) = "*.PP4" PicFileExtension$(17) = "*.PSD" PicFileExtension$(18) = "*.EPS" PicFileExtension$(19) = "*.MAC" PicFileExtension$(20) = "*.WVL" PicFileExtension$(21) = "*.CAL" PicFileExtension$(22) = "*.CAL" PicFileExtension$(23) = "*.GEM" PicFileExtension$(24) = "*.CMX" PicFileExtension$(25) = "*.CMX" PicFileExtension$(26) = "*.CGM" PicFileExtension$(27) = "*.DRW" PicFileExtension$(28) = "*.DXF" PicFileExtension$(29) = "*.PLT" PicFileExtension$(30) = "*.MET" PicFileExtension$(31) = "*.PCT" PicFileExtension$(32) = "*.AI" PicFileExtension$(33) = "*.WPG" PicFileExtension$(34) = "*.CMF" PicFileExtension$(35) = "*.WMF" PicFileExtension$(36) = "*.EMF" PicFileExtension$(37) = "*.PIC" PicFileExtension$(38) = "*.CCH" PicFileExtension$(39) = "*.CDR" PicFileExtension$(40) = "*.CMV" PicFileExtension$(41) = "*.MLB" 'list of text file extensions GLOBAL TextFileExtension$(MAX_FILE_EXT) TextFileExtension$(1) = "*.*" TextFileExtension$(2) = "*.GEN" TextFileExtension$(3) = "*.TXT" TextFileExtension$(4) = "*.TXT" TextFileExtension$(5) = "*.TXT" TextFileExtension$(6) = "*.PRN" TextFileExtension$(7) = "*.WP*" TextFileExtension$(8) = "*.WP*" TextFileExtension$(9) = "*.WP*" TextFileExtension$(10) = "*.WP*" TextFileExtension$(11) = "*.WP*" TextFileExtension$(12) = "*.WPM" TextFileExtension$(13) = "*.WPM" TextFileExtension$(14) = "*.WPM" TextFileExtension$(15) = "*.PM6" TextFileExtension$(16) = "*.MIF" TextFileExtension$(17) = "*.MIF" TextFileExtension$(18) = "*.MIF" TextFileExtension$(19) = "*.DOC" TextFileExtension$(20) = "*.DOC" TextFileExtension$(21) = "*.DOC" TextFileExtension$(22) = "*.DOC" TextFileExtension$(23) = "*.DOC" TextFileExtension$(24) = "*.DOC" TextFileExtension$(25) = "*.DOC" TextFileExtension$(26) = "*.DOC" TextFileExtension$(27) = "*.DOC" TextFileExtension$(28) = "*.RTF" TextFileExtension$(29) = "*.WS*" TextFileExtension$(30) = "*.WS*" TextFileExtension$(31) = "*.WS*" TextFileExtension$(32) = "*.WS*" TextFileExtension$(33) = "*.WS*" TextFileExtension$(34) = "*.WS*" TextFileExtension$(35) = "*.WS*" TextFileExtension$(36) = "*.WS*" TextFileExtension$(37) = "*.WS*" TextFileExtension$(38) = "*.LEG" TextFileExtension$(39) = "*.XY*" TextFileExtension$(40) = "*.XY*" TextFileExtension$(41) = "*.XY*" TextFileExtension$(42) = "*.SAM" TextFileExtension$(43) = "*.SAM" TextFileExtension$(44) = "*.XLS" TextFileExtension$(45) = "*.XLS" TextFileExtension$(46) = "*.WK" TextFileExtension$(47) = "*.WQ" TextFileExtension$(48) = "*.WB" '/////LOCAL DECLARATIONS////////////////////////////////////////////////////////////////// CONST MAXSTEP% = 7 'maximum number of pages in the Wizard DIM DialogReturn% 'identifies user's selection for next step in Wizard DIM NextStep% 'specifies which page appears next in the Wizard ' ************************************************************************************** ' MAIN ' ************************************************************************************** ON ERROR GOTO ErrorHandler RegQuery 'get root directory where Ventura is installed SourceDir$= VenturaRoot$ 'initialize source directory to Ventura root LibraryDir$ = VenturaRoot$ & "\Ventura\Library" 'initialize library directory to Ventura\Library directory FileExtVal% = 1 'initialize file extensions to first element in list (ie. all files *.* ) 'this section controls traversal through the Wizard pages NextStep% = 1 DO SELECT CASE NextStep% CASE 1: DialogReturn% = ShowIntro() 'display introduction dialog CASE 2: DialogReturn% = GetFileType() 'display file type dialog and get file type (ie Picture, Text, Style Sheet) CASE 3: DialogReturn% = GetSourceDir() 'display source directory dialog and prompt user for source dir CASE 4: DialogReturn% = ShowFileList() 'display list of avaialable files for user selection CASE 5: DialogReturn% = GetLIBName() 'display lib name dialog and get name of library to be used CASE 6: DialogReturn% = ShowFinish() 'display finish dialog CASE 7: DialogReturn% = ShowSummary() 'display summary dialog recapping results of library creation END SELECT NextStep% = NextStep% + DialogReturn% LOOP UNTIL NextStep% = MAXSTEP + 1 ExitScript: STOP ErrorHandler: SELECT CASE ErrNum CASE 800 MESSAGE "FATAL ERROR" & CHR(13) & "Script will now exit." RESUME AT ExitScript CASE ELSE MESSAGE "ERROR: " & STR(ErrNum) & CHR(13) & "Script will now exit." RESUME AT ExitScript END SELECT ' ******************************************************************************* ' RegQuery ' This subroutine queries the Registry to determine the root directory where ' Ventura is installed. ' ******************************************************************************* SUB RegQuery ON ERROR GOTO ErrorHandler 'get Ventura config directory VentDir$ = REGISTRYQUERY(HKEY_LOCAL_MACHINE,VENTURA_REGQUERY_CONST,"ConfigDir") 'isolate Ventura root directory from Ventura config directory first% = 1 pos% = 1 DO WHILE first <> 0 first = INSTR(VentDir$, "\", first ) IF first <> 0 THEN pos = first first = first + 1 END IF LOOP VenturaRoot$ = LEFT(VentDir$, pos - 1) 'root directory where Ventura is installed EXIT SUB ErrorHandler: MESSAGE "Error reading registry:" & CHR(13) & RegString$ ErrNum = 800 END SUB ' ******************************************************************************* ' ShowIntro ' This function displays the introduction dialog. ' ' PARAMS: None ' ' RETURNS: ShowIntro AS INTEGER - Integer indicating dialog return value. ' ******************************************************************************* FUNCTION ShowIntro% BEGIN DIALOG OBJECT IntroDialog 290, 180, "Corel VENTURA Library Wizard", SUB IntroDialogEventHandler PUSHBUTTON 181, 160, 46, 14, .NextButton, "&Next >" CANCELBUTTON 234, 160, 46, 14, .CancelButton PUSHBUTTON 135, 160, 46, 14, .BackButton, "< &Back" 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." TEXT 95, 100, 185, 12, .Text3, "To begin creating your new library, click Next." IMAGE 10, 10, 75, 130, .IntroImage GROUPBOX 10, 150, 270, 5, .LineGroupBox TEXT 95, 40, 185, 18, .Text4, "You can use picture files, text files, or previous version style sheets." 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." END DIALOG IntroDialog.SetStyle STYLE_INVISIBLE IntroDialog.IntroImage.SetImage "#IntroBMP" IntroDialog.IntroImage.SetStyle STYLE_IMAGE_CENTERED IntroRet%=DIALOG(IntroDialog) IF IntroRet% = DIALOG_RETURN_CANCEL THEN STOP IF IntroRet% = DIALOG_RETURN_NEXT THEN ShowIntro = 1 END FUNCTION ' ******************************************************************************* ' IntroDialogEventHandler ' This subroutine responds to user interface with the introduction dialog. ' ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is ' generating a dialog event. ' BYVAL Event% - Integer indicating the dialog event that has occurred. ' ******************************************************************************* SUB IntroDialogEventHandler(BYVAL ControlID%, BYVAL Event%) IF Event% = EVENT_INITIALIZATION THEN IntroDialog.BackButton.Enable FALSE IntroDialog.SetStyle STYLE_VISIBLE ENDIF IF Event% = EVENT_MOUSE_CLICK THEN SELECT CASE ControlID% CASE IntroDialog.NextButton.GetID() IntroDialog.CloseDialog DIALOG_RETURN_NEXT CASE IntroDialog.CancelButton.GetID() IntroDialog.CloseDialog DIALOG_RETURN_CANCEL END SELECT ENDIF END SUB ' ******************************************************************************* ' GetFileType ' This function prompts the user for the type of file to use (Picture, Text, ' or Style sheet). ' ' PARAMS: None ' ' RETURNS: GetFileType AS INTEGER - Integer indicating dialog return value. ' ******************************************************************************* FUNCTION GetFileType% BEGIN DIALOG OBJECT GetFileTypeDialog 290, 180, "Corel VENTURA Library Wizard", SUB GetFileTypeDialogEventHandler PUSHBUTTON 181, 160, 46, 14, .NextButton, "&Next >" CANCELBUTTON 234, 160, 46, 14, .CancelButton PUSHBUTTON 135, 160, 46, 14, .BackButton, "< &Back" IMAGE 10, 10, 75, 130, .GetFileTypeImage GROUPBOX 10, 150, 270, 5, .LineGroupBox OPTIONGROUP .FileTypeOptionGroup OPTIONBUTTON 110, 35, 150, 12, .PictureFilesOption, "&Picture files" OPTIONBUTTON 110, 55, 150, 12, .TextFilesOption, "&Text files" OPTIONBUTTON 110, 75, 150, 12, .StyleSheetOption, "&Style sheets" TEXT 95, 10, 185, 12, .Text4, "Select the type of file you wish to use." TEXT 95, 128, 185, 12, .StatusText, "" END DIALOG GetFileTypeDialog.SetStyle STYLE_INVISIBLE GetFileTypeDialog.GetFileTypeImage.SetImage "#Step2BMP" GetFileTypeDialog.GetFileTypeImage.SetStyle STYLE_IMAGE_CENTERED GetFileTypeDialog.StatusText.SetStyle STYLE_SUNKEN GetFileTypeRet%=DIALOG(GetFileTypeDialog) SELECT CASE GetFileTypeRet% CASE DIALOG_RETURN_CANCEL STOP CASE DIALOG_RETURN_NEXT FileType& = GetFileTypeDialog.FileTypeOptionGroup.GetValue() GetFileType = 1 CASE DIALOG_RETURN_BACK GetFileType = -1 END SELECT END FUNCTION ' ******************************************************************************* ' GetFileTypeDialogEventHandler ' This subroutine responds to user interface with the file type dialog. ' ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is ' generating a dialog event. ' BYVAL Event% - Integer indicating the dialog event that has occurred. ' ******************************************************************************* SUB GetFileTypeDialogEventHandler(BYVAL ControlID%, BYVAL Event%) IF Event% = EVENT_INITIALIZATION THEN FileType& = GetFileTypeDialog.FileTypeOptionGroup.GetValue() SELECT CASE FileType& CASE PICTURE_FILES GetFileTypeDialog.StatusText.SetText "Picture files in any format supported by Corel VENTURA 8" CASE TEXT_FILES GetFileTypeDialog.StatusText.SetText "Text files in any format supported by Corel VENTURA 8" CASE STYLE_SHEETS GetFileTypeDialog.StatusText.SetText "VENTURA previous version style sheets(3.x, 4.x, 5.x)" END SELECT GetFileTypeDialog.SetStyle STYLE_VISIBLE ENDIF IF Event% = EVENT_MOUSE_CLICK THEN SELECT CASE ControlID% CASE GetFileTypeDialog.NextButton.GetID() GetFileTypeDialog.CloseDialog DIALOG_RETURN_NEXT CASE GetFileTypeDialog.BackButton.GetID() GetFileTypeDialog.CloseDialog DIALOG_RETURN_BACK CASE GetFileTypeDialog.CancelButton.GetID() GetFileTypeDialog.CloseDialog DIALOG_RETURN_CANCEL CASE GetFileTypeDialog.PictureFilesOption.GetID() GetFileTypeDialog.StatusText.SetText "Picture files in any format supported by Corel VENTURA 8" CASE GetFileTypeDialog.TextFilesOption.GetID() GetFileTypeDialog.StatusText.SetText "Text files in any format supported by Corel VENTURA 8" CASE GetFileTypeDialog.StyleSheetOption.GetID() GetFileTypeDialog.StatusText.SetText "VENTURA previous version style sheets (3.x, 4.x, 5.x)" END SELECT ENDIF END SUB ' ******************************************************************************* ' GetSourceDir ' This function prompts the user for the directory at which to begin the search ' for files, as well as the type of file (ie. file extension) to use. ' ' PARAMS: None ' RETURNS: GetSourceDir AS INTEGER - Integer indicating dialog return value. ' ' COMMENTS: A valid souce directory is required to continue to next dialog. ' ******************************************************************************* FUNCTION GetSourceDir 'list of picture file types used by drop-down list box GLOBAL PictureFile$(MAX_FILE_EXT) PictureFile$(1) = "All Files" PictureFile$(2) = "JPEG Bitmaps (JPG)" PictureFile$(3) = "Windows Bitmap (BMP)" PictureFile$(4) = "OS/2 Bitmap (BMP)" PictureFile$(5) = "PaintBrush (PCX)" PictureFile$(6) = "Targa Bitmap (TGA)" PictureFile$(7) = "Scitex CT Bitmap (SCT)" PictureFile$(8) = "CompuServe Bitmap (CPT)" PictureFile$(9) = "TIFF Bitmap (TIF)" PictureFile$(10) = "Corel PHOTO-PAINT Image (CPT)" PictureFile$(11) = "Windows 3.x/NT Icon Resource (ICO)" PictureFile$(12) = "Windows 3.x/NT Cursor Resource (CUR)" PictureFile$(13) = "Windows 3.x/NT Bitmap Resource (EXE)" PictureFile$(14) = "GEM Paint File (IMG)" PictureFile$(15) = "Kodak Photo-CD Image (PCD)" PictureFile$(16) = "Picture Publisher 4 (PP4)" PictureFile$(17) = "Adobe Photoshop (PSD)" PictureFile$(18) = "Encapsulated PostScript (EPS)" PictureFile$(19) = "MACPaint Bitmap (MAC)" PictureFile$(20) = "Wavelet Compressed Bitmap (WVL)" PictureFile$(21) = "CALS Compressed Bitmap (CAL)" PictureFile$(22) = "Postscript Interpreted (CAL)" PictureFile$(23) = "GEM File (GEM)" PictureFile$(24) = "Corel Presentation Exchange 6.0 (CMX)" PictureFile$(25) = "Corel Presentation Exchange 5.0 (CMX)" PictureFile$(26) = "Computer Graphics Metafile (CGM)" PictureFile$(27) = "Micrografx 2.x, 3.x (DRW)" PictureFile$(28) = "AutoCAD (DXF)" PictureFile$(29) = "HPGL Plotter File (PLT)" PictureFile$(30) = "OS/2 PM MetaFile (MET)" PictureFile$(31) = "Macintosh PICT (PCT)" PictureFile$(32) = "Adobe Illustrator (AI)" PictureFile$(33) = "Corel WordPerfect Graphic (WPG)" PictureFile$(34) = "Corel Metafile (CMF)" PictureFile$(35) = "Windows Metafile (WMF)" PictureFile$(36) = "Enhanced Windows Metafile (EMF)" PictureFile$(37) = "Lotus Pic (PIC)" PictureFile$(38) = "CorelCHART (CCH)" PictureFile$(39) = "CorelDRAW (CDR)" PictureFile$(40) = "CorelMOVE (CMV)" PictureFile$(41) = "CorelMOVE (MLB)" 'list of text file types used by drop-down list box GLOBAL TextFile$(MAX_FILE_EXT) TextFile$(1) = "All Files" TextFile$(2) = "VENTURA Generated File (GEN)" TextFile$(3) = "ANSI Text (TXT)" TextFile$(4) = "ASCII Text (TXT)" TextFile$(5) = "ASCII 8-bit Text (TXT)" TextFile$(6) = "Lotus/Excel Print Table (PRN)" TextFile$(7) = "Corel WordPerfect 7.0 (WP*)" TextFile$(8) = "Corel WordPerfect 6.x, 7.0 (WP*)" TextFile$(9) = "Corel WordPerfect 5.1, 5.2 (WP*)" TextFile$(10) = "Corel WordPerfect 5.0 (WP*)" TextFile$(11) = "Corel WordPerfect 4.2 (WP*)" TextFile$(12) = "Corel WordPerfect 3.x for Macintosh (WPM)" TextFile$(13) = "Corel WordPerfect 2.x for Macintosh (WPM)" TextFile$(14) = "Corel WordPerfect 3.x for Macintosh (WPM)" TextFile$(15) = "PageMaker 6.0 (Text Only) (PM6)" TextFile$(16) = "FrameMaker 3.0 (MIF)" TextFile$(17) = "FrameMaker 4.0 (MIF)" TextFile$(18) = "FrameMaker 5.0 (MIF)" TextFile$(19) = "MS Word for Windows 6.0, 7.0 (DOC)" TextFile$(20) = "MS Word for Windows 1.x (DOC)" TextFile$(21) = "MS Word for Windows 2.x (DOC)" TextFile$(22) = "MS Word 3.x (DOC)" TextFile$(23) = "MS Word 4.x (DOC)" TextFile$(24) = "MS Word 5.0, 5.5 (DOC)" TextFile$(25) = "MS Word for Mactinosh 3.0 (DOC)" TextFile$(26) = "MS Word for Mactinosh 4.0 (DOC)" TextFile$(27) = "MS Word for Mactinosh 5.0 (DOC)" TextFile$(28) = "Rich Text Format (RTF)" TextFile$(29) = "WordStar for Windows 1.x (WS*)" TextFile$(30) = "WordStar for Windows 2.0 (WS*)" TextFile$(31) = "WordStar 7.0 (WS*)" TextFile$(32) = "WordStar 6.0 (WS*)" TextFile$(33) = "WordStar 5.0, 5.5 (WS*)" TextFile$(34) = "WordStar 4.0 (WS*)" TextFile$(35) = "WordStar 3.45 (WS*)" TextFile$(36) = "WordStar 3.3, 3.31 (WS*)" TextFile$(37) = "WordStar 2000 (WS*)" TextFile$(38) = "Legacy 1.0, 2.0 (LEG)" TextFile$(39) = "XYWrite III (XY*)" TextFile$(40) = "XYWrite III Plus (XY*)" TextFile$(41) = "XYWrite IV,XYWrite for Windows 1.0 (XY*)" TextFile$(42) = "AmiProfessional 1.1, 1.2 (SAM)" TextFile$(43) = "AmiProfessional 2.0, 3.0 (SAM)" TextFile$(44) = "Microsoft Excel 1.0, 3.0, 4.0 (XLS)" TextFile$(45) = "Microsoft Excel 5.0 (XLS)" TextFile$(46) = "LOTUS 1-2-3 (WK)" TextFile$(47) = "Corel Quattro Pro (WQ)" TextFile$(48) = "Corel Quattro Pro (WB)" 'list of style sheet types used by drop-down list box ' -this needs to be an array in order to accomodate the list box control GLOBAL StyleSheet$(1) StyleSheet$(1) = "VENTURA Style Sheet (*.STY)" BEGIN DIALOG OBJECT SourceDialog 290, 180, "Corel VENTURA Library Wizard", SUB SourceDialogEventHandler TEXTBOX 100, 47, 175, 13, .SourceDirectory PUSHBUTTON 229, 66, 46, 14, .BrowseButton, "B&rowse..." DDLISTBOX 130, 98, 150, 48, .FileExListBox PUSHBUTTON 135, 160, 46, 14, .BackButton, "< &Back" PUSHBUTTON 181, 160, 46, 14, .NextButton, "&Next >" CANCELBUTTON 234, 160, 46, 14, .CancelButton TEXT 95, 10, 185, 20, .Text1, "Enter the location and the extension of the files you wish to use." TEXT 94, 100, 35, 10, .Text2, "Extension:" IMAGE 10, 10, 75, 130, .SourceImage GROUPBOX 10, 150, 270, 5, .LineGroupBox GROUPBOX 95, 34, 185, 52, .GroupBox3, "Location of files:" END DIALOG SourceDialog.SetStyle STYLE_INVISIBLE SourceDialog.SourceImage.SetImage "#Step3BMP" SourceDialog.SourceImage.SetStyle STYLE_IMAGE_CENTERED SourceRet%=DIALOG(SourceDialog) SELECT CASE SourceRet% CASE DIALOG_RETURN_CANCEL STOP CASE DIALOG_RETURN_NEXT SELECT CASE FileType& CASE PICTURE_FILES FileExt$ = PicFileExtension$(FileExtVal%) CASE TEXT_FILES FileExt$ = TextFileExtension$(FileExtVal%) CASE STYLE_SHEETS FileExt$ = "*.STY" END SELECT GetSourceDir = 1 CASE DIALOG_RETURN_BACK GetSourceDir = -1 END SELECT END FUNCTION ' ******************************************************************************* ' SourceDialogEventHandler ' This subroutine responds to user interface with the source directory dialog. ' ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is ' generating a dialog event. ' BYVAL Event% - Integer indicating the dialog event that has occurred. ' ******************************************************************************* SUB SourceDialogEventHandler(BYVAL ControlID%, BYVAL Event%) IF Event% = EVENT_INITIALIZATION THEN SourceDialog.SetStyle STYLE_VISIBLE SourceDialog.SourceDirectory.SetText SourceDir$ SELECT CASE FileType& CASE PICTURE_FILES SourceDialog.FileExListBox.SetArray PictureFile$ SourceDialog.FileExListBox.SetSelect FileExtVal% CASE TEXT_FILES SourceDialog.FileExListBox.SetArray TextFile$ SourceDialog.FileExListBox.SetSelect FileExtVal% CASE STYLE_SHEETS SourceDialog.FileExListBox.SetArray StyleSheet$ SourceDialog.FileExListBox.SetSelect 1 END SELECT ENDIF IF Event% = EVENT_CHANGE_IN_CONTENT THEN SELECT CASE ControlID% CASE SourceDialog.SourceDirectory.GetID() SourceDir$ = SourceDialog.SourceDirectory.GetText() END SELECT ENDIF IF Event% = EVENT_MOUSE_CLICK THEN SELECT CASE ControlID% CASE SourceDialog.NextButton.GetID() 'ensure SourceDir ends in a backslash IF INSTR(SourceDir$, "\", LEN(SourceDir$)) = 0 THEN SourceDir$ = SourceDir$ & "\" ENDIF SourceDialog.closedialog DIALOG_RETURN_NEXT CASE SourceDialog.BackButton.GetID() SourceDialog.closedialog DIALOG_RETURN_BACK CASE SourceDialog.CancelButton.GetID() SourceDialog.closedialog DIALOG_RETURN_CANCEL CASE SourceDialog.BrowseButton.GetID() NewSourceDir$ = GETFOLDER(SourceDir$) IF NewSourceDir$ <> "" THEN SourceDir$ = NewSourceDir$ ENDIF SourceDialog.SourceDirectory.SetText SourceDir$ CASE SourceDialog.FileExListBox.GetID() FileExtVal% = SourceDialog.FileExListBox.GetSelect() END SELECT ENDIF IF SourceDir$ = "" THEN SourceDialog.NextButton.Enable FALSE ELSE SourceDialog.NextButton.Enable TRUE ENDIF END SUB ' ******************************************************************************* ' ShowFileList ' This function displays a list of available files of the specified type starting ' at the specified location. ' ' PARAMS: None ' ' RETURNS: ShowFileList AS INTEGER - Integer indicating dialog return value. ' ******************************************************************************* FUNCTION ShowFileList BEGIN DIALOG OBJECT ShowFileListDialog 290, 180, "Corel VENTURA Library Wizard", SUB FileListDialogEventHandler LISTBOX 10, 25, 100, 107, .FileListBox PUSHBUTTON 122, 33, 46, 14, .SelectButton, "&Select >>" PUSHBUTTON 122, 49, 46, 14, .DeselectButton, "<< &Deselect" PUSHBUTTON 123, 95, 46, 14, .SelectAllButton, "Select &All" PUSHBUTTON 123, 112, 46, 14, .DeselectAllButton, "D&eselect All" LISTBOX 180, 25, 100, 107, .SelectedFileListBox PUSHBUTTON 135, 160, 46, 14, .BackButton, "< &Back" PUSHBUTTON 181, 160, 46, 14, .NextButton, "&Next >" CANCELBUTTON 234, 160, 46, 14, .CancelButton TEXT 10, 2, 269, 11, .Text2, "Select the files you wish to include in your library." TEXT 10, 14, 56, 10, .Text4, "Available files:" TEXT 88, 14, 20, 10, .FilesCountText, "" TEXT 180, 14, 61, 10, .Text5, "Selected files:" TEXT 258, 14, 20, 10, .SelectedFilesCountText, "" TEXT 10, 136, 270, 12, .StatusText, "No files selected" LISTBOX 10, 25, 100, 107, .DirectoryListBox LISTBOX 180, 25, 100, 107, .SelectedDirectoryListBox GROUPBOX 10, 150, 270, 5, .LineGroupBox END DIALOG ShowFileListDialog.SetStyle STYLE_INVISIBLE ShowFileListDialog.StatusText.SetStyle STYLE_SUNKEN ShowFileListRet% = DIALOG(ShowFileListDialog) SELECT CASE ShowFileListRet% CASE DIALOG_RETURN_CANCEL STOP CASE DIALOG_RETURN_NEXT ShowFileList = 1 CASE DIALOG_RETURN_BACK ShowFileList = -1 END SELECT END FUNCTION ' ******************************************************************************* ' FileListDialogEventHandler ' This subroutine responds to user interface with the file list dialog. ' ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is ' generating a dialog event. ' BYVAL Event% - Integer indicating the dialog event that has occurred. ' ******************************************************************************* SUB FileListDialogEventHandler(BYVAL ControlID%, BYVAL Event%) IF Event% = EVENT_INITIALIZATION THEN ShowFileListDialog.DirectoryListBox.SetStyle STYLE_INVISIBLE 'hide directory list box (for tracking files - user doesn't need to see this) ShowFileListDialog.SelectedDirectoryListBox.SetStyle STYLE_INVISIBLE 'hide selected directory list box (for tracking files - user doesn't need to see this) ShowFileListDialog.FilesCountText.SetStyle STYLE_RIGHT_JUSTIFY 'right justify text displaying file count ShowFileListDialog.SelectedFilesCountText.SetStyle STYLE_RIGHT_JUSTIFY 'right justify text displaying selected files count 'disable NEXT button until file(s) have been selected IF ShowFileListDialog.SelectedFileListBox.GetItemCount() = 0 THEN ShowFileListDialog.NextButton.Enable FALSE ELSE ShowFileListDialog.NextButton.Enable TRUE ENDIF 'IF files have already been selected, display same list IF SelectedFilesCount > 0 THEN ShowFileListDialog.FileListBox.SetArray AvailableFiles$ 'display available files list in Available Files listbox ShowFileListDialog.DirectoryListBox.SetArray AvailableDirs$ 'display available dirs list in Avaialable Dirs listbox ShowFileListDialog.SelectedFileListBox.SetArray SelectedFiles$ 'display selected files list in Selected Files listbox ShowFileListDialog.SelectedDirectoryListBox.SetArray SelectedDirs$ 'display selected dirs list in Selected Dirs listbox 'get and display list of files (with extension FileExt$) starting in Source directory ELSE GetFileList SourceDir$, FileExt$ 'get file list ShowFileListDialog.FileListBox.SetSelect 1 'give focus to first element in file list box ShowFileListDialog.StatusText.SetText ShowFileListDialog.DirectoryListBox.GetItem(1) 'set status text to first item in file list ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount() 'set file count to number of available files ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount() 'set selected files count to number of selected files ENDIF ShowFileListDialog.SetStyle STYLE_VISIBLE ENDIF IF Event% = EVENT_MOUSE_CLICK THEN SELECT CASE ControlID% CASE ShowFileListDialog.NextButton.GetID() 'create list of selected files and directories SelectedFilesCount% = ShowFileListDialog.SelectedFileListBox.GetItemCount() REDIM SelectedFiles$(SelectedFilesCount%) 'redimension array to accomodate all selected files REDIM SelectedDirs$(SelectedFilesCount%) 'redimension array to accomodate all selected directories FOR i% = 1 TO SelectedFilesCount% 'FOR all items in selected files list SelectedFiles$(i%) = ShowFileListDialog.SelectedFileListBox.GetItem(i%) 'add item to file list SelectedDirs$(i%) = ShowFileListDialog.SelectedDirectoryListBox.GetItem(i%)'add item to directory list NEXT i% 'create list of available files and directories AvailableFilesCount% = ShowFileListDialog.FileListBox.GetItemCount() REDIM AvailableFiles$(AvailableFilesCount) 'redimension array to accomodate all available files REDIM AvailableDirs$(AvailableFilesCount) 'redimension array to accomodate all available directories FOR i% = 1 TO AvailableFilesCount% 'FOR all items in avialable files list AvailableFiles$(i%) = ShowFileListDialog.FileListBox.GetItem(i%) 'add item to file list AvailableDirs$(i%) = ShowFileListDialog.DirectoryListBox.GetItem(i%) 'add item to directory list NEXT i% ShowFileListDialog.closedialog DIALOG_RETURN_NEXT CASE ShowFileListDialog.BackButton.GetID() ShowFileListDialog.closedialog DIALOG_RETURN_BACK CASE ShowFileListDialog.SelectButton.GetID() indx% = ShowFileListDialog.FileListBox.GetSelect() 'get index of current selection IF indx%=0 THEN 'no files selected, display appropriate message IF ShowFileListDialog.FileListBox.GetItemCount() = 0 THEN MESSAGE "There are no files available for selection." ELSE MESSAGE "Please select a file from the available files list." ENDIF ELSE 'valid selection, add current selection to selected files list ShowFileListDialog.SelectedFileListBox.AddItem ShowFileListDialog.FileListBox.GetItem(indx%) 'add current selection to selected files list ShowFileListDialog.FileListBox.RemoveItem indx% 'remove current selection from available files list ShowFileListDialog.SelectedDirectoryListBox.AddItem ShowFileListDialog.DirectoryListBox.GetItem(indx%) 'add current selection to selected directory list ShowFileListDialog.DirectoryListBox.RemoveItem indx% 'remove current selection from available directory list IF indx% > ShowFileListDialog.FileListBox.GetItemCount() THEN 'IF current selection is not the last ShowFileListDialog.FileListBox.SetSelect indx%-1 'set focus to previous item ELSE ShowFileListDialog.FileListBox.SetSelect indx% 'ELSE set focus to current selection ENDIF ShowFileListDialog.StatusText.SetText ShowFileListDialog.DirectoryListBox.GetItem(ShowFileListDialog.FileListBox.GetSelect()) ShowFileListDialog.SelectedFileListBox.SetSelect 0 ENDIF CASE ShowFileListDialog.DeselectButton.GetID() indx% = ShowFileListDialog.SelectedFileListBox.GetSelect() 'get index of current selection IF indx%=0 THEN 'no files selected, display appropriate message IF ShowFileListDialog.SelectedFileListBox.GetItemCount() = 0 THEN MESSAGE "There are no files available for deselection" ELSE MESSAGE "Please select a file from the selected files list." ENDIF ELSE 'valid selection, remove current selection from selected files list ShowFileListDialog.FileListBox.AddItem ShowFileListDialog.SelectedFileListBox.GetItem(indx%) 'add current selection to available files list ShowFileListDialog.SelectedFileListBox.RemoveItem indx% 'remove current selection from selected files list ShowFileListDialog.DirectoryListBox.AddItem ShowFileListDialog.SelectedDirectoryListBox.GetItem(indx%) 'add current selection to available directory list ShowFileListDialog.SelectedDirectoryListBox.RemoveItem indx% 'remove current selection from selected directory list IF indx% > ShowFileListDialog.SelectedFileListBox.GetItemCount() THEN 'IF current selection is not the last ShowFileListDialog.SelectedFileListBox.SetSelect indx%-1 'set focus to previous item ELSE ShowFileListDialog.SelectedFileListBox.SetSelect indx% 'ELSE set focus to current selection ENDIF ShowFileListDialog.StatusText.SetText ShowFileListDialog.SelectedDirectoryListBox.GetItem(ShowFileListDialog.SelectedFileListBox.GetSelect()) ShowFileListDialog.FileListBox.SetSelect 0 ENDIF CASE ShowFileListDialog.SelectAllButton.GetID() ShowFileListDialog.StatusText.SetText "All files selected." ShowFileListDialog.SelectedFileListBox.SetSelect 0 WHILE ShowFileListDialog.FileListBox.GetItemCount() > 0 'repeat while there are available files ShowFileListDialog.SelectedFileListBox.AddItem ShowFileListDialog.FileListBox.GetItem(1) 'add first list item to selected files list ShowFileListDialog.FileListBox.RemoveItem 1 'remove first list item from available files list ShowFileListDialog.SelectedDirectoryListBox.AddItem ShowFileListDialog.DirectoryListBox.GetItem(1) 'add first list item to selected directory list ShowFileListDialog.DirectoryListBox.RemoveItem 1 'remove first list item from available directory list ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount() 'display number of available files ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount() 'display number of selected files WEND CASE ShowFileListDialog.DeselectAllButton.GetID() ShowFileListDialog.StatusText.SetText "No files selected." ShowFileListDialog.FileListBox.SetSelect 0 WHILE ShowFileListDialog.SelectedFileListBox.GetItemCount() > 0 'repeat while there are selected files ShowFileListDialog.FileListBox.AddItem ShowFileListDialog.SelectedFileListBox.GetItem(1) 'add first list item to FilesList ShowFileListDialog.SelectedFileListBox.RemoveItem 1 'remove first list item from selected files list ShowFileListDialog.DirectoryListBox.AddItem ShowFileListDialog.SelectedDirectoryListBox.GetItem(1) 'add first list item to available directory list ShowFileListDialog.SelectedDirectoryListBox.RemoveItem 1 'remove first list item from selected directory list ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount() 'display number of available files ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount() 'display number of selected files WEND CASE ShowFileListDialog.CancelButton.GetID() ShowFileListDialog.closedialog DIALOG_RETURN_CANCEL CASE ShowFileListDialog.FileListBox.GetID() ShowFileListDialog.StatusText.SetText ShowFileListDialog.DirectoryListBox.GetItem(ShowFileListDialog.FileListBox.GetSelect()) ShowFileListDialog.SelectedFileListBox.SetSelect 0 CASE ShowFileListDialog.SelectedFileListBox.GetID() ShowFileListDialog.StatusText.SetText ShowFileListDialog.SelectedDirectoryListBox.GetItem(ShowFileListDialog.SelectedFileListBox.GetSelect()) ShowFileListDialog.FileListBox.SetSelect 0 END SELECT ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount() 'display number of available files ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount() 'display number of selected files ENDIF IF Event% = EVENT_DBL_MOUSE_CLICK THEN SELECT CASE ControlID% CASE ShowFileListDialog.FileListBox.GetID() 'files list indx% = ShowFileListDialog.FileListBox.GetSelect() 'get index of selection ShowFileListDialog.SelectedFileListBox.AddItem ShowFileListDialog.FileListBox.GetItem(indx%) 'add selection to SelectedFilesList ShowFileListDialog.FileListBox.RemoveItem indx% 'remove selection from available files list ShowFileListDialog.SelectedDirectoryListBox.AddItem ShowFileListDialog.DirectoryListBox.GetItem(indx%) 'add selection to selected path list ShowFileListDialog.DirectoryListBox.RemoveItem indx% 'remove selection from available paths list IF indx% > ShowFileListDialog.FileListBox.GetItemCount() THEN ShowFileListDialog.FileListBox.SetSelect indx%-1 ELSE ShowFileListDialog.FileListBox.SetSelect indx% ENDIF CASE ShowFileListDialog.SelectedFileListBox.GetID() 'selected files list indx% = ShowFileListDialog.SelectedFileListBox.GetSelect() 'get index of selection ShowFileListDialog.FileListBox.AddItem ShowFileListDialog.SelectedFileListBox.GetItem(indx%) 'add selection to FilesList ShowFileListDialog.SelectedFileListBox.RemoveItem indx% 'remove selection from selected files list ShowFileListDialog.DirectoryListBox.AddItem ShowFileListDialog.SelectedDirectoryListBox.GetItem(indx%) 'add selection to available path list ShowFileListDialog.SelectedDirectoryListBox.RemoveItem indx% 'remove selection from selected path list IF indx% > ShowFileListDialog.SelectedFileListBox.GetItemCount() THEN ShowFileListDialog.SelectedFileListBox.SetSelect indx%-1 ELSE ShowFileListDialog.SelectedFileListBox.SetSelect indx% ENDIF END SELECT ShowFileListDialog.FilesCountText.SetText ShowFileListDialog.FileListBox.GetItemCount() 'number of available files ShowFileListDialog.SelectedFilesCountText.SetText ShowFileListDialog.SelectedFileListBox.GetItemCount() 'number of selected files ENDIF IF ShowFileListDialog.SelectedFileListBox.GetItemCount() = 0 THEN ShowFileListDialog.NextButton.Enable FALSE ELSE ShowFileListDialog.NextButton.Enable TRUE ENDIF END SUB ' ******************************************************************************* ' GetFileList ' This subroutine recursively searches for files of the specified type, starting ' in the specified directory (SourceDir). The found files are displayed in the ' File List dialog (files and paths separately). ' ' PARAMS: BYVAL SourceDir$ - The directory at which to begin the search. ' FileExt$ - The type of file (extension) for which to search. ' ******************************************************************************* SUB GetFileList(BYVAL SourceDir$, FileExt$) 'This section finds files of the type specified by FileExt in the directory specified by SourceDir 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) DO WHILE File$ <> "" ShowFileListDialog.FileListBox.AddItem File$ 'add file name to File drop-down list ShowFileListDialog.DirectoryListBox.AddItem SourceDir$ 'add file dir to Directory drop-down list File$ = FINDNEXTFOLDER() LOOP 'This section finds directories starting in the directory specified by SourceDir 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) DO WHILE File$ <> "" IF File$ <> "." AND File$ <> ".." AND File$ <> SourceDir$ THEN GetFileList SourceDir$ & File$ & "\", FileExt$ ' This next loop resets the FINDNEXTFOLDER function to the same place as it was before ' we recursed into ourselves. 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) DO WHILE File$ <> SearchFile$ SearchFile$ = FINDNEXTFOLDER() LOOP ENDIF File$ = FINDNEXTFOLDER() LOOP END SUB ' ******************************************************************************* ' GetLIBName ' This function prompts the user for the name of the new Library. ' ' RETURNS: GetLIBName AS INTEGER - Integer indicating dialog return value. ' ******************************************************************************* FUNCTION GetLIBName% BEGIN DIALOG OBJECT GetLIBNameDialog 290, 180, "Corel VENTURA Library Wizard", SUB GetLIBNameDialogEventHandler TEXTBOX 95, 25, 185, 13, .LibNameTextBox TEXTBOX 95, 95, 185, 13, .LibDirTextBox PUSHBUTTON 234, 112, 46, 14, .BrowseButton, "&Browse..." PUSHBUTTON 135, 160, 46, 14, .BackButton, "< &Back" PUSHBUTTON 181, 160, 46, 14, .NextButton, "&Next >" CANCELBUTTON 234, 160, 46, 14, .CancelButton TEXT 95, 10, 185, 12, .Text1, "What would you like to call your new Library?" TEXT 95, 80, 175, 12, .Text2, "Where would you like to put your library?" IMAGE 10, 10, 75, 130, .GetLIBNameImage GROUPBOX 10, 150, 270, 5, .LineGroupBox END DIALOG GetLIBNameDialog.SetStyle STYLE_INVISIBLE GetLIBNameDialog.GetLIBNameImage.SetImage "#Step2BMP" GetLIBNameDialog.GetLIBNameImage.SetStyle STYLE_IMAGE_CENTERED GetLIBNameRet% = Dialog(GetLIBNameDialog) SELECT CASE GetLIBNameRet% CASE DIALOG_RETURN_CANCEL STOP CASE DIALOG_RETURN_NEXT GetLIBName = 1 CASE DIALOG_RETURN_BACK GetLIBName = -1 END SELECT END FUNCTION ' ******************************************************************************* ' GetLIBNameDialogEventHandler ' This subroutine responds to user interface with the library name dialog. ' ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is ' generating a dialog event. ' BYVAL Event% - Integer indicating the dialog event that has occurred. ' ******************************************************************************* SUB GetLIBNameDialogEventHandler(BYVAL ControlID%, BYVAL Event%) ON ERROR RESUME NEXT IF Event% = EVENT_INITIALIZATION THEN GetLIBNameDialog.LibNameTextBox.SetText NewLIBName$ GetLIBNameDialog.LibDirTextBox.SetText LibraryDir$ IF NewLIBName$ = "" THEN GetLIBNameDialog.NextButton.Enable FALSE ELSE GetLIBNameDialog.NextButton.Enable TRUE ENDIF GetLIBNameDialog.SetStyle STYLE_VISIBLE ENDIF IF Event% = EVENT_CHANGE_IN_CONTENT THEN SELECT CASE ControlID% CASE GetLIBNameDialog.LibNameTextBox.GetID() NewLIBName$ = GetLIBNameDialog.LibNameTextBox.gettext() IF NewLIBName$ = "" THEN GetLIBNameDialog.NextButton.Enable FALSE ELSE GetLIBNameDialog.NextButton.Enable TRUE ENDIF CASE GetLIBNameDialog.LibDirTextBox.GetID() LibraryDir$ = GetLIBNameDialog.LibDirTextBox.gettext() END SELECT ENDIF IF Event% = EVENT_MOUSE_CLICK THEN SELECT CASE ControlID% CASE GetLIBNameDialog.NextButton.GetID() IF INSTR(NewLIBName$ , "vlb") = 0 THEN NewLIBName$ = NewLIBName$ & ".vlb" LIBName$ = LibraryDir$ & "\" & NewLIBName$ LibraryExists = DoesFileExist(LIBName$) IF LibraryExists = TRUE THEN 'library already exists, warn user LibraryMsg$= LIBName$ & CHR(13) & "already exists." & CHR(13) + CHR(13) & "Continue anyway?" MsgVal% = MESSAGEBOX(LibraryMsg$, "WARNING", 4 OR 16) IF MsgVal% = MSG_YES THEN 'yes, overwrite library GetLIBNameDialog.closedialog DIALOG_RETURN_NEXT ENDIF ELSE GetLIBNameDialog.closedialog DIALOG_RETURN_NEXT ENDIF CASE GetLIBNameDialog.BackButton.GetID() GetLIBNameDialog.closedialog DIALOG_RETURN_BACK CASE GetLIBNameDialog.CancelButton.GetID() GetLIBNameDialog.closedialog DIALOG_RETURN_CANCEL CASE GetLIBNameDialog.BrowseButton.GetID() GetLibraryDir$ = GetFolder(LibraryDir$) IF GetLibraryDir$ = "" THEN GetLIBNameDialog.LibDirTextBox.SetText LibraryDir$ ELSE GetLIBNameDialog.LibDirTextBox.SetText GetLibraryDir$ LibraryDir$ = GetLibraryDir$ ENDIF END SELECT ENDIF END SUB ' ************************************************************************************** ' ShowFinish ' This function displays the finish dialog, showing a list of all files selected for ' addition to the specified library. As well, the complete name of the library to be ' used is displayed. ' ' RETURNS: ShowFinish AS INTEGER - Integer indicating dialog return value. ' ************************************************************************************** FUNCTION ShowFinish% BEGIN DIALOG OBJECT ShowFinishDialog 290, 180, "Corel VENTURA Library Wizard", SUB ShowFinishDialogEventHandler PUSHBUTTON 181, 160, 46, 14, .FinishButton, "&Finish" CANCELBUTTON 234, 160, 46, 14, .CancelButton PUSHBUTTON 135, 160, 46, 14, .BackButton, "< &Back" LISTBOX 95, 45, 185, 60, .FileListBox IMAGE 10, 10, 75, 130, .ShowFinishImage TEXT 95, 10, 185, 12, .Text1, InfoText$ TEXT 95, 23, 185, 20, .Text2, LIBName$ TEXT 95, 124, 185, 20, .Text3, "Click Finish, then sit back and watch Corel VENTURA create your new library for you." GROUPBOX 10, 150, 270, 5, .LineGroupBox TEXT 95, 107, 185, 12, .StatusText, "" END DIALOG IF SelectedFilesCount = 1 THEN InfoText$ = "The " & SelectedFilesCount & " file listed below will be added to the library:" ELSE InfoText$ = "The " & SelectedFilesCount & " files listed below will be added to the library:" ENDIF MKFOLDER(LibraryDir$) ShowFinishDialog.SetStyle STYLE_INVISIBLE ShowFinishDialog.ShowFinishImage.SetImage "#Step3BMP" ShowFinishDialog.ShowFinishImage.SetStyle STYLE_IMAGE_CENTERED ShowFinishDialog.StatusText.SetStyle STYLE_SUNKEN ShowFinishRet% = Dialog(ShowFinishDialog) SELECT CASE ShowFinishRet% CASE DIALOG_RETURN_CANCEL STOP CASE DIALOG_RETURN_NEXT ShowFinishDialog.SetVisible FALSE MakeLIB ShowFinish = 1 CASE DIALOG_RETURN_BACK ShowFinish = -1 END SELECT END FUNCTION ' ******************************************************************************* ' ShowFinishDialogEventHandler ' This subroutine responds to user interface with the finish dialog. ' ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is ' generating a dialog event. ' BYVAL Event% - Integer indicating the dialog event that has occurred. ' ******************************************************************************* SUB ShowFinishDialogEventHandler(BYVAL ControlID%, BYVAL Event%) IF Event% = EVENT_INITIALIZATION THEN ShowFinishDialog.FileListBox.SetArray SelectedFiles$ ShowFinishDialog.StatusText.SetText SelectedDirs(1) ShowFinishDialog.SetStyle STYLE_VISIBLE ENDIF IF Event% = EVENT_MOUSE_CLICK THEN SELECT CASE ControlID% CASE ShowFinishDialog.FinishButton.GetID() ShowFinishDialog.CloseDialog DIALOG_RETURN_NEXT CASE ShowFinishDialog.BackButton.GetID() ShowFinishDialog.CloseDialog DIALOG_RETURN_BACK CASE ShowFinishDialog.CancelButton.GetID() ShowFinishDialog.CloseDialog DIALOG_RETURN_CANCEL CASE ShowFinishDialog.FileListBox.GetID() ShowFinishDialog.StatusText.SetText SelectedDirs(ShowFinishDialog.FileListBox.GetSelect()) END SELECT ENDIF END SUB ' ******************************************************************************* ' MakeLIB ' This function opens the specified library if it exists (or creates a new one ' if it doesn't exist). The selected files are added to the library, and their ' corresponding descriptions changed to that of the file name (without path). ' A dialog appears at the completion of the process, indicating the number of ' successful library entries. ' ' PARAMS: None ' ******************************************************************************* SUB MakeLIB ON ERROR RESUME NEXT GLOBAL ItemsInLIB& BEGINWAITCURSOR WITHOBJECT OBJECT_VENTURA8 ENDWAITCURSOR IF LibraryExists = TRUE THEN .FileLibraryOpen LIBName$ ELSE .FileLibraryNew LIBName$ ENDIF .FileLibraryView FALSE, TRUE 'small icons show details FOR i% = 1 TO SelectedFilesCount% .FileLibraryCreateItem SelectedDirs$(i%) & SelectedFiles$(i%) .FileLibraryItemProperties SelectedFiles$(i%) IF i% MOD 20 = 0 THEN .FileLibrarySave 'save lib every 20 items NEXT i% ItemsInLIB& = .FileLibraryItemCount() .FileLibraryClose TRUE 'close ALL open libs END WITHOBJECT END SUB ' ******************************************************************************* ' ShowSummary ' This function displays the summary dialog indicating whether the library has ' been created or appended, and the number of items it now contains. ' ' PARAMS: None ' ' RETURNS: ShowFinish AS INTEGER - Integer indicating dialog return value. ' ******************************************************************************* FUNCTION ShowSummary% BEGIN DIALOG OBJECT ShowSummaryDialog 290, 180, "Corel VENTURA Library Wizard", SUB ShowSummaryDialogEventHandler PUSHBUTTON 135, 160, 46, 14, .BackButton, "< &Back" PUSHBUTTON 181, 160, 46, 14, .FinishButton, "&Done" CANCELBUTTON 234, 160, 46, 14, .CancelButton IMAGE 10, 10, 75, 130, .ShowSummaryImage TEXT 95, 25, 185, 12, .Text1, "" TEXT 95, 10, 185, 12, .Text2, "" TEXT 93, 130, 185, 12, .Text3, "To create another library, click Back." GROUPBOX 10, 150, 270, 5, .LineGroupBox END DIALOG ShowSummaryDialog.SetStyle STYLE_INVISIBLE ShowSummaryDialog.ShowSummaryImage.SetImage "#LastBMP" ShowSummaryDialog.ShowSummaryImage.SetStyle STYLE_IMAGE_CENTERED ShowSummaryRet% = Dialog(ShowSummaryDialog) SELECT CASE ShowSummaryRet% CASE DIALOG_RETURN_CANCEL STOP CASE DIALOG_RETURN_NEXT ShowSummary = 1 CASE DIALOG_RETURN_BACK ShowSummary = -5 END SELECT END FUNCTION ' ******************************************************************************* ' ShowSummaryDialogEventHandler ' This subroutine responds to user interface with the summary dialog. ' ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is ' generating a dialog event. ' BYVAL Event% - Integer indicating the dialog event that has occurred. ' ******************************************************************************* SUB ShowSummaryDialogEventHandler(BYVAL ControlID%, BYVAL Event%) IF Event% = EVENT_INITIALIZATION THEN NameText$ = LIBName$ IF ItemsInLIB& > 1 THEN ItemString$ = " items." ELSE ItemString$ = " item." ENDIF IF LibraryExists = TRUE THEN InfoText$ = "has been appended and now contains" & STR(ItemsInLIB&) & ItemString$ ELSE InfoText$ = "has been created and now contains" & STR(ItemsInLIB&) & ItemString$ ENDIF ShowSummaryDialog.Text2.SetText NameText$ ShowSummaryDialog.Text1.SetText InfoText$ ShowSummaryDialog.SetStyle STYLE_VISIBLE ShowSummaryDialog.CancelButton.Enable FALSE ENDIF IF Event% = EVENT_MOUSE_CLICK THEN SELECT CASE ControlID% CASE ShowSummaryDialog.FinishButton.GetID() ShowSummaryDialog.CloseDialog DIALOG_RETURN_NEXT CASE ShowSummaryDialog.BackButton.GetID() ShowSummaryDialog.CloseDialog DIALOG_RETURN_BACK CASE ShowSummaryDialog.CancelButton.GetID() ShowSummaryDialog.CloseDialog DIALOG_RETURN_CANCEL END SELECT ENDIF END SUB ' ************************************************************************************** ' DoesFileExist ' This function determines whether the specified file exists. ' ' PARAMS:FileName AS STRING - The name and path of the file in question. ' RETURNS: DoesFileExist AS BOOLEAN - TRUE if the file exists. ' - FALSE if the file does not exist. ' ************************************************************************************** FUNCTION DoesFileExist(FileName$) AS BOOLEAN ON ERROR GOTO ErrorHandler FileStatus$ = FINDFIRSTFOLDER(FileName$, FILEATTR_READ_ONLY OR FILEATTR_HIDDEN OR FILEATTR_SYSTEM OR FILEATTR_ARCHIVE OR FILEATTR_NORMAL_FILE OR FILEATTR_TEMPORARY) IF FileStatus$ = "" THEN DoesFileExist = FALSE ELSE DoesFileExist = TRUE ENDIF FunctionEnd: EXIT FUNCTION ErrorHandler: SELECT CASE ErrNum CASE ELSE DoesFileExist = FALSE END SELECT RESUME AT FunctionEnd END FUNCTION