home *** CD-ROM | disk | FTP | other *** search
/ Mon Premier Dictionnaire Super Genial Nathan!!! / DictionnaireNathanDKMMMFD.iso / dksetup / dksetup.mst < prev    next >
Text File  |  1996-11-07  |  9KB  |  329 lines

  1. ''$DEFINE DEBUG
  2. '$INCLUDE 'dkgen.inc'
  3.  
  4. ' Paths and INI stuff
  5. CONST APPLICATION_INI_FILE = "mfd.ini"
  6. CONST APPLICATION_EXE_FILE = "mfd.exe"
  7. CONST APPLICATION_PENGE_FILE = "mfd.png"
  8.  
  9. CONST INI_FILE_SOURCE = "WinPath" ' OR "AppPath"
  10.  
  11. ' Language dependant strings
  12. CONST APPLICATION_README_FILE = "lisezmoi.txt"
  13. CONST STR_README = "Lisez Moi"
  14. CONST STR_MSGCAPTION = "Mon Premier Dictionnaire Nathan : installation"
  15.  
  16. CONST STR_PRODUCTNAME = "Mon Premier Dictionnaire Nathan"
  17. CONST STR_SHORTNAME = "Mon Premier Dictionnaire"
  18. CONST DEFAULT_INSTALL_PATH = "\NATHANMM\MFD"
  19.  
  20. DECLARE SUB Install()
  21. DECLARE SUB AddFilesToCopyList(szInstallType$)
  22.  
  23. DECLARE FUNCTION IsCDROMDrive Lib "dkutils.dll" (wDrive%) AS INTEGER
  24.  
  25.  
  26. Init:
  27.     Initialise STR_PRODUCTNAME, DEFAULT_INSTALL_PATH, STR_MSGCAPTION
  28.  
  29. WelcomeDlg:
  30.     if Welcome() = NAV_BACK then
  31.         ' Don nothing - cant go back
  32.     end if
  33.  
  34.     if TestSystem() = NAV_BACK then
  35.         goto WelcomeDlg
  36.     end if
  37.  
  38.     UpdateADPCMDrivers
  39.  
  40. ExpressCustomDlg:
  41.     ' defaults to Express
  42.     'if szExpressCustomChoice = "EXPRESS" then
  43.     '    SetSymbolValue "RadioDefault", "1"
  44.     'else
  45.     '    SetSymbolValue "RadioDefault", "1"
  46.     'end if
  47.  
  48. ECDlgLoop:
  49.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_SPEED, "FRadioDlgProc", IDD_WHIZZHELP, PROC_HELP)
  50.  
  51.     select case szButton
  52.     case "REACTIVATE"
  53.         goto ECDlgLoop
  54.     case "BACK"
  55.         UIPop 1
  56.         goto WelcomeDlg
  57.     case "CONTINUE" ' Install
  58.         UIPop 1
  59.         if GetSymbolValue("ButtonChecked") = "1" then
  60.             szExpressCustomChoice = "EXPRESS"
  61.             goto ExpressInstallLoop
  62.         else
  63.             szExpressCustomChoice = "CUSTOM"
  64.             goto CustomInstallLoop
  65.         end if
  66.     case "EXIT"
  67.         AskQuit
  68.         goto ECDlgLoop
  69.     end select
  70.  
  71.  
  72. CustomInstallLoop:
  73. GetPathDlg:
  74.     SetSymbolValue "EditTextIn", szDestPath
  75.     szOldDestPath = szDestPath
  76.     SetSymbolValue "EditFocus", "ALL"
  77.  
  78. GetPathDlgLoop:
  79.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_DESTPATH, "FEditDlgProc", IDD_PATHHELP, PROC_HELP)
  80.  
  81.     select case szButton
  82.     case "REACTIVATE"
  83.         goto GetPathDlgLoop
  84.  
  85.     case "BACK"
  86.         UIPop 1
  87.         szDestPath = szOldDestPath
  88.         goto ECDlgLoop
  89.  
  90.     case "CONTINUE"
  91.         UIPop 1
  92.         szDestPath = ucase$(GetSymbolValue("EditTextOut"))
  93.  
  94.         if mid$(szDestPath, 2, 1) = ":" and mid$(szDestPath, 3, 1) <> "\" then
  95.             szTemp$ = mid$(szDestPath, 1, 2) + "\" + mid$(szDestPath, 3, len(szDestPath)-2)
  96.             szDestPath = szTemp
  97.         end if
  98.  
  99.         if mid$(szDestPath, 2, 1) <> ":" then
  100.             if mid$(szDestPath, 1,1) <> "\" then
  101.                 szDestPath = mid$(szWinPath, 1,1) + ":\" + szDestPath
  102.             else
  103.                 szDestPath = mid$(szWinPath, 1,1) + ":" + szDestPath
  104.             end if
  105.         elseif IsDriveValid(mid$(szDestPath, 1,1)) = 0 then
  106.             szDestPath = szOldDestPath
  107.             UIPop 1
  108.             BadPath
  109.             goto GetPathDlg
  110.         end if
  111.  
  112.         ' check for "foreign" chars in path
  113.         slength% = len(szDestPath)
  114.         found% = 0
  115.         for i% = 1 to slength%
  116.             if asc(mid$(szDestPath, i%, 1)) > 126 then
  117.                 found% = 1
  118.             end if
  119.         next i%
  120.         if found% = 1 then
  121.             szDestPath = szOldDestPath
  122.             UIPop 1
  123.             BadPath
  124.             goto GetPathDlg
  125.         end if
  126.  
  127.         wDrive% = asc(mid$(szDestPath, 1,1)) - asc("A")
  128.         if IsCDROMDrive(wDrive%) > 0 then
  129.             szDestPath = szOldDestPath
  130.             UIPop 1
  131.             BadPath
  132.             goto GetPathDlg
  133.         end if
  134.  
  135.         if IsDriveNetwork(mid$(szDestPath,1,1)) = 1 then
  136.             szDestPath = szOldDestPath
  137.             UIPop 1
  138.             NetworkDrive
  139.             goto GetPathDlg
  140.         end if
  141.  
  142.         if IsDirWritable(szDestPath) = 0 then
  143.             szDestPath = szOldDestPath
  144.             UIPop 1
  145.             BadPath
  146.             goto GetPathDlg
  147.         end if
  148.  
  149.         if IsDriveRemovable(mid$(szDestPath,1,1)) then
  150.             szDestPath = szOldDestPath
  151.             UIPop 1
  152.             BadPath
  153.             goto GetPathDlg
  154.         end if
  155.  
  156.  
  157.         if DoesDirExist(szDestPath) = 0 then
  158.             dButton = DoMsgBox( STR_DIRNOTEXIST, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  159.             if dButton = 7 then
  160.                 goto GetPathDlg
  161.             end if
  162.         end if
  163.         UIPop 1
  164.  
  165.     case "EXIT"
  166.         AskQuit
  167.         goto GetPathDlg
  168.     end select
  169.  
  170. GetCustomChoicesDlg:
  171.     SetSymbolValue "CheckItemsState", ""
  172.     AddListItem "CheckItemsState", szMinimalInstall
  173.     AddListItem "CheckItemsState", szAddPMItem
  174.  
  175. GetCustomChoicesLoop:
  176.  
  177.     ClearCopyList
  178.     if szMinimalInstall = "OFF" then
  179.         AddFilesToCopyList "FULL"
  180.     else
  181.         AddFilesToCopyList "MINIMAL"
  182.     end if
  183.  
  184.     dDestDrive = asc(mid$(szDestPath, 1,1)) - asc("A")+1
  185.     dWinDrive = asc(mid$(szWinPath, 1,1)) - asc("A")+1
  186.  
  187.     SetSymbolValue "DriveStatusText", ""
  188.     AddListItem "DriveStatusText", mid$(szDestPath, 1,1) + ":"
  189.     AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dDestDrive) / 1024) + " K"
  190.     AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szDestPath, 1,1))/1024) + " K"
  191.  
  192.     if dDestDrive = dWinDrive then
  193.         AddListItem "DriveStatusText", ""
  194.         AddListItem "DriveStatusText", ""
  195.         AddListItem "DriveStatusText", ""
  196.     else
  197.         AddListItem "DriveStatusText", mid$(szWinPath, 1,1) + ":"
  198.         AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dWinDrive)/ 1024 ) + " K"
  199.         AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szWinPath, 1,1))/1024) + " K"
  200.     end if
  201.  
  202.     AddListItem "DriveStatusText", szDestPath
  203.  
  204.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_CUSTOM, "FCustInstDlgProc", IDD_CUSTOMHELP, PROC_HELP)
  205.  
  206.     szMinimalInstall = GetListItem("CheckItemsState", 1)
  207.     szAddPMItem = GetListItem("CheckItemsState", 2)
  208.  
  209.     select case szButton
  210.     case "REACTIVATE"
  211.         goto GetCustomChoicesLoop
  212.     case "BACK"
  213.         UIPop 1
  214.         goto GetPathDlg
  215.     case "CONTINUE"
  216.         UIPop 1
  217.     case "EXIT"
  218.         AskQuit
  219.         goto GetCustomChoicesLoop
  220.     end select
  221.  
  222.     ClearCopyList
  223.     if szMinimalInstall = "OFF" then
  224.         AddFilesToCopyList "FULL"
  225.     else
  226.         AddFilesToCopyList "MINIMAL"
  227.     end if
  228.     goto CommonInstallLoop
  229.  
  230.  
  231. ExpressInstallLoop:
  232.     AddFilesToCopyList "FULL"
  233.     goto CommonInstallLoop
  234.  
  235. CommonInstallLoop:
  236.     InitCommonInstall
  237.  
  238.     if szMinimalInstall = "ON" and GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < MINIMUM_DISK_SPACE then
  239.         error ERR_NODISKSPACE
  240.     elseif GetFreeSpaceForDrive(mid$(szDestPath,1,1)) < GetDiskSpaceNeeded( asc(mid$(szDestPath, 1,1))-asc("A")+1 ) then
  241.         error ERR_NODISKSPACE
  242.     end if
  243.  
  244.     Install
  245. '    UpdateProgramManager STR_PRODUCTNAME, APPLICATION_EXE_FILE, APPLICATION_PENGE_FILE, APPLICATION_README_FILE, STR_README, FALSE
  246.     UpdateProgramManagerAlt STR_PRODUCTNAME, STR_SHORTNAME, APPLICATION_EXE_FILE, APPLICATION_PENGE_FILE, APPLICATION_README_FILE, STR_README, FALSE
  247.  
  248. '$IFDEF DEBUG
  249.     DumpCopyList MakePath(szDestPath, "copylist.txt")
  250. '$ENDIF ''DEBUG
  251.  
  252.     EndCommonInstall APPLICATION_README_FILE, 0
  253.  
  254. quit:
  255.     on error goto quit
  256.  
  257.     select case ERR
  258.  
  259.     case 0
  260.         hDlg = IDD_EXITSUCCESS
  261.     case STFQUIT
  262.         hDlg = IDD_EXITQUIT
  263.     case ERR_NODISKSPACE
  264.         hDlg = IDD_NODISKSPACE
  265.     case else
  266.         hDlg = IDD_EXITFAILURE
  267.     end select
  268.  
  269.     UIPop 10
  270. quit2:
  271.     szButton = UIStartDlg(CUIDLL_FILENAME, hDlg, "FInfo0DlgProc", 0, "")
  272.     select case szButton
  273.     case "REACTIVATE"
  274.         goto quit2
  275.     end select
  276.  
  277.     UIPop 1
  278.     stop
  279.     end
  280.  
  281. quitError:
  282.     dButton = DoMsgBox (STR_QUITERROR, STR_MSGCAPTION, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  283.     end
  284.  
  285. Finish:
  286.     DeInitialise
  287.     stop
  288.     end
  289.  
  290.  
  291.  
  292. Sub Install() STATIC
  293.  
  294.     cursor% = ShowWaitCursor()
  295.     CreateDir szDestPath, cmoNone
  296.     SetRestartDir szDestPath
  297.     RestoreCursor(cursor%)
  298.  
  299.     CopyFilesInCopyList
  300.  
  301.     if INI_FILE_SOURCE = "AppPath" then
  302.         szAppINIPath = MakePath(szDestPath, APPLICATION_INI_FILE)
  303.     else
  304.         szAppINIPath = MakePath(szWinPath, APPLICATION_INI_FILE)
  305.     end if
  306.  
  307.     szPengePath = mid$(szSrcSetupPath, 1,len(szSrcSetupPath)-len(SOURCE_SETUP_SUBDIR)-2) ' -2 removes backslash
  308.     CreateIniKeyValue szAppINIPath, PRODUCT_INI_DIR_SECTION_NAME, PRODUCT_INI_DIR_ENTRY_NAME, szPengePath, cmoOverwrite
  309. End Sub
  310.  
  311.  
  312. Sub AddFilesToCopyList(szInstallType$) STATIC
  313.     cursor% = ShowWaitCursor()
  314.  
  315.     select case szInstallType
  316.     case "FULL"
  317.         AddSectionFilesToCopyList SETUP_INI_BINARIES_SECTION_NAME, szSrcBinPath, szDestPath
  318.     case "MINIMAL"
  319.         rem
  320.     end select
  321.  
  322.     if fSystemUpdated = 1 then
  323.         AddSectionFilesToCopyList "ACM Drivers", szSrcBinPath, szWinSysPath
  324.     end if
  325.     RestoreCursor(cursor%)
  326. End Sub
  327.  
  328.  
  329.