⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insttk.tcl

📁 开发VxWorks图形界面所必须的媒体库WindML2.0的补丁windml2-cp2。
💻 TCL
📖 第 1 页 / 共 4 页
字号:

    if [info exists tornadoInstalled] {
        torVarsCreate
    }

    wm withdraw .
    uninstStop

    endWaitCursor
    return 1
}

proc pageCreate(licenseFinish) {} {

    beginWaitCursor

    set w [dlgFrmCreate [strTableGet 1500_TITLE_FINISH]]

    uninstLog setupLog "[cdInfoGet number] SETUP"
    uninstLog setupLog [strTableGet 1261_LICENSE]

    $w.msg config -text [exitMsgGet]

    .buts.next config -text "Finish"
    .buts.cancel config -state disabled
    .buts.back config -state disabled
    endWaitCursor
}

proc pageProcess(licenseFinish) {w} {
    global setupVals

    beginWaitCursor
    wm withdraw .
    uninstStop
    endWaitCursor
    return 1
}

proc mailSend {} {
    global setupVals

    set tmpFile [tempDirGet]/licInfo.[pid]
    set f [open $tmpFile "w"]
    puts $f $setupVals(mailMsg)
    close $f

    set to [strTableGet 1220_MAIL_TO]
    set subject [strTableGet 1230_MAIL_SUBJECT]

    if [catch {exec mail -s $subject $to < $tmpFile} error] {
        if [catch {exec mail $to < $tmpFile} e] {
            messageBox [strTableGet 1240_MAIL_ERROR]
            return 0
        }
    }

    messageBox [strTableGet 1250_MAIL_OK]
    return 1
}

proc pageCreate(licenseKey) {} {
    global ctrlVals
    global setupVals

    beginWaitCursor

    set w [dlgFrmCreate [strTableGet 1510_TITLE_LICENSE_KEY]]
    $w.msg config -text [strTableGet 1260_LICENSE_KEY [info host]]

    # Create license key field

    labelCreate $w.licenseKeyLabel "License Key:"
    place $w.licenseKeyLabel -in $w -y 60

    entry $w.licenseKeyText -relief sunken -width 32 -font 7x13 \
                         -textvariable setupVals(licenseKey)

    place $w.licenseKeyText -in $w -y 85
    focus $w.licenseKeyText

    set frm $w.frm
    frame $frm -height 50
    place $frm -in $w -y 115

    listbox $frm.list -width 29 -height 3 \
        -yscrollcommand "$frm.scroll set" -font $ctrlVals(textFont)

    bind $frm.list <ButtonRelease-1> "updateKeyInfo $frm.list $w.licenseInfo"

    scrollbar $frm.scroll -command "$frm.list yview"

    pack $frm.list $frm.scroll -side left -fill y -expand yes

    if {[llength $setupVals(licenseKeyList)] != 0} {
        foreach key $setupVals(licenseKeyList) {
            $frm.list insert end $key
        } 
    }

    # Create the "add key" button

    set setupVals(licenseKey) ""
    button $w.addKey -text "Add" \
                     -command "addKey $frm.list" \
                     -font $ctrlVals(textFont) \
                     -padx 14 -pady 2

    place $w.addKey -in $w -x 250 -y 83

    # Create the "remove key" button

    button $w.remKey -text "Remove" \
                     -command "remKey $frm.list" \
                     -font $ctrlVals(textFont) \
                     -padx 3 -pady 2

    place $w.remKey -in $w -x 250 -y 115

    labelCreate $w.licenseInfo ""
    place $w.licenseInfo -in $w -y 190
    endWaitCursor
}

proc addKey {w} {
    global setupVals
    global ctrlVals

    set retVal 1

    if {([string trim $setupVals(licenseKey)] != "") && \
        ([lsearch [$w get 0 end] "$setupVals(licenseKey)"] == -1)} {
        
        set prog [cdromBinDirGet]/WLMUTILS
        if [catch {exec $prog -decodeKey $setupVals(licenseKey)} error] {
            messageBox [strTableGet 1281_LICENSE_KEY_ERROR_2 \
                                    $setupVals(licenseKey)]

            set retVal 0
        } {
            $w insert end $setupVals(licenseKey)
            set setupVals(licenseKeyList) [$w get 0 end]
            updateKeyInfo $w $ctrlVals(volatileFrm).licenseInfo\
                          $setupVals(licenseKey)
        }
    } elseif {[string trim $setupVals(licenseKey)] == ""} {
        messageBox "Please enter a license key first."
        set retVal 0
    }

    set setupVals(licenseKey) ""
    return $retVal
}

proc remKey {w} {
    global setupVals
    global ctrlVals

    if {[$w curselection] >= 0} {
        $w delete [$w curselection]
    }

    set setupVals(licenseKeyList) [$w get 0 end]
    $ctrlVals(volatileFrm).licenseInfo config -text ""
}


proc updateKeyInfo {listW keyInfoW {key ""}} {
    global setupVals

    if {[llength $setupVals(licenseKeyList)] == 0} {
         return 0
    }

    if {$key == ""} {
        set key [$listW get [$listW curselection]] 
    }
    set prog [cdromBinDirGet]/WLMUTILS

    if [catch {exec $prog -decodeKey $key} retVal] {
        messageBox "$retVal"
        return 0
    }

    set pList [split $retVal "\n"]
    
    set licenseInfo ""
    append licenseInfo "Feature Id\t:  [lindex $pList 0]\n"
    append licenseInfo "Feature Name\t:  [featureDescGet [lindex $pList 0]]\n"
    append licenseInfo "Licenses\t\t:  [lindex $pList 2]\n"
    append licenseInfo "Start date\t: \
                        [clock format [lindex $pList 3] -format "%b %d %Y"]\n" 
    append licenseInfo "Expire date\t: \
                        [clock format [lindex $pList 4] -format "%b %d %Y"]\n\n" 
    $keyInfoW config -text $licenseInfo
}

proc pageProcess(licenseKey) {w} {
    global ctrlVals
    global setupVals
     
    beginWaitCursor

    if {[llength $setupVals(licenseKeyList)] == 0} {
        messageBox [strTableGet 1270_LICENSE_KEY_ERROR]
        endWaitCursor
        return 0
    }    

    set binDir [destDirGet]/host/[windHostTypeGet]/bin
    set relBinDir host/[windHostTypeGet]/bin

    foreach filepath [glob -nocomplain [cdromBinDirGet]/WLM/*] {
        set filename [string tolower [file tail $filepath]]
        fileDup $filepath $binDir/$filename
        uninstLog file "wind_base\t$relBinDir/$filename"
    }

    if ![file isdirectory [licenseHomeDirGet]] {
        file mkdir [licenseHomeDirGet]
    }

    foreach key $setupVals(licenseKeyList) {
        set prog [cdromBinDirGet]/WLMUTILS

        if [catch {exec $prog -putKeyfile \
                               [join $key ""] \
                               [info host] \
                               [licenseHomeDirGet]} result] {

            uninstLog setup \
                "\t[strTableGet 1280_LICENSE_KEY_ERROR_1 $result]"

            messageBox [strTableGet 1280_LICENSE_KEY_ERROR_1 $result]
            endWaitCursor
            return 0
        }
    }

    exitMsgSet [strTableGet 1355_LICENSE_SUCCESS]

    endWaitCursor
    return 1
}

proc pageCreate(licenseChoice) {} {
    global ctrlVals
    global setupVals

    beginWaitCursor

    set w [dlgFrmCreate [strTableGet 1520_TITLE_LICENSE_CHOICE]]
    set setupVals(licenseNum) [setupLicenseNumGet]
    set prog [cdromBinDirGet]/WLMUTILS

    if ![catch {exec $prog -genHostCode [info host]} retVal] {
        set setupVals(hostId) $retVal
    } {
        set setupVals(hostId) ""
        uninstLog setupLog "\tFailed to detect HostId: $retVal"
    }

    set ctrlVals(pageList) $ctrlVals(pageListBack)

    $w.msg config -text [strTableGet 1290_LICENSE_CHOICE]

    set frm $w.frm
    frame $frm -height 50
    place $frm -in $w -y 60

    listbox $frm.list -width 35 -height 3 \
        -yscrollcommand "$frm.scroll set" -font $ctrlVals(textFont)
    scrollbar $frm.scroll -command "$frm.list yview"
    pack $frm.list $frm.scroll -side left -fill y -expand yes

    foreach featureId [cdInfoGet featureIdList] {
        $frm.list insert end [featureDescGet $featureId]
    }

    labelCreate $w.msg2 [strTableGet 1291_LICENSE_CHOICE]
    place $w.msg2 -in $w -y 140

    radiobutton $w.remote -text [strTableGet 1300_LICENSE_CHOICE_0] \
                                   -variable setupVals(licAction) \
                                   -font $ctrlVals(textFont) \
                                   -highlightthickness 0 \
                                   -relief flat -pady 0 \
                                   -value "remote"
    place $w.remote -in $w -y 165 -x 10

    radiobutton $w.haveKey -text [strTableGet 1300_LICENSE_CHOICE_1] \
                                   -variable setupVals(licAction) \
                                   -font $ctrlVals(textFont) \
                                   -highlightthickness 0 \
                                   -relief flat -pady 0 \
                                   -value "haveKey"
    place $w.haveKey -in $w -y 185 -x 10

    radiobutton $w.email -text [strTableGet 1310_LICENSE_CHOICE_2] \
                                    -variable setupVals(licAction) \
                                    -font $ctrlVals(textFont) \
                                    -highlightthickness 0 \
                                    -relief flat -pady 0 \
                                    -value "email"
    place $w.email -in $w -y 205 -x 10

    radiobutton $w.call -text [strTableGet 1320_LICENSE_CHOICE_3] \
                                    -variable setupVals(licAction) \
                                    -font $ctrlVals(textFont) \
                                    -highlightthickness 0 \
                                    -relief flat -pady 0 \
                                    -value "call"
    place $w.call -in $w -y 225 -x 10
    .buts.next config -text "Next"
    endWaitCursor
}

proc pageProcess(licenseChoice) {w} {
    global setupVals

    beginWaitCursor
    switch $setupVals(licAction) {
        haveKey {
            pageRemove licEmail
            pageRemove licCall
            pageRemove remoteLicenseHost
        }
        email {
            pageRemove licCall
            pageRemove remoteLicenseHost
        }
        call {
            pageRemove licEmail
            pageRemove remoteLicenseHost
        }
        remote {
            pageRemove licEmail
            pageRemove licCall
            pageRemove licenseKey
        }
    }

    endWaitCursor
    return 1
}

proc pageCreate(licEmail) {} {
    global setupVals ctrlVals

    beginWaitCursor

    set w [dlgFrmCreate [strTableGet 1530_TITLE_LICENSE_MAIL]]
    $w.msg config -text [strTableGet 1330_LICENSE_MAIL]

    set frm $w.frm
    frame $frm -height 100 -width 150
    place $frm -in $w -y 55

    text $frm.licenseInfo -bd 2 -yscrollcommand "$frm.scroll set" \
                          -width 49 -height 16 -font $ctrlVals(smallFont)
    scrollbar $frm.scroll -command "$frm.licenseInfo yview"
    pack $frm.licenseInfo $frm.scroll -side left -fill y -expand yes

    set mailMsg "[strTableGet 1340_LICENSE_MAIL_HEADER_LINE1]\
             \n\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE2]\
             \n\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE3 [userNameGet]]\
               \n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE4 [companyNameGet]]\
               \n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE5a [instKeyGet]]\
               \n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE6 \
                              $setupVals(licenseNum)]\
               \n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE7 \
                              [info host]]\
               \n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE8 \
                              $setupVals(hostId)]\
               \n\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE9]\
               \n\n"

    foreach featureId [cdInfoGet featureIdList] {
        append mailMsg "[featureDescGet $featureId] (id = $featureId)\n"
    }
     
    set setupVals(mailMsg) $mailMsg

    $frm.licenseInfo insert end $setupVals(mailMsg)
    $frm.licenseInfo config -state disabled
    .buts.next config -text "Send"
    endWaitCursor
}

proc pageProcess(licEmail) {w} {
    global setupVals
    global ctrlVals
  
    beginWaitCursor
    set setupVals(licAction) haveKey
    set ctrlVals(pageList) $ctrlVals(pageListBack)
    set ctrlVals(currPage) destDir
    .buts.next config -text "Next"
    set retVal [mailSend]
    endWaitCursor
    return $retVal
}

proc pageCreate(licCall) {} {
    global setupVals ctrlVals

    beginWaitCursor

    set w [dlgFrmCreate [strTableGet 1540_TITLE_LICENSE_CALL]]
    $w.msg config -text [strTableGet 1350_LICENSE_CALL]

    set callMsg "[strTableGet 1340_LICENSE_MAIL_HEADER_LINE7 \
                              [info host]]\
               \n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE8 \
                              $setupVals(hostId)]\
               \n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE6 \
                              $setupVals(licenseNum)]\
             \n\n[strTableGet 1340_LICENSE_MAIL_HEADER_LINE9]\n\n"

    foreach featureId [cdInfoGet featureIdList] {
        append callMsg "[featureDescGet $featureId] (id = $featureId)\n"
    }


    set frm $w.frm
    frame $frm -height 60 -width 150
    place $frm -in $w -y 80

    text $frm.licenseInfo -bd 2 -yscrollcommand "$frm.scroll set" \
                          -width 49 -height 12 -font $ctrlVals(smallFont)
    scrollbar $frm.scroll -command "$frm.licenseInfo yview"
    pack $frm.licenseInfo $frm.scroll -side left -fill y -expand yes

    $frm.licenseInfo insert end $callMsg
    endWaitCursor
}

proc pageProcess(licCall) {w} {
    global setupVals
    global ctrlVals
  
    beginWaitCursor
    set setupVals(licAction) haveKey
    set ctrlVals(pageList) $ctrlVals(pageListBack)
    set ctrlVals(currPage) destDir
    endWaitCursor
    return 1
}

#
# Supported functions:
#
proc dlgFrmCreate {title} {
    global ctrlVals

    # Make sure that we don't unneccessary create the whole frame again.

    if {[winfo exists .bitmap] != "1"} {

        # Creating the dialog

        wm maxsize . $ctrlVals(dlgWidth) $ctrlVals(dlgHeight)
        wm minsize . $ctrlVals(dlgWidth) $ctrlVals(dlgHeight)
        wm geometry . $ctrlVals(dlgPos)
        wm iconname . Setup
        . configure -bg $ctrlVals(mainBg)

        # Display the bitmap

        label .bitmap -image $ctrlVals(dlgImage)
        place .bitmap -in . -x 20 -y 20
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -