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

📄 compslct.tcl

📁 Berkeley DB 4.6.21VxWorks CD.NC.tar.gz
💻 TCL
📖 第 1 页 / 共 4 页
字号:
                set tornadoSelected [isTornadoSelected [lindex $torObj 0]]                set torIndex [lindex $torObj 0]                set torArch [lindex $torObj 1]                if {$setupVals(drvIndex) != -1 && $tornadoSelected && \                    [expr $currProdIndex == $torIndex || \                     $savedProdIndex == $torIndex] } {                   foreach  drvObj $setupVals(drvIndex) {                        set index [lindex $drvObj 0]                        set arch [lindex $drvObj 1]                        set drvObjSelected [productInfoGet instFlag $index]                        if {!$drvObjSelected && $torArch == $arch} {                            messageBox [strTableGet 5010_DRIVERS_INFO] \                                -informationicon                            productInfoSet instFlag $index 1                            productGuiSizeUpdate 1                            productInfoSet stateCommit $index                            productInfoSet childStateCommit $index                            set guiIndex [guiMapCtrlIndexGet $index]                            controlItemPropertySet \                                $ctrlVals(mainWindow).optionList \                                -index $guiIndex -checkstate 1                            set drvObjRestored 1                            break                        }                    }                }                if {$drvObjRestored} {                    break                }            }        }    }}############################################################################### guiMapCtrlIndexGet - return the GUI index of the selected product index## This procedure will return the GUI index of the selected product index## SYNOPSIS# .tS# guiMapCtrlIndexGet <prodIndex># .tE## PARAMETERS:# .IP prodIndex# product index## RETURNS: GUI mapped index of the product index## ERRORS: N/A#proc guiMapCtrlIndexGet {prodIndex} {    global objGuiMap ctrlVals    set retVal $objGuiMap(prod2gui,$prodIndex)    return $retVal}############################################################################### productGuiChkLstCreate - create the check list of products in compSelect page## This procedure will create the check list of products in compSelect page## SYNOPSIS# .tS# productGuiChkLstCreate# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc productGuiChkLstCreate {} {    global objGuiMap    global ctrlVals    global setupVals    global productObj    # populate the list of check button.    set i 0    set chkList ""    set totalSize 0    catch {        unset objGuiMap    }    foreach prodIndex [cdInfoGet productIndexList] {        # test automation        if { $ctrlVals(useInputScript) } {            set desc [productInfoGet desc $prodIndex]            if {[lsearch $setupVals(compList) "$desc"] < 0} {                productInfoSet instFlag $prodIndex 0            }            foreach part [productInfoGet partIndexList $prodIndex] {                set descp "[partInfoGet desc $part]"                if [regexp WTX $descp] {                    partInfoSet instFlag $part 1                }            }        }        set objGuiMap(gui2prod,$i) $prodIndex        set objGuiMap(prod2gui,$prodIndex) $i        set size [productInfoGet size $prodIndex]        set formatMbSize [format "%7s MB" [byteToMbyte $size]]        set desc " [productInfoGet desc $prodIndex]\t$formatMbSize "        lappend chkList [list $desc [productInfoGet instFlag $prodIndex]]        incr i    }    controlValuesSet $ctrlVals(mainWindow).optionList $chkList    controlSelectionSet  $ctrlVals(mainWindow).optionList -noevent 0    currSelProdIndexSet 0    # use the tri-state checkbox     for {set ix 0} {$ix < $i} {incr ix} {        set prodIndex $objGuiMap(gui2prod,$ix)        set nCompSel 0        set totComps 0        foreach partIndex $productObj($prodIndex,partIndexList) {            if {"[partInfoGet instFlag $partIndex]" == "1"} {                incr nCompSel            }            incr totComps        }        if {[productInfoGet instFlag $prodIndex]} {            if {$totComps != $nCompSel} {                controlItemPropertySet $ctrlVals(mainWindow).optionList \                    -index $objGuiMap(prod2gui,$prodIndex) -checkstate 2            }        }    }    # uncheck the products not meant for this host type    set hostType [windHostTypeGet]    for {set ix 0} {$ix < $i} {incr ix} {        set prodIndex $objGuiMap(gui2prod,$ix)        set desc [productInfoGet desc $prodIndex]        set prodHostType [prodHostTypeGet $desc]        if {$hostType != $prodHostType && $prodHostType != "unknown"} {            productInfoSet instFlag $prodIndex 0            controlItemPropertySet $ctrlVals(mainWindow).optionList \                -index $ix -checkstate 0        }    }    # test automation    if { $ctrlVals(useInputScript) } {        autoSetupLog "\tInstalled product(s):"        # retrieve product name from the product list        foreach i $chkList {            autoSetupLog "\t  $i"        }    }}############################################################################### productGuiChkLstUpdate - update the check list of products in the compSelect#                          page## This procedure will update the check list of products in the compSelect page## SYNOPSIS# .tS# productGuiChkLstUpdate <index># .tE## PARAMETERS:# .IP index# product index## RETURNS: N/A## ERRORS: N/A#proc productGuiChkLstUpdate {index} {    global objGuiMap    global ctrlVals    global productObj    set prodIndex [currSelProdIndexGet]    set size [productInfoGet size $prodIndex]    set formatMbSize [format "%7s MB" [byteToMbyte $size]]    # add in indication of components/product selected    # remove this section if a UITcl tristate button list is created    set nCompSel 0    set totComps 0    foreach partIndex $productObj($prodIndex,partIndexList) {        if {"[partInfoGet instFlag $partIndex]" == "1"} {            incr nCompSel        }        incr totComps    }    set desc " [productInfoGet desc $prodIndex]\t$formatMbSize "    set chkButt [list [list "$desc" [productInfoGet instFlag $prodIndex]]]    controlValuesSet $ctrlVals(mainWindow).optionList -insert $index $chkButt    controlValuesSet $ctrlVals(mainWindow).optionList -delete [expr $index + 1]    controlSelectionSet  $ctrlVals(mainWindow).optionList -noevent $index    if {$totComps != $nCompSel} {        if {[productInfoGet instFlag $prodIndex]} {            set index $objGuiMap(prod2gui,$prodIndex)            controlItemPropertySet $ctrlVals(mainWindow).optionList \                        -index $index -checkstate 2        }    }        }############################################################################### productguisizeupdate - update the size of products in the compSelect page## This procedure will update the size of products in the compSelect page## SYNOPSIS# .tS# productGuiSizeUpdate [state]# .tE## PARAMETERS:# .IP state# init -- first time the sizes of products are updated## RETURNS: N/A## ERRORS: N/A#proc productGuiSizeUpdate {{state "init"}} {    global ctrlVals    global setupVals    uiEventProcess    set setupVals(availDiskSpace) "Unknown"    if {[isUnix]} {        set free [fspace [destDirGet]]        if [regexp {^[0-9]+$} $free] {            set setupVals(availDiskSpace) \                [format "%3.1f" [expr $free / 1024.0]]        }    } else {        if {![catch {setupDiskSpaceGet [destDirGet]} diskSpace] &&             $diskSpace >= 0} {             set setupVals(availDiskSpace) [kbyteToMbyte $diskSpace]        }    }    set setupVals(reqDiskSpace) [cdInfoGet size]    # add size of SETUP directory to total required space only if SETUP     # directory is not present in destination directory    if [file exists [file join [destDirGet] SETUP RESOURCE TCL INSTW32.TCL]] {        set totalSize [byteToMbyte $setupVals(reqDiskSpace)]    } else {        set totalSize [expr [setupSizeGet] + \                            [byteToMbyte $setupVals(reqDiskSpace)]]    }    detailShow    controlValuesSet $ctrlVals(mainWindow).reqSpace \                     [format "%7s MB" $totalSize]    controlValuesSet $ctrlVals(mainWindow).availSpace \                     [format "%7s MB" $setupVals(availDiskSpace)]}############################################################################### checkProductDependency - check to see if dependencies are OK## This is a callback procedure for the partList Dialog.  It will check to# see if any dependencies are violated.  If so warn the user and correct# them.  The only one is the driver/objects dependency on Tornado parts.## SYNOPSIS# .tS# checkProductDependency# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc checkProductDependency {} {    global ctrlVals    global setupVals    set prodIndex [currSelProdIndexGet]    if {"$prodIndex" != ""} {        # check to see if the current product is the Tornado product        # determine if customer is trying to uncheck a driverObject/Header prod        set drvObjRestored 0        if {[info exists setupVals(tornadoIndex)]} {            foreach torObj $setupVals(tornadoIndex) {                set tornadoSelected [isTornadoSelected [lindex $torObj 0]]                set torIndex [lindex $torObj 0]                set torArch [lindex $torObj 1]                if {$setupVals(drvIndex) != -1 && $tornadoSelected && \                    [expr [currSelProdIndexGet] == $torIndex]} {                   foreach  drvObj $setupVals(drvIndex) {                        set index [lindex $drvObj 0]                        set arch [lindex $drvObj 1]                        set drvObjSelected [productInfoGet instFlag $index]                        if {!$drvObjSelected && $torArch == $arch} {                            messageBox [strTableGet 5010_DRIVERS_INFO] \                                -informationicon                            productInfoSet instFlag $index 1                            productGuiSizeUpdate 1                            productInfoSet stateCommit $index                            productInfoSet childStateCommit $index                            set guiIndex [guiMapCtrlIndexGet $index]                            controlItemPropertySet \                                $ctrlVals(mainWindow).optionList \                                -index $guiIndex -checkstate 1                            set drvObjRestored 1                            break                        }                    }                }                if {$drvObjRestored} {                    break                }            }        }    }}############################################################################### isTornadoSelected - checks to see if the tornado product is selected## This procedure checks to see if the tornado product is selected by the# customer.  If the parts "Tornado Integrated Simulator" and|or# "Tornado Object" are selected, then 1 is returned, else 0 is returned.## SYNOPSIS# .tS# isTornadoSelected <prodIndex># .tE## PARAMETERS: prodIndex - the product index of the Tornado product## RETURNS: 1 if either the simulator or tornado objects are selected#          0 otherwise## ERRORS: N/A#proc isTornadoSelected {prodIndex} {    set retVal 0    # first check to see if the tornado product has been selected    if {[productInfoGet instFlag $prodIndex]} {        foreach part [productInfoGet partIndexList $prodIndex] {            set desc [partInfoGet desc $part]            # check if the simulator part is selected            if {[string first "Tornado Integrated Simulator" $desc] != -1} {                if {[partInfoGet instFlag $part] == 1} {                    return 1                }            }            # check if the full simulator is selected            if {[string first "Tornado Simulator:" $desc] != -1} {                if {[partInfoGet instFlag $part] == 1} {                    return 1                }            }            # check if the Tornado part is selected            if {[string first "Tornado Object" $desc] != -1} {                if {[partInfoGet instFlag $part] == 1} {                    return 1                }            }        }    }    return $retVal}############################################################################### kbyteToMbyte - converts kilo bytes to mega bytes## SYNOPSIS# kbyteToMbyte <size>## PARAMETERS:#    <kbyte> : number in kilo bytes## RETURNS: number in mega bytes## ERRORS: N/A#proc kbyteToMbyte {size} {    return [format "%3.1f" [expr $size / 1024.0]]}################################################################################ byteToMbyte - converts bytes to Mbytes## SYNOPSIS# byteToMbyte <size>## PARAMETERS:#    <byte> : number in bytes## RETURNS: number in mega bytes## ERRORS: N/A#proc byteToMbyte {size} {    return [format "%3.1f" [expr $size / 1048576.0]]}

⌨️ 快捷键说明

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