home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1995-04-07 | 29.9 KB | 1,004 lines
'************************************************************************* '* Setup for Micrografx Picture Publisher 5.0 CD V1.1 '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' '$INCLUDE 'msregdb.inc' '$INCLUDE 'ppnamini.inc' '$INCLUDE 'ppini.inc' CONST WELCOME = 149 CONST CUSTHELP = 115 'Custom setup help CONST CDOPTIONS = 116 CONST PREVER4 = 119 CONST EXPRESSOPT = 121 CONST INSTMENU = 122 CONST SCANHELPDB = 126 CONST LICENSE = 130 CONST CMS = 131 CONST FULLINSTM = 134 CONST CUSTINSTCD = 138 CONST OLEOPTN1 = 140 'OLE option for updating to 5.0 CONST OLEOPTN2 = 141 CONST WINSHARE = 143 CONST CLOSEHELP = 145 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST WAIT = 5000 CONST INSTMENUEXP = 6200 CONST TOOBIG = 6300 CONST BADPATH = 6400 CONST LAWS = 7100 CONST CDCONFIRMINFO= 7300 CONST CDGETNAMEORG = 7500 ''Bitmap ID CONST LOGO = 1 ''File Types CONST APPFILES = 1 CONST EFCTFILES = 2 CONST TUTFILES = 3 CONST IMPORTFILES = 4 CONST HELPFILES = 5 CONST TEXTFILES = 6 CONST SCANFILES = 7 GLOBAL WINDRIVE$ 'Windows drive letter. GLOBAL WINDIRECT$ GLOBAL SYSTEMDIRECT$ ''CustInst list symbol names GLOBAL FULLNEEDS$ GLOBAL APPNEEDS$ ''Option list costs per drive GLOBAL TEXTNEEDS$ GLOBAL IMPORTNEEDS$ GLOBAL TUTNEEDS$ GLOBAL HELPNEEDS$ GLOBAL SCANNEEDS$ GLOBAL EFCTNEEDS$ GLOBAL EXTRACOSTS$ ''List of extra costs to add per drive GLOBAL PICTPUB$ ''Picture Publisher 5.0 Destination directories. GLOBAL ALBUM$ GLOBAL BRUSH$ GLOBAL CLIPBIT$ GLOBAL DBF$ GLOBAL DEVICE$ GLOBAL EFFECT$ GLOBAL MACRO$ GLOBAL PALETTE$ GLOBAL PRINTSTY$ GLOBAL SAMPLE$ GLOBAL TEXTURE$ GLOBAL THUMB$ GLOBAL TUTORIAL$ GLOBAL FILTER$ GLOBAL PICTPUBOLE$ GLOBAL TooManyFiles% GLOBAL PICTPUBCK50$ GLOBAL SetAppfilesOn% ''Dialog list symbol names GLOBAL CHECKSTATES$ GLOBAL STATUSTEXT$ GLOBAL DRIVETEXT$ GLOBAL VERTEXT$ GLOBAL CUSTID$ GLOBAL ORGID$ ''Subroutines and fuctions DECLARE SUB AddOptFilesToCopyList (ftype%) DECLARE SUB RecalcOptFiles (ftype%) DECLARE SUB RecalcPath DECLARE SUB SetDriveStatus DECLARE SUB CreateSubDir DECLARE SUB OLE_Process DECLARE SUB CreatePPINIKeys DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION HandleDBF LIB "INIUPD.DLL" (szDBFFile$, szFileDir$, szThumbDir$) AS INTEGER DECLARE FUNCTION MyLeftFoot LIB "INIUPD.DLL" (szStr$, szDest$, n%) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure previnst% =0 MaximizeFrame SetBitmap CUIDLL$, LOGO SetTitle "Setup" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "PPSETUP.INF" END IF ReadInfFile szInf$ WINDRIVE$ = MID$(GetWindowsDir, 1, 1) WINDIRECT$ = GetWindowsDir SYSTEMDIRECT$ = GetWindowsSysDir 'Create OLE system file list for OLE_Process procedure VERTEXT$ = "Version_txt" MakeListFromSectionKeys VERTEXT$, "Ole" 'Check previously installed versions MGXini$ = MakePath(WINDIRECT$, "MGX.INI") IF DoesIniKeyExist (MGXini$, "Micrografx", "Picture Publisher 5.0") THEN 'PICTPUB$=GetIniKeyString (MGXini$, "Micrografx", "Picture Publisher 5.0") n_result% = DoMsgBox("You can not reinstall the 30 Day Trial Version. Contact your software distributor for the full version of Picture Publisher.", "REINSTALL DETECTION", MB_OK+MB_TASKMODAL+MB_ICONHAND) UIPop 1 previnst% = 1 ENDIF PICTPUB$ = WINDRIVE$ + ":\PICTPUB5" sztemp$ = GetSymbolValue("STF_SRCDIR") szTemp2$ = "012345678901234567890123456789012234567890123456789" value%=MyLeftFoot(sztemp$, sztemp2$, 2) PICTPUBN$= sztemp2$ ''CustInst list symbols CHECKSTATES$ = "CheckItemsState" STATUSTEXT$ = "StatusItemsText" DRIVETEXT$ = "DriveStatusText" FOR i% = 1 TO 7 STEP 1 AddListItem CHECKSTATES$, "ON" NEXT i% FOR i% = 1 TO 7 STEP 1 AddListItem STATUSTEXT$, "" NEXT i% FOR i% = 1 TO 8 STEP 1 AddListItem DRIVETEXT$, "" NEXT i% ''Disk cost list symbols APPNEEDS$ = "AN" IMPORTNEEDS$= "IN" TEXTNEEDS$ = "TN" TUTNEEDS$ = "TTN" HELPNEEDS$ = "HN" SCANNEEDS$ = "SN" EFCTNEEDS$ = "EN" EXTRACOSTS$ = "ExtraCosts" FOR i% = 1 TO 26 STEP 1 AddListItem EXTRACOSTS$, "0" NEXT i% ReplaceListItem DRIVETEXT$, 7, PICTPUB$ '************************************************************************* WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", CLOSEHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF '************************************************************************* LICENSE: sz$ = UIStartDlg(CUIDLL$, LAWS, "FInfoDlgProc", LICENSE, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO LICENSE END IF '************************************************************************* IF IsWindowsShared THEN dlg% = WINSHARE 'DB for shared windows GOTO QUITL1 END IF '************************************************************************* 'Recalculate drive needs RECALCIT: sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$) RecalcPath SetDriveStatus UIPop 1 '************************************************************************* INSTMENU: IF FULLEXIST THEN sz$ = UIStartDlg(CUIDLL$, FULLINSTM, "FCustInstDlgProc", CUSTHELP, HELPPROC$) ELSE sz$ = UIStartDlg(CUIDLL$, CUSTINSTCD, "FCustInstDlgProc", CUSTHELP , HELPPROC$) ENDIF IF sz$ = "CONTINUE" THEN ''Install only if it will fit. IF TooManyFiles% THEN UIPop 1 GOSUB TOOBIG GOTO INSTMENU END IF UIPop 1 GOTO INSTALL ELSEIF sz$ = "PATH" THEN UIPop 1 GOTO GETPATH ELSEIF sz$ = "CHK1" THEN RecalcOptFiles APPFILES SetDriveStatus GOTO INSTMENU ELSEIF sz$ = "BTN1" THEN UIPop 1 sz$ = UIStartDlg(CUIDLL$, SCANHELPDB, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 GOTO INSTMENU ENDIF ELSEIF sz$ = "CHK2" THEN RecalcOptFiles EFCTFILES SetDriveStatus GOTO INSTMENU ELSEIF sz$ = "CHK3" THEN RecalcOptFiles TUTFILES SetDriveStatus GOTO INSTMENU ELSEIF sz$ = "BTN3" THEN UIPop 1 ELSEIF sz$ = "CHK4" THEN RecalcOptFiles IMPORTFILES SetDriveStatus GOTO INSTMENU ELSEIF sz$ = "CHK5" THEN RecalcOptFiles HELPFILES SetDriveStatus GOTO INSTMENU ELSEIF sz$ = "CHK6" THEN RecalcOptFiles TEXTFILES SetDriveStatus GOTO INSTMENU ELSEIF sz$ = "CHK7" THEN RecalcOptFiles SCANFILES SetDriveStatus GOTO INSTMENU ELSEIF sz$ = "REACTIVATE" THEN UIPop 1 GOTO RECALCIT ELSE UIPop 1 GOSUB ASKQUIT GOTO INSTMENU END IF '************************************************************************* '************************************************************************* '************************************************************************* INSTALL: sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$) ClearCopyList FULLNEEDS$ = "" 'Memory optimization APPNEEDS$ = "" TEXTNEEDS$ = "" IMPORTNEEDS$ = "" TUTNEEDS$ = "" HELPNEEDS$ = "" SCANNEEDS$ = "" EFCTNEEDS$ = "" EXTRACOSTS$ = "" STATUSTEXT$ = "" DRIVETEXT$ = "" PICTPUBOLE$ = PICTPUB$ +"\PP50.EXE" 'Creates full path for PP5.0 OLE working directories CreateDir PICTPUB$, cmoNone CreateSubDir SrcDir$ = GetSymbolValue("STF_SRCDIR") SrcFileDir$ = MakePath (SrcDir$, "INSTALL") ini$ = MakePath(PICTPUB$, "NAMES.INI") IF PICTPUBCK$ = PICTPUB$ THEN 'Removes old files from PP4.0 RemoveFile PICTPUBCK$+"\mgxrx101.dll", cmoNone RemoveFile PICTPUBCK$+"\PP40.exe", cmoNone RemoveFile PICTPUBCK$+"\PPLE.exe", cmoNone RemoveFile PICTPUBCK$+"\PPhlp.hlp", cmoNone RemoveFile PICTPUBCK$+"\pp-scan.hlp", cmoNone RemoveIniSection ini$, "Macro", cmoNone 'remove conflicting macros RemoveFile PICTPUBCK$+"\effects\reduce.dfx", cmoNone RemoveIniSection ini$, "Special", cmoNone 'remove conflicting effects SetFlgRemovePrevVer%=1 RemoveIniKey WINDIRECT$+"WIN.INI", "Micrografx", "Picture Publisher 4.0", cmoNone ENDIF UIPop 1 szName$= "CLSID\{000440EE-0000-0000-C000-000000000046}" sz$ = UIStartDlg(CUIDLL$, OLEOPTN1, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 CreateRegKeyValue szName$, "Picture Publisher Image" DeleteRegKey szName$+"\TreatAs" CreateRegKeyValue szName$+"\AutoConvertTo","{BC7A9620-3913-101B-9649-020080A38E74}" CreateRegKeyValue szName$+"\ProgID", "BitmapImage" CreateRegKeyValue szName$+"\Ole1Class", "BitmapImage" IF SetFlgRemovePrevVer% THEN DeleteRegKey szName$+"\ProgID" ENDIF ELSE UIPop 1 sz$ = UIStartDlg(CUIDLL$, OLEOPTN2, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN CreateRegKeyValue szName$, "Picture Publisher Image" DeleteRegKey szName$+"\AutoConvertTo" CreateRegKeyValue szName$+"\TreatAs","{BC7A9620-3913-101B-9649-020080A38E74}" CreateRegKeyValue szName$+"\ProgID", "BitmapImage" CreateRegKeyValue szName$+"\Ole1Class", "BitmapImage" UIPop 1 ELSE UIPop 1 DeleteRegKey szName$+"\AutoConvertTo" DeleteRegKey szName$+"\TreatAs" END IF ENDIF szName$="" IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN OLE_Process AddSectionFilestoCopyList "Maindbf", SrcFileDir$, THUMB$ AddSectionFilestoCopyList "Thumbcd", SrcFileDir$, THUMB$ if (previnst% = 0 ) then AddSectionFilesToCopyList "Appfiles", SrcFileDir$, PICTPUB$ endif AddSectionFilesToCopyList "Mainini", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Macros", SrcFileDir$, MACRO$ AddSectionFilestoCopyList "Printstyles", SrcFileDir$, PRINTSTY$ AddSectionFilestoCopyList "Palettes", SrcFileDir$, PALETTE$ AddSectionFilestoCopyList "Defaulttextures", SrcFileDir$, TEXTURE$ AddSectionFilestoCopyList "Defaulttexturebrush", SrcFileDir$, BRUSH$ AddSectionFilestoCopyList "Brushes", SrcFileDir$, BRUSH$ AddSectionFilesToCopyList "Musttutorial", SrcFileDir$, TUTORIAL$ AddSectionFilestoCopyList "Thumbs", SrcFileDir$, THUMB$ SetAppfilesOn%=1 AddSectionFilestoCopyList "Clipbits", SrcFileDir$, CLIPBIT$ UIPop 1 sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$) CreateIniKeyValue ini$, "Clipboard", "Logo", "Logo.pp5", cmoNone CreateOptStyleNamesEntries(ini$) CreateOptPaletteNamesEntries(ini$) CreatePrintStyNamesEntries(ini$) CreateDTextrNamesIni(ini$) CreatePPINIKeyEntries (PICTPUB$+"\pp.ini") ENDIF IF GetListItem(CHECKSTATES$, IMPORTFILES) = "ON" THEN AddSectionFilestoCopyList "Filterappfiles", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Filtersini", SrcFileDir$, FILTER$ AddSectionFilesToCopyList "Filters", SrcFileDir$, FILTER$ ENDIF IF GetListItem(CHECKSTATES$, TUTFILES) = "ON" THEN AddSectionFilestoCopyList "Tutorial", SrcFileDir$, TUTORIAL$ AddSectionFilestoCopyList "Tutordbf", SrcFileDir$, THUMB$ TutThumbon%=1 ENDIF IF GetListItem(CHECKSTATES$, HELPFILES) = "ON" THEN AddSectionFilestoCopyList "Helpfile1", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Helpfile2", SrcFileDir$, PICTPUB$ SCANHELP%=1 ENDIF IF GetListItem(CHECKSTATES$, EFCTFILES) = "ON" THEN AddSectionFilestoCopyList "Effects", SrcFileDir$, EFFECT$ RemoveIniSection ini$, "Special", cmoNone CreateOptFXNamesEntries(ini$) END IF IF GetListItem(CHECKSTATES$, TEXTFILES) = "ON" THEN AddSectionFilestoCopyList "Textrcd", SrcFileDir$, PICTPUB$+"\textures" AddSectionFilestoCopyList "Brushcd", SrcFileDir$, PICTPUB$+"\brushes" CreateOptTextureNamesEntries (ini$) END IF IF GetListItem(CHECKSTATES$, SCANFILES) = "ON" THEN AddSectionFilestoCopyList "Devices", SrcFileDir$, PICTPUB$+"\devices" CreateOptScanNamesEntries(ini$) END IF RemoveIniKey WINDIRECT$+"MGX.INI", "Micrografx", "PP.INI" , cmoNone szInf$ = "" UIPop 1 getbeep%=SetBeepingMode(1) SetRestartDir GetWindowsDir() CopyFilesInCopyList CreateIniKeyValue WINDIRECT$+"MGX.INI", "Micrografx", "Picture Publisher 5.0", PICTPUB$, cmoOverwrite CreateIniKeyValue WINDIRECT$+"MGX.INI", "Picture Publisher 5.0", "Warning", "0", cmoOverwrite ini$ = MakePath(PICTPUB$, "PP.INI") szName$="Picture Publisher" CreateIniKeyValue ini$, szName$, "Device", DEVICE$, cmoNone CreateIniKeyValue ini$, szName$, "Texture", TEXTURE$, cmoNone CreateIniKeyValue ini$, szName$, "Palette", PALETTE$, cmoNone CreateIniKeyValue ini$, szName$, "Effects", EFFECT$, cmoNone CreateIniKeyValue ini$, szName$, "PrnStyle", PRINTSTY$, cmoNone CreateIniKeyValue ini$, szName$, "Brush", BRUSH$, cmoNone CreateIniKeyValue ini$, szName$, "ClipBit", CLIPBIT$, cmoNone CreateIniKeyValue ini$, szName$, "Shapepath", CLIPBIT$, cmoNone CreateIniKeyValue ini$, szName$, "Macros", MACRO$, cmoNone CreateIniKeyValue ini$, szName$, "ThumbnailDir", THUMB$, cmoNone CreateIniKeyValue ini$, szName$, "DBFInfoDir", THUMB$, cmoNone CreateIniKeyValue ini$, szName$, "AlbumFileDir", ALBUM$, cmoNone CreateIniKeyValue ini$, szName$, "Filters", FILTER$, cmoNone CreateIniKeyValue ini$, szName$, "Pouchpath", PICTPUB$, cmoNone CreateIniKeyValue ini$, szName$, "RamDisk", PICTPUB$, cmoNone IF TutThumbon% THEN szDBF$ = MakePath (THUMB$, "__HTUTR.DBF") IF HandleDBF (szDBF$, TUTORIAL$, THUMB$) THEN END IF ENDIF IF SetAppfilesOn% THEN szDBF$ = MakePath (THUMB$, "__HOME.DBF") IF HandleDBF (szDBF$, PICTPUB$, THUMB$) THEN END IF szDBF$ = MakePath (THUMB$, "__CLIPBT.DBF") IF HandleDBF (szDBF$, CLIPBIT$, THUMB$) THEN END IF ENDIF QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSE UIPop 1 dlg% = EXITQUIT END IF IF dlg% = EXITSUCCESS THEN RUN "Regedit /S OLE2.REG" around: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOTO around ENDIF ini$ = MakePath(PICTPUB$, "PP.INI") CreateProgmanGroup "Micrografx", "", cmoNone ShowProgmanGroup "Micrografx", 1, cmoNone IF SetAppfilesOn% THEN CreateProgmanItem "Micrografx ", "Picture Publisher 5.0 30 Day Trial", ""+MakePath(PICTPUB$,"PP50.EXE"), "", cmoOverwrite ENDIF IF SCANHELP% THEN CreateProgmanItem "Micrografx", "Scanner Installation Help", "winhelp.exe "+MakePath(PICTPUB$,"PP_SCAN.HLP"), "", cmoOverwrite ENDIF sz$ = UIStartDlg(CUIDLL$, CMS, "FInfoDlgProc", CMS, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 END IF ENDIF GOTO ENDIT QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 ENDIT: IF RestartListEmpty()=0 THEN Restartf% = ExitExecRestart() ENDIF END ERRQUIT: OUT$ = STR$(ERR) IF ERR = 14 THEN ErrSTR$= "ERROR #" + OUT$ + ". File copying failure. Consult HELP on the opening screen." i% = DoMsgBox(ErrSTR$, "REINSTALL", MB_OK+MB_TASKMODAL+MB_ICONHAND) UIPop 1 END ENDIF ErrSTR$= "ERROR #" + OUT$ + ". Report to Tech Support 214-497-6495" i% = DoMsgBox(ErrSTR$, "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END '************************************************************************* SUB CreatePPINIKeys STATIC END SUB '************************************************************************* SUB CreateSubDir STATIC szName$="Picture Publisher" SrcDir$ = GetSymbolValue("STF_SRCDIR") SrcFileDir$ = MakePath (SrcDir$, "INSTALL") ini$ = MakePath(PICTPUB$, "PP.INI") DEVICE$ = GetIniKeyString (ini$, szName$, "Device") IF DEVICE$ = "" THEN DEVICE$ = MakePath (PICTPUB$, "DEVICES") CreateDir DEVICE$, cmoNone END IF ALBUM$ = GetIniKeyString (ini$, szName$, "AlbumFileDir") IF ALBUM$ = "" THEN ALBUM$ = MakePath (PICTPUB$, "ALBUMS") CreateDir ALBUM$, cmoNone END IF BRUSH$ = GetIniKeyString (ini$, szName$, "Brush") IF BRUSH$ = "" THEN BRUSH$ = MakePath (PICTPUB$, "BRUSHES") CreateDir BRUSH$, cmoNone END IF CLIPBIT$ = GetIniKeyString (ini$, szName$, "ClipBits") IF CLIPBIT$ = "" THEN CLIPBIT$ = MakePath (PICTPUB$, "CLIPBITS") CreateDir CLIPBIT$, cmoNone END IF THUMB$ = GetIniKeyString (ini$, szName$, "DBFInfoDir") IF THUMB$ = "" THEN THUMB$ = MakePath (PICTPUB$, "THUMBS") CreateDir THUMB$, cmoNone END IF EFFECT$ = GetIniKeyString (ini$, szName$, "Effects") IF EFFECT$ = "" THEN EFFECT$ = MakePath (PICTPUB$, "EFFECTS") CreateDir EFFECT$, cmoNone END IF MACRO$ = GetIniKeyString (ini$, szName$, "Macros") IF MACRO$ = "" THEN MACRO$ = MakePath (PICTPUB$, "MACROS") CreateDir MACRO$, cmoNone END IF PALETTE$ = GetIniKeyString (ini$, szName$, "Palette") IF PALETTE$ = "" THEN PALETTE$ = MakePath (PICTPUB$, "PALETTES") CreateDir PALETTE$, cmoNone END IF PRINTSTY$ = GetIniKeyString (ini$, szName$, "PrnStyle") IF PRINTSTY$ = "" THEN PRINTSTY$ = MakePath (PICTPUB$, "PRINTSTY") CreateDir PRINTSTY$, cmoNone END IF TEXTURE$ = GetIniKeyString (ini$, szName$, "Texture") IF TEXTURE$ = "" THEN TEXTURE$ = MakePath (PICTPUB$, "TEXTURES") CreateDir TEXTURE$, cmoNone END IF DBF$ = GetIniKeyString (ini$, szName$, "DBFInfoDir") IF DBF$ = "" THEN DBF$ = MakePath (PICTPUB$, "THUMBS") END IF THUMB$ = GetIniKeyString (ini$, szName$, "ThumbnailDir") IF THUMB$ = "" THEN THUMB$ = MakePath (PICTPUB$, "THUMBS") CreateDir THUMB$, cmoNone END IF FILTER$ = GetIniKeyString (ini$, szName$, "Filters") IF FILTER$ = "" THEN FILTER$ = MakePath (PICTPUB$, "FILTERS") CreateDir FILTER$, cmoNone END IF TUTORIAL$ = GetIniKeyString (ini$, szName$, "Tutorial") IF TUTORIAL = "" THEN TUTORIAL = MakePath (PICTPUB$, "TUTORIAL") CreateDir TUTORIAL$, cmoNone END IF END SUB '************************************************************************* GETPATH: SetSymbolValue "EditTextIn", PICTPUB$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN oldPICTPUB$ = PICTPUB$ PICTPUB$ = GetSymbolValue("EditTextOut") ''Validate new path. IF IsDirWritable(PICTPUB$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ''Truncate display if too long. IF LEN(PICTPUB$) > 40 THEN ReplaceListItem DRIVETEXT$, 7, MID$(PICTPUB$, 1, 40)+"..." ELSE ReplaceListItem DRIVETEXT$, 7, PICTPUB$ END IF ''Recalc if path changed. IF (oldPICTPUB$ <> PICTPUB$) AND (oldPICTPUB$ <> PICTPUB$+"\") AND (oldPICTPUB$+"\" <> PICTPUB$) THEN sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$) RecalcPath SetDriveStatus UIPop 1 END IF oldPICTPUB$ = "" GOTO INSTMENU ELSEIF sz$ = "REACTIVATE" THEN RecalcPath SetDriveStatus GOTO GETPATHL1 ELSEIF sz$ = "EXIT" THEN GOSUB ASKQUIT GOTO GETPATHL1 ELSE UIPop 1 GOTO INSTMENU END IF '************************************************************************* TOOBIG: sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN RecalcPath SetDriveStatus GOTO TOOBIG END IF UIPop 1 RETURN '************************************************************************* BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN RecalcPath SetDriveStatus GOTO BADPATH END IF UIPop 1 RETURN '************************************************************************* ASKQUIT: UIPop 1 sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '************************************************************************* SUB RecalcOptFiles (ftype%) STATIC CursorSave% = ShowWaitCursor() ClearCopyList AddOptFilesToCopyList ftype% fExtra% = 0 IF ftype% = APPFILES THEN ListSym$ = APPNEEDS$ IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN ''Add extra cost to Windows drive for ini/progman, etc. ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1 ReplaceListItem EXTRACOSTS$, ndrive%, "10240" fExtra% = 1 END IF ELSEIF ftype% = TUTFILES THEN ListSym$ = TUTNEEDS$ ELSEIF ftype% = IMPORTFILES THEN ListSym$ = IMPORTNEEDS$ ELSEIF ftype% = HELPFILES THEN ListSym$ = HELPNEEDS$ ELSEIF ftype% = EFCTFILES THEN ListSym$ = EFCTNEEDS$ ELSEIF ftype% = SCANFILES THEN ListSym$ = SCANNEEDS$ ELSEIF ftype% = TEXTFILES THEN ListSym$ = TEXTNEEDS$ END IF StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "needmore") cost& = 0 FOR i% = 1 TO 26 STEP 1 cost& = cost& + VAL(GetListItem(ListSym$, i%)) IF VAL(GetListItem("needmore", i%)) > 0 THEN ELSE END IF NEXT i% ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K" IF fExtra% THEN ReplaceListItem EXTRACOSTS$, ndrive%, "0" END IF RestoreCursor CursorSave% ListSym$ = "" END SUB '************************************************************************* SUB RecalcPath STATIC CursorSave% = ShowWaitCursor() RecalcOptFiles (APPFILES) RecalcOptFiles (IMPORTFILES) RecalcOptFiles (HELPFILES) RecalcOptFiles (EFCTFILES) RecalcOptFiles (TUTFILES) RecalcOptFiles (TEXTFILES) RecalcOptFiles (SCANFILES) RestoreCursor CursorSave% END SUB '************************************************************************* SUB SetDriveStatus STATIC TooManyFiles% = 0 drive$ = MID$(PICTPUB$, 1, 1) ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1 cost1& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(IMPORTNEEDS$, ndrive%)) + VAL(GetListItem(TEXTNEEDS$, ndrive%)) cost2& = VAL(GetListItem(TUTNEEDS$, ndrive%)) + VAL(GetListItem(EFCTNEEDS$, ndrive%)) + VAL(GetListItem(HELPNEEDS$, ndrive%)) + VAL(GetListItem(SCANNEEDS$, ndrive%)) cost& = cost1& + cost2& free& = GetFreeSpaceForDrive(drive$) ReplaceListItem DRIVETEXT$, 1, ucase$(drive$) + ":" ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K" ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K" IF cost& > free& THEN TooManyFiles% = 1 END IF IF drive$ = WINDRIVE$ THEN ReplaceListItem DRIVETEXT$, 4, "" ReplaceListItem DRIVETEXT$, 5, "" ReplaceListItem DRIVETEXT$, 6, "" ELSE ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1 cost1& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(IMPORTNEEDS$, ndrive%)) + VAL(GetListItem(TEXTNEEDS$, ndrive%)) + VAL(GetListItem(SCANNEEDS$, ndrive%)) cost2& = VAL(GetListItem(TUTNEEDS$, ndrive%)) + VAL(GetListItem(EFCTNEEDS$, ndrive%)) + VAL(GetListItem(HELPNEEDS$, ndrive%)) cost& = cost1& + cost2& IF cost& = 0 THEN ReplaceListItem DRIVETEXT$, 4, "" ReplaceListItem DRIVETEXT$, 5, "" ReplaceListItem DRIVETEXT$, 6, "" ELSE free& = GetFreeSpaceForDrive(WINDRIVE$) ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":" ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K" ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K" END IF IF cost& > free& THEN TooManyFiles% = 1 END IF END IF END SUB '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION '************************************************************************* SUB AddOptFilesToCopyList (ftype%) STATIC IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN SrcDir$ = GetSymbolValue("STF_SRCDIR") SrcFileDir$ = MakePath (SrcDir$, "INSTALL") IF ftype% = APPFILES THEN OLE_Process AddSectionFilestoCopyList "Maindbf", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Thumbcd", SrcFileDir$, PICTPUB$ AddSectionFilesToCopyList "Appfiles", SrcFileDir$, PICTPUB$ AddSectionFilesToCopyList "Mainini", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Macros", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Printstyles", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Palettes", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Defaulttextures", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Defaulttexturebrush", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Brushes", SrcFileDir$, PICTPUB$ AddSectionFilesToCopyList "Musttutorial", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Thumbs", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Clipbits", SrcFileDir$, PICTPUB$ ENDIF IF ftype% = IMPORTFILES THEN AddSectionFilestoCopyList "Filterappfiles", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Filtersini", SrcFileDir$, PICTPUB$ AddSectionFilesToCopyList "Filters", SrcFileDir$, PICTPUB$ ENDIF IF ftype% = TUTFILES THEN AddSectionFilesToCopyList "Tutorial", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Tutordbf", SrcFileDir$, PICTPUB$ ENDIF IF ftype% = HELPFILES THEN AddSectionFilestoCopyList "Helpfile1", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Helpfile2", SrcFileDir$, PICTPUB$ ENDIF IF ftype% = EFCTFILES THEN AddSectionFilestoCopyList "Effects", SrcFileDir$, PICTPUB$ ENDIF IF ftype% = TEXTFILES THEN AddSectionFilestoCopyList "Textrcd", SrcFileDir$, PICTPUB$ AddSectionFilestoCopyList "Brushcd", SrcFileDir$, PICTPUB$ END IF IF ftype% = SCANFILES THEN AddSectionFilestoCopyList "Devices", SrcFileDir$, PICTPUB$ END IF SrcDir$ = "" ENDIF END SUB SUB OLE_Process STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") SrcFileDir$ = MakePath (SrcDir$, "INSTALL") SysDir$ = WINDIRECT$+"SYSTEM" FOR i% = 1 TO GetListLength(VERTEXT$) STEP 1 IF DoesFileExist(SYSTEMDIRECT$+GetListItem(VERTEXT$, i%), femExist) THEN VStr$=GetVersionOfFile(SYSTEMDIRECT$+GetListItem(VERTEXT$, i%)) PPStr$=GetSectionKeyVersion("Ole",GetListItem(VERTEXT$, i%)) CHKIT$= GetListItem(VERTEXT$, i%) IF Vstr$=PPStr$ Then GOTO JUMPA ENDIF FOR j% = 1 to 4 STEP 1 IF GetVersionNthField(PPStr$, j%) > GetVersionNthField(VStr$, j%) THEN AddSectionKeyFileToCopyList "Ole", GetListItem(VERTEXT$, i%), SrcFileDir$, SysDir$ EXIT FOR ENDIF NEXT j% ELSE CHKIT$= GetListItem(VERTEXT$, i%) AddSectionKeyFileToCopyList "Ole", GetListItem(VERTEXT$, i%), SrcFileDir$, SysDir$ ENDIF JUMPA: NEXT i% END SUB