home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 July & August
/
Pcwk78a98.iso
/
Wtestowe
/
Clico
/
DESKTOP
/
DISK1
/
CONF_MV.MS_
/
CONF_MV.MS
Wrap
Text File
|
1997-04-08
|
37KB
|
1,680 lines
''***************************************************************************
'' File : CONF_MV.MST
''***************************************************************************
''***************************************************************************
'' Function : GetDesktopConfigurationOptions
''***************************************************************************
SUB GetDesktopConfigurationOptions STATIC
STARTDESK:
'' Call dialog box
dialog_return$ = UIStartDlg(CUIDLL$, MDTOPTIONS, "Desktop",APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTDESK
CASE EXIT_VAL$
'' Clear dialog but don't update selections
UIPop 1
CASE ELSE
'' Remove dialog
UIPop 1
'' Flag size calculation
g_update_desk% = TRUE%
END SELECT
END SUB
'' End of function : GetDesktopConfigurationOptions
''***************************************************************************
'' Function : GetXConfigurationOptions
''***************************************************************************
SUB GetXConfigurationOptions STATIC
STARTXCONF:
'' Call Xconfig options
dialog_return$ = UIStartDlg(CUIDLL$, XOPTIONS, "Xoption",APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTXCONF
CASE EXIT_VAL$
'' Clear dialog but don't update selections
UIPop 1
CASE ELSE
'' Assume Continue - get selections from check boxes, etc
'' Also validate path and so on
'' Remove dialog
UIPop 1
'' Flag size calculation
g_update_X% = TRUE%
END SELECT
END SUB
'' End of function : GetXConfigurationOptions
''***************************************************************************
'' Function : GetNetworkConfigurationOptions
''***************************************************************************
SUB GetNetworkConfigurationOptions STATIC
'' Display information dialog for Novell IPX/SPX - BFX375
'' Changed Dialoge Box NOVELL_IPXSPX to POPUP_MESSAGES - BFX441
'' BFX445 Symbol for NovellIPXSPX = 1 using generic dialogue function PopupMessage now
SetSymbolValue "PopupSymbol", "1"
dialog_return$ = UIStartDLg(CUIDLL$, POPUP_MESSAGE, "PopupMessage" ,APPHELP, HELP_PROC$)
STARTNET:
'' Flag size calculation - cleared if cancelled
g_update_net% = TRUE%
'' Call Network options
dialog_return$ = UIStartDlg(CUIDLL$, NETOPTIONS, "Network",APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTNET
CASE EXIT_VAL$
'' Clear dialog but don't update selections
UIPop 2
'' Flag size calculation
g_update_net% = FALSE%
CASE TCPIP$
'' Now get the correct configuration
GetTCPIPSelection
'' Check that all selections have been performed OK
IF (TestConfigurationOptions% = TRUE%) THEN
'' Clear network window dialog box
UIPop 2
ELSE
'' Something has gone wrong - clear all flags. Note that
'' this will include a cancel from a lower dialog
g_host_set% = TRUE%
g_network_set% = TRUE%
g_JSB_set% = TRUE%
g_tcpip_ok% = TRUE%
'' Return to Network selection
GOTO STARTNET
ENDIF
CASE ELSE
'' Assume continue has been selected - get host name for system
GetHostNameForSystem
'' Check that all selections have been performed OK
IF (TestConfigurationOptions% = TRUE%) THEN
'' Clear network window dialog box
UIPop 2
ELSE
'' Something has gone wrong - clear all flags. Note that
'' this will include a cancel from a lower dialog
g_host_set% = TRUE%
g_network_set% = TRUE%
g_JSB_set% = TRUE%
g_tcpip_ok% = TRUE%
'' Return to Network selection
GOTO STARTNET
ENDIF
END SELECT
END SUB
'' End of function : GetNetworkConfigurationOptions
''***************************************************************************
'' Function : GetTCPIPSelection
''***************************************************************************
SUB GetTCPIPSelection STATIC
STARTTCPIP:
'' Flag as a TCP-IP selection
g_tcpip_ok% = FALSE%
'' Call TCP-IP options
dialog_return$ = UIStartDlg(CUIDLL$, TCPOPTIONS, "TCPOptions",APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTTCPIP
CASE EXIT_VAL$
'' Clear dialog but don't update selections
UIPop 1
CASE JSBTCPIP$
'' BFX530 Check for valid stack
F_Error$ = "No"
CheckJSBOptionIsValid
F_Error$ = GetSymbolValue("File_Error")
IF F_Error$ = "Yes" THEN
UIPop 1
GOTO STARTTCPIP
'' g_exit_flag% = EXIT_ERROR%
'' Call exit procedure - this will exit regardless
'' ExitDialog
ELSE
'' Now get the correct configuration
'' BFX524 Get position of net.cfg
GetNET_CFGConfig
'' BFX490 Tonyr We need to investigate the NET.CFG stuff here
ReadNETCFGinformation
GetJSBConfiguration
IF ( (g_JSB_set% = FALSE%) OR (g_host_set% = FALSE%) ) THEN
'' Redisplay the current dialog for TCP options - cancel
'' must have been chosen
GOTO STARTTCPIP
ENDIF
'' Set flag as tcp is OK
g_tcpip_ok% = TRUE%
END IF
'' Clear network window dialog box and return - all is OK
UIPop 1
CASE ELSE
F_Error$ = "No"
F_Error$ = GetSymbolValue("File_Error")
IF F_Error$ = "Yes" THEN
UIPop 1
GOTO STARTTCPIP
ELSE
'' Get host name for system
GetHostNameForSystem
'' Ensure this is set
IF (g_host_set% = FALSE%) THEN
'' Redisplay the current dialog for TCP options - cancel
'' must have been chosen
GOTO STARTTCPIP
ENDIF
'' Assume continue has been selected - remove dialog
UIPop 1
END IF
'' Set flags as tcp is OK. Also JSB is not in use here, so in
'' case this was selected and cancelled the flag is cleared here
g_tcpip_ok% = TRUE%
g_JSB_set% = TRUE%
END SELECT
END SUB
'' End of function : GetTCPIPSelection
''***************************************************************************
'' Function : GetHostNameForSystem
''***************************************************************************
SUB GetHostNameForSystem STATIC
STARTHOST:
'' Clear host name
g_host_set = FALSE%
'' Get symbol to indicate type of dialog required - is this a clear
'' installation of overlaying an existing MVIEW.INI file
host_type$ = GetSymbolValue("HostType")
'' Call Host Name dialog
IF ( (host_type$ = "New") AND (g_first_inst% = TRUE%) ) THEN
dialog_return$ = UIStartDlg(CUIDLL$, HOSTNAME, "SetHostName",APPHELP, HELP_PROC$)
ELSE
dialog_return$ = UIStartDlg(CUIDLL$, HOSTNAME2, "SetHostName2",APPHELP, HELP_PROC$)
END IF
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTHOST
CASE EXIT_VAL$
'' Clear dialog but don't update selections
UIPop 1
CASE ELSE
'' Host set OK
g_host_set = TRUE%
'' Assume continue has been selected - remove dialog
UIPop 1
END SELECT
END SUB
'' End of function : GetHostNameForSystem
''***************************************************************************
'' Function : GetJSBConfiguration
''***************************************************************************
SUB GetJSBConfiguration STATIC
STARTJSBCONF:
'' Clear JSB flag
g_JSB_set% = FALSE%
'' Call JSB TCP-IP options
dialog_return$ = UIStartDlg(CUIDLL$, OURTCPOPTIONS, "JSBTCPOptions",APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTJSBCONF
CASE EXIT_VAL$
'' Clear dialog but don't update selections
UIPop 1
'' BFX490 : Tonyr. This option no longer exists.
'' CASE CONNECT$
'' Set connectivity options and reactivate
'' GetJSBConnectivity
'' GOTO STARTJSBCONF
CASE ELSE
'' Indicate that JSB TCP-IP has been configured OK - checking
'' may be added or done in dialog process
g_JSB_set% = TRUE%
'' BFX490 : This procedure has changed now.
'' Get host name for system
'' GetHostNameForSystem
'' Get host address if host was set
'' IF g_host_set% = TRUE% THEN
'' HostAddressFunction
'' END IF
GetJSBConnectivity
'' BFX532 (Rob O): If JSB connectivity box cancelled, need to redisplay this dialog
IF g_b_jsb_connectivity% = FALSE% THEN
GOTO STARTJSBCONF
ELSE
'' Assume continue has been selected - remove dialog
UIPop 1
ENDIF
'' ...bfx532 (Rob O)
'' BFX490 Finish
END SELECT
'' BFX530 : Display the Primary node dialogue box if Host was not selected
F_Host$ = "Yes"
F_Host$ = GetSymbolValue("Done_Host_File")
IF F_Host$ = "No" THEN
GetHostNameForSystem
END IF
END SUB
'' End of function : GetJSBConfiguration
''***************************************************************************
'' Function : GetNET_CFGConfig
''***************************************************************************
SUB GetNET_CFGConfig STATIC
STARTNET_CFGCONF:
'' Call JSB NET.CFG dialog
dialog_return$ = UIStartDlg(CUIDLL$, NET_CFG, "GetNET_CFG",APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTNET_CFGCONF
CASE ELSE
'' Assume continue has been selected - remove dialog
UIPop 1
END SELECT
END SUB
'' ...BFX524
'' End of function : GetNET_CFGConfig
''***************************************************************************
'' Function : GetJSBConnectivity
''***************************************************************************
SUB GetJSBConnectivity STATIC
STARTJSBCONN:
'' Call JSB Connectivity options
dialog_return$ = UIStartDlg(CUIDLL$, CONNECTIVITY_DATA, "JSBConnectivity",APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTJSBCONN
CASE EXIT_VAL$
'' Clear dialog but don't update selections
'' BFX532 (Rob O): Note that dialog has been cancelled
g_b_jsb_connectivity% = FALSE%
UIPop 1
CASE ELSE
'' Assume continue has been selected - remove dialog
'' BFX532 (Rob O): Note that dialog has been oked
g_b_jsb_connectivity% = TRUE%
UIPop 1
END SELECT
END SUB
'' End of function : GetJSBConnectivity
''***************************************************************************
'' Function : TestConfigurationOptions
''***************************************************************************
FUNCTION TestConfigurationOptions% STATIC
'' Clear all flags before testing
test1% = FALSE%
test2% = FALSE%
TestConfigurationOptions% = FALSE%
'' Test all flags set to OK - compiler didn't seem to process multiple
'' AND statements so they are split into pairs. Network set
'' isn't currently used but could easily be brought in if necessary
IF ((g_host_set% = TRUE%) AND (g_network_set% = TRUE%)) THEN
test1% = TRUE%
END IF
IF ((g_JSB_set% = TRUE%) AND (g_tcpip_ok% = TRUE%)) THEN
test2% = TRUE%
ENDIF
IF ((test1% = TRUE%) AND (test2% = TRUE%)) THEN
TestConfigurationOptions% = TRUE%
ENDIF
END FUNCTION
'' End of function : TestConfigurationOptions
''***************************************************************************
'' Function : TestInstallationSetup
''***************************************************************************
FUNCTION TestInstallationSetup% STATIC
'' Put on hourglass for re-calculation
g_wait_cursor% = ShowWaitCursor()
'' Set initial return to OK
TestInstallationSetup% = TRUE%
'' Start from zero copylist
ClearCopyList
'' Add all values to the copy list
AddApplicationFiles
AddDesktopFiles
AddNetworkFiles
AddXFiles
'' Set up individual cost values
disk_overflow& = GetCopyListCost(EXTRA$, cost$, "")
'' Set overflow status if applicable
IF disk_overflow& > 0 THEN
'' Set value in BIGLIST$ to TRUE
TestInstallationSetup% = FALSE%
ENDIF
'' Go back to original
IF g_wait_cursor% <> -1 THEN
RestoreCursor g_wait_cursor%
g_wait_cursor% = -1
END IF
END FUNCTION
'' End of function : TestInstallationSetup
''***************************************************************************
'' Function : CheckReconfigOption
''***************************************************************************
SUB CheckReconfigOption STATIC
STARTRECONFIG:
'' Display query exit
dialog_return$ = UIStartDlg(CUIDLL$, TOOBIG, "TooBig", 0, "")
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTRECONFIG
CASE EXIT_VAL$
'' Clear dialog
UIPop 1
'' Set exit flag to incomplete
g_exit_flag% = EXIT_INCOMPLETE%
'' Call exit procedure
ExitDialog
'' Clear error flag
g_exit_flag% = EXIT_OK%
'' Put in restart to function to enable user to choose again
GOTO STARTRECONFIG
CASE ELSE
'' Clear dialog
UIPop 1
END SELECT '' For dialog returns
END SUB
'' End of function : CheckReconfigOption
''***************************************************************************
'' Function : AddDesktopFiles
''***************************************************************************
SUB AddDesktopFiles STATIC
'' Pick off selections from the list - "DesktopOptions"
i_list_num% = GetListLength("DesktopOptions")
g_help_files% = FALSE
'' Loop on all members of the list
FOR i_loop% = 1 TO i_list_num% STEP 1
'' Take off list of items being added
active$ = GetListItem("DesktopOptions", i_loop%)
test$ = GetListItem("DesktopOptionsOrig", i_loop%)
'' Test if this needs adding
IF active$ = "Yes" AND test$ = "No" THEN
'' Add this to global file list
num$ = LTRIM$(STR$(i_loop%))
'' Check if section to be added is for the help files
'' BFX548 Tony Changed help file option number from 1 to 4
IF num$ = "4" THEN
g_help_files% = TRUE
ENDIF
'' BFX456 No longer need REK section
'' Add normal section
AddSectionKeyFileToCopyList DESKINF$, num$, g_src_inf$, g_path_name$
ENDIF
NEXT i_loop%
END SUB
'' End of function : AddDesktopFiles
''***************************************************************************
'' Function : AddNetworkFiles
''***************************************************************************
SUB AddNetworkFiles STATIC
'' Read numeric value for active selection
active$ = GetSymbolValue("NetworkOptions")
test$ = GetSymbolValue("NetworkOptionsOrig")
'' Compare to TCP value
IF active$ = TCP_OPTION$ THEN
'' Get active TCP value
active$ = GetSymbolValue("TCP")
test$ = GetSymbolValue("TCPOrig")
'' Add TCP specific files to VSL directory
IF active$ <> test$ THEN
'' Add windows directory to install for sizing only
IF actual_install% = FALSE% THEN
AddSectionKeyFileToCopyList TCPINF$, active$, g_src_inf$, g_win_dir$
END IF
AddSectionKeyFileToCopyList TCPINF$, active$, g_src_inf$, g_vsl_name$
'' BFX539: Check for other files that need to be copied to windows
IF ( active$ = "ipxspx" ) THEN
section$ = active$+"-p1"
AddSectionKeyFileToCopyList TCPINF$, section$, g_src_inf$, g_win_dir$
END IF
'' Add in special section to allow for NFS by hacking .INF file
section$ = active$+"-p2"
AddSectionKeyFileToCopyList TCPINF$, section$, g_src_inf$, g_path_name$
'' BFX594: Add in special section to allow for Winsock
'' BFX539: Added IPXSPX to list of non winsock connectivity
IF ( active$ <> "wsock10" ) AND ( active$ <>"winsock" ) AND ( active$ <>"ipxspx" )THEN
section$ = active$+"-p3"
AddSectionKeyFileToCopyList TCPINF$, section$, g_src_inf$, g_path_name$
END IF
'' Set changes to happen
g_add_auto% = TRUE%
ELSE
'' No changes to file
g_add_auto% = FALSE%
END IF
'' See if this is a JSB option
IF active$ = JSB_OPTION$ THEN
'' Get active JSB value
jsb_adapt$ = GetSymbolValue("JSBTCP")
jsb_test$ = GetSymbolValue("JSBTCPOrig")
'' Add JSB specific files for adaptor
IF jsb_adapt$ <> jsb_test$ THEN
'' Ensure not an unlisted driver
IF jsb_adapt$ <> "unlist" THEN
AddSectionKeyFileToCopyList JSBINF$, jsb_adapt$, g_src_inf$, g_path_name$
END IF
AddSectionKeyFileToCopyList JSBCON$, "1", g_src_inf$, g_win_dir$
AddSectionKeyFileToCopyList JSBCON$, "2", g_src_inf$, g_sys_dir$
AddSectionKeyFileToCopyList JSBCON$, "3", g_src_inf$, g_tcp_dir$
AddSectionKeyFileToCopyList JSBCON$, "4", g_src_inf$, g_path_name$
'' Set changes to happen
g_add_auto% = TRUE%
ELSE
'' No changes to file will now occur
g_add_auto% = FALSE%
END IF
END IF
ELSE
'' Add network files to global file list if changed
IF active$ <> test$ THEN
'' Add windows directory to install for sizing only
IF actual_install% = FALSE% THEN
AddSectionKeyFileToCopyList NETINF$, active$, g_src_inf$, g_win_dir$
END IF
AddSectionKeyFileToCopyList NETINF$, active$, g_src_inf$, g_path_name$
'' Set changes to happen
g_add_auto% = TRUE%
ELSE
'' Stop changes
g_add_auto% = FALSE%
ENDIF
END IF
END SUB
'' End of function : AddNetworkFiles
''***************************************************************************
'' Function : AddXFiles
''***************************************************************************
SUB AddXFiles STATIC
'' BFX442
g_X_help_files% = FALSE
'' Pick off selections from the list - "XOptions"
i_list_num% = GetListLength("XOptions")
'' Loop on all members of the list
FOR i_loop% = 1 TO i_list_num% STEP 1
'' Take off list of items being added
active$ = GetListItem("XOptions", i_loop%)
test$ = GetListItem("XOptionsOrig", i_loop%)
x_add$ = GetSymbolValue("X_Addition")
'' Test if this needs adding
IF ( (active$ = "Yes") AND ( (test$ = "No") OR ( x_add$ = "Yes") ) ) THEN
'' Add this to global file list
num$ = LTRIM$(STR$(i_loop%))
'' Get the correct output directory for this option
SELECT CASE i_loop%
CASE 1
out_dir$ = g_path_name$
CASE 2
out_dir$ = MakePath(g_path_name$, "FONTS\75DPI")
CASE 3
out_dir$ = MakePath(g_path_name$, "FONTS\100DPI")
CASE 4
''BFX 442
g_X_help_files% = TRUE
out_dir$ = g_path_name$
CASE 5
out_dir$ = MakePath(g_path_name$, "FONTS\MISC")
CASE ELSE
out_dir$ = g_path_name$
END SELECT
'' Only attempt to add if this is an X installation setup
IF g_X_in_inf_file% = TRUE% THEN
AddSectionKeyFileToCopyList XINF$, num$, g_src_inf$, out_dir$
ELSE
'' Drop out without a call to product support
TestRestoreFiles
END
END IF
ENDIF
NEXT i_loop%
END SUB
'' End of function : AddXFiles
''***************************************************************************
'' Function : AddApplicationFiles
''***************************************************************************
SUB AddApplicationFiles STATIC
'' Only add application files for first installation
IF g_first_inst% THEN
'' Add on all values for application and setup
AddSectionFilesToCopyList APPINF$, g_src_inf$, g_path_name$
'' Also install setup files
AddSectionFilesToCopyList SETUP$, g_src_inf$, g_setup_dir$
'' Also install language files
AddSectionFilesToCopyList LANGUAGE$, g_src_inf$, g_language_dir$
'' Also install script files - BFX310
AddSectionFilesToCopyList SCRIPT$, g_src_inf$, g_script_dir$
'' Test X active or not
x_ok$ = GetSymbolValue("X_Active")
IF x_ok$ = "Yes" THEN
check_math% = Has87MathChip()
IF check_math% = 1 THEN
apptype$ = "copro"
ELSE
apptype$ = "noco"
END IF
AddSectionKeyFileToCopyList XAPP$, XAPP$, g_src_inf$, g_path_name$
'' DEV443 - Only install X ini file if not doing any upgrade from X2.02
IF GetSymbolValue(PREV_X_INST$) = "2.02" THEN
ELSE
AddSectionKeyFileToCopyList XAPP$, "inisec", g_src_inf$, g_win_dir$
ENDIF
AddSectionKeyFileToCopyList XAPP$, "misc", g_src_inf$, MakePath(g_path_name$, "FONTS\MISC")
AddSectionKeyFileToCopyList XAPP$, apptype$, g_src_inf$, g_path_name$
END IF
'' Now add in extra fixed values - calculate windows drive values
ndrive% = ASC(ucase$(g_win_drive$)) - ASC("A") + 1
'' Set extra value to estimated size
ReplaceListItem EXTRA$, ndrive%, WINSIZE$
ELSE
'' Test if X needs to be added
x_ok$ = GetSymbolValue("X_Addition")
IF x_ok$ = "Yes" THEN
check_math% = Has87MathChip()
IF check_math% = 1 THEN
apptype$ = "copro"
ELSE
apptype$ = "noco"
END IF
AddSectionKeyFileToCopyList XAPP$, XAPP$, g_src_inf$, g_path_name$
'' DEV443 - Only install X ini file if not doing any upgrade from X2.02
IF GetSymbolValue(PREV_X_INST$) = "2.02" THEN
ELSE
AddSectionKeyFileToCopyList XAPP$, "inisec", g_src_inf$, g_win_dir$
ENDIF
AddSectionKeyFileToCopyList XAPP$, "misc", g_src_inf$, MakePath(g_path_name$, "FONTS\MISC")
AddSectionKeyFileToCopyList XAPP$, apptype$, g_src_inf$, g_path_name$
'' Also install setup files
AddSectionFilesToCopyList SETUP$, g_src_inf$, g_setup_dir$
END IF
END IF
END SUB
'' End of function : AddApplicationFiles
''***************************************************************************
'' Function : SetDriveStatus
''***************************************************************************
SUB SetDriveStatus STATIC
'' Pick off value of installation drive
drive$ = MID$(g_path_name$, 1, 1)
'' Set this to a number, A = 1, B = 2 etc.
ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
'' Get free space available
free& = GetFreeSpaceForDrive(drive$)
'' Add up cost
cost& = VAL(GetListItem(XCOSTS$, ndrive%)) + VAL(GetListItem(NETCOSTS$, ndrive%)) + VAL(GetListItem(DESKCOSTS$, ndrive%)) + VAL(GetListItem(APPCOSTS$, ndrive%))
'' Put these values out for display
ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
'' If installing to windows drive then hide the extra values
IF drive$ = g_win_drive$ THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
'' Calculate windows drive values
ndrive% = ASC(ucase$(g_win_drive$)) - ASC("A") + 1
'' Add up cost
cost& = VAL(GetListItem(XCOSTS$, ndrive%)) + VAL(GetListItem(NETCOSTS$, ndrive%)) + VAL(GetListItem(DESKCOSTS$, ndrive%)) + VAL(GetListItem(APPCOSTS$, ndrive%))
'' Check that this is required
IF cost& = 0 THEN
ReplaceListItem DRIVETEXT$, 4, ""
ReplaceListItem DRIVETEXT$, 5, ""
ReplaceListItem DRIVETEXT$, 6, ""
ELSE
'' Get free space
free& = GetFreeSpaceForDrive(g_win_drive$)
ReplaceListItem DRIVETEXT$, 4, g_win_drive$ + ":"
ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
END IF
END IF
END SUB
'' End of function : SetDriveStatus
''***************************************************************************
'' Function : CalculateSizeNeeded
''***************************************************************************
SUB CalculateSizeNeeded STATIC
'' Put on hourglass for re-calculation
g_wait_cursor% = ShowWaitCursor()
'' Add up values of different options
IF g_update_all% = TRUE% THEN
SizeOptions APPCOSTS$, APPSTAT
END IF
IF g_update_all% = TRUE% OR g_update_desk% = TRUE% THEN
SizeOptions DESKCOSTS$, DESKSTAT
END IF
IF g_update_all% = TRUE% OR g_update_net% = TRUE% THEN
SizeOptions NETCOSTS$, NETSTAT
END IF
IF g_update_all% = TRUE% OR g_update_X% = TRUE% THEN
SizeOptions XCOSTS$, XSTAT
END IF
'' Clear all update values
g_update_all% = FALSE%
g_update_desk% = FALSE%
g_update_net% = FALSE%
g_update_X% = FALSE%
'' Go back to original
IF g_wait_cursor% <> -1 THEN
RestoreCursor g_wait_cursor%
g_wait_cursor% = -1
END IF
END SUB
'' End of function : CalculateSizeNeeded
''***************************************************************************
'' Function : SizeOptions
''***************************************************************************
SUB SizeOptions (cost$, stat% ) STATIC
'' Start from zero copylist and file size
ClearCopyList
disk_cost& = 0
'' See which section we are building up
SELECT CASE cost$
CASE APPCOSTS$
AddApplicationFiles
CASE DESKCOSTS$
AddDesktopFiles
CASE NETCOSTS$
AddNetworkFiles
CASE XCOSTS$
AddXFiles
CASE ELSE
END SELECT
'' Set up individual cost values
disk_overflow& = GetCopyListCost(EXTRA$, cost$, "")
'' Go through all possible additional values for drive ids
FOR i_loop% = 1 TO 26 STEP 1
disk_cost& = disk_cost& + VAL(GetListItem(cost$, i_loop%))
NEXT i_loop%
'' Set overflow status if applicable
IF disk_overflow& > 0 THEN
'' Set value in BIGLIST$ to TRUE
ReplaceListItem BIGLIST$ , stat%, "Yes"
ELSE
'' Clear biglist value
ReplaceListItem BIGLIST$ , stat%, ""
ENDIF
'' Store total cost for this option in the status section
ReplaceListItem STATUSTEXT$, stat%, STR$(disk_cost& / 1024) + " K"
'' Reset any possible extra value (now only WINDIR, if this gets more
'' complex then set up a global series to clear
ndrive% = ASC(ucase$(g_win_drive$)) - ASC("A") + 1
'' Set extra value to zero as it has been added to status
ReplaceListItem EXTRA$, ndrive%, "0"
END SUB
'' End of function : SizeOptions
''***************************************************************************
'' Function : MakePath
''***************************************************************************
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
'' End of function : MakePath
''***************************************************************************
'' Function : AddNewProgmanDetails
''***************************************************************************
SUB AddNewProgmanDetails STATIC
'' Set up program name lists
ProgmanNames(HwndFrame())
'' Pick off name required from symbol
prog_name$ = GetSymbolValue("ProgName")
'' Create new group in program manager
'' BFX490 changed cmoOverwrite tp cmoNone, because it isn't a valid param.
CreateProgmanGroup prog_name$, MakePath(g_win_dir$,"MVIEW5.GRP"), cmoNone
'' Now loop on all required items - note that all three lists will be
'' the same length
i_max% = GetListLength("ProgTitle")
FOR i_loop% = 1 TO i_max% STEP 1
'' Pick off all three values
item_name$ = GetListItem("ProgTitle", i_loop%)
item_call$ = GetListItem("ProgList", i_loop%)
item_icon$ = GetListItem("ProgIcon", i_loop%)
'' Create this list item - if icon is NULL then don't add path
'' msg% = DoMsgBox(item_icon$,"item_icon$",MB_OK)
IF item_icon$ = "" THEN
'' BFX206
CreateProgmanItem prog_name$, item_name$, MakePath(g_path_name$,item_call$), item_icon$, cmoNone
ELSE
'' Test if icon file exists
'' DEV665 if icon value is HELP_32 then this is a lpr/lpd 32 bit help file which does
'' not need a path prepending
IF item_icon$ = "HELP_32" THEN
item_icon$ = ""
'' msg% = DoMsgBox(item_call$,"got HRLP_32 now item_call$ is",MB_OK)
CreateProgmanItem prog_name$, item_name$, item_call$, item_icon$, cmoNone
ELSE
file_exist% = DoesFileExist(MakePath(g_path_name$,item_icon$), femExists)
IF file_exist% = 1 THEN
icon_file$ = MakePath(g_path_name$,item_icon$)
ELSE
icon_file$ = MakePath(g_path_name$,"NOHOST.ICO")
END IF
'' BFX206
CreateProgmanItem prog_name$, item_name$, MakePath(g_path_name$,item_call$), icon_file$, cmoNone
ENDIF
ENDIF
NEXT i_loop%
'' Add X icon if necessary
x_ok$ = GetSymbolValue("X_Active")
IF x_ok$ = "Yes" THEN
'' BFX206
CreateProgmanItem prog_name$, g_product_name$ + " Server", MakePath(g_path_name$,"X.EXE"), "", cmoNone
'' Now see if we have installed the font compiler, option "1"
font_comp$ = GetListItem ("XOptions", 1)
IF font_comp$ = "Yes" THEN
'' Add to group
'' BFX206
CreateProgmanItem prog_name$, "Font Compiler", MakePath(g_path_name$,"FONTMAN.EXE"), "", cmoNone
END IF
END IF
'' Add setup program
'' BFX206
CreateProgmanItem prog_name$, "Setup", MakePath(g_path_name$,"SETUP\SETUP.EXE"), "", cmoNone
'' Add readme program
'' DEV466
IF x_ok$ = "Yes" THEN
CreateProgmanItem prog_name$, g_product_name$ + " Readme", MakePath(g_path_name$,"README_X.TXT"), "", cmoNone
CreateProgmanItem prog_name$, "MultiView DeskTop" + " Readme", MakePath(g_path_name$,"README.TXT"), "", cmoNone
ELSE
'' BFX206
CreateProgmanItem prog_name$, g_product_name$ + " Readme", MakePath(g_path_name$,"README.TXT"), "", cmoNone
ENDIF
'' Add jsbkrnl program
'' DEV439
'' CreateProgmanItem prog_name$, "JSB TCP/IP Kernel Readme", MakePath(g_path_name$, "JSBKRNL.TXT"), "", cmoNone //NOVELL REMOVED
'' Add help icons
IF g_help_files% = TRUE THEN
CreateProgmanItem prog_name$, "MultiView DeskTop Help", MakePath(g_path_name$,"mview.hlp"), "", cmoNone
'' BFX490 Tonyr : Added new Help icon to program group
CreateProgmanItem prog_name$, "File Transfer Help", MakePath(g_path_name$,"ftp.hlp"), "", cmoNone
CreateProgmanItem prog_name$, "Technical Help", MakePath(g_path_name$,"mvwtech.hlp"), "", cmoNone
ENDIF
'' BFX442
IF g_X_help_files% = TRUE THEN
IF x_ok$ = "Yes" THEN
CreateProgmanItem prog_name$, g_product_name$ + " Server", MakePath(g_path_name$,"xoftware.hlp"), "", cmoNone
ENDIF
ENDIF
'' BFX581 This is done by the DLL now.
'' DEV517: Add jsb ftp site
'' CreateProgmanItem prog_name$, "JSB's FTP Site", MakePath(g_path_name$,"mxfer.exe \nftp.jsb.com \pfftp"), MakePath(g_path_name$,"jsbftp.ico"), cmoNone
'' Add group name to MVIEW.INI file
CreateIniKeyValue MakePath(g_win_dir$,"MVIEW.INI"), "multiview", "progmangroup", prog_name$, cmoNone
IF x_ok$ = "Yes" THEN
'' Add X program manager group
CreateIniKeyValue MakePath(g_win_dir$,"XOFTWARE.INI"), "XoftWare", "ProgGroup", prog_name$, cmoNone
END IF
'' Remove the symbols used
RemoveSymbol("ProgName")
RemoveSymbol("ProgTitle")
RemoveSymbol("ProgList")
RemoveSymbol("ProgIcon")
END SUB
'' End of function : AddNewProgmanDetails
''***************************************************************************
'' Function : SerialisationFailed
''***************************************************************************
SUB SerialisationFailed STATIC
STARTSERIAL:
'' Call dialog box
dialog_return$ = UIStartDlg(CUIDLL$, SERIAL_FAILED, "SerialisationFailed", 0, "")
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTSERIAL
CASE ELSE
'' Remove dialog
UIPop 1
END SELECT
END SUB
'' End of function : SerialisationFailed
''***************************************************************************
'' Function : GetTermLogin
''***************************************************************************
SUB GetTermLogin STATIC
STARTTERM:
'' Call dialog box
dialog_return$ = UIStartDlg(CUIDLL$, TERMINAL, "GetTermValues", APPHELP, HELP_PROC$)
SELECT CASE dialog_return$
CASE REACTIVATE$
'' Simply redisplay dialog
GOTO STARTTERM
CASE ELSE
'' Remove dialog
UIPop 1
END SELECT
END SUB
'' End of function : GetTermLogin
''***************************************************************************
'' Function : AddXProgmanDetails
''***************************************************************************
SUB AddXProgmanDetails STATIC
'' Add X icon if necessary
x_ok$ = GetSymbolValue("X_Addition")
IF x_ok$ = "Yes" THEN
'' Pick off name required from ini file
prog_name$ = GetIniKeyString(MakePath(g_win_dir$,"MVIEW.INI"), "multiview", "progmangroup")
CreateProgmanItem prog_name$, g_product_name$ + " Server", MakePath(g_path_name$,"X.EXE"), "", cmoNone
'' Now see if we have installed the font compiler, option "1"
font_comp$ = GetListItem ("XOptions", 1)
IF font_comp$ = "Yes" THEN
'' Add to group
CreateProgmanItem prog_name$, "Font Compiler", MakePath(g_path_name$,"FONTMAN.EXE"), "", cmoNone
END IF
CreateIniKeyValue MakePath(g_win_dir$,"XOFTWARE.INI"), "XoftWare", "ProgGroup", prog_name$, cmoNone
ELSE
'' Check for later addition of X font compiler
active$ = GetListItem("XOptions", 1)
test$ = GetListItem("XOptionsOrig", 1)
'' Test if this needs adding
IF active$ = "Yes" AND test$ = "No" THEN
'' Pick off name required from ini file
prog_name$ = GetIniKeyString(MakePath(g_win_dir$,"MVIEW.INI"), "multiview", "progmangroup")
'' Add to group
CreateProgmanItem prog_name$, "Font Compiler", MakePath(g_path_name$,"FONTMAN.EXE"), "", cmoNone
ENDIF
END IF
END SUB
'' End of function : AddXProgmanDetails