home *** CD-ROM | disk | FTP | other *** search
- '**************************************************************************
- '* FoxPro/Windows Installation
- '**************************************************************************
-
- '$INCLUDE 'setup.inc'
-
- DECLARE FUNCTION GetProgMgrGrps LIB "mscuistf.dll" AS INTEGER
- DECLARE FUNCTION QuietConfigUpdate LIB "mscuistf.dll" AS INTEGER
- DECLARE FUNCTION CanFindConfigSys LIB "mscuistf.dll" AS INTEGER
- DECLARE FUNCTION CalcListSize LIB "mscuistf.dll" AS LONG
- DECLARE FUNCTION WindowWidth LIB "mscuistf.dll" (iWind%) AS INTEGER
- DECLARE FUNCTION WindowHeight LIB "mscuistf.dll" (iWind%) AS INTEGER
- DECLARE FUNCTION InsertFile LIB "mscuistf.dll" (szDestFile$, szSourceFile$) AS INTEGER
- DECLARE FUNCTION Spawn LIB "mscuistf.dll" (szCommand$, szDir$) AS INTEGER
-
- ''Local functions and procedures.
- DECLARE SUB AddToPM
- DECLARE SUB ConfirmQuit
- DECLARE SUB CreateCopyList
- DECLARE SUB DoRestart
- DECLARE SUB Install
- DECLARE SUB GetPathInfo
- DECLARE SUB GetPathGrpInfo
- DECLARE SUB GetUserDefaults
- DECLARE SUB UpdateConfig
- DECLARE SUB UpdateINI
-
- DECLARE FUNCTION ConfirmNameOrg () AS STRING
- DECLARE FUNCTION EnoughSpace () AS STRING
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- DECLARE FUNCTION SectionSize (szSection$) AS INTEGER
- DECLARE FUNCTION WarnBadPath () AS STRING
-
- ''Dialog ID's
- CONST ASKQUIT = 200 ''Is the user certain they want to quit?
- CONST BADINI = 4500 ''We couldn't read setup.ini.
- CONST BADMODE = 2100 ''We aren't in Enhanced mode.
- CONST BADNAME = 7700 ''The user has to enter a name.
- CONST BADPATH = 6400 ''The target directory can't be written to.
- CONST BADPATH_FORCED = 6200 ''The target directory is bad, but the user can't change it.
- CONST BILLBOARD = 20000 ''Used to hold billboard bitmaps.
- CONST CANTADDRSC = 4700 ''Can't add resource to foxprow.exe
- CONST CANTFIND = 3900 ''Can't find config.sys.
- CONST CANTQUIT = 2300 ''Couldn't exit Windows.
- CONST CANTSPAWN = 6500 ''Couldn't run optional stuff.
- CONST CANTUPDATE = 3500 ''Coulsn't update config.sys.
- CONST CANTWRITETOFP = 5200 ''FoxPro is in a read only directory.
- CONST CONFIRMINFO = 7300 ''Is the name and organization ok?
- CONST DESTPATH = 5300 ''Get target directory without a group.
- CONST DESTPATHGROUP = 5400 ''Get target directory and group.
- CONST DISKFULL = 5500 ''Not enough disk space is available.
- CONST DISKFULL_BACK = 6100 ''Not enough disk space is available, change path?
- CONST DISKWINFULL = 5600 ''Not enough space on Windows drive.
- CONST EDITCONFIG = 2700 ''Review changes to config.sys
- CONST EDITMODE = 3800 ''Select method of updating config.sys
- CONST EDITOK = 3700 ''We updated config.sys
- CONST EXITFAILURE = 5700 ''We are quiting due to an error.
- CONST EXITNOICON = 2800 ''We installed, but don't have an icon.
- CONST EXITQUIT = 5800 ''We were forced to quit by the user.
- CONST EXITSUCCESS = 5900 ''We have successfully finished.
- CONST GETNAMEORG = 1300 ''Get the user's name and organization.
- CONST NOPROD = 5100 ''Path to foxprow.exe is bad.
- CONST NOT386 = 1800 ''Machine is less than a 386SX.
- CONST OPTIONS = 800 ''Components to install.
- CONST REINSTALL = 2000 ''Copy disincentive message.
- CONST RESTARTWIN = 2200 ''Warn before restarting windows.
- CONST WAITADDRSC = 4900 ''Wait while adding FOXT.EXE.
- CONST WAITINI = 6600 ''Wait while updating INI files.
- CONST WAITSPACE = 6700 ''Wait while getting free disk space.
-
- CONST MSGRAPH = 1
- CONST APPLICATION = 2
- CONST SYSFILES = 3
-
- CONST CUIDLL$ = "mscuistf.dll" ''The .DLL containing our dialog routines.
- CONST DEFAULT_TITLE$ = "Setup"
- CONST LOGO = 2 ''Logo Bitmap ID.
- CONST LASTRESORT$ = "Setup was damaged. Please try a new set of disks."
- CONST LASTTITLE$ = "Setup Error"
- CONST MINFILES% = 40
- CONST NO = 0
- CONST NOGROUP$ = "- NONE -" ''Group name which means don't create a group.
- CONST README$ = "README.TXT"
- CONST READ_DESC$ = "Read Me"
- CONST YES = 1
-
- GLOBAL DEST$ ''Default destination directory.
- GLOBAL fGRAPH% ''Flag indicating if the graph runtime is to be installed.
- GLOBAL fWIN31% ''Flag indicating if we are running under 3.1 or later.
- GLOBAL GROUP$ ''Default destination group.
- GLOBAL MODE$ ''Determines whether we let the user change path and/or group.
- GLOBAL MSDEST$ ''MS Graph runtime location.
- GLOBAL PM_EXE$ ''Exe to add to the PM.
- GLOBAL PM_DESCRIPT$ ''Label for the PM.
- GLOBAL QUIT_PROG$ ''Program to execute when we quit.
- GLOBAL SRCDIR$ ''Location of install files.
- GLOBAL szInf$ ''Location of the inf file.
- GLOBAL WINDIR$ ''Windows directory.
- GLOBAL WINSYSDIR$ ''Windows system directory.
-
- INIT:
- ON ERROR GOTO QUIT
-
- DEST$ = "c:\foxprow"
- DLG% = 400
- fGRAPH% = NO
- GROUP$ = "FoxPro for Windows"
- MODE$ = "NO"
- MSDEST$ = MakePath(GetWindowsDir(), "msapps")
- PMGROUPS% = 0
- QUIT_PROG$ = ""
- SRCDIR$ = GetSymbolValue("STF_SRCDIR")
- WINDIR$ = GetWindowsDir()
- WINSYSDIR$ = GetWindowsSysDir()
-
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
- END IF
- ReadInfFile szInf$
-
- fGRAPH% = DoesIniSectionExist(szInf$, "MSGraph")
- SetSymbolValue "NoGroup", NOGROUP$
-
- '' SetBitmap CUIDLL$, LOGO
-
- ''
- '' Make sure we have at least a 386SX.
- ''
- IF GetProcessorType() < 3 THEN
- PROCESSOR:
- sz$ = UIStartDlg(CUIDLL$, NOT386, "FInfo0DlgProc", 0, "")
- IF sz$ = "EXIT" OR sz$ = "CANCEL" THEN
- ConfirmQuit
- GOTO PROCESSOR
- END IF
- UIPop 1
- END
- END IF
-
- ''
- '' Warn the user if we are not in Enhanced mode.
- ''
- IF GetWindowsMode() < 2 THEN
- ENHANCED:
- sz$ = UIStartDlg(CUIDLL$, BADMODE, "FInfoDlgProc", 0, "")
- IF sz$ = "EXIT" OR sz$ = "CANCEL" THEN
- ConfirmQuit
- GOTO ENHANCED
- ELSE
- UIPop 1
- END IF
- END IF
-
- ''
- '' Get the user's choices for window titles, default directories, etc.
- ''
- GetUserDefaults
-
- ''
- '' For our own use, see if we are running on a version later than 3.0.
- ''
- fWIN31% = YES
- IF GetWindowsMajorVersion() < 3 THEN
- fWIN31% = NO
- ELSEIF GetWindowsMajorVersion() = 3 AND GetWindowsMinorVersion() = 0 THEN
- fWIN31% = NO
- END IF
-
- ''
- '' Get a list of PM groups if possible.
- ''
- IF fWIN31% = YES THEN
- PMGROUPS% = GetProgMgrGrps()
- END IF
-
- ''
- '' Have the user specify where to put the product. (Including the group if
- '' we can get the info.)
- ''
- GETTARGETINFO:
- IF MODE$ <> "YES" THEN
- IF fWIN31% = NO OR GetListLength("ListItemsIn") = 0 OR MODE$ = "GROUP ONLY" THEN
- GetPathInfo
- ELSE
- GetPathGrpInfo
- END IF
- ELSE
- IF IsDirWritable(DEST$) = NO THEN
- sz$ = UIStartDlg(CUIDLL$, BADPATH_FORCED, "FInfoDlgProc", 0, "")
- ERROR STFERR
- END IF
- END IF
-
- IF EnoughSpace() = "BACK" THEN
- GOTO GETTARGETINFO
- END IF
-
- ''
- '' Try to gaurantee that FILES are at least a minimum value.
- ''
- UpdateConfig
-
- Install
-
- IF ERR = STFQUIT THEN
- DLG% = EXITQUIT
- ELSE
- DLG% = EXITSUCCESS
- END IF
- GOTO QUITL1
-
- QUIT:
- UIPopAll
- IF ERR = STFPROGMAN THEN
- DLG% = EXITNOICON
- ELSEIF ERR = STFQUIT THEN
- DLG% = EXITQUIT
- ELSE
- DLG% = EXITFAILURE
- END IF
-
- QUITL1:
- ON ERROR GOTO TOAST
-
- IF DLG% = EXITSUCCESS AND LEN(QUIT_PROG$) <> 0 THEN
- QUIT_PROG$ = MakePath(DEST$, QUIT_PROG$)
- IF (MID$(DEST$, LEN(DEST$), 1) = "\") THEN
- y$ = MID$(DEST$, 1, LEN(DEST$)-1)
- ELSE
- y$ = DEST$
- END IF
- x% = Spawn(QUIT_PROG$, y$)
- IF x% <> 0 THEN
- SetSymbolValue "EXE_NAME", QUIT_PROG$
- sz$ = UIStartDlg(CUIDLL$, DLG%, "FVarStringDlgProc", 0, "")
- UIPop 1
- DLG% = EXITFAILURE
- ELSE
- UIPop ALL
- END
- END IF
- END IF
-
- QUITL2:
- IF DLG% <> EXITSUCCESS OR LEN(QUIT_PROG$) = 0 THEN
- sz$ = UIStartDlg(CUIDLL$, DLG%, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL2
- END IF
- UIPop ALL
- END IF
-
- END
-
- TOAST:
- UIPopAll
- x% = DoMsgBox(LASTRESORT$, LASTTITLE$, MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
-
- '**
- '** Purpose:
- '** Copies the files in the copy list and adds FoxPro to the target
- '** group if one was psecified.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB Install STATIC
-
- ''
- '' Do the copy
- ''
- CreateCopyList
- SetRestartDir GetSymbolValue("STF_CWDDIR")
- CopyFilesInCopyList
-
- AddToPM
- UpdateINI
-
- IF RestartListEmpty() = 0 THEN
- DoRestart
- END IF
-
- END SUB
-
- '**
- '** Purpose:
- '** Creates the PM group and items(s).
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB AddToPM STATIC
- IF GROUP$ <> NOGROUP$ AND LEN(PM_EXE$) <> 0 THEN
- CreateProgmanGroup GROUP$, "", cmoNone
-
- IF LEN(PM_EXE$) > 0 THEN
- y$ = MakePath(DEST$, PM_EXE$)
- IF fWIN31% = YES THEN
- CreateProgmanItem GROUP$, PM_DESCRIPT$, y$, y$+",0,0,0,"+DEST$, cmoOverwrite
- ELSE
- CreateProgmanItem GROUP$, PM_DESCRIPT$, y$, "", cmoOverwrite
- END IF
- END IF
-
- y$ = MakePath(DEST$, README$)
- IF DoesFileExist(y$, femExists) = YES THEN
- CreateProgmanItem GROUP$, READ_DESC$, y$, "", cmoOverwrite
- END IF
-
- ShowProgmanGroup GROUP$, 1, cmoNone
- END IF
- END SUB
-
- '**
- '** Purpose:
- '** Exits to DOS to update Window's system files which were in use.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB DoRestart STATIC
- RESTARTBEGIN:
- sz$ = UIStartDlg(CUIDLL$, RESTARTWIN, "FInfoDlgProc", 0, "")
- IF sz$ = "EXIT" OR sz$ = "CANCEL" THEN
- ConfirmQuit
- GOTO RESTARTBEGIN
- END IF
- UIPop 1
-
- TRYTOQUIT:
- IF ExitExecRestart() = 0 THEN
- TRYTOQUITL2:
- sz$ = UIStartDlg(CUIDLL$, CANTQUIT, "FInfoDlgProc", 0, "")
- IF sz$ = "EXIT" OR sz$ = "CANCEL" THEN
- ConfirmQuit
- GOTO TRYTOQUITL2
- END IF
- GOTO TRYTOQUIT
- END IF
- END SUB
-
- '**
- '** Purpose:
- '** Updates any INI files that need it and does any other misc. updates.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB UpdateINI STATIC
- IF fGRAPH% = YES THEN
- oldCursor% = ShowWaitCursor()
- sz$ = UIStartDlg(CUIDLL$, WAITINI, "FNoWaitDlgProc", 0, "")
-
- CreateIniKeyValue "WIN.INI", "MSAPPS", "msapps", MSDEST$, cmoOverwrite
-
- CreateRegKeyValue "MSGraph", "MS Graph"
- CreateRegKeyValue ".gra", "MSGraph"
- CreateRegKeyValue "MSGraph\protocol\StdFileEditing\server", MakePath(MSDEST$,"msgraph\graph.exe")
- CreateRegKeyValue "MSGraph\protocol\StdFileEditing\SetDataFormats", "Native,CF_TEXT"
- CreateRegKeyValue "MSGraph\protocol\StdFileEditing\RequestDataFormats", "Native,CF_METAFILEPICT"
- CreateRegKeyValue "MSGraph\protocol\StdExecute\server", MakePath(MSDEST$,"msgraph\graph.exe")
-
- UIPop 1
- RestoreCursor oldCursor%
- END IF
- END SUB
-
- '**
- '** Purpose:
- '** Gets the path where the user wishes to install FoxPro.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB GetPathInfo STATIC
-
- SetSymbolValue "EditTextIn", LCASE$(DEST$)
-
- GETPATHINFOSTART:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
- DEST$ = GetSymbolValue("EditTextOut")
-
- IF sz$ = "CONTINUE" THEN
- IF LEN(DEST$) > 0 THEN
- IF MID$(DEST$, LEN(DEST$), 1) = ":" THEN
- DEST$ = DEST$ + "\"
- END IF
- END IF
- IF IsDirWritable(DEST$) = NO THEN
- x$ = WarnBadPath()
- GOTO GETPATHINFOSTART
- END IF
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETPATHINFOSTART
- ELSE
- ConfirmQuit
- GOTO GETPATHINFOSTART
- END IF
-
- UIPop 1
-
- RemoveSymbol "EditTextIn"
- RemoveSymbol "EditTextOut"
- END SUB
-
- '**
- '** Purpose:
- '** Gets the path and PM group where the user wishes to install FoxPro.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB GetPathGrpInfo () STATIC
-
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "ListDefault", GROUP$
-
- GETPATHGRPINFOSTART:
- sz$ = UIStartDlg(CUIDLL$, DESTPATHGROUP, "FDirGrpProc", 0, "")
- DEST$ = GetSymbolValue("EditTextOut")
- GROUP$ = GetSymbolValue("ListItemsOut")
-
- IF sz$ = "CONTINUE" THEN
- IF LEN(DEST$) > 0 THEN
- IF MID$(DEST$, LEN(DEST$), 1) = ":" THEN
- DEST$ = DEST$ + "\"
- END IF
- END IF
- IF IsDirWritable(DEST$) = NO THEN
- x$ = WarnBadPath()
- GOTO GETPATHGRPINFOSTART
- END IF
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETPATHGRPINFOSTART
- ELSE
- ConfirmQuit
- GOTO GETPATHGRPINFOSTART
- END IF
-
- UIPop 1
-
- RemoveSymbol "EditTextIn"
- RemoveSymbol "EditTextOut"
- RemoveSymbol "ListDefault"
- RemoveSymbol "ListItemsOut"
- END SUB
-
- '**
- '** Purpose:
- '** Determines if we have enough space to do the install.
- '** Arguments:
- '** none.
- '** Returns:
- '** "CONTINUE" or "BACK".
- '*************************************************************************
- FUNCTION EnoughSpace() STATIC AS STRING
- oldCursor% = ShowWaitCursor()
- sz$ = UIStartDlg(CUIDLL$, WAITSPACE, "FNoWaitDlgProc", 0, "")
-
- EnoughSpace = "CONTINUE"
-
- SpaceAvail& = GetFreeSpaceForDrive(MID$(DEST$, 1, 1)) / 1024
- WinSpaceAvail& = GetFreeSpaceForDrive(MID$(WINSYSDIR$, 1, 1)) / 1024
-
- SpaceNeed& = SectionSize("Application")
- WinSpaceNeed& = SectionSize("Sysfiles")
- IF fGRAPH% = YES THEN
- WinSpaceNeed& = WinSpaceNeed& + SectionSize("MSGraph")
- END IF
-
- RestoreCursor oldCursor%
- UIPop 1
-
- ''
- '' If Windows is on the drive we are installing to, combine
- '' the needed values.
- ''
- IF MID$(DEST$, 1, 1) = MID$(WINSYSDIR$, 1, 1) THEN
- SpaceNeed& = SpaceNeed& + WinSpaceNeed&
- END IF
-
- ''
- '' Check to see if we have room
- ''
- IF SpaceNeed& > SpaceAvail& THEN
- IF MODE$ <> "YES" THEN
- dialogs% = DISKFULL_BACK
- ELSE
- dialog% = DISKFULL
- END IF
- ELSEIF SpaceNeedWin& > SpaceAvailWin& THEN
- dialog% = DISKWINFULL
- ELSE
- dialog% = 0
- END IF
-
- IF dialog% > 0 THEN
- NOROOM:
- sz$ = UIStartDlg(CUIDLL$, dialog%, "FInfoDlgProc", 0, "")
- UIPop 1
- IF sz$ = "BACK" THEN
- EnoughSpace = "BACK"
- ELSEIF sz$ = "EXIT" OR sz$ = "CANCEL" THEN
- ConfirmQuit
- GOTO NOROOM
- END IF
- END IF
-
- END FUNCTION
-
- '**
- '** Purpose:
- '** Update FILES in config.sys if needed.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB UpdateConfig STATIC
- IF CanFindConfigSys() <> 0 THEN
- IF GetConfigNumFiles() < MINFILES% THEN
- SetSymbolValue "RadioDefault", "1"
- UPDATETYPE:
- sz$ = UIStartDlg(CUIDLL$, EDITMODE, "FRadioDlgProc", 0, "")
- IF sz$ = "CONTINUE" THEN
- UIPop 1
-
- SetSymbolValue "MIN_FILES", "40"
-
- IF GetSymbolValue("ButtonChecked") = "1" THEN
- x% = QuietConfigUpdate()
- ELSEIF GetSymbolValue("ButtonChecked") = "2" THEN
- EDITCONFIGSTART:
- sz$ = UIStartDlg(CUIDLL$, EDITCONFIG, "ConfigEditDlg", 0, "")
- IF sz$ = "EXIT" or sz$ = "CANCEL" THEN
- ConfirmQuit
- GOTO EDITCONFIGSTART
- ENDIF
- UIPop 1
- ELSE
- GOTO CONFIGEND
- ENDIF
-
- IF GetSymbolValue("UPDATE_RESULT") = "ERROR" THEN
- sz$ = UIStartDlg(CUIDLL$, CANTUPDATE, "FInfo0DlgProc", 0, "")
- ELSE
- sz$ = UIStartDlg(CUIDLL$, EDITOK, "FDlgFNameProc", 0, "")
- END IF
- UIPop 1
-
- ELSE
- ConfirmQuit
- SetSymbolValue "RadioDefault", GetSymbolValue("ButtonChecked")
- GOTO UPDATETYPE
- END IF
- END IF
- CONFIGEND:
- ELSE
- SetSymbolValue "ConfirmTextIn", ""
- AddListItem "ConfirmTextIn", STR$(MINFILES%)
- AddListItem "ConfirmTextIn", STR$(MINFILES%)
- sz$ = UIStartDlg(CUIDLL$, CANTFIND, "FSprintfDlgProc", 0, "")
- UIPop 1
- END IF
- END SUB
-
- '**
- '** Purpose:
- '** Confirms that the user really wants to quit when they select a quit
- '** option.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB ConfirmQuit STATIC
- CONFIRMQUITSTART:
- cq$ = UIStartDlg(CUIDLL$, ASKQUIT, "FInfoDlgProc", 0, "")
-
- IF cq$ = "EXIT" or cq$ = "CANCEL" THEN
- UIPopAll
- ERROR STFQUIT
- ELSEIF cq$ = "REACTIVATE" THEN
- GOTO CONFIRMQUITSTART
- ELSE
- UIPop 1
- END IF
- END SUB
-
- '**
- '** Purpose:
- '** Warns the user that they have specified an invalid path.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- FUNCTION WarnBadPath () STATIC AS STRING
- WARNBADPATHSTART:
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO WARNBADPATHSTART
- ELSEIF sz$ = "CANCEL" OR sz$ = "EXIT" THEN
- ConfirmQuit
- GOTO WARNBADPATHSTART
- END IF
- UIPop 1
-
- WarnBadPath = sz$
- END FUNCTION
-
- '**
- '** Purpose:
- '** Appends a file name to the end of a directory path,
- '** inserting a backslash character as needed.
- '** Arguments:
- '** szDir$ - full directory path (with optional ending "\")
- '** szFile$ - filename to append to directory
- '** Returns:
- '** Resulting fully qualified path name.
- '*************************************************************************
- 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
-
- '**
- '** Purpose:
- '** Sets the global copy list to install a the options selected by
- '** the user as indicated by the list CheckItems.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB CreateCopyList () STATIC
-
- ClearCopyList
-
- AddSectionFilesToCopyList "Application", SRCDIR$, DEST$
- AddSectionFilesToCopyList "Sysfiles", SRCDIR$, WINSYSDIR$
- IF fGRAPH% = YES THEN
- AddSectionFilesToCopyList "MSGraph", SRCDIR$, MakePath(MSDEST$,"msgraph")
- END IF
- END SUB
-
- '**
- '** Purpose:
- '** Determines how much space a given section will occupy.
- '** Arguments:
- '** szSection$ - The section to determine the size of.
- '** Returns:
- '** The size in K bytes of the section.
- '*************************************************************************
- FUNCTION SectionSize (szSection$) STATIC AS INTEGER
- MakeListFromSectionSize "SizeList", szSection$
- SectionSize = CalcListSize()
- RemoveSymbol "SizeList"
- END FUNCTION
-
- '**
- '** Purpose:
- '** Reads the INF file to get the user's preferences for various
- '** settings.
- '** Arguments:
- '** (NONE)
- '** Returns:
- '** (NONE)
- '*************************************************************************
- SUB GetUserDefaults STATIC
- '' Get the default window title
- y$ = GetIniKeyString(szInf$, "FP SETUP", "TITLE")
- z$ = GetIniKeyString(szInf$, "FP SETUP", "COPYRIGHT")
- IF LEN(y$) <> 0 THEN
- SetSymbolValue "DLG_TITLE", y$
- SetTitle y$
- IF LEN(z$) <> 0 THEN
- SetAbout y$, z$
- END IF
- ELSE
- SetSymbolValue "DLG_TITLE", DEFAULT_TITLE$
- END IF
-
- '' Get the default installation directory
- y$ = GetIniKeyString(szInf$, "FP SETUP", "PATH")
- IF LEN(y$) <> 0 THEN
- DEST$ = y$
- END IF
-
- '' Get the default installation group
- y$ = GetIniKeyString(szInf$, "FP SETUP", "GROUP")
- IF LEN(y$) <> 0 THEN
- GROUP$ = y$
- END IF
- SetSymbolValue "FoxProGroup", GROUP$
-
- '' Get the information used when adding stuff to the Program Manager
- PM_EXE$ = GetIniKeyString(szInf$, "FP SETUP", "PROGRAM")
- PM_DESCRIPT$ = GetIniKeyString(szInf$, "FP SETUP", "DESCRIPT")
-
- '' Get the user's control level
- y$ = GetIniKeyString(szInf$, "FP SETUP", "FORCELOC")
- IF LEN(y$) <> 0 THEN
- MODE$ = y$
- END IF
-
- '' Get the program to execute when we quit
- QUIT_PROG$ = GetIniKeyString(szInf$, "FP SETUP", "RUN")
- END SUB
-