home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today - The Disc! 21 / cdromtoday-21.iso / mac / DigiZINE / DIGSETUP / TITLE.MST < prev    next >
Text File  |  1995-06-30  |  4KB  |  163 lines

  1.  
  2.     '' Global variables
  3.  
  4.     GLOBAL TitleShortName$
  5.     GLOBAL PromptForPath%
  6.     GLOBAL DefaultPath$
  7.     GLOBAL ProgManGroup$
  8.     GLOBAL ProgManItem$
  9.     GLOBAL TitleDir$
  10.  
  11.     TitleShortName$ = "DigiZINE"
  12.     PromptForPath% = 1
  13.     DefaultPath$ = "C:\DIGIZINE"
  14.     ProgManGroup$ = "DigiZINE"
  15.     
  16.     ProgManItem$ = "DigiZINE"
  17.     
  18.     GLOBAL CUIDLL$
  19.  
  20.     '' Include files
  21.     '$INCLUDE 'setupapi.inc'
  22.     
  23.     '' Custom UI dll
  24.     CUIDLL$ = "mscuistf.dll"
  25.     
  26.     '' Dialog ID's
  27.     CONST DESTPATH      = 1000
  28.     CONST APPHELP       = 2000
  29.     CONST TOOBIG        = 3000
  30.     CONST BADPATH       = 4000
  31.     CONST SUCCESS       = 5000
  32.     
  33.     '' Bitmap ID
  34.     CONST LOGO = 1
  35.     
  36.     '' Functions and subroutines
  37.     DECLARE FUNCTION GetTitleDir (szDefault$) AS STRING
  38.     DECLARE FUNCTION CopyFiles(szTitleDir$) AS INTEGER
  39.     DECLARE SUB ModifyProgramManager
  40.     
  41.     i% = SetSizeCheckMode(scmOff)
  42.     SetTitle "DigiZINE Setup"
  43.     SetBitmap CUIDLL$, LOGO 
  44.     
  45.     ReadInfFile GetSymbolValue("STF_CWDDIR") + "TITLE.INF"
  46.     
  47.     IF PromptForPath% = 1 THEN
  48.         szTitleDir$ = GetTitleDir(DefaultPath$)
  49.         IF szTitleDir$ = "" THEN
  50.             GOTO QUIT
  51.         ENDIF
  52.     ELSE
  53.         szTitleDir$ = GetWindowsDir()
  54.     ENDIF   
  55.     TitleDir$ = szTitleDir$
  56.     
  57.     '' Copy files
  58.     IF CopyFiles(szTitleDir$) = 0 THEN
  59.         GOTO QUIT
  60.     ENDIF
  61.  
  62.     '' Modify Program Manager
  63.     ModifyProgramManager    
  64.     
  65. QUIT:
  66.     END
  67.     
  68.  
  69. FUNCTION GetTitleDir (szDefault$) STATIC AS STRING
  70.  
  71.     SetSymbolValue "String", TitleShortName$
  72.     SetSymbolValue "EditTextIn", szDefault$
  73.     SetSymbolValue "EditFocus", "ALL"
  74.  
  75.     GETPATH:
  76.  
  77.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, "FHelpDlgProc")
  78.  
  79.     IF sz$ = "CONTINUE" THEN
  80.         szTitleDir$ = GetSymbolValue("EditTextOut")
  81.         IF IsDirWritable(szTitleDir$) = 0 THEN
  82.  
  83.             BADPATH:
  84.  
  85.             sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "")
  86.             IF sz$ = "REACTIVATE" THEN
  87.                 GOTO BADPATH
  88.             END IF
  89.             UIPop 1
  90.             GOTO GETPATH
  91.         END IF
  92.         UIPop 1
  93.         CreateDir szTitleDir$, cmoNone
  94.  
  95.     ELSEIF sz$ = "REACTIVATE" THEN
  96.         GOTO GETPATH
  97.  
  98.     ELSE
  99.         szTitleDir$ = ""
  100.  
  101.     END IF
  102.  
  103.     GetTitleDir = szTitleDir$
  104.  
  105. END FUNCTION
  106.  
  107. FUNCTION CopyFiles(szTitleDir$) STATIC AS INTEGER
  108.  
  109.     '' Add all system files to the copy list
  110.     AddSectionFilesToCopyList "System Files", GetSymbolValue("STF_SRCDIR"), GetWindowsSysDir()
  111.     
  112.     '' Add all of the title files to the copy list
  113.     AddSectionFilesToCopyList "Installed Title Files", GetSymbolValue("STF_SRCDIR"), szTitleDir$
  114.     
  115.     '' Check size
  116.     szExtras$ = "Extra"
  117.     szCosts$ = "Costs"
  118.     szNeededs$ = "Neededs"
  119.     FOR i% = 1 TO 26 STEP 1
  120.         AddListItem szExtras$, "0"
  121.     NEXT i%
  122.     
  123.     '' We assume that VIEWER.INI will take another 4K
  124.     ReplaceListItem szExtras$, ASC(MID$(GetWindowsDir(), 1, 1)) - ASC("A") + 1, STR$(4096)
  125.     
  126.     '' Get amount of space required
  127.     StillNeed& = GetCopyListCost(szExtras$, szCosts$, szNeededs$)
  128.     
  129.     '' Put up a message if there is not enough space
  130.     FOR i% = 1 TO 26 STEP 1
  131.         IF VAL(GetListItem(szNeededs$, i%)) > 0 THEN
  132.     
  133.             SetSymbolValue "String1", LTRIM$(STR$(VAL(GetListItem(szCosts$, i%)) / 1024))
  134.             SetSymbolValue "String2", CHR$(i% - 1 + ASC("A"))
  135.     
  136.             TOOBIG:
  137.     
  138.             sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", 0, "")
  139.             IF sz$ = "REACTIVATE" THEN
  140.                 GOTO TOOBIG
  141.             END IF
  142.             UIPop 1
  143.             CopyFiles = 0
  144.             GOTO DONTCOPY
  145.         END IF
  146.     NEXT i%
  147.     
  148.     '' Copy the files
  149.     CopyFilesInCopyList
  150.     
  151.     CopyFiles = 1
  152.  
  153. DONTCOPY:
  154.  
  155. END FUNCTION
  156.  
  157. SUB ModifyProgramManager STATIC
  158.     CreateProgmanGroup ProgmanGroup$, "", cmoNone
  159.     ShowProgmanGroup ProgmanGroup$, 1, cmoNone
  160.     CreateProgmanItem ProgmanGroup$, ProgmanItem$, "digizine.exe", ",,,," + TitleDir$, cmoOverwrite
  161.     
  162. END SUB
  163.