home *** CD-ROM | disk | FTP | other *** search
/ PC Active 1995 March / PCA75.bin / demo / win / pal / docs / views30.mst / views30.mst
Encoding:
Text File  |  1995-05-23  |  5.9 KB  |  258 lines

  1. '*   Folio Viewer Setup
  2.  
  3. '$INCLUDE 'setupapi.inc'
  4.  
  5. CONST ASKQUIT       = 200
  6. CONST EXITFAILURE   = 400
  7. CONST EXITQUIT      = 600
  8. CONST EXITSUCCESS   = 700
  9. CONST APPHELP       = 900
  10. CONST TOOBIG        = 6300
  11. CONST BADPATH       = 6400
  12. CONST WELCOME       = 150
  13. CONST NFOPATH       = 1500
  14.  
  15. CONST LOGO         = 1
  16.  
  17. CONST APPFILES     = 1
  18.  
  19. GLOBAL DEST$
  20. GLOBAL SRCDIR$
  21. GLOBAL WINDRIVE$
  22. GLOBAL VIDMODE$
  23. GLOBAL SFONT$
  24.  
  25. GLOBAL APPNEEDS$
  26. GLOBAL EXTRACOSTS$
  27. GLOBAL BIGLIST$
  28. GLOBAL TITLE$
  29. GLOBAL INFOBASE$
  30. GLOBAL DIR$
  31. GLOBAL CUSTNAME$
  32. GLOBAL SERNUM$
  33.  
  34. DECLARE SUB AddOptFilesToCopyList (ftype%)
  35. DECLARE SUB RecalcOptFiles (ftype%)
  36. DECLARE SUB RecalcPath
  37. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  38. DECLARE FUNCTION StampNameSerNum LIB "mscuistf.dll" (szViewsExe$, szCustName$, szCustSN$) AS INTEGER
  39. DECLARE FUNCTION ShowWindow LIB "User" (handle%, how%) AS INTEGER
  40. DECLARE FUNCTION GetActiveWindow LIB "User" () AS INTEGER
  41.  
  42. INIT:
  43.     CUIDLL$ = "mscuistf.dll"
  44.     HELPPROC$ = "FHelpDlgProc"
  45.  
  46.     SetBitmap CUIDLL$, LOGO
  47.     SetTitle "Folio Viewer Setup"
  48.     SRCDIR$ = GetSymbolValue("STF_SRCDIR")
  49.  
  50.     DIR$ = GetIniKeyString(MakePath(SRCDIR$, "VIEWS30.INI"), "Setup", "Directory")
  51.     TITLE$ = GetIniKeyString(MakePath(SRCDIR$, "VIEWS30.INI"), "Setup", "Label")
  52.     CUSTNAME$ = GetIniKeyString(MakePath(SRCDIR$, "VIEWS30.INI"), "Registration", "User")
  53.     SERNUM$ = GetIniKeyString(MakePath(SRCDIR$, "VIEWS30.INI"), "Registration", "ID")
  54.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  55.     DEST$ = WINDRIVE$ + ":" + DIR$
  56.  
  57.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  58.     IF szInf$ = "" THEN
  59.         szInf$ = GetSymbolValue("STF_CWDDIR") + "VIEWS30.INF"
  60.     END IF
  61.     ReadInfFile szInf$
  62.  
  63.     INFOBASE$ = GetSectionKeyFilename("NFOFiles", "Infobase")
  64.     APPNEEDS$   = "AppNeeds"
  65.     EXTRACOSTS$ = "ExtraCosts"
  66.     BIGLIST$    = "BigList"
  67.     AddListItem BIGLIST$, ""
  68.     FOR i% = 1 TO 26 STEP 1
  69.         AddListItem EXTRACOSTS$, "0"
  70.     NEXT i%
  71.  
  72.     i% = GetScreenHeight()
  73.     IF i% < 480 THEN
  74.         VIDMODE$ = "(EGA res)"
  75.         SFONT$ = "SMALLB.FON"
  76.     ELSEIF i% < 768 THEN
  77.         VIDMODE$ = "(VGA res)"
  78.         SFONT$ = "SMALLE.FON"
  79.     ELSE
  80.         VIDMODE$ = "(8514/a res)"
  81.         SFONT$ = "SMALLF.FON"
  82.     END IF
  83.  
  84.     RecalcPath
  85.  
  86. WELCOME:
  87.     i% = ShowWindow(GetActiveWindow(), 3)
  88.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  89.     IF sz$ = "CONTINUE" THEN
  90.         UIPop 1
  91.     ELSE
  92.         GOSUB ASKQUIT
  93.         GOTO WELCOME
  94.     END IF
  95.  
  96.  
  97. NFOPATH:
  98.     SetSymbolValue "EditTextIn", DEST$
  99.     SetSymbolValue "EditFocus", "ALL"
  100. NFOPATHL1:
  101.     sz$ = UIStartDlg(CUIDLL$, NFOPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  102.  
  103.     IF sz$ = "CONTINUE" THEN
  104.         DEST$ = GetSymbolValue("EditTextOut")
  105.  
  106.         IF IsDirWritable(DEST$) = 0 THEN
  107.             GOSUB BADPATH
  108.             GOTO NFOPATHL1
  109.         END IF
  110.         UIPop 1
  111.         RecalcOptFiles APPFILES
  112.         IF GetListItem(BIGLIST$, 1) <> "" THEN
  113.             GOSUB TOOBIG
  114.             GOTO QUIT
  115.         END IF
  116.         GOTO INSTALL
  117.     ELSEIF sz$ = "REACTIVATE" THEN
  118.         GOTO NFOPATHL1
  119.     ELSEIF sz$ = "EXIT" THEN
  120.         GOSUB ASKQUIT
  121.         GOTO NFOPATHL1
  122.     ELSE
  123.         UIPop 1
  124.         GOTO INSTALL
  125.     END IF
  126.  
  127. INSTALL:
  128.     ClearCopyList
  129.     AddOptFilesToCopyList APPFILES
  130.     CreateDir DEST$, cmoNone
  131.     CopyFilesInCopyList
  132.  
  133.     i% = StampNameSerNum(MakePath(DEST$, "VIEWER.EXE"), CUSTNAME$, SERNUM$)
  134.     CreateProgmanGroup "Folio VIEWER Infobases", "", cmoNone
  135.     ShowProgmanGroup  "Folio VIEWER Infobases", 1, cmoNone
  136.     IF (GetWindowsMinorVersion() < 1) THEN
  137.         CreateIniKeyValue "WIN.INI", "Fonts", "Small Fonts "+VIDMODE$, SFONT$, cmoOverwrite
  138.         defdir$ = ""
  139.     ELSE
  140.         defdir$ = ",,,," + DEST$
  141.     END IF
  142.     CreateProgmanItem "Folio VIEWER Infobases", TITLE$, (MakePath(DEST$,"VIEWER.EXE")+" "+(MakePath(DEST$,INFOBASE$))), defdir$, cmoOverwrite
  143.  
  144. QUIT:
  145.     ON ERROR GOTO ERRQUIT
  146.  
  147.     IF ERR = 0 THEN
  148.         dlg% = EXITSUCCESS
  149.     ELSEIF ERR = STFQUIT THEN
  150.         dlg% = EXITQUIT
  151.     ELSE
  152.         dlg% = EXITFAILURE
  153.     END IF
  154. QUITL1:
  155.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  156.     IF sz$ = "REACTIVATE" THEN
  157.         GOTO QUITL1
  158.     END IF
  159.     UIPop 1
  160.  
  161.     END
  162.  
  163. ERRQUIT:
  164.     i% = DoMsgBox("Setup sources were corrupted, call (801) 344-3650", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  165.     END
  166.  
  167. TOOBIG:
  168.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  169.     IF sz$ = "REACTIVATE" THEN
  170.         RecalcPath
  171.         GOTO TOOBIG
  172.     END IF
  173.     UIPop 1
  174.     RETURN
  175.  
  176. BADPATH:
  177.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  178.     IF sz$ = "REACTIVATE" THEN
  179.         RecalcPath
  180.         GOTO BADPATH
  181.     END IF
  182.     UIPop 1
  183.     RETURN
  184.  
  185. ASKQUIT:
  186.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  187.  
  188.     IF sz$ = "EXIT" THEN
  189.         UIPopAll
  190.         ERROR STFQUIT
  191.     ELSEIF sz$ = "REACTIVATE" THEN
  192.         GOTO ASKQUIT
  193.     ELSE
  194.         UIPop 1
  195.     END IF
  196.     RETURN
  197.  
  198. SUB AddOptFilesToCopyList (ftype%) STATIC
  199.  
  200.     AddSectionFilesToCopyList "ViewerFiles", SRCDIR$, DEST$
  201.     AddSectionFilesToCopyList "NFOFiles", SRCDIR$, DEST$
  202.     IF (GetWindowsMinorVersion() < 1) THEN
  203.         AddSectionFilesToCopyList "Win30Files", SRCDIR$, GetWindowsSysDir()
  204.     END IF
  205. END SUB
  206.  
  207. SUB RecalcOptFiles (ftype%) STATIC
  208.     CursorSave% = ShowWaitCursor()
  209.     ClearCopyList
  210.     AddOptFilesToCopyList ftype%
  211.  
  212.     fExtra% = 0
  213.     ListSym$ = APPNEEDS$
  214.     ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  215.     ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
  216.     fExtra% = 1
  217.  
  218.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  219.  
  220.     cost& = 0
  221.     FOR i% = 1 TO 26 STEP 1
  222.         cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  223.     NEXT i%
  224.  
  225.     IF StillNeed& > 0 THEN
  226.         ReplaceListItem BIGLIST$, ftype%, "YES"
  227.     ELSE
  228.         ReplaceListItem BIGLIST$, ftype%, ""
  229.     END IF
  230.  
  231.     IF fExtra% THEN
  232.         ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  233.     END IF
  234.     RestoreCursor CursorSave%
  235.     ListSym$ = ""
  236. END SUB
  237.  
  238. SUB RecalcPath STATIC
  239.  
  240.     CursorSave% = ShowWaitCursor()
  241.  
  242.     RecalcOptFiles APPFILES
  243.  
  244.     RestoreCursor CursorSave%
  245. END SUB
  246.  
  247. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  248.     IF szDir$ = "" THEN
  249.         MakePath = szFile$
  250.     ELSEIF szFile$ = "" THEN
  251.         MakePath = szDir$
  252.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  253.         MakePath = szDir$ + szFile$
  254.     ELSE
  255.         MakePath = szDir$ + "\" + szFile$
  256.     END IF
  257. END FUNCTION
  258.