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

📄 tabset.itk

📁 windows下的GDB insight前端
💻 ITK
📖 第 1 页 / 共 5 页
字号:
    if {$itk_option(-angle) != {}} {    _tabConfigure -angle $itk_option(-angle)    }}# ----------------------------------------------------------------------# OPTION -font## Sets the font of the tab (SELECTED and UNSELECTED)# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::font {    if {$itk_option(-font) != {}} {    _tabConfigure -font $itk_option(-font)    }}# ----------------------------------------------------------------------# OPTION -state# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::state {    if {$itk_option(-state) != {}} {    _tabConfigure -state $itk_option(-state)    }}# ----------------------------------------------------------------------# OPTION -disabledforeground# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::disabledforeground {    if {$itk_option(-disabledforeground) != {}} {    _tabConfigure \        -disabledforeground $itk_option(-disabledforeground)    }}# ----------------------------------------------------------------------# OPTION -foreground## Sets the foreground label color of UNSELECTED tabs# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::foreground {    _tabConfigure -foreground $itk_option(-foreground)}# ----------------------------------------------------------------------# OPTION -background## Sets the background color of UNSELECTED tabs# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::background {    if {$itk_option(-background) != {}} {    _tabConfigure -background $itk_option(-background)    } else {    _tabConfigure -background \        [$itk_component(canvas) cget -background]    }}# ----------------------------------------------------------------------# OPTION -selectforeground## Sets the foreground label color of SELECTED tabs# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::selectforeground {    _tabConfigure -selectforeground $itk_option(-selectforeground)}# ----------------------------------------------------------------------# OPTION -backdrop## Sets the background color of the Tabset backdrop (behind the tabs)# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::backdrop {    if {$itk_option(-backdrop) != {}} {    $itk_component(canvas) configure \        -background $itk_option(-backdrop)    }}# ----------------------------------------------------------------------# OPTION -selectbackground## Sets the background color of SELECTED tabs# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::selectbackground {    if {$itk_option(-selectbackground) != {}} {    } else {    #set _selectBackground \        [$itk_component(canvas) cget -background]    }    _tabConfigure -selectbackground $itk_option(-selectbackground)}# ----------------------------------------------------------------------# OPTION -command## The command to invoke when a tab is hit.# ----------------------------------------------------------------------itcl::configbody iwidgets::Tabset::command {    if {$itk_option(-command) != {}} {    set _cmdStr $itk_option(-command)    }}# ----------------------------------------------------------------------# METHOD: add ?option value...?## Creates a tab and appends it to the list of tabs.# processes tabconfigure for the tab added.# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::add {args} {    set tabName [eval _createTab $args]    lappend _tabs $tabName        _relayoutTabs        return $tabName}# ----------------------------------------------------------------------# METHOD: configure ?option? ?value option value...?## Acts as an addendum to the itk::Widget::configure method.## Checks the _relayout flag to see if after configures are done# we need to relayout the tabs.## _skipRelayout is set in the MB2 scroll methods, to avoid constant# relayout of tabs while dragging the mouse.# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::configure {args} {    set result [eval itk::Archetype::configure $args]    _configRelayout    return $result}itcl::body iwidgets::Tabset::_configRelayout {} {    # then relayout tabs if necessary    if { $_relayout } {    if { $_skipRelayout } {    } else {        _relayoutTabs    }    set _relayout false    }}# ----------------------------------------------------------------------# METHOD: delete index1 ?index2?## Deletes a tab or range of tabs from the tabset# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::delete {args} {    if { $_tabs == {} } {    error "can't delete tabs,\        no tabs in the tabset named $itk_component(hull)"    }        set len [llength $args]    switch $len {    0 {        error "wrong # args: should be\            \"$itk_component(hull) delete index1 ?index2?\""    }        1 {        set fromTab [index [lindex $args 0]]        if { $fromTab == -1 } {        error "bad value for index1:\            [lindex $args 0] in call to delete"        }        set toTab $fromTab        _deleteTabs $fromTab $toTab    }        2 {        set fromTab [index [lindex $args 0]]        if { $fromTab == -1 } {        error "bad value for index1:\            [lindex $args 0] in call to delete"        }        set toTab [index [lindex $args 1]]                if { $toTab == -1 } {        error "bad value for index2:\            [lindex $args 1] in call to delete"        }        _deleteTabs $fromTab $toTab    }        default {        error "wrong # args: should be\            \"$itk_component(hull) delete index1 ?index2?\""    }    }}# ----------------------------------------------------------------------# METHOD: index index## Given an index identifier returns the numeric index of the tab# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::index {index} {    return [_index $_tabs $index $_currTab]}# ----------------------------------------------------------------------# METHOD: insert index ?option value...?## Inserts a tab before a index. The before tab may# be specified as a label or a tab position.# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::insert {index args} {    if { $_tabs == {} } {    error "no tab to insert before,\        tabset '$itk_component(hull)' is empty"    }        # get the tab    set tab [index $index]        # catch bad value for before tab.    if { $tab < 0 || $tab >= [llength $_tabs] } {    error "bad value $tab for index:\        should be between 0 and [expr {[llength $_tabs] - 1}]"    }        # create the new tab and get its name...    set tabName [eval _createTab $args]        # grab the name of the tab currently selected. (to keep in sync)    set currTabName [lindex $_tabs $_currTab]        # insert tabName before $tab    set _tabs [linsert $_tabs $tab $tabName]        # keep the _currTab in sync with the insert.    set _currTab [lsearch -exact $_tabs $currTabName]        _relayoutTabs        return $tabName}# ----------------------------------------------------------------------# METHOD: prev## Selects the prev tab. Wraps at first back to last tab.# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::prev {} {    if { $_tabs == {} } {    error "can't goto previous tab,\        no tabs in the tabset: $itk_component(hull)"    }        # bump to the previous tab and wrap if necessary    set prev [expr {$_currTab - 1}]    if { $prev < 0 } {    set prev [expr {[llength $_tabs] - 1}]    }        select $prev    }# ----------------------------------------------------------------------# METHOD: next## Selects the next tab. Wraps at last back to first tab.# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::next {} {    if { $_tabs == {} } {    error "can't goto next tab,\        no tabs in the tabset: $itk_component(hull)"    }        # bump to the next tab and wrap if necessary    set next [expr {$_currTab + 1}]    if { $next >= [llength $_tabs] } {    set next 0    }        select $next}# ----------------------------------------------------------------------# METHOD: select index## Select a tab by index## Lowers the last _currTab if it existed.# Then raises the new one if it exists.## Returns numeric index of selection, -1 if failed.# -------------------------------------------------------------itcl::body iwidgets::Tabset::select {index} {    if { $_tabs == {} } {    error "can't activate a tab,\        no tabs in the tabset: $itk_component(hull)"    }        # if there is not current selection just ignore trying this selection    if { $index == "select" && $_currTab == -1 } {    return -1    }        # is selection request in range ?     set reqTab [index $index]    if { $reqTab == -1 } {    error "bad value $index for index:\        should be from 0 to [expr {[llength $_tabs] - 1}]"    }        # If already selected then ignore and return...    if { $reqTab == $_currTab } {    return $reqTab    }        # ---- Deselect    if { $_currTab != -1 } {    set currTabName [lindex $_tabs $_currTab]    $currTabName deselect        # handle different orientations...    if { $itk_option(-tabpos) == "n" || $itk_option(-tabpos) == "s"} {        $currTabName configure -top $_deselectedTop    } else {        $currTabName configure -left $_deselectedLeft    }    }        # get the stacking order correct...    foreach tab $_tabs {    $tab lower    }        # set this now so that the -command cmd can do an 'index select'    # to operate on this tab.    set _currTab $reqTab        # ---- Select    set reqTabName [lindex $_tabs $reqTab]    $reqTabName select    if { $itk_option(-tabpos) == "n" || $itk_option(-tabpos) == "s"} {    $reqTabName configure -top $_selectedTop    } else {    $reqTabName configure -left $_selectedLeft    }        set _currTab $reqTab        # invoke any user command string, appended with tab index number    if { $_cmdStr != {} } {    set newCmd $_cmdStr    eval [lappend newCmd $reqTab]    }        return $reqTab}# ----------------------------------------------------------------------# METHOD: tabcget index ?option? ## Returns the value for the option setting of the tab at index $index.# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::tabcget {index args} {    return [lindex [eval tabconfigure $index $args] 2]}# ----------------------------------------------------------------------# METHOD: tabconfigure index ?option? ?value option value?## tabconfigure index : returns configuration list# tabconfigure index -option : returns option values# tabconfigure index ?option value option value ...? sets options#   and returns empty string.## Performs configure on a given tab denoted by index.## Index may be a tab number or a pattern matching the label# associated with a tab.# ----------------------------------------------------------------------itcl::body iwidgets::Tabset::tabconfigure {index args} {    # convert index to numeric    set tab [index $index]        if { $tab == -1 } {    error "bad index value:\        $index for $itk_component(hull) tabconfigure"    }        set tabName [lindex $_tabs $tab]        set len [llength $args]    switch $len {    0 {        return [eval $tabName configure]    }    1 {        return [eval $tabName configure $args]    }    default {        eval $tabName configure $args        _relayoutTabs        select select    }

⌨️ 快捷键说明

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