home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 11 / 11.iso / m / m420 / 1.ddi / DRAW.MS_ / DRAW.bin
Encoding:
Text File  |  1993-05-15  |  51.5 KB  |  1,489 lines

  1. '' $Keywords: draw.mst 1.17 10May93 12:29am$ $nokeywords$
  2. '**************************************************************************
  3. '*                       CorelTools setup script
  4. '**************************************************************************
  5. ''    Date         Name                Reason
  6. ''-------------------------------------------------------------------------
  7. '' Feb 25 1992  Randall Mack    Modified from sample2.mst provided with
  8. ''                              Windows SDK 3.1 Beta.
  9. '' Feb 5    1993    Ibrahim Sallam    Modified for Draw 4.0
  10.  
  11. '' The following definitions is to limit the install program in this stage
  12. '' till the rest of application finished.
  13.  
  14. '$INCLUDE 'setupapi.inc'
  15.  
  16. ''C functions
  17. DECLARE SUB                InitializeInstall LIB "mscuistf.dll" (hInstance%, hMainWind% )
  18. DECLARE SUB                ShutDownInstall LIB "mscuistf.dll"
  19. DECLARE SUB                RegisterFont LIB "mscuistf.dll" (szFOTName$, szTTFName$) 
  20. DECLARE SUB                FileChangeString LIB "mscuistf.dll" (szFile1$, szFile2$, szString1$, szString2$)
  21. DECLARE SUB                FRecalcOptFiles LIB "mscuistf.dll" (iType%, szNeeds$)
  22. DECLARE FUNCTION    FIsDrawExist LIB "mscuistf.dll" (szFileName$, szDest$) AS INTEGER
  23. DECLARE FUNCTION    IsSectionKeyExist LIB "mscuistf.dll" (szSectionName$, szKeyName$) AS INTEGER
  24. DECLARE SUB             FAddFileToCopyList LIB "mscuistf.dll" (AppendSect$, Section$, FilterName$, SourceDir$, FiltersDir$) 
  25. DECLARE SUB                CommentIniSection LIB "mscuistf.dll" (szFileName$, szTempFile$, szSection$, szPath$ )
  26. DECLARE FUNCTION    GetFilenameFromPath LIB "mscuistf.dll" (szPath$) AS INTEGER
  27. DECLARE FUNCTION    IsTTFEnabled LIB "mscuistf.dll" AS INTEGER
  28. DECLARE SUB                InitScannerSelection LIB "mscuistf.dll" 
  29. DECLARE FUNCTION    FGetScannerLine LIB "mscuistf.dll" (szScannerDir$) AS INTEGER
  30. DECLARE SUB                CloseScannerSelection LIB "mscuistf.dll" 
  31. DECLARE FUNCTION    FModifyFile LIB "mscuistf.dll" (szFileName$, szList$, szWhere$) AS INTEGER
  32. DECLARE FUNCTION    IsWinForWorkgroups LIB "mscuistf.dll" AS INTEGER
  33. DECLARE FUNCTION    VerifyNumber LIB "mscuistf.dll" (szSerialNumber$) AS INTEGER
  34. DECLARE SUB       MakeFontSectList LIB "mscuistf.dll"
  35. DECLARE SUB       FMakeFontList LIB "mscuistf.dll" (DRAW%)
  36. DECLARE SUB       FAddRemainingFilters LIB "mscuistf.dll" (Draw%, Chart%, Photo%, Mosaic%, Trace%)
  37. DECLARE SUB             FAddFilters LIB "mscuistf.dll" (DRAW%, CHART%, PHOTO%, MOVE%, MOSAIC%, TRACE%, SrcDir$, FILTERSDIR$, WWinDir$, DataDir$, bInstallNet%, RedistDir$)
  38. DECLARE FUNCTION     FGetBootDrive LIB "mscuistf.dll" AS INTEGER
  39.  
  40. '$INCLUDE 'setupvar.inc'
  41.  
  42. ''Strings for loading string resources
  43. GLOBAL szString$
  44. CONST     STRINGLEN =    128
  45. szString$ = string$( STRINGLEN+1, 32 )
  46.  
  47. ''setup main window
  48. CONST LOGO                            = 9100            ''must match the constant in dialogs.h
  49. SetTitle TR_TITLE
  50. SetBitmap "mscuistf.dll", LOGO
  51. InitializeInstall hinstFrame(), HwndFrame()        ''corel style buttons; max window
  52.  
  53. '$INCLUDE 'msdetect.inc'
  54.  
  55. '''$DEFINE DEBUG  ''Define for script development/debugging
  56.  
  57. ''Dialog ID's
  58. ''Note: These constants MUST match the constants in dialogs.h
  59. CONST WELCOME                    = 9900
  60. CONST ASKQUIT                    = 9901
  61. CONST DESTPATH                   = 9902
  62. CONST ERROREXITFAILURE    = 9903
  63. CONST EXITQUIT                   = 9904
  64. CONST EXITSUCCESS                = 9905
  65. CONST OPTIONS                    = 9906
  66. CONST TOOBIG                     = 9908
  67. CONST ERRORBADPATH           = 9909
  68. CONST CUSTCHART                    = 9911
  69. CONST CUSTSHOW                    = 9912
  70. CONST CUSTPHOTO                    = 9913
  71. CONST CUSTMOVE                    = 9914
  72. CONST SELECTFILTERS            = 9916
  73. CONST SELECTFONTSYM            = 9917
  74. CONST SELECTFONTTT            = 9918
  75. CONST SELECTFONTTTCD        =    9821
  76. CONST WAIT                            = 9919
  77. CONST ABOUT                            = 9920
  78. CONST ASKINSTALL                = 9922
  79. CONST WARNINGDESTPATH        = 9923
  80. CONST CUSTTTFONT                = 9924
  81. CONST BILLBOARD                    = 9926
  82. CONST CDROMCUSTDRAW            = 9927
  83. CONST FLOPPYCUSTDRAW      = 9928
  84. CONST UPDATEHELP             = 9929
  85. CONST UPDATEAUTOEXEC        = 9930
  86. CONST UPDATEAUTOEXECFORSHARE        = 9931
  87. CONST UPDATECONFIG            = 9934
  88. CONST WAITREGISTER            = 9932
  89. CONST BADGROUP                    = 9933
  90. CONST SUCCESS                        = 9938
  91. CONST WAITCONFIGER            = 9939
  92. CONST WINREADONLY                = 9943
  93. CONST NETINSTWELCOME        = 9944
  94. CONST NETADDITEMFAILED    = 9949
  95. CONST NETADMINABOUT            = 9950
  96. CONST WELCOMEHELP                = 9800
  97. CONST OPTIONSHELP                = 9801
  98. CONST DESTPATHHELP           = 9802
  99. CONST CUSTINSTHELP          = 9803
  100. CONST CUSTINST2HELP         = 9804
  101. CONST SELECTHELP            = 9806
  102. CONST ASKINSTALLHELP        = 9808
  103. CONST CUSTINST1                    = 9813
  104. CONST CUSTINST2                    = 9814
  105. CONST CUSTSCAN          = 9815
  106. CONST CUSTSCANHELP      = 9816
  107. CONST REGISTRATION      = 9817
  108. CONST REGISTRATIONBADNAME = 9818
  109. CONST REGISTRATIONBADSN = 9819
  110. CONST TTF100ANDMORE     = 9820
  111. CONST BILLBOARD1                = 9990
  112. CONST MOREFONTS           = 9824
  113. CONST INSTALLINGDRAW      = 9830
  114.  
  115. ''Constants representing each line in the custinst dialog
  116. CONST DRAW          = 1
  117. CONST CHART         = 2
  118. CONST SHOW            = 3
  119. CONST PHOTO            = 4
  120. CONST MOVE            = 5
  121. CONST TRACE            = 6
  122. CONST MOSAIC        = 7
  123. CONST SCANNERS  = 8
  124. CONST FILTERS        = 9            ''Does not have custom dialog
  125. CONST FONTTT        = 10
  126. CONST NUMCUST      = FONTTT
  127. CONST MAIN            = NUMCUST + 1
  128. CONST NUMGROUPS    = MAIN
  129.  
  130. CONST FALSE    = 0
  131. CONST TRUE    = 1
  132.  
  133. '' Set this constant to the type of install interested in.
  134. '$UNDEF INSTALLCD        ''When this is set, Draw will install off cd-rom
  135.  
  136. '' used as values for afState(NUMCUST) array.
  137. CONST ALL        = 1
  138. CONST    SOME    = 2
  139. CONST    NONE    = 3
  140.  
  141. '' set 'customize' variables
  142. '' Customized installation settings
  143. GLOBAL OPTS(MOVE) AS STRING
  144. OPTS(DRAW)        = "DrawOpt"
  145. OPTS(CHART)        = "ChartOpt"
  146. OPTS(SHOW)        = "ShowOpt"
  147. OPTS(PHOTO)        = "PhotoOpt"
  148. OPTS(MOVE)        = "MoveOpt"
  149.  
  150. ''lists of reference keys for filters, fonts and symbols. 1 = install, 2 = don't
  151. GLOBAL IMPFILTERLIST1$
  152. IMPFILTERLIST1$    = "ImportFilterList1"
  153. GLOBAL IMPFILTERLIST2$
  154. IMPFILTERLIST2$    = "ImportFilterList2"
  155. GLOBAL EXPFILTERLIST1$
  156. EXPFILTERLIST1$    = "ExportFilterList1"
  157. GLOBAL EXPFILTERLIST2$
  158. EXPFILTERLIST2$    = "ExportFilterList2"
  159. GLOBAL FONTLIST1$
  160. FONTLIST1$        = "FontList1"
  161. GLOBAL FONTLIST2$
  162. FONTLIST2$        = "FontList2"
  163. GLOBAL SYMBOLLIST1$
  164. SYMBOLLIST1$    = "SymbolList1"
  165. GLOBAL SYMBOLLIST2$
  166. SYMBOLLIST2$    = "SymbolList2"
  167.  
  168. '' Scanners STUFF
  169. GLOBAL CONFIGLINE$
  170. CONFIGLINE$ = "ConfigLine"
  171. GLOBAL AUTOEXECLINE$
  172. AUTOEXECLINE$ = "AutoexecLine"
  173. GLOBAL SCANNERSECTION$
  174. SCANNERSECTION$ = "ScannerSection"
  175.  
  176.  
  177. '' Filters STUFF
  178. '' Actually these are not filters stuff, they are flags used in the filter section
  179. GLOBAL afInstalling(MOSAIC) AS INTEGER
  180. GLOBAL bInstallingClipart%
  181. ''bInstallingClipart%=FALSE
  182.  
  183.  
  184. ''information text for custom installation window
  185. GLOBAL STATUSTEXT$
  186. STATUSTEXT$  = "StatusItemsText"
  187. GLOBAL DRIVETEXT$
  188. DRIVETEXT$   = "DriveStatusText"
  189. GLOBAL DrivesList$            ''experemental variable for the drives list
  190. DrivesList$ = "DrivesList"
  191. GLOBAL TempList$                '' Used for Temp lists
  192. TempList$ = "TempList"
  193.  
  194. ''used as a parm to GetCopyListCost only
  195. GLOBAL EXTRACOSTS$
  196. EXTRACOSTS$ = "ExtraCosts"
  197. GLOBAL bTooBig%
  198. bTooBig% = FALSE
  199. GLOBAL bBadPath%
  200. bBadPath% = FALSE
  201. GLOBAL bBack%
  202. bBack% = FALSE
  203. GLOBAL bFullInstall%        '' TRUE ==> user went through Full Install Option
  204.  
  205. GLOBAL bAutoexecModified% '' TRUE ==> Config.sys has beed modified.
  206. bAutoexecModified% = FALSE
  207.  
  208. GLOBAL bInstallNet%            '' Are we installing a network version?
  209. GLOBAL bDosScanner%    '' Did we install any Scanners? 
  210. bDosScanner% = FALSE
  211. GLOBAL bTwainScanner%    '' Did we install any Scanners? 
  212. bTwainScanner% = FALSE
  213.  
  214. GLOBAL bInstallingApp%    '' Are we going to install any APP, so we can create
  215.                                                 '' Programs, & config dir. and update the win.ini
  216.  
  217. ''list of sections (1..NUMGROUPS)
  218. GLOBAL afState(NUMCUST) AS INTEGER        ''list of selections for main options
  219. GLOBAL DIR(NUMGROUPS) AS STRING        ''list of directories for main options
  220. GLOBAL NUM(3) AS STRING                                ''string representations of 1 .. 3
  221. ''CustInst list of symbol names - each is a list of 26 numbers corresponding
  222. ''  to the space required on that numbered drive for the files in the
  223. ''  corresponding group
  224. GLOBAL aszNEEDS(NUMGROUPS) AS STRING
  225.  
  226. GLOBAL WINDIR$            ''Windows directory.
  227. GLOBAL WINSYSDIR$        ''Windows directory.
  228. GLOBAL WINDRIVE$        ''Windows drive letter.
  229. GLOBAL bWindowsIsNetworked%
  230. GLOBAL bWindowsForWorkgroups%
  231. GLOBAL DEST$            ''destination directory.
  232. GLOBAL szFontDir$        ''directory for .ttf fonts
  233. GLOBAL szScannerDir$''directory for scanner files
  234. GLOBAL szWWinDir$        ''Writable Windows directory
  235.  
  236. GLOBAL szFontSectDisk$
  237. szFontSectDisk$ = "FontSectDisk"
  238.  
  239. GLOBAL szUserName$            ''UserName for registration
  240. GLOBAL szSerialNumber$    ''SerialNumber for registration
  241.  
  242. GLOBAL TOOLGROUP$                    '' Group in which tools are to be installed
  243. ''GLOBAL aszGroups(MOSAIC) AS STRING    '' Custom progman groups
  244.  
  245. ''Windows version numbers
  246. GLOBAL WinMinor%
  247.  
  248. ''Variables to fake subroutines with parameters
  249. GLOBAL szFlist1a$
  250. GLOBAL szFlist1b$
  251. GLOBAL szFlist2a$
  252. GLOBAL szFlist2b$
  253. GLOBAL Dialog%
  254. GLOBAL SelectType%
  255. GLOBAL szOptions$
  256. GLOBAL szTempVar$
  257.  
  258. ''TRUE => must do a global recalculation after GetPath - starts TRUE
  259. GLOBAL bRecalc%
  260.  
  261. ''Globals for WaitOn and WaitOff
  262. GLOBAL nWaiting%
  263. GLOBAL CursorSave%
  264.  
  265. ''GLOBAL bPathAltered%    '' If set then autoexec.bat has been changed
  266. GLOBAL SrcDir$                '' Directory where files can be found
  267. SrcDir$ = GetSymbolValue("STF_SRCDIR")
  268.  
  269. ''local MSTest functions
  270. DECLARE SUB WaitOnBig
  271. DECLARE SUB WaitOn
  272. DECLARE SUB WaitOff
  273. DECLARE SUB SetDirectories
  274. DECLARE SUB FullInstall
  275. DECLARE SUB AddOptFilesToCopyList( ftype% )
  276. DECLARE SUB RecalcOptFiles( fType% )
  277. DECLARE SUB RecalcPath
  278. DECLARE SUB SetDriveStatus
  279. DECLARE SUB SetFontAndScannerDir
  280. DECLARE SUB    WrapFileChangeString( szFile1$, szFile2$, szString1$, szString2$ )
  281. DECLARE SUB    WrapCommentIniSection( szFileName$, szTempFile$, szSection$, szPath$ )
  282. DECLARE    SUB    CheckBackupFile( szFile1$, szFile2$ )
  283. DECLARE FUNCTION CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) AS INTEGER
  284. DECLARE FUNCTION MakePath( szDir$, szFile$ ) AS STRING
  285. DECLARE FUNCTION MakeDir( szDir$ ) AS STRING
  286. DECLARE SUB AddRedistSection( szSection$)
  287. DECLARE SUB AddRemainingFilters
  288. DECLARE SUB MakeFontList
  289. ''!''DECLARE SUB AddFilesToList (SectionName$, FiltersList$)
  290. DECLARE SUB AddFileToCopyList(AppendSect$, Section$, FilterName$) 
  291.  
  292.  
  293. INIT:
  294.     '' set waiting cursor
  295.     nWaiting% = 0
  296.     WaitOn
  297.     
  298.      '' Determine whether or not we are installing as a network administrator.
  299.     '' If we are, modify the copy of the .inf file to force files to be copied
  300.     '' as readonly.
  301.     bInstallNet% = FALSE
  302.     AddListItem "NetAdmin","OFF"
  303.     IF GetSymbolValue("STF_MODE") = "ADMIN" THEN
  304.         bInstallNet% = TRUE
  305.         '' set the .inf readonly flag to true
  306.         szDir$ = GetSymbolValue("STF_CWDDIR")
  307.         WrapFileChangeString MakePath(szDir$,"draw.inf"), MakePath(szDir$,"___temp_"), """STF_READONLY""   = """"", """STF_READONLY""   = ""YES"""
  308.         szDir$ = ""
  309.         ReplaceListItem "NetAdmin", 1, "ON"
  310.     ENDIF
  311.  
  312.     ''Set default directory names
  313.     WINDIR$ = GetWindowsDir
  314.     WINSYSDIR$ = GetWindowsSysDir
  315.     WINDRIVE$ = MID$(WINDIR$, 1, 1)
  316.     bWindowsIsNetworked% = IsDriveNetwork( MID$(WINSYSDIR$,1,1) )
  317.     bWindowsForWorkgroups% = IsWinForWorkgroups
  318.     DEST$ = WINDRIVE$ + ":\"+TR_CORELDRW
  319.     OpenLogfile MakePath(WINDIR$, TR_LOGFILE), 0
  320.     DIR(MAIN) = DEST$
  321.     SetDirectories
  322.     
  323.     '$IFDEF INSTALLCD
  324.         WriteToLogFile TR_INSTALLCD
  325.     '$ELSE
  326.         WriteToLogFile TR_INSTALLFLOPPY
  327.     '$ENDIF
  328.     IF bInstallNet% THEN
  329.         WriteToLogFile TR_INSTALLNETADMIN
  330.     ENDIF
  331.     IF bWindowsIsNetworked% THEN
  332.         WriteToLogFile TR_NETWINDOWS
  333.     ENDIF
  334.     IF bWindowsForWorkgroups% THEN
  335.         WriteToLogFile TR_WORKGROUPWINDOWS
  336.     ENDIF
  337.     
  338.      '' Quit if installing a network version and windows is readonly on net
  339.     IF bWindowsIsNetworked% AND bInstallNet% AND IsDirWritable(WINSYSDIR$) = 0 THEN
  340.         Dialog% = WINREADONLY
  341.         GOSUB INFO
  342.         ERR = STFERR
  343.         GOTO QUIT
  344.     ENDIF
  345.  
  346.     ''find and read .inf file
  347.     ReadInfFile GetSymbolValue("STF_CWDDIR") + "draw.INF"
  348.  
  349.     FOR i% = 1 TO MAIN
  350.          AddListItem STATUSTEXT$, ""
  351.     NEXT i%
  352.     ''We have 15 DRIVETEXT variables defined for 5 drives only
  353.     FOR i% = 1 TO 15
  354.         AddListItem DRIVETEXT$, ""
  355.     NEXT i%
  356.     
  357.     ''Disk cost list symbols
  358.     FOR i% = 1 TO NUMGROUPS STEP 1
  359.         aszNEEDS(i%)        = "DrawNeeds" + STR$(i%)
  360.     NEXT i%
  361.     
  362.     ''basic initialization
  363.     NUM(1) = "1"
  364.     NUM(2) = "2"
  365.     NUM(3) = "3"
  366.     ''Get Drives List
  367.     GetValidDrivesList(DrivesList$)
  368. '''' The Drives List will define the length of the EXTRACOSTS$
  369.     FOR i%=1 TO GetListLength(DrivesList$)
  370.         ''Disk cost list symbols
  371.         FOR j% = DRAW TO NUMGROUPS 
  372.             AddListItem aszNEEDS(j%), "0"
  373.         NEXT j%
  374.     NEXT i%
  375.     
  376. ''     WriteToLogFile "Before the Font Lists"
  377.       MakeFontSectList
  378. ''    WriteToLogFile "After the Font Lists"
  379.         
  380.     ''Set windows version - for use with installing windows 3.1 DLL's
  381.     '' 25Feb93: We wont install 4.0 on Win3.0.
  382.     '' 16Mar93: The following Check is not working YET.
  383. ''    WinMajor% = GetWindowsMajorVersion
  384. ''    WriteToLogFile "Windows Major Version is: " + STR$(WinMajor%)
  385.     WinMinor% = GetWindowsMinorVersion
  386. ''    WriteToLogFile "Windows Minor Version is: " + STR$(WinMinor%)
  387.     
  388.     ''set the default progman group to put everything in
  389.     TOOLGROUP$    = TR_TOOLGROUP
  390.     
  391. '' Put up the Welcome dialog
  392. WELCOME:
  393.     WaitOff
  394.     IF bInstallNet% THEN
  395.         Dialog% = NETINSTWELCOME
  396.     ELSE
  397.         Dialog% = WELCOME
  398.     ENDIF
  399.     sz$ = UIStartDlg( "mscuistf.dll", Dialog%, "FInfoDlgProc", WELCOMEHELP, "FHelpDlgProc" )
  400.     SELECT CASE sz$
  401.     CASE "CONTINUE"
  402.         UIPop 1
  403.     CASE "ABOUT"
  404.         IF bInstallNet% THEN
  405.             Dialog% = NETADMINABOUT
  406.         ELSE
  407.             Dialog% = ABOUT
  408.         ENDIF
  409.         GOSUB INFO
  410.         GOTO WELCOME
  411.     CASE "REACTIVATE"
  412.         GOTO WELCOME
  413.     CASE ELSE
  414.         GOSUB ASKQUIT
  415.         GOTO WELCOME
  416.     END SELECT
  417.  
  418. ''Before we give him OPTIONs let's get the user name and his serial number.
  419. REGISTER:
  420.     AddListItem "EditText", ""
  421.     AddListItem "EditText", ""
  422. REGISTER1:
  423.     sz$ = UIStartDlg("mscuistf.dll", REGISTRATION, "FMultiEditDlgProc", 0, "")
  424.     SELECT CASE sz$
  425.     CASE "CONTINUE"
  426.         WaitOn
  427.         szUserName$ = RTRIM$(LTRIM$(GetListItem("EditText", 1)))
  428.         szSerialNumber$ = RTRIM$(LTRIM$(GetListItem("EditText", 2)))
  429.         IF szUserName$ = "" THEN
  430.             Dialog% = REGISTRATIONBADNAME
  431.             GOSUB INFO
  432.             GOTO REGISTER1
  433.         ENDIF
  434.         IF VerifyNumber(szSerialNumber$) = FALSE THEN
  435.             Dialog% = REGISTRATIONBADSN
  436.             GOSUB INFO
  437.             GOTO REGISTER1
  438.         ENDIF
  439.             
  440.     CASE "REACTIVATE"
  441.         GOTO REGISTER1
  442.     CASE ELSE
  443.         GOSUB ASKQUIT
  444.         GOTO REGISTER1
  445.     END SELECT
  446.     UIPop 1
  447. RemoveSymbol "EditText"
  448.  
  449. '' fall through from WELCOME
  450. '' Allow the user to select between full, minimal and custom installation
  451. '' OOPS, we removed minimum, so it's only FULL or CUSTOM.
  452. OPTIONS:
  453.     WaitOff
  454.     bFullInstall% = FALSE        
  455.     ''At least one recalculation must be made to determine that everything fits
  456.     bRecalc% = TRUE
  457.     sz$ = UIStartDlg( "mscuistf.dll", OPTIONS, "FButtonsDlgProc", OPTIONSHELP, "FHelpDlgProc" )
  458.     SELECT CASE sz$
  459.     CASE "F"
  460.         bFullInstall = TRUE
  461.         WriteToLogfile TR_FULLINSTALL
  462.     CASE "C"
  463.         WriteToLogfile TR_CUSTOMINSTALL
  464.     CASE "REACTIVATE"
  465.         GOTO OPTIONS
  466.     CASE ELSE
  467.         GOSUB ASKQUIT
  468.         GOTO OPTIONS
  469.     END SELECT
  470.     UIPop 1
  471.     
  472.      ''if not quitting the user will go to installation which is either FULL or
  473.     ''CUSTOM, both has same start.
  474.     FullInstall
  475.     GOSUB GETPATH
  476.     IF bBack% THEN
  477.         GOTO OPTIONS
  478.     ENDIF
  479.     GOSUB CUSTINST
  480.     IF bBack% THEN
  481.         GOTO OPTIONS
  482.     ENDIF
  483.  
  484. '' fall through from OPTIONS
  485. '' Do the installation using afState, OPTS(DRAW) .. OPTS(MOVE), etc. to
  486. '' indicate which files should be installed.
  487. INSTALL:
  488.     WaitOn
  489.     ''Make sure there is enough space for CorelDRAW!
  490.         WaitOnBig
  491.         bRecalc% = FALSE
  492.         RecalcPath 
  493.         SetDriveStatus
  494.     IF bTooBig% THEN
  495.         Dialog% = TOOBIG
  496.         GOSUB INFO
  497.         GOTO OPTIONS
  498.     ENDIF
  499.     
  500.     ClearCopyList
  501.     ''Create all directories needed and assign all the files to copy
  502.     FOR i% = 1 TO NUMGROUPS STEP 1
  503.             AddOptFilesToCopyList i%
  504.     NEXT i%
  505.     
  506. ''    IF bInstallNet% THEN
  507. ''        CreateDir MakePath(DIR(MAIN),TR_SETUP), cmoNone
  508. ''''        IF afState(FONTTT) <> NONE THEN
  509. ''''            CreateDir MakePath(DIR(FONTTT),TR_TTF), cmoNone
  510. ''''        ENDIF
  511. ''    ELSE
  512.   IF bInstallNet% = FALSE THEN
  513.         '' backup files to *.cor - do not overwrite
  514.         CheckBackupFile MakePath(WINDIR$,"win.ini"), MakePath(WINDIR$,"win.cor")
  515.         CheckBackupFile MakePath(WINDIR$,"reg.dat"), MakePath(WINDIR$,"reg.cor")
  516.         CheckBackupFile MakePath(WINDIR$,"progman.ini"), MakePath(WINDIR$,"progman.cor")
  517.     ENDIF
  518.     
  519.     IF afInstalling(DRAW) AND bInstallNet% = FALSE THEN
  520.         CreateDir MakePath( DIR(MAIN), TR_AUTOBACK ), cmoNone
  521.     ENDIF
  522.  
  523.     
  524.      '' If installing as a network administrator, copy redists to redist dir
  525. ''    IF bInstallNet% THEN
  526. ''        CreateDir MakePath(DIR(MAIN),TR_REDIST), cmoNone
  527. ''    ENDIF
  528.     ''The Redist directory will be created automatically.
  529.     
  530.      '' Add billboards
  531.     BilBrd% = BILLBOARD1 
  532.     FOR i% = 0 TO 5 STEP 1
  533.         AddToBillBoardList "mscuistf.dll", BilBrd+i%, "FModelessBillBoardDlgProc", 20
  534.     NEXT i%
  535.     
  536.     ''Copy all the files over
  537.     WaitOff
  538.     CopyFilesInCopyList
  539.     WaitOn
  540.         
  541.     '' if installing as a network administrator don't create .fot files
  542.     IF bInstallNet% = FALSE THEN
  543.         '' Register all the ttf fonts with Windows
  544.         IF IsTTFEnabled = 1 THEN
  545. ''            WriteToLogFile "**** TTFEnabled ****"
  546.                 sz$ = UIStartDlg("mscuistf.dll", WAITREGISTER, "FModelessDlgProc", 0, "")
  547.             '' Let's register the Symbols TTF,... FONTLIST1$ is an empty Symbole varaible
  548.               SetSymbolValue TempList$, "{}"
  549.                 IF afState(DRAW) = ALL THEN
  550.                     MakeListFromSectionKeys TempList$, "WFN"
  551.                 ELSEIF afState(DRAW) = SOME AND GetListItem( OPTS(DRAW), 4) = "ON" THEN
  552.                     FOR i% = 1 TO GetListLength(SYMBOLLIST2$)
  553.                         AddListItem TempList$, GetListItem(SYMBOLLIST2$, i%)
  554.                     NEXT i%
  555.               ENDIF
  556.                 IF afInstalling(DRAW) THEN
  557.                         AddListItem TempList$, TR_COMMONBULLETS
  558. ''                    WriteToLOgFile "afInstalling of DRAW is" + STR$(afInstalling(DRAW))
  559. ''                    WriteToLOgFile "Adding CommonBullets"
  560.                 ENDIF
  561.                 FOR i% = 1 TO GetListLength(TempList$)
  562.                     szFileName$ = GetSectionKeyFilename( "WFN", GetListItem(TempList$, i%))
  563.                     index% = GetFilenameFromPath( szFileName$ )
  564.                     szFileName2$ = MID$( szFileName$, index%, LEN(szFileName$) - index% + 1 )
  565.                     IF MID$(szFileName2$, LEN(szFileName2$)-2) = "ttf" THEN
  566.                         szFOTName$ = MID$(szFileName2$,1,LEN(szFileName2$)-3) + "fot"
  567.                         RegisterFont MakePath(szWWinDir$,szFOTName$), MakePath(DIR(MAIN),TR_SYMBOLS+"\"+szFileName2$)
  568.                         temp% = GetTypeFaceNameFromTTF( MakePath(DIR(MAIN),TR_SYMBOLS+"\"+szFileName2$), szString$, STRINGLEN )
  569.                         IF temp% > 0 AND temp% < STRINGLEN THEN
  570.                             CreateIniKeyValue TR_WIN_INI, "fonts", szString$+" "+TR_TRUETYPE, UCASE$(szFOTName$), cmoOverWrite
  571.                         ENDIF
  572.                     ENDIF
  573.                 NEXT i%
  574.                 
  575.                 IF afState(FONTTT) = NONE THEN
  576.                     SetSymbolValue FONTLIST2$, "{}"
  577.                 ENDIF
  578.                 IF afState(FONTTT) = ALL THEN
  579.                     MakeFontList                    
  580.                 ENDIF
  581.                 IF afInstalling(DRAW) THEN
  582.                     SetSymbolValue TempList$, "{}"
  583.                     MakeListFromSectionKeys TempList$, "DrawFonts"
  584.                     FOR i% =1 TO GetListLength(TempList$)
  585.                         AddListItem FONTLIST2$, GetListItem(TempList$, i%)
  586. ''                        WriteToLOgFile "TempList (drawFonts): "+GetListItem(TempList$, i%)
  587.                     NEXT i%
  588. ''                    WriteToLOgFile "afInstalling of DRAW is" + STR$(afInstalling(DRAW))
  589. ''                    WriteToLOgFile "Adding DrawFonts"
  590.                 ENDIF
  591.                 
  592.                 FOR nIndex% = 1 TO GetListLength(FONTLIST2$)
  593.                     FOR i% = 1 TO GetListLength(szFontSectDisk$)
  594.                         Font$ = GetListItem(FONTLIST2$, nIndex%)
  595.                         IF IsSectionKeyExist( GetListItem(szFontSectDisk$, i%), Font$) THEN
  596.                             szFileName$ = GetSectionKeyFilename( GetListItem(szFontSectDisk$, i%), Font$)
  597.                             EXIT FOR
  598.                         ELSEIF IsSectionKeyExist( "DrawFonts", Font$) THEN
  599.                             szFileName$ = GetSectionKeyFilename("DrawFonts", Font$ )
  600.                             EXIT FOR
  601.                         ENDIF
  602.                     NEXT i%                            
  603.                     index% = GetFilenameFromPath( szFileName$ )
  604.                     szFileName2$ = MID$( szFileName$, index%, LEN(szFileName$) - index% + 1 )
  605.                     szFOTName$ = MID$(szFileName2$,1,LEN(szFileName2$)-3) + "fot"
  606.                     RegisterFont MakePath(szWWinDir$,szFOTName$), MakePath(DIR(FONTTT),szFileName2$)
  607.                     IF bInstallNet% = FALSE THEN
  608.                         temp% = GetTypeFaceNameFromTTF( MakePath(DIR(FONTTT),szFileName2$), szString$, STRINGLEN )
  609.                         IF temp% > 0 AND temp% < STRINGLEN THEN
  610.                             CreateIniKeyValue TR_WIN_INI, "fonts", szString$+" "+TR_TRUETYPE, UCASE$(szFOTName$), cmoOverWrite
  611.                         ENDIF
  612.                     ENDIF
  613.                     szString$ = string$( STRINGLEN+1, 32 )
  614.                     szFileName$ = ""
  615.                     szFileName2$ = ""
  616.                     szFOTName$ = ""
  617.                 NEXT nIndex%
  618.                 UIPop 1
  619.         ENDIF
  620.     ENDIF
  621.     
  622.     '' When installing as a network administrator, register nothing
  623.     '' Except for the name and the serialnumber.
  624.     IF bInstallNet% THEN
  625.             RenameFile MakePath( DIR(MAIN), TR_SETUP+"\"+"setup2.exe" ), "setup.exe"
  626.             RenameFile MakePath( DIR(MAIN), TR_SETUP+"\"+"setup2.lst" ), "setup.lst"
  627.             szSerialNumber$ = szSerialNumber$+"-N"
  628.     ENDIF
  629.     IF bInstallNet% = FALSE THEN
  630.     
  631.         sz$ = UIStartDlg("mscuistf.dll", WAITCONFIGER, "FModelessDlgProc", 0, "")
  632.         
  633.          nAddItemFailed% = 0
  634.         
  635.         '' Updating the INI files in the Config directory    only if an APP installed.
  636.          IF bInstallingApp% THEN
  637.             '' backup files to *.cor - do not overwrite
  638.             CheckBackupFile MakePath(WINDIR$,"win.ini"), MakePath(WINDIR$,"win.cor")
  639.             CheckBackupFile MakePath(WINDIR$,"reg.dat"), MakePath(WINDIR$,"reg.cor")
  640.             CheckBackupFile MakePath(WINDIR$,"progman.ini"), MakePath(WINDIR$,"progman.cor")
  641.         
  642.             CreateIniKeyValue TR_WIN_INI, "CorelGraphics4", "Dir", MakePath(DIR(MAIN),TR_CONFIG), cmoOverWrite
  643.             RUN( TR_REGLOAD_S + " " + MakePath(WINSYSDIR$, "OLE2.REG") )
  644.             ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELAPP_INI)
  645.                 CreateIniKeyValue ini$, "Config", "ProgramsDir", MakePath(DIR(MAIN),TR_PROGRAMS), cmoOverWrite
  646.                 CreateIniKeyValue ini$, "Config", "DataDir", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_DATA), cmoOverWrite
  647.                 CreateIniKeyValue ini$, "Config", "CustomDir", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
  648.                 CreateIniKeyValue ini$, "Config", "DrawDir", DIR(DRAW), cmoOverWrite
  649.                 CreateIniKeyValue ini$, "Config", "ChartDir", DIR(CHART), cmoOverWrite
  650.                 CreateIniKeyValue ini$, "Config", "ShowDir", DIR(SHOW), cmoOverWrite
  651.                 CreateIniKeyValue ini$, "Config", "PhotoPaintDir", DIR(PHOTO), cmoOverWrite
  652.                 CreateIniKeyValue ini$, "Config", "MoveDir", DIR(MOVE), cmoOverWrite
  653.                 CreateIniKeyValue ini$, "Config", "TraceDir", DIR(TRACE), cmoOverWrite
  654.                 CreateIniKeyValue ini$, "Config", "MosaicDir", DIR(MOSAIC), cmoOverWrite
  655.                 CreateIniKeyValue ini$, "Config", "FontsDir", MakePath(DIR(MAIN),TR_SYMBOLS), cmoOverWrite
  656.                 CreateIniKeyValue ini$, "Config", "FiltersDir", DIR(FILTERS), cmoOverWrite
  657.                 CreateIniKeyValue ini$, "Registration", "UserName", szUserName$, cmoOverWrite
  658.                 CreateIniKeyValue ini$, "Registration", "SerialNumber", szSerialNumber$, cmoOverWrite
  659.             ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELPRN_INI)
  660.                 CreateIniKeyValue ini$, "ColorPath", "CircuitPath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverwrite
  661.             ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELFLT_INI)
  662.                 CreateIniKeyValue ini$, "ColorPath", "CircuitPath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
  663.                 CreateIniKeyValue ini$, "ColorPath", "CurvePath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
  664.                 WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "ImportFilters", MakePath(DIR(MAIN),TR_PROGRAMS+"\")
  665.                 WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "ExportFilters", MakePath(DIR(MAIN),TR_PROGRAMS+"\")
  666.                 WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "CorelAIExport", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_DATA+"\")
  667.                 WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "CorelDXFExport", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_DATA+"\")
  668.             ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELFNT_INI)
  669.                 WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "Fonts", MakePath(DIR(MAIN),TR_SYMBOLS+"\")
  670.                 WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "Symbols", MakePath(DIR(MAIN),TR_SYMBOLS+"\")
  671.                 CreateProgmanGroup TOOLGROUP$, "", cmoNone
  672.                 ShowProgmanGroup  TOOLGROUP$, 1, cmoNone
  673.                 nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_RELEASENOTES, TR_WRITE_EXE + " " + MakePath(DIR(MAIN),TR_README_WRI), "", cmoOverwrite)
  674.         ENDIF
  675.         
  676.         IF afState(DRAW) <> NONE THEN
  677.             IF afInstalling(DRAW) THEN
  678.                 '' setup coreldrw.reg
  679.                 WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELDRW_REG), MakePath(DIR(DRAW),"___temp_"), TR_CORELDRW_EXE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELDRW_EXE)
  680.                 WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELDRW_REG), MakePath(DIR(DRAW),"___temp_"), TR_CDROL140_DLL, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CDROL140_DLL)
  681.                 RUN( TR_REGLOAD_S + " " + MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELDRW_REG) )
  682.                 ini$ = MakePath(DIR(MAIN), TR_CONFIG+"\"+TR_CORELDRW_INI)
  683.                     CreateIniKeyValue ini$, "Config", "AutoBackupDir", MakePath(DIR(MAIN),TR_AUTOBACK), cmoOverwrite
  684.                     CreateIniKeyValue ini$, "Config", "TemplateDir", MakePath(DIR(DRAW),TR_TEMPLATE), cmoOverwrite
  685.                 nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELDRAW, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELDRW_EXE),"", cmoOverwrite)
  686.             ENDIF
  687.         ENDIF
  688.  
  689.         IF afState(CHART) <> NONE THEN
  690.             IF afInstalling(CHART) THEN
  691.                 '' setup corelcht.reg
  692.                 WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELCHT_REG), MakePath(DIR(MAIN),"___temp_"), TR_CORELCHT_EXE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELCHT_EXE)
  693. ''                WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELCHT_REG), MakePath(DIR(MAIN),"___temp_"), TR_CDROL140_DLL, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CDROL140_DLL)
  694.                 RUN( TR_REGLOAD_S + " " + MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELCHT_REG) )
  695.                 ini$ = MakePath(DIR(MAIN), TR_CONFIG+"\"+"CORELCHT.INI")
  696.                     CreateIniKeyValue ini$, "Config", "Vector_path", MakePath(DIR(MAIN),TR_CLIPART+"\"+TR_VECTORS), cmoOverwrite
  697.                     CreateIniKeyValue ini$, "Templates", "1", CHR$(34)+"Bar"+CHR$(34)+","+MakePath(DIR(CHART),TR_BAR), cmoOverwrite
  698.                     CreateIniKeyValue ini$, "Templates", "2", CHR$(34)+"Line"+CHR$(34)+","+MakePath(DIR(CHART),TR_LINE), cmoOverwrite
  699.                     CreateIniKeyValue ini$, "Templates", "3", CHR$(34)+"Area"+CHR$(34)+","+MakePath(DIR(CHART),TR_AREA), cmoOverwrite
  700.                     CreateIniKeyValue ini$, "Templates", "4", CHR$(34)+"Pie"+CHR$(34)+","+MakePath(DIR(CHART),TR_PIE), cmoOverwrite
  701.                     CreateIniKeyValue ini$, "Templates", "5", CHR$(34)+"Scatter"+CHR$(34)+","+MakePath(DIR(CHART),TR_SCATTER), cmoOverwrite
  702.                     CreateIniKeyValue ini$, "Templates", "6", CHR$(34)+"High/Low/Open/Close"+CHR$(34)+","+MakePath(DIR(CHART),TR_HILO), cmoOverwrite
  703.                     CreateIniKeyValue ini$, "Templates", "7", CHR$(34)+"Spectral_Maps"+CHR$(34)+","+MakePath(DIR(CHART),TR_SPECTRAL), cmoOverwrite
  704.                     CreateIniKeyValue ini$, "Templates", "8", CHR$(34)+"Histograms"+CHR$(34)+","+MakePath(DIR(CHART),TR_HIST), cmoOverwrite
  705.                     CreateIniKeyValue ini$, "Templates", "9", CHR$(34)+"Table_Charts"+CHR$(34)+","+MakePath(DIR(CHART),TR_TABLE), cmoOverwrite
  706.                     CreateIniKeyValue ini$, "Templates", "10", CHR$(34)+"3D-Riser"+CHR$(34)+","+MakePath(DIR(CHART),TR_3DRISER), cmoOverwrite
  707.                     CreateIniKeyValue ini$, "Templates", "11", CHR$(34)+"3D-Scatter"+CHR$(34)+","+MakePath(DIR(CHART),TR_3DSCAT), cmoOverwrite
  708.                     CreateIniKeyValue ini$, "Templates", "12", CHR$(34)+"Pictographs"+CHR$(34)+","+MakePath(DIR(CHART),TR_PICTO), cmoOverwrite
  709.                     CreateIniKeyValue ini$, "Templates", "13", CHR$(34)+"Samples"+CHR$(34)+","+MakePath(DIR(CHART),TR_SAMPLES), cmoOverwrite
  710.                 nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELCHART, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELCHT_EXE), "", cmoOverwrite)
  711.             ENDIF
  712.         ENDIF
  713.  
  714.         IF afState(SHOW) <> NONE THEN
  715.             IF afInstalling(SHOW) THEN
  716.                 '' setup corelshw.reg
  717.                 WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELSHW_REG), MakePath(DIR(SHOW),"___temp_"),TR_CORELSHW_EXE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELSHW_EXE)
  718.                 RUN( TR_REGLOAD_S + " " + MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELSHW_REG) )
  719.                 CreateIniKeyValue TR_WIN_INI, "AAPLAY Animation", "WaveAudio", "c,522", cmoOverWrite
  720.                 CreateIniKeyValue TR_WIN_INI, "AAPLAY Animation", "Sequencer", "x,523", cmoOverWrite
  721.                 CreateIniKeyValue TR_WIN_INI, "AAPLAY Animation", "FullScreen", "AAVGA.DLL", cmoOverWrite
  722.                 CreateIniKeyValue TR_WIN_INI, "AAPLAY Animation", "DualScreen", "no", cmoOverWrite
  723.                 ini$ = MakePath(DIR(MAIN), TR_CONFIG+"\"+TR_CORELSHW_INI)
  724.                     CreateIniKeyValue ini$, "HomeDirectories", "Presentations", MakePath(DIR(SHOW), TR_SAMPLES), cmoOverwrite
  725.                     CreateIniKeyValue ini$, "HomeDirectories", "Animations", MakePath(DIR(SHOW),TR_SAMPLES), cmoOverwrite
  726.                 nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELSHOW, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELSHW_EXE), "", cmoOverwrite)
  727.             ENDIF
  728.         ENDIF
  729.  
  730.  
  731.         IF afState(PHOTO) <> NONE THEN
  732.             IF afInstalling(PHOTO) THEN
  733.                 '' Register photo with OLE
  734.                 WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELPNT_REG), MakePath(DIR(MAIN),"___temp_"),TR_CORELPNT_EXE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELPNT_EXE)
  735.                 WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELPNT_REG), MakePath(DIR(MAIN),"___temp_"),TR_PNTHNDLR_DLL, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_PNTHNDLR_DLL)
  736.                 RUN( TR_REGLOAD_S + " " + MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELPNT_REG) )
  737.                 ini$ = MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELPNT_INI)
  738.                     CreateIniKeyValue ini$, "CorelPaintDll", "PCX 16 Color/Gray", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+"pcx16.dll,*.pcx"), cmoOverWrite
  739.                     CreateIniKeyValue ini$, "ARTIST", "Path", MakePath(DIR(PHOTO),TR_BRUSHES+"\"), cmoOverWrite
  740.                     CreateIniKeyValue ini$, "COLORSELECT", "Brush", MakePath(DIR(PHOTO),TR_BRUSHES+"\"+TR_PNTBRUSH_BMP), cmoOverWrite
  741.                     CreateIniKeyValue ini$, "COLORSELECT", "Area", MakePath(DIR(PHOTO),TR_COLORS+"\"+TR_DEFAULT_CLR), cmoOverWrite
  742. '' Make the following as variable in setupvar.raw ......
  743.                     CreateIniKeyValue ini$, "CANVAS", "Canvas", MakePath(DIR(PHOTO),TR_CANVAS+"\"+"PAPER02C.PCX"), cmoOverWrite
  744.                     CreateIniKeyValue ini$, "ColorPath", "CircuitPath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
  745.                     CreateIniKeyValue ini$, "ColorPath", "CurvePath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
  746.                     CreateIniKeyValue ini$, "ColorPath", "TargetPath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
  747.                     CreateIniKeyValue ini$, "FILL", "Fill", MakePath(DIR(PHOTO),TR_TILES+"\"+"SAND.PCX"), cmoOverWrite
  748.                 nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELPHOTO, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELPNT_EXE), "", cmoOverwrite)
  749.                 nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CCAPTURE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CCAPTURE_EXE), "", cmoOverwrite)
  750.             ENDIF
  751.         ENDIF
  752.         
  753.         IF afState(MOVE) <> NONE THEN
  754.             IF afInstalling(MOVE) THEN
  755.                 '' Register move with OLE
  756.                 ini$ = MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELMOV_INI)
  757.                     CreateIniKeyValue ini$, "Config", "FilterDir", MakePath(DIR(MAIN),TR_PROGRAMS), cmoOverWrite
  758.                 '' Make the changes for media player installation    
  759.                 ini$ = MakePath(WINDIR$, "system.ini")
  760.                     CopyFile MakePath(WINDIR$, "system.ini"), MakePath(WINDIR$, "system.cor"), cmoOverwrite, 0
  761.                     CreateIniKeyValue ini$, "mci", "CorelMOVE", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+"mcicmv40.drv"), cmoOverWrite
  762.                     CreateIniKeyValue TR_WIN_INI, "mci extensions", "cmv", "CorelMOVE", cmoOverWrite
  763.                     CreateIniKeyValue TR_WIN_INI, "mci extensions", "mwf", "CorelMOVE", cmoOverWrite
  764.                 ini$ = MakePath(WINDIR$, "MPLAYER.INI")
  765.                     CopyFile MakePath(WINDIR$, "mplayer.ini"), MakePath(WINDIR$, "mplayer.cor"), cmoOverwrite, 0
  766.                     CreateIniKeyValue ini$, "Devices", "CorelMOVE", "350, CorelMove Player", cmoOverWrite
  767.                 nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELMOVE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELMOV_EXE), "", cmoOverwrite)
  768.             ENDIF
  769.         ENDIF
  770.  
  771.         IF afInstalling(TRACE) THEN
  772.             nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELTRACE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELTRC_EXE), "", cmoOverwrite)
  773.         ENDIF
  774.         
  775.         IF afInstalling(MOSAIC) THEN
  776.             nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELMOSAIC, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELMOS_EXE), "", cmoOverwrite)
  777.         ENDIF
  778.         
  779.         UIPop 1 ''WAITCONFIGER Dialog
  780.         
  781.         IF nAddItemFailed% > 0 THEN
  782.             Dialog% = NETADDITEMFAILED
  783.             GOSUB INFO
  784.         ENDIF
  785.         
  786.         '' Is the system set up to allow us to print the samples?
  787.         '' Print option is canceled, no printing any more!!!!! 16Apr93
  788.         
  789.         ''Let's get the bootable drive, by looking at COMSPEC enviro variable
  790. ''        TempStr$ = GetEnvVariableValue("COMSPEC")
  791.         ''Assume that config.sys & autoexec.bat are in the same drive as command.com
  792. ''        Drive$ = MID$ (GetEnvVariableValue("COMSPEC"), 1, 1)
  793.         Drive$ = CHR$( FGetBootDrive - 1 + ASC("A"))
  794.         WriteToLOgFile "Bootable Drive is : " + Drive$
  795.         '' If Scanners installed we need to add the lines to config.sys & autoexec.bat
  796.         IF afState(SCANNERS) = SOME THEN
  797.             ini$ = MakePath(WINDIR$,TR_TWAIN+"\"+TR_COREL+"\CORTWAIN.INI")
  798.             IF bDosScanner% THEN
  799.                 IF GetListLength(AUTOEXECLINE$) THEN
  800.                     CopyFile Drive$+":\"+TR_AUTOEXEC_BAT, Drive$+":\"+TR_AUTOEXEC_COR, cmoOverwrite, 0
  801.                     bAutoexecModified% = TRUE
  802.                     Dialog% = UPDATEAUTOEXEC
  803.                     '' We'll use same variables used for the other parts, it could be insignificant
  804.                     szFlist1a = TR_AUTOEXEC_BAT
  805.                     szFlist1b = TR_AUTOEXEC_COR
  806.                     szOptions$ = AUTOEXECLINE$
  807.                     szTempVar$ = "E"
  808.                     GOSUB UPDATE
  809.                 ENDIF
  810.                 IF GetListLength(CONFIGLINE$) THEN
  811.                     CopyFile Drive$+":\"+TR_CONFIG_SYS, Drive$+":\"+TR_CONFIG_COR, cmoOverwrite, 0
  812.                     Dialog% = UPDATECONFIG
  813.                     '' We'll use same variables used for the other parts, it could be insignificant
  814.                     szFlist1a = TR_CONFIG_SYS
  815.                     szFlist1b = TR_CONFIG_COR
  816.                     szOptions$ = CONFIGLINE$
  817.                     szTempVar$ = "B"
  818.                     GOSUB UPDATE
  819.                 ENDIF
  820.                 CreateIniKeyValue ini$, "ZSTWAIN.DLL", "path", MakePath(DIR(SCANNERS), "zstwain.dll"), cmoOverWrite
  821.             ELSEIF bTwainScanner% THEN
  822.                 CreateIniKeyValue ini$, "CANON", "IPUBJS-SCANNER", MakePath(DIR(SCANNERS),"canoncj1.dll"), cmoOverWrite
  823.             ENDIF
  824.         ENDIF
  825. '' Installing SHARE
  826.         '' We don't want to install SHARE for Windows for Workgroups
  827.         IF bWindowsForWorkgroups% = FALSE THEN
  828.             ShareFile$ = FindFileInTree("SHARE.EXE", Drive$+":\")
  829.             IF ShareFile <> "" THEN
  830.                 SetSymbolValue "ShareLine", "{}"
  831.                 AddListItem "ShareLine", ShareFile$+" /L:500 /F:5100"
  832.                 IF bAutoexecModified% = FALSE THEN
  833.                     CopyFile Drive$+":\"+TR_AUTOEXEC_BAT, Drive$+":\"+TR_AUTOEXEC_COR, cmoOverwrite, 0
  834.                 ENDIF
  835.                 Dialog% = UPDATEAUTOEXECFORSHARE
  836.                 szFlist1a = TR_AUTOEXEC_BAT
  837.                 szFlist1b = TR_AUTOEXEC_COR
  838.                 szOptions$ = "ShareLine"
  839.                 szTempVar$ = "E"
  840.                 GOSUB UPDATE
  841.             ENDIF
  842.         ENDIF
  843.         
  844.         
  845.     ELSE            '' if a network administrator
  846.         ini$ = MakePath( DIR(MAIN), TR_SETUP+"\"+TR_SETUP_INI )
  847.         CreateIniKeyValue ini$, "Directories", TR_FIXEDDRIVE, "FALSE", cmoOverwrite
  848.         CreateIniKeyValue ini$, "Directories", TR_DRAW, DIR(DRAW), cmoOverwrite
  849.         CreateIniKeyValue ini$, "Directories", TR_CHART, DIR(CHART), cmoOverwrite
  850.         CreateIniKeyValue ini$, "Directories", TR_SHOW, DIR(SHOW), cmoOverwrite
  851.         CreateIniKeyValue ini$, "Directories", TR_PHOTOPNT, DIR(PHOTO), cmoOverwrite
  852.         CreateIniKeyValue ini$, "Directories", TR_MOVE, DIR(MOVE), cmoOverwrite
  853.         CreateIniKeyValue ini$, "Directories", TR_TRACE, DIR(TRACE), cmoOverwrite
  854.         CreateIniKeyValue ini$, "Directories", TR_MOSAIC, DIR(MOSAIC), cmoOverwrite
  855.         CreateIniKeyValue ini$, "Directories", TR_WFN, MakePath(DIR(MAIN),TR_SYMBOLS), cmoOverwrite
  856.         CreateIniKeyValue ini$, "Directories", TR_TTF, DIR(FONTTT), cmoOverwrite
  857.         CreateIniKeyValue ini$, "Directories", TR_SCANNERS, DIR(SCANNERS), cmoOverwrite
  858.         CreateIniKeyValue ini$, "Directories", TR_MAIN, DIR(MAIN), cmoOverwrite
  859.         CreateIniKeyValue ini$, "Registration", "UserName", szUserName$, cmoOverWrite
  860.         CreateIniKeyValue ini$, "Registration", "SerialNumber", szSerialNumber$, cmoOverWrite
  861.     ENDIF            '' end 'network administrator?'
  862.     
  863.             
  864.      '' Do print test?
  865.     '' Print test samples is obselete. 16Apr93
  866.  
  867.  
  868. '' User has completed run of setup or has unconditionally decided to quit
  869. QUIT:
  870.     WaitOff
  871.     '' On MSTest errors report "setup file corrupted" and abort
  872.     ON ERROR GOTO ERRQUIT
  873.  
  874.     IF ERR = 0 THEN
  875.         sz$ = UIStartDlg("mscuistf.dll", SUCCESS, "FSuccessBitmapDlgProc", 0, "")
  876.         dlg% = EXITSUCCESS
  877.         szDlgProc$ = "FInfo075DlgProc"
  878.         WriteToLogfile TR_SETUPSUCCEEDED
  879.     ELSEIF ERR = STFQUIT THEN
  880.         dlg% = EXITQUIT
  881.         szDlgProc$ = "FInfo0DlgProc"
  882.         WriteToLogfile TR_SETUPQUIT
  883.     ELSE
  884.         dlg% = ERROREXITFAILURE
  885.         szDlgProc$ = "FInfo0DlgProc"
  886.         WriteToLogfile TR_SETUPFAILED
  887.     ENDIF
  888. ''    WriteToLogfile ""
  889.     
  890.  
  891. '' Put up one of the exit message dialog boxes
  892. QUITL1:
  893.     sz$ = UIStartDlg("mscuistf.dll", dlg%, szDlgProc, 0, "")
  894.     IF sz$ = "REACTIVATE" THEN
  895.         GOTO QUITL1
  896.     ENDIF
  897.  GOTO FINISH
  898.  
  899.  
  900. '' An error has occurred in MSTest. Tell the user and abort.
  901. ERRQUIT:
  902.     i% = DoMsgBox( TR_ERRQUIT, TR_SETUPMESSAGE, MB_OK+MB_TASKMODAL+MB_ICONHAND)
  903.     WriteToLogfile TR_SETUPCORRUPTED
  904.     WriteToLogFile ""
  905. FINISH:
  906.     UIPopAll
  907.     ShutDownInstall
  908.     CloseLogFile
  909.     END
  910.  
  911.  
  912. '' allow the user to select all the customize options
  913. CUSTINST:
  914.     bBack% = FALSE
  915.     RemoveSymbol "InstallDirs"
  916.     RemoveSymbol "InstallState"
  917.     '' pass current directories and custom install state to dlgproc
  918.     FOR i%= 1 to NUMCUST STEP 1
  919.         AddListItem "InstallDirs", DIR(i%)
  920.         AddListItem "InstallState", NUM(afState(i%))
  921.     NEXT i%
  922.  
  923.     ''Do a full recalculation if necessary
  924.     IF bRecalc% THEN
  925.         WaitOnBig
  926.         bRecalc% = FALSE
  927.         RecalcPath
  928.     ENDIF
  929.     IF bFullInstall% THEN 
  930.         GOTO CUSTINSTL2
  931.     ENDIF
  932.     
  933. CUSTINSTL1:    
  934.     WaitOn
  935.     ''Do a full recalculation if necessary
  936.     SetDriveStatus                '' set DriveText$ and StatusText$
  937.     WaitOff
  938.     sz$ = UIStartDlg("mscuistf.dll", CUSTINST1, "FCustInstDlgProc", CUSTINSTHELP, "FHelpDlgProc")
  939.     FOR i% = SCANNERS TO FONTTT
  940.         ReplaceListItem "InstallDirs", i%, DIR(i%)
  941.         ReplaceListItem "InstallState", i%, NUM(afState(i%))
  942.     NEXT i%
  943.     
  944.     SELECT CASE sz$
  945.     CASE "CONTINUE"
  946.         WaitOn
  947.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  948.         IF bBadPath% THEN
  949.             GOTO CUSTINSTL1
  950.         ENDIF
  951.         SetDriveStatus                    '' Test for not enough space
  952.         IF bTooBig% THEN
  953.             Dialog% = TOOBIG
  954.             GOSUB INFO
  955.             GOTO CUSTINSTL1
  956.         ENDIF
  957.         
  958.          IF afInstalling(CHART) AND afInstalling(DRAW) = FALSE THEN
  959.             afState(DRAW) = SOME
  960.             ReplaceListItem OPTS(DRAW), 1, "ON"    
  961.           FOR i% = 2 TO 4
  962.                 ReplaceListItem OPTS(DRAW), i%, "OFF"
  963.             NEXT i%
  964.     '$IFNDEF INSTALLCD
  965.             ReplaceListItem OPTS(DRAW), 5, "OFF"
  966.         '$ENDIF
  967.             ReplaceListItem "InstallState", DRAW, NUM(afState(DRAW))
  968.             Dialog% = INSTALLINGDRAW
  969.             GOSUB INFO    
  970.             RecalcOptFiles DRAW
  971.         ENDIF
  972.         WriteToLogFile TR_DIRECTORIES
  973.         WriteToLogFile TR_CORELDRAW + " - " + DIR(DRAW)
  974.         WriteToLogFile TR_CORELCHART + " - " + DIR(CHART)
  975.         WriteToLogFile TR_CORELSHOW + " - " + DIR(SHOW)
  976.         WriteToLogFile TR_CORELPHOTO + " - " + DIR(PHOTO)
  977.         WriteToLogFile TR_CORELTRACE + " - " + DIR(TRACE)
  978.         WriteToLogFile TR_CORELMOSAIC + " - " + DIR(MOSAIC)
  979.         WriteToLogFile TR_MAIN + " - " + DIR(MAIN)
  980.         WriteToLogFile TR_CUSTOMSELECT
  981.         WriteToLogFile TR_CUSTOMMESSAGE
  982.         WriteToLogFile TR_CORELDRAW + " - " + STR$(afState(DRAW)) + " - " + GetSymbolValue(OPTS(DRAW))
  983.         WriteToLogFile TR_CORELCHART + " - " + STR$(afState(CHART)) + " - " + GetSymbolValue(OPTS(CHART))
  984.         WriteToLogFile TR_CORELSHOW + " - " + STR$(afState(SHOW)) + " - " + GetSymbolValue(OPTS(SHOW))
  985.         WriteToLogFile TR_CORELPHOTO + " - " + STR$(afState(PHOTO)) + " - " + GetSymbolValue(OPTS(PHOTO))
  986.         WriteToLogFile TR_CORELMOVE + " - " + STR$(afState(MOVE)) + " - " + GetSymbolValue(OPTS(MOVE))
  987.         WriteToLogFile TR_CORELTRACE + " - " + STR$(afState(TRACE)) 
  988.         WriteToLogFile TR_CORELMOSAIC + " - " + STR$(afState(MOSAIC))
  989.         WriteToLogFile TR_ASTERIXES
  990.         
  991.     CASE "CUST1"
  992.         WaitOn
  993.         szOptions$ = OPTS(DRAW)
  994.         '$IFDEF INSTALLCD
  995.             Dialog% = CDROMCUSTDRAW
  996.         '$ELSE
  997.             Dialog% = FLOPPYCUSTDRAW
  998.         '$ENDIF
  999.         SelectType% = DRAW
  1000.         GOTO SAVE3LINES
  1001.     CASE "CUST2"
  1002.         WaitOn
  1003.         szOptions$ = OPTS(CHART)
  1004.         Dialog% = CUSTCHART
  1005.         SelectType% = CHART
  1006.         GOTO SAVE3LINES
  1007.     CASE "CUST3"
  1008.         WaitOn
  1009.         szOptions$ = OPTS(SHOW)
  1010.         Dialog% = CUSTSHOW
  1011.         SelectType% = SHOW
  1012.         GOTO SAVE3LINES
  1013.     CASE "CUST4"
  1014.         WaitOn
  1015.         szOptions$ = OPTS(PHOTO)
  1016.         Dialog% = CUSTPHOTO
  1017.         SelectType% = PHOTO
  1018.         GOTO SAVE3LINES
  1019.     CASE "CUST5"
  1020.         WaitOn
  1021.         szOptions$ = OPTS(MOVE)
  1022.         Dialog% = CUSTMOVE
  1023.         SelectType% = MOVE
  1024.         GOTO SAVE3LINES
  1025.  
  1026.     ''reset afState, the drive status and status text
  1027.     CASE "RESET"
  1028.         WaitOn
  1029.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1030.         GOTO CUSTINSTL1
  1031.         
  1032.     CASE "REACTIVATE"
  1033.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1034.         GOTO CUSTINSTL1
  1035.         
  1036.     CASE "CANCEL", "BACK"
  1037.         WaitOn
  1038.         UIPop 1
  1039.         bBack% = TRUE
  1040.         RETURN
  1041.         
  1042.     CASE ELSE
  1043.         GOSUB ASKQUIT
  1044.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1045.         GOTO CUSTINSTL1
  1046.     END SELECT
  1047.     UIPop 1
  1048.     
  1049. CUSTINSTL2:    
  1050.     WaitOn
  1051.     SetSymbolValue EXPFILTERLIST1$, "{}"
  1052.     SetSymbolValue IMPFILTERLIST1$, "{}"
  1053.     MakeListFromSectionKeys EXPFILTERLIST2$, "ExpFilters"
  1054.     MakeListFromSectionKeys IMPFILTERLIST2$, "ImpFilters"
  1055.     AddRemainingFilters
  1056.     RecalcOptFiles FILTERS
  1057.     MakeFontList
  1058.         WaitOnBig
  1059. ''    SetDriveStatus
  1060.     
  1061. CUSTINSTL22:
  1062.         
  1063.     ''Do a full recalculation if necessary
  1064. ''    GOSUB SetDirFromSymbol    
  1065.     SetDriveStatus                '' set DriveText$ and StatusText$
  1066.     WaitOff
  1067.     
  1068.     sz$ = UIStartDlg("mscuistf.dll", CUSTINST2, "FCustInstDlgProc", CUSTINSTHELP, "FHelpDlgProc")
  1069.     
  1070.     FOR i% = DRAW TO MOSAIC
  1071.         ReplaceListItem "InstallDirs", i%, DIR(i%)
  1072.         ReplaceListItem "InstallState", i%, NUM(afState(i%))
  1073.     NEXT i%
  1074.     
  1075.     SELECT CASE sz$
  1076.     CASE "CONTINUE"
  1077.         WaitOn
  1078.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1079.         IF bBadPath% THEN
  1080.             GOTO CUSTINSTL22
  1081.         ENDIF
  1082.         SetDriveStatus                    '' Test for not enough space
  1083.         IF bTooBig% THEN
  1084.             Dialog% = TOOBIG
  1085.             GOSUB INFO
  1086.             GOTO CUSTINSTL22
  1087.         ENDIF
  1088.         '$IFDEF INSTALLCD
  1089.             IF afState(FONTTT) = ALL THEN
  1090.                 Dialog% = MOREFONTS
  1091.                 GOSUB INFO
  1092.             ENDIF
  1093.         '$ENDIF
  1094.         
  1095.         WriteToLogFile TR_DIRECTORIES
  1096.         WriteToLogFile TR_CUSTOMSELECT
  1097.         WriteToLogFile TR_CUSTOMMESSAGE
  1098.         WriteToLogFile TR_FILTERS + " - " + STR$(afState(FILTERS)) + " - " + DIR(FILETRS)
  1099.         WriteToLogFile TR_TTF + " - " + STR$(afState(FONTTT)) + " - " + DIR(FONTTT)
  1100.         WriteToLogFile TR_SCANNERS + " - " + STR$(afState(SCANNERS)) + " - " + DIR(SCANNERS)
  1101.         WriteToLogFile TR_ASTERIXES
  1102.         
  1103.     CASE "CUST8"
  1104.         WaitOn
  1105.         FOR i%=1 TO 3
  1106.             AddListItem "StatusText", ""
  1107.         NEXT i%
  1108.         InitScannerSelection
  1109.         bDosScanner% = FALSE
  1110.         bTwainScanner% = FALSE
  1111.         GOSUB CUSTSCANNERS
  1112.         CloseScannerSelection
  1113.         GOTO CUSTINSTL22
  1114.     CASE "CUST9"
  1115.         WaitOn
  1116.             szFList1a$ = EXPFILTERLIST1$
  1117.             szFList1b$ = EXPFILTERLIST2$
  1118.             szFList2a$ = IMPFILTERLIST1$
  1119.             szFList2b$ = IMPFILTERLIST2$
  1120.         Dialog% = SELECTFILTERS
  1121.         SelectType% = FILTERS
  1122.         GOSUB SELECTFILES
  1123. ''        szFList1a$ = ""
  1124. ''        szFList1b$ = ""
  1125. ''        szFList2a$ = ""
  1126. ''        szFList2b$ = ""
  1127. ''        RecalcOptFiles SelectType%
  1128.         GOTO CUSTINSTL22
  1129.     CASE "CUST10"
  1130.         WaitOn
  1131.         SelectType% = FONTTT
  1132.         '$IFDEF INSTALLCD
  1133.             Dialog% = SELECTFONTTTCD
  1134.         '$ELSE
  1135.             Dialog% = SELECTFONTTT
  1136.         '$ENDIF
  1137.             szFList1a$ = FONTLIST1$
  1138.             szFList1b$ = FONTLIST2$
  1139.             GOSUB SELECTFILES
  1140. ''            RecalcOptFiles SelectType%
  1141. ''            szFList1a$ = ""
  1142. ''            szFList1b$ = ""
  1143.             GOTO CUSTINSTL22
  1144.         
  1145.     ''reset afState, the drive status and status text
  1146.     CASE "RESET"
  1147.         WaitOn
  1148.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1149.         GOTO CUSTINSTL22
  1150.         
  1151.     CASE "REACTIVATE"
  1152.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1153.         GOTO CUSTINSTL22
  1154.         
  1155.     CASE "CANCEL", "BACK"
  1156.         WaitOn
  1157.         UIPop 1
  1158.         IF bFullInstall% THEN
  1159.             bBack% = TRUE
  1160.             RETURN
  1161.         ELSE
  1162.             GOTO CUSTINSTL1
  1163.         ENDIF
  1164.         
  1165.     CASE ELSE
  1166.         GOSUB ASKQUIT
  1167.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1168.         GOTO CUSTINSTL22
  1169.     END SELECT
  1170.     UIPop 1
  1171. ''    IF bFullInstall% THEN
  1172. ''        RETURN    '' The work needed is done, let's install the files.
  1173. ''    ENDIF
  1174.     
  1175. '' Don't ask what progman group to use if installing as an administrator
  1176. '' Since the group selection is deleted, we don't need to jump anything: 16Apr93
  1177.  
  1178. '' Fall through from CUSTINST
  1179. ''set the default progman group to put everything in
  1180. TOOLGROUP$    = TR_TOOLGROUP
  1181.  
  1182. '' Let the user select the progman group where all executables will be stored
  1183. '' the selection of different groups and exev group name was deleted: 16Apr93
  1184.     
  1185. ''Fall through from SelectGroups - or from SelectCustGroups
  1186. '' Ask the user if he wants to change any of his selections. If so, let him
  1187. ''   work his way back by hitting the "back" button
  1188. ASKINSTALL:
  1189.     WaitOff
  1190.     sz$ = UIStartDlg( "mscuistf.dll", ASKINSTALL, "FInfoDlgProc", ASKINSTALLHELP, "FHelpDlgProc" )
  1191.     SELECT CASE sz$
  1192.     CASE "CONTINUE"
  1193.         ''Do nothing
  1194.     CASE "CANCEL", "BACK"
  1195.         UIPop 1
  1196.             GOTO CUSTINSTL22
  1197.     CASE "REACTIVATE"
  1198.         GOTO ASKINSTALL
  1199.     CASE ELSE
  1200.         GOSUB ASKQUIT
  1201.         GOTO ASKINSTALL
  1202.     END SELECT
  1203.     UIPop 1
  1204. RETURN        ''return to OPTIONS - going to INSTALL
  1205.     
  1206.  
  1207.  
  1208. '' Let the user customize the progman groups where each executable will be
  1209. '' stored
  1210. '' the choice was deleted: 16Apr93
  1211.  
  1212. '' this will save 3 lines per each option in CUSTINSTL1 ;-)
  1213. SAVE3LINES:
  1214.         GOSUB SetDirFromSymbol    '' set afState and DIR array from symbols
  1215.         IF bBadPath% THEN
  1216.             GOTO CUSTINSTL1
  1217.         ENDIF
  1218.         GOSUB CUSTINST2
  1219.         GOTO CUSTINSTL1
  1220.  
  1221.  
  1222. '' Input the custom installation choices for DRAW .. MOVE
  1223. CUSTINST2:
  1224.     SetSymbolValue "CheckItemsIn", GetSymbolValue( szOptions$ )
  1225. ''    IF SelectType% = FONTTT THEN
  1226. ''        szOldFontList1$    = GetSymbolValue(FONTLIST1$)
  1227. ''        szOldFontList2$    = GetSymbolValue(FONTLIST2$)
  1228. ''    ELSEIF SelectType% = DRAW THEN
  1229.         szOldSymbolList1$ = GetSymbolValue(SYMBOLLIST1$)
  1230.         szOldSymbolList2$ = GetSymbolValue(SYMBOLLIST2$)
  1231. ''    ENDIF
  1232. CUSTINST2L1:
  1233.     WaitOff
  1234.     sz$ = UIStartDlg("mscuistf.dll", Dialog%, "FCheckDlgProc", CUSTINST2HELP, "FHelpDlgProc")
  1235.  
  1236.     SELECT CASE sz$
  1237.     CASE "CONTINUE"
  1238.         WaitOn
  1239.         newopt$ = GetSymbolValue("CheckItemsOut")
  1240.         IF bCustomBottom% THEN
  1241.             '' if we might have customized the Symbols, or the fonts
  1242.             '' we need to recalculate the new list
  1243.             SetSymbolValue szOptions$, newopt$
  1244.             RecalcOptFiles SelectType%
  1245.             bCustomBottom% = FALSE
  1246.         ELSEIF newopt$ <> GetSymbolValue(szOptions$) THEN
  1247.             '' otherwise, only recalc if we changed things 
  1248.             SetSymbolValue szOptions$, newopt$
  1249.             RecalcOptFiles SelectType%
  1250.         ENDIF
  1251.         
  1252.     CASE "BTN1"
  1253.         ''This will only happen if customizing Symbols selection in Draw
  1254.         ''Or (4.0) customize font selection, which is for TTFonts in CDROM Install
  1255.         bCustomBottom% = TRUE
  1256.                 szFList1a$ = SYMBOLLIST1$
  1257.                 szFList1b$ = SYMBOLLIST2$
  1258.             oldDialog% = Dialog%
  1259.             Dialog% = SELECTFONTSYM
  1260.             GOSUB SELECTFILES
  1261.             Dialog% = oldDialog%
  1262.             GOTO CUSTINST2L1
  1263.         
  1264.     CASE "REACTIVATE"
  1265.         GOTO CUSTINST2L1
  1266.         
  1267.     CASE "CANCEL", "BACK"
  1268.             '' reset Symbols
  1269.             SetSymbolValue SYMBOLLIST1$, szOldSymbolList1$
  1270.             SetSymbolValue SYMBOLLIST2$, szOldSymbolList2$
  1271.             
  1272.     CASE ELSE
  1273.         GOSUB ASKQUIT
  1274.         GOTO CUSTINST2L1
  1275.         
  1276.     END SELECT
  1277.     UIPop 1
  1278. RETURN
  1279.  
  1280. CUSTSCANNERS:
  1281.          AddListItem "CombosStatus", GetListItem("ScanList", 1)
  1282.         IF GetListLength("OptionList") THEN
  1283.              AddListItem "CombosStatus", GetListItem("OptionList", 1)
  1284.         ELSE
  1285.              AddListItem "CombosStatus", ""
  1286.         ENDIF
  1287.         IF GetListLength("SubOptionList") THEN
  1288.              AddListItem "CombosStatus", GetListItem("SubOptionList", 1)
  1289.         ELSE
  1290.              AddListItem "CombosStatus", ""
  1291.         ENDIF
  1292.         bDosScanner% = 0
  1293.         bTwainScanner% = 0
  1294.             
  1295. CUSTSCANNERS2:
  1296.     WaitOff
  1297.     
  1298. ''    WriteToLogFile "Before The Dialog"
  1299.     sz$ = UIStartDlg("mscuistf.dll", CUSTSCAN, "FScannerDlgProc", CUSTSCANHELP, "FHelpDlgProc")
  1300. ''     WriteToLogFile "After The Dialog: sz$ is "+ sz$
  1301.  
  1302.     SELECT CASE sz$
  1303.     CASE "CONTINUE"
  1304.         SetSymbolValue SCANNERSECTION, "{}"
  1305.         SetSymbolValue CONFIGLINE, "{}"
  1306.         SetSymbolValue AUTOEXECLINE, "{}"
  1307.         bDosScanner% = FGetScannerLine(DIR(SCANNERS)+"\")
  1308.         bTwainScanner% = NOT bDosScanner%
  1309.         IF afState(SCANNERS) <> SOME THEN
  1310.             afState(SCANNERS) = SOME  
  1311.         ENDIF
  1312.         WaitOn
  1313.         GOSUB SetDirFromSymbol    
  1314.         RecalcOptFiles SCANNERS
  1315.     
  1316.     CASE "COMBO1"
  1317.         GOTO CUSTSCANNERS2
  1318.     CASE "COMBO2"
  1319.         GOTO CUSTSCANNERS2
  1320.     CASE "COMBO3"
  1321.         GOTO CUSTSCANNERS2
  1322.         
  1323.     CASE "REACTIVATE"
  1324.         GOTO CUSTSCANNERS2
  1325.         
  1326.     CASE "CANCEL"
  1327.         UIPop 1
  1328.         RETURN
  1329.             
  1330.     CASE ELSE
  1331.         GOSUB ASKQUIT
  1332.         GOTO CUSTSCANNERS2
  1333.         
  1334.     END SELECT
  1335.     UIPop 1
  1336. RETURN
  1337.  
  1338. '' Display an information dialog
  1339. '' Uses the global Dialog% to identify which dialog to display
  1340. INFO:
  1341.     WaitOff
  1342.     sz$ = UIStartDlg( "mscuistf.dll", Dialog%, "FInfo0DlgProc", 0, "" )
  1343.     SELECT CASE sz$
  1344.     CASE "CONTINUE"
  1345.         ''Do nothing
  1346.     CASE "REACTIVATE"
  1347.         GOTO INFO
  1348.     CASE "EXIT"
  1349.         GOSUB ASKQUIT
  1350.         GOTO INFO
  1351.     END SELECT
  1352.     UIPop 1
  1353. RETURN
  1354.  
  1355. '' Get the base directory under which CorelDRAW! will be installed
  1356. GETPATH:
  1357.     bBack% = FALSE
  1358.     bRet% = FIsDrawExist(TR_WIN_INI, szString$)
  1359.     IF bRet% THEN  '' We have DRAW installed before (could be DRAW3 or DRAW4)
  1360.         DEST$ = szString$
  1361.         DIR(MAIN) = DEST$
  1362.         SetDirectories
  1363.     ENDIF
  1364.         Dialog% = DESTPATH
  1365.     SetSymbolValue "EditTextIn", DEST$
  1366.     SetSymbolValue "EditFocus", "END"
  1367. GETPATHL1:
  1368.     WaitOff
  1369.     sz$ = UIStartDlg("mscuistf.dll", Dialog%, "FEditDlgProc", DESTPATHHELP, "FHelpDlgProc")
  1370.     SELECT CASE sz$
  1371.     CASE "CONTINUE"
  1372.         WaitOn
  1373.         olddest$ = DEST$
  1374.         DEST$ = RTRIM$(LTRIM$(GetSymbolValue("EditTextOut")))
  1375.         ''Validate new path.
  1376.         IF DEST$ = "" OR IsDirWritable(DEST$) = 0 THEN
  1377.             OldDialog% = Dialog%
  1378.             Dialog% = ERRORBADPATH
  1379.             GOSUB INFO
  1380.             Dialog% = OldDialog%
  1381.             GOTO GETPATHL1
  1382.         ENDIF
  1383.  
  1384.         ''Set Recalc and change subdirectories if DEST$ changed
  1385.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  1386.             DIR(MAIN) = DEST$
  1387.             SetDirectories
  1388.         ENDIF
  1389.         
  1390.     CASE "REACTIVATE"
  1391.         GOTO GETPATHL1
  1392.     CASE "CANCEL", "BACK"
  1393.         UIPop 1
  1394.         bBack% = TRUE
  1395.         RETURN
  1396.     CASE ELSE
  1397.         GOSUB ASKQUIT
  1398.         GOTO GETPATHL1
  1399.     END SELECT
  1400.     WriteToLogFile TR_BASEDIR + DEST$
  1401.     WriteToLogFile ""
  1402.     UIPop 1
  1403. RETURN
  1404.  
  1405.  
  1406. '' The user has asked to quit - confirm his decision
  1407. ASKQUIT:
  1408.     WaitOff
  1409.     sz$ = UIStartDlg("mscuistf.dll", ASKQUIT, "FQuitDlgProc", 0, "")
  1410.     SELECT CASE sz$
  1411.     CASE "EXIT"
  1412.         GOTO FINISH        '' OK. I know I shouldn't do that, but it's OK, It's the end of script.
  1413. ''        UIPopAll
  1414. ''        ERROR STFQUIT
  1415.     CASE "REACTIVATE"
  1416.         GOTO ASKQUIT
  1417.     CASE ELSE
  1418.         ''Do nothing
  1419.     END SELECT
  1420.     UIPop 1
  1421. RETURN
  1422.  
  1423.  
  1424. '' Permit the user to select which filters or fonts/symbols he wants to install
  1425. SELECTFILES:
  1426.     GOSUB SetDirFromSymbol    
  1427.     SetSymbolValue "ListItems1a", GetSymbolValue( szFList1a$ )
  1428.     SetSymbolValue "ListItems1b", GetSymbolValue( szFList1b$ )
  1429.     IF Dialog% = SELECTFILTERS THEN
  1430.         SetSymbolValue "ListItems2a", GetSymbolValue( szFList2a$ )
  1431.         SetSymbolValue "ListItems2b", GetSymbolValue( szFList2b$ )
  1432.     ENDIF
  1433.  
  1434. SELECTL1:
  1435.     WaitOff
  1436.     sz$ = UIStartDlg("mscuistf.dll", Dialog%, "FList4DlgProc", SELECTHELP, "FHelpDlgProc")
  1437.     
  1438.     SELECT CASE sz$
  1439.     CASE "CONTINUE"
  1440.         WaitOn
  1441.         ''If lists have been modified, reset them and recalculate
  1442.         SetSymbolValue szFList1a$, GetSymbolValue("ListItems1a")
  1443.         SetSymbolValue szFList1b$, GetSymbolValue("ListItems1b")
  1444.         IF Dialog% = SELECTFILTERS THEN
  1445.             SetSymbolValue szFList2a$, GetSymbolValue("ListItems2a")
  1446.             SetSymbolValue szFList2b$, GetSymbolValue("ListItems2b")
  1447.         ENDIF
  1448.         UIPop 1
  1449. ''''            WaitOnBig
  1450.             RecalcOptFiles SelectType%
  1451. ''            WriteToLogFile "End Of Continue of SELECTFILES, with Select type: "+STR$(SelectType%)
  1452. ''        ENDIF
  1453. ''        newlist$ = ""
  1454.     CASE "REACTIVATE"
  1455.         GOTO SELECTL1
  1456.     CASE "CANCEL", "BACK"
  1457.         UIPop 1
  1458.         IF SelectType% = FONTSYM OR SelectType% = FONTTT THEN
  1459.             WaitOnBig
  1460.             RecalcOptFiles SelectType%
  1461.         ENDIF
  1462.     CASE ELSE
  1463.         GOSUB ASKQUIT
  1464.         GOTO SELECTL1
  1465.     END SELECT
  1466.     RemoveSymbol "ListItems1a"
  1467.     RemoveSymbol "ListItems1b"
  1468.     RemoveSymbol "ListItems2a"
  1469.     RemoveSymbol "ListItems2b"
  1470. RETURN
  1471.  
  1472. UPDATE:
  1473.             WaitOff
  1474.             Drive$ = MID$ (GetEnvVariableValue("COMSPEC"), 1, 1)
  1475.              sz$ = UIStartDlg( "mscuistf.dll", Dialog%, "FButtonsDlgProc", UPDATEHELP, "FHelpDlgProc" )
  1476.         SELECT CASE sz$
  1477.             CASE "U"
  1478.                     Res% = FModifyFile(Drive$+":\"+szFlist1a$, szOptions$, szTempVar$)
  1479.                 CASE "D"
  1480.                     Res% = FModifyFile(Drive$+":\"+szFlist1b$, szOptions$, szTempVar$)
  1481.                 CASE ELSE
  1482.                     GOTO UPDATE
  1483.             END SELECT
  1484.                     UIPop 1
  1485.             RETURN
  1486.         
  1487.  
  1488. '$INCLUDE 'draw2.mst'
  1489.