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

📄 appconfg.tcl

📁 vxworks下MV5500的BSP支持包。是支持tornad221下的版本。
💻 TCL
字号:
# APPCONFG.TCL - Setup procedures allowing users to select which file types should use#                this product (ex: Tornado 2.2) as the default application (for Windows)## Copyright 1999 Wind River Systems, Inc## modification history# --------------------# 01o,05mar02,bwd  Modified SETUP to be non-tornado centric# 01n,18jan02,bwd  Added .s files mapping# 01m,07may01,j_w  Change display layout. Replace 3.1 with#                  $setupVals(torVersionNum)# 01l,16mar01,wmd  Need to add code to change next button to Finish.# 01k,16mar01,wmd  Fix spr 64976, add file association command to Setup.# 01j,13mar01,j_w  update version 3.0 to 3.1# 01i,13dec00,bwd  Call appDefaultCallback in pageProcess to prevent the#                  default selections being saved unintentionally.# 01h,18oct00,bwd  SPR 31096: modified file types selections# 01g,09oct00,bwd  SPR 34894: Skip searchAndProcessSection if user has no#                  ADMIN privileges. SPR 35218: modified to clear out only#                  the registries that the file associations will be configured# 01f,03oct00,bwd  SPR 34894: inform user that file association configuration#                  fails when user has no ADMIN privilege.# 01e,12sep00,bwd  Changed instructions on the page# 01d,09aug00,bwd  SPR 31096: add searchAndProcessSection# 01c,11may00,bwd  Fix SPR 31096 - more work on appConfig page display and#                  callback function# 01b,10may00,bwd  Fix SPR 31096 (phase 1)# 01a,10may00,bwd  Written#global typeListset typeList {proj wksp tcl source windview}############################################################################### pageCreate(appConfig) - display options to select file types## This procedure will display options to select which file types should # use this product as the default application.## SYNOPSIS# .tS# pageCreate(appConfig)# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc pageCreate(appConfig) {} {    global ctrlVals    set msg0 [strTableGet APPCONFIG_OPTION_SELECT]    set msgDesc [strTableGet APPCONFIG_DESC]    set msg0Ctrl [list label -name msg0 -title $msg0 \                             -x 100 -y 40 -w 205 -h 25]    set msgDescCtrl [list label -name msg0 \                                -title $msgDesc \                                -x 100 -y 10 -w 205 -h 30]    set msg1Ctrl [list label -name msg1 \                         -title [strTableGet APPCONFIG_MSG1] \                         -x 100 -y 73 -w 100 -h 10]                             set choiceHeight 13    set radio1_ypos 86    set radio2_ypos [expr $radio1_ypos + $choiceHeight]    set radio3_ypos [expr $radio2_ypos + $choiceHeight]    set radio4_ypos [expr $radio3_ypos + $choiceHeight]    set radio5_ypos [expr $radio4_ypos + $choiceHeight]    set radio6_ypos [expr $radio5_ypos + $choiceHeight]	# Project Type	set projType [list boolean -name proj -auto \                               -title [strTableGet APPCONFIG_OPTION1]\			                   -x 100 -y $radio1_ypos -w 205 -h 10]    # Workspace Type	set wkspType [list boolean -name wksp -auto \                               -title [strTableGet APPCONFIG_OPTION2]\			                   -x 100 -y $radio2_ypos -w 205 -h 10]	# TCL Type    set tclType [list boolean -name tcl -auto \                              -title [strTableGet APPCONFIG_OPTION3]\			                  -x 100 -y $radio3_ypos -w 205 -h 10]	# Source Type (C, C++, Header Files)    set sourceType [list boolean -name source -auto \                                 -title [strTableGet APPCONFIG_OPTION4]\			                     -x 100 -y $radio4_ypos -w 205 -h 10]	# WindView Type    set windviewType [list boolean -name windview -auto \                                   -title [strTableGet APPCONFIG_OPTION5]\			                       -x 100 -y $radio5_ypos -w 205 -h 10]	set ctrlVals(volatileFrm) \			[list $msg0Ctrl $msgDescCtrl $msg1Ctrl \			$projType $wkspType $tclType $sourceType $windviewType]    set ctrlVals(fileTypes) [dlgFrmCreate [strTableGet APPCONFIG_TITLE]]    # default values    controlCheckSet $ctrlVals(fileTypes).proj 1    controlCheckSet $ctrlVals(fileTypes).wksp 1    controlCheckSet $ctrlVals(fileTypes).tcl 0    controlCheckSet $ctrlVals(fileTypes).source 0    controlCheckSet $ctrlVals(fileTypes).windview 1    controlEnable $ctrlVals(fileTypes).backButt 1    controlEnable $ctrlVals(fileTypes).nextButt 1    controlFocusSet $ctrlVals(fileTypes).nextButt    if {[string compare [instTypeGet] "fileAssociation"] == 0} {        controlEnable $ctrlVals(fileTypes).backButt 0        controlValuesSet $ctrlVals(fileTypes).nextButt "Finish"        controlEnable $ctrlVals(fileTypes).nextButt 1    }    if { ($ctrlVals(NT) == "1") && ($ctrlVals(admin) != "1") } {        # if no ADMIN privilege...        # disable everything,        controlEnable $ctrlVals(fileTypes).proj 0        controlEnable $ctrlVals(fileTypes).wksp 0        controlEnable $ctrlVals(fileTypes).tcl 0        controlEnable $ctrlVals(fileTypes).source 0        controlEnable $ctrlVals(fileTypes).windview 0        # reset to no default values        controlCheckSet $ctrlVals(fileTypes).proj 0        controlCheckSet $ctrlVals(fileTypes).wksp 0        controlCheckSet $ctrlVals(fileTypes).windview 0        # display message        dialog ok "SETUP" [strTableGet APPCONFIG_MSG1]    }    # test automation    if { $ctrlVals(useInputScript) } {        autoSetupLog "Application Configuration Page: skipped"        if { ($ctrlVals(NT) == "1") && ($ctrlVals(admin) != "1") } {            autoSetupLog "SETUP detected that you have no Administrative\                privileges to configure file associations. SETUP will proceed\                without configuring file associations for these file types."        }        nextCallback    }}############################################################################### pageProcess(appConfig) - process inputs from appConfig page## This procedure will process input from appConfig page## SYNOPSIS# .tS# pageProcess(appConfig)# .tE## PARAMETERS: N/A## RETURNS: 1 when successful## ERRORS: N/A#proc pageProcess(appConfig) {} {    global ctrlVals    global infVals    global typeList    if { ($ctrlVals(NT) == "1") && ($ctrlVals(admin) != "1") } {        return 1    }    # test automation    if { $ctrlVals(useInputScript) } {        autoSetupLog "User's selection:"    }    set selectedList ""    foreach type $typeList {        # test automation        # set infVals in here, based on        # what is selected by user        appDefaultCallback $type        # file type selected or not (0 or 1)        set value [controlChecked wizardDialog.$type]        if { $ctrlVals(useInputScript) } {            autoSetupLog "infVals($type): $value"        } else {            dbgputs "infVals($type): $value"        }        # list used to indicate which         # registries to clear out        if { $value == 1 } {            append selectedList "$type "        }    }    registriesClearOut $selectedList    set prod [string toupper [getProdInfo name]]    searchAndProcessSection AddRegistry [cdFileNameGet [file join RESOURCE \                                         INF $prod.INF]]    queueExecute    # reset infVals    foreach type $typeList {        set infVals($type) 0    }    return 1}############################################################################### appDefaultCallback - set the variable(s) that will be used in #                      <$productName>.INF according to user's selection(s)## This procedure will set the variable(s) that will be used in <$productName>.INF# according to user's selection(s). The variables are the file types that# should use this product as their default application. This registry writing# only happens for Windows## SYNOPSIS# .tS# appDefaultCallback <opt># .tE## PARAMETERS:# .IP opt# option selected## RETURNS: N/A## ERRORS: N/A#proc appDefaultCallback {opt} {    global infVals    if { ![isUnix] } {        if { [controlChecked wizardDialog.$opt] == 1 } {            set infVals($opt) 1        } else {            set infVals($opt) 0        }    }}############################################################################### registriesClearOut -- clear out file association registries## This procedure reads in a list of file types that are selected (by user) # to be configured for file associations. In HKEY_CLASSES_ROOT, it will delete# relevant registries of file extensions, file types, its association # commands and default icons.## SYNOPSIS# .tS# registriesClearOut# .tE## PARAMETERS: N/A# .IP selectedList		# List of file types (selected by user), indicating which registries to be cleared out.## RETURNS: N/A## ERRORS: N/A#proc registriesClearOut {selectedList} {    global infVals    if { ![isUnix] } {        set regList ""        foreach type $selectedList {            switch -exact -- $type {                proj     { append regList ".wpj [getProdInfo name]ProjectType " }                wksp     { append regList ".wsp [getProdInfo name]WorkspaceType " }                tcl      { append regList ".tcl [getProdInfo name]TCLType " }                source   { append regList ".c .cc .cpp .cxx .h .hpp .hxx .s [getProdInfo name]SourceType " }                windview { append regList ".wvr [getProdInfo name]WindViewType " }            }        }        dbgputs "regList cleared out: $regList"        foreach reg $regList {            if { ![catch {setupRegKeyExists HKEY_CLASSES_ROOT $reg} error] } {                if { [catch {sysRegistryKeyDelete HKEY_CLASSES_ROOT $reg} err] } {                    puts "Cannot delete registry key $reg: $err"                }			}        }    }}####################################################################### Dialog Text Messages######################################################################set strTable(APPCONFIG_TITLE) "Configure Default Application"set strTable(APPCONFIG_MSG1) \    "SETUP detected that you have no Administrative privileges to \     configure file associations. Click \"Next\" to proceed without \     configuring file associations for these file types."set strTable(APPCONFIG_DESC) \    "Setup currently registers [getProdInfo name] to handle Project,\     Workspace, WindView, and Wind Configuration files.  You can\     also specify below to associate other file types with [getProdInfo name]\     [getProdInfo version]."set strTable(APPCONFIG_OPTION_SELECT) \    "Choose the file type(s) that should use [getProdInfo name] [getProdInfo version]\     for their default application. Then click the <Next> button to continue\     the installation."set strTable(APPCONFIG_MSG1) \    "File Types"    set strTable(APPCONFIG_OPTION1) \    "Project \(.wpj)"set strTable(APPCONFIG_OPTION2) \    "Workspace \(.wsp\)"set strTable(APPCONFIG_OPTION3) \    "TCL \(.tcl\)"set strTable(APPCONFIG_OPTION4) \    "Source \(.c, .cc, .cpp, .cxx, .h, .hpp, .hxx, .s\)"set strTable(APPCONFIG_OPTION5) \    "WindView \(.wvr\)"

⌨️ 快捷键说明

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