'**************************************************************************
'*                       SETUP THAI LESSON DEMODISK
'**************************************************************************

'$DEFINE DEBUG  ''Define for script development/debugging

'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'

''Dialog ID's
CONST WELCOME       = 100
CONST ASKQUIT       = 200
CONST DESTPATH      = 300
CONST EXITFAILURE   = 400
CONST EXITQUIT      = 600
CONST EXITSUCCESS   = 700
CONST OPTIONS       = 800
CONST APPHELP       = 900
CONST BADPATH       = 6400

''Bitmap ID
CONST LOGO = 1

GLOBAL DEST$        ''Default destination directory.
GLOBAL WinDir$
GLOBAL WinSysDir$
GLOBAL OPTCUR$      ''Option selection from option dialog.

DECLARE SUB Install
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING


INIT:
    CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
    HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure

    SetBitmap CUIDLL$, LOGO
    SetTitle "Thai Lesson Install - Installation de Thai Lesson"

    szInf$ = GetSymbolValue("STF_SRCINFPATH")
    IF szInf$ = "" THEN
	szInf$ = GetSymbolValue("STF_CWDDIR") + "wes.inf"
    END IF
    ReadInfFile szInf$

    OPTCUR$ = "1"
    DEST$ = "C:\DEMO\THAI"

'$IFDEF DEBUG
    i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
    WinDrive$ = MID$(GetWindowsDir, 1, 1)
    IF IsDriveValid(WinDrive$) = 0 THEN
	i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive. - Nom du lecteur incorrecte", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
	GOTO QUIT
    END IF
'$ENDIF ''DEBUG


WELCOME:


OPTION:
    SetSymbolValue "RadioDefault", OPTCUR$
OPTL1:
    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
    OPTCUR$ = GetSymbolValue("ButtonChecked")

    IF sz$ = "CONTINUE" THEN
	UIPop(1)
    ELSEIF sz$ = "REACTIVATE" THEN
	GOTO OPTL1
    ELSE
	GOSUB ASKQUIT
	GOTO OPTION
    END IF



GETPATH:
    SetSymbolValue "EditTextIn", DEST$
    SetSymbolValue "EditFocus", "END"
GETPATHL1:
    sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
    DEST$ = GetSymbolValue("EditTextOut")

    IF sz$ = "CONTINUE" THEN
	IF IsDirWritable(DEST$) = 0 THEN
	    GOSUB BADPATH
	    GOTO GETPATHL1
	END IF
	UIPop 1
    ELSEIF sz$ = "REACTIVATE" THEN
	GOTO GETPATHL1
    ELSEIF sz$ = "BACK" THEN
	UIPop 1
	GOTO OPTION
    ELSE
	GOSUB ASKQUIT
	GOTO GETPATH
    END IF


    Install


QUIT:
    ON ERROR GOTO ERRQUIT

    IF ERR = 0 THEN
	dlg% = EXITSUCCESS
    ELSEIF ERR = STFQUIT THEN
	dlg% = EXITQUIT
    ELSE
	dlg% = EXITFAILURE
    END IF
QUITL1:
    sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
    IF sz$ = "REACTIVATE" THEN
	GOTO QUITL1
    END IF
    UIPop 1

    END

ERRQUIT:
    IF OPTCUR$ = "1" THEN
    i% = DoMsgBox("Setup sources were corrupted, please read file Dealer.wri and contact your local reseller.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
    ELSE
    i% = DoMsgBox("Les fichiers Setup sont endommagés, lisez le fichier Contacts.wri et contacter votre revendeur le plus proche.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
    END IF
END



BADPATH:
    sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
    IF sz$ = "REACTIVATE" THEN
	GOTO BADPATH
    END IF
    UIPop 1
    RETURN



ASKQUIT:
    sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")

    IF sz$ = "EXIT" THEN
	UIPopAll
	ERROR STFQUIT
    ELSEIF sz$ = "REACTIVATE" THEN
	GOTO ASKQUIT
    ELSE
	UIPop 1
    END IF
    RETURN



'**
'** Purpose:
'**     Builds the copy list and performs all installation operations.
'** Arguments:
'**     none.
'** Returns:
'**     none.
'*************************************************************************
SUB Install STATIC

    SrcDir$ = GetSymbolValue("STF_SRCDIR")
    CreateDir DEST$, cmoNone
    CreateDir DEST$+"\ttf", cmoNone
    CreateDir DEST$+"\Info", cmoNone
    CreateDir DEST$+"\files", cmoNone
    CreateDir DEST$+"\Dict", cmoNone

    OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
    WriteToLogFile ""
    WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
    WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
    WriteToLogFile ""
    WriteToLogFile "May have had to create the directory: " + DEST$
    WriteToLogFile ""

	WriteToLogFile "I will add section Lesson Add  "
    WinDir$ = GetWindowsDir()
    WinSysDir$ = GetWindowsSysDir()       
    AddSectionFilesToCopyList "WesLesson", SrcDir$, DEST$
    AddSectionFilesToCopyList "WesFiles", SrcDir$, DEST$
    WriteToLogFile "Section Lesson Add"
    AddSectionFilesToCopyList "Ttf", SrcDir$, DEST$+"\ttf"
IF OPTCUR$ = "1" THEN
   AddSectionFilesToCopyList "InfoGB", SrcDir$, DEST$+"\Info"
ELSE
  AddSectionFilesToCopyList "InfoFF", SrcDir$, DEST$+"\Info"
END IF
	AddSectionFilesToCopyList "Files", SrcDir$, DEST$
	CopyFilesInCopyList
	ini$ = GetWindowsDir()+"CALTHAI.INI"
    CreateIniKeyValue ini$, "VisualOption", "Langue", "thai" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "ThaiWindows", "0" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "Item", "0" , cmoOverwrite
    CreateIniKeyValue ini$, "Option", "Sounds", "2" , cmoOverwrite
    CreateIniKeyValue ini$, "OptionExercise", "Sounds", "2" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "First", "0" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "Guide", "1" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "Phonetic", "1" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "LessonType", "0" , cmoOverwrite 
    CreateIniKeyValue ini$, "Lesson", "DigitalVideo", "1" , cmoOverwrite 
    CreateIniKeyValue ini$, "CurrentLesson", "Menu", "1570" , cmoOverwrite
    CreateIniKeyValue ini$, "Police", "FirstFont", "Surin" , cmoOverwrite
    CreateIniKeyValue ini$, "Police", "Size", "45" , cmoOverwrite
    CreateIniKeyValue ini$, "ZipFiles", "DirectAcess", "NO" , cmoNone
    CreateProgmanGroup "Thai Lesson", "", cmoNone
    ShowProgmanGroup  "Thai Lesson", 1, cmoNone
    CreateProgmanItem "Thai Lesson", "Demo Thai Lesson", MakePath(DEST$,"Course.exe"), "", cmoOverwrite
    CreateIniKeyValue ini$, "PictExercise", "Language", "thai" , cmoOverwrite
    CreateIniKeyValue ini$, "TranslateEx", "From", "thai" , cmoOverwrite
IF OPTCUR$ = "1" THEN
    CreateIniKeyValue ini$, "TranslateEx", "To", "anglais" , cmoOverwrite
    CreateIniKeyValue ini$, "Dictionnary", "From", "thai" , cmoOverwrite
    CreateIniKeyValue ini$, "Dictionnary", "To", "anglais" , cmoOverwrite
    CreateIniKeyValue ini$, "Option", "Phonetic", "anglais" , cmoOverwrite
    CreateIniKeyValue ini$, "Option", "Traduction", "anglais" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "Langue", "2" , cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Thai Lesson Help", "winhelp.exe "+MakePath(DEST$,"lessongb.hlp"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Demo Thai Lesson Exercises", MakePath(DEST$,"Exercise.exe"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Your technical support", "write.exe "+MakePath(DEST$+"\Info","suppgb.wri"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "To order Thai Lesson", "write.exe "+MakePath(DEST$+"\Info","softgb.wri"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "About Thai Lesson Demodisk", "write.exe "+MakePath(DEST$+"\Info","warnin.wri"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "List of Thai characters", "write.exe "+MakePath(DEST$+"\Info","suringb.wri"), "",cmoOverwrite
ELSE
    CreateIniKeyValue ini$, "TranslateEx", "To", "francais" , cmoOverwrite
    CreateIniKeyValue ini$, "Dictionnary", "From", "thai" , cmoOverwrite
    CreateIniKeyValue ini$, "Dictionnary", "To", "francais" , cmoOverwrite
    CreateIniKeyValue ini$, "Option", "Phonetic", "francais" , cmoOverwrite
    CreateIniKeyValue ini$, "Option", "Traduction", "francais" , cmoOverwrite
    CreateIniKeyValue ini$, "Lesson", "Langue", "1" , cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Aide Thai Lesson", "winhelp.exe "+MakePath(DEST$,"lessonff.hlp"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Demo Thai Lesson Exercices", MakePath(DEST$,"Exercise.exe"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Votre support technique", "write.exe "+MakePath(DEST$+"\Info","suppff.wri"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Pour commander Thai Lesson", "write.exe "+MakePath(DEST$+"\Info","softff.wri"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "A propos de Thai Lesson Demodisk", "write.exe "+MakePath(DEST$+"\Info","limite.wri"), "", cmoOverwrite
    CreateProgmanItem "Thai Lesson", "Liste des caractères Thai", "write.exe "+MakePath(DEST$+"\Info","surinff.wri"), "",cmoOverwrite
END IF
REM AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
CloseLogFile
END SUB



'**
'** Purpose:
'**     Appends a file name to the end of a directory path,
'**     inserting a backslash character as needed.
'** Arguments:
'**     szDir$  - full directory path (with optional ending "\")
'**     szFile$ - filename to append to directory
'** Returns:
'**     Resulting fully qualified path name.
'*************************************************************************
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
    IF szDir$ = "" THEN
	MakePath = szFile$
    ELSEIF szFile$ = "" THEN
	MakePath = szDir$
    ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
	MakePath = szDir$ + szFile$
    ELSE
	MakePath = szDir$ + "\" + szFile$
    END IF
END FUNCTION
