home *** CD-ROM | disk | FTP | other *** search
/ Cómo funcionan las cosas / DKMMTWTW.iso / dksetup / dksetup.mst < prev    next >
Text File  |  1995-07-27  |  9KB  |  328 lines

  1. ''$DEFINE DEBUG
  2. '$INCLUDE 'dkgen.inc'
  3.  
  4. ' Paths and INI stuff
  5. CONST APPLICATION_INI_FILE = "twtw.ini"
  6. CONST APPLICATION_EXE_FILE = "twtw.exe"
  7. CONST APPLICATION_PENGE_FILE = "twtw.png"
  8.  
  9. CONST INI_FILE_SOURCE = "WinPath" ' OR "AppPath"
  10.  
  11. ' Language dependant strings
  12. CONST APPLICATION_README_FILE = "leame.txt"
  13. CONST STR_README = "LΘame"
  14. CONST STR_MSGCAPTION = "Instalaci≤n de C≤mo funcionan las cosas"
  15.  
  16. CONST STR_PRODUCTNAME = "C≤mo funcionan las cosas"
  17. CONST DEFAULT_INSTALL_PATH = "\ZETA\TWTW"
  18.  
  19. DECLARE SUB Install()
  20. DECLARE SUB AddFilesToCopyList(szInstallType$)
  21.  
  22. DECLARE FUNCTION IsCDROMDrive Lib "dkutils.dll" (wDrive%) AS INTEGER
  23.  
  24.  
  25. Init:
  26.     Initialise STR_PRODUCTNAME, DEFAULT_INSTALL_PATH, STR_MSGCAPTION
  27.  
  28. WelcomeDlg:
  29.     if Welcome() = NAV_BACK then
  30.         ' Don nothing - cant go back
  31.     end if
  32.  
  33.     if TestSystem() = NAV_BACK then
  34.         goto WelcomeDlg
  35.     end if
  36.  
  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.  
  164.         UIPop 1
  165.  
  166.     case "EXIT"
  167.         AskQuit
  168.         goto GetPathDlg
  169.     end select
  170.  
  171. GetCustomChoicesDlg:
  172.     SetSymbolValue "CheckItemsState", ""
  173.     AddListItem "CheckItemsState", szMinimalInstall
  174.     AddListItem "CheckItemsState", szAddPMItem
  175.  
  176. GetCustomChoicesLoop:
  177.  
  178.     ClearCopyList
  179.     if szMinimalInstall = "OFF" then
  180.         AddFilesToCopyList "FULL"
  181.     else
  182.         AddFilesToCopyList "MINIMAL"
  183.     end if
  184.  
  185.     dDestDrive = asc(mid$(szDestPath, 1,1)) - asc("A")+1
  186.     dWinDrive = asc(mid$(szWinPath, 1,1)) - asc("A")+1
  187.  
  188.     SetSymbolValue "DriveStatusText", ""
  189.     AddListItem "DriveStatusText", mid$(szDestPath, 1,1) + ":"
  190.     AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dDestDrive) / 1024) + " K"
  191.     AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szDestPath, 1,1))/1024) + " K"
  192.  
  193.     if dDestDrive = dWinDrive then
  194.         AddListItem "DriveStatusText", ""
  195.         AddListItem "DriveStatusText", ""
  196.         AddListItem "DriveStatusText", ""
  197.     else
  198.         AddListItem "DriveStatusText", mid$(szWinPath, 1,1) + ":"
  199.         AddListItem "DriveStatusText", str$(GetDiskSpaceNeeded(dWinDrive)/ 1024 ) + " K"
  200.         AddListItem "DriveStatusText", str$(GetFreeSpaceForDrive(mid$(szWinPath, 1,1))/1024) + " K"
  201.     end if
  202.  
  203.     AddListItem "DriveStatusText", szDestPath
  204.  
  205.     szButton = UIStartDlg(CUIDLL_FILENAME, IDD_CUSTOM, "FCustInstDlgProc", IDD_CUSTOMHELP, PROC_HELP)
  206.  
  207.     szMinimalInstall = GetListItem("CheckItemsState", 1)
  208.     szAddPMItem = GetListItem("CheckItemsState", 2)
  209.  
  210.     select case szButton
  211.     case "REACTIVATE"
  212.         goto GetCustomChoicesLoop
  213.     case "BACK"
  214.         UIPop 1
  215.         goto GetPathDlg
  216.     case "CONTINUE"
  217.         UIPop 1
  218.     case "EXIT"
  219.         AskQuit
  220.         goto GetCustomChoicesLoop
  221.     end select
  222.  
  223.     ClearCopyList
  224.     if szMinimalInstall = "OFF" then
  225.         AddFilesToCopyList "FULL"
  226.     else
  227.         AddFilesToCopyList "MINIMAL"
  228.     end if
  229.     goto CommonInstallLoop
  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.  
  245.     Install
  246.     UpdateProgramManager STR_PRODUCTNAME, 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_I