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

📄 titleframe.tcl

📁 一个用TCL/TK写的用于verilog的集成编辑环境.
💻 TCL
字号:
# ------------------------------------------------------------------------------#  titleframe.tcl#  This file is part of Unifix BWidget Toolkit# ------------------------------------------------------------------------------#  Index of commands:#     - TitleFrame::create#     - TitleFrame::configure#     - TitleFrame::cget#     - TitleFrame::getframe#     - TitleFrame::_place# ------------------------------------------------------------------------------namespace eval TitleFrame {    Widget::declare TitleFrame {        {-relief      TkResource groove 0 frame}        {-borderwidth TkResource 2      0 frame}        {-font        TkResource ""     0 label}        {-foreground  TkResource ""     0 label}        {-background  TkResource ""     0 frame}        {-text        String     ""     0}        {-ipad        Int        4      0 {=0 ""}}        {-side        Enum       left   0 {left center right}}        {-baseline    Enum       center 0 {top center bottom}}        {-fg          Synonym    -foreground}        {-bg          Synonym    -background}        {-bd          Synonym    -borderwidth}    }    Widget::addmap TitleFrame "" :cmd {-background {}}    Widget::addmap TitleFrame "" .l   {-background {} -foreground {} -text {} -font {}}    Widget::addmap TitleFrame "" .p   {-background {}}    Widget::addmap TitleFrame "" .b   {-background {} -relief {} -borderwidth {}}    Widget::addmap TitleFrame "" .b.p {-background {}}    Widget::addmap TitleFrame "" .f   {-background {}}    proc ::TitleFrame { path args } { return [eval TitleFrame::create $path $args] }    proc use {} {}}# ------------------------------------------------------------------------------#  Command TitleFrame::create# ------------------------------------------------------------------------------proc TitleFrame::create { path args } {    Widget::init TitleFrame $path $args    set bg     [Widget::getoption $path -background]    set frame  [frame $path -background $bg]    set padtop [frame $path.p -relief flat -borderwidth 0 -background $bg]    set border [eval frame $path.b [Widget::subcget $path .b] -highlightthickness 0]    set label  [eval label $path.l [Widget::subcget $path .l] \                    -highlightthickness 0 \                    -relief flat \                    -bd     0 -padx 2 -pady 0]    set padbot [frame $border.p -relief flat -bd 0 -bg $bg -highlightthickness 0]    set frame  [frame $path.f -relief flat -bd 0 -bg $bg -highlightthickness 0]    set height [winfo reqheight $label]    switch [Widget::getoption $path -side] {        left   { set relx 0.0; set x 5;  set anchor nw }        center { set relx 0.5; set x 0;  set anchor n  }        right  { set relx 1.0; set x -5; set anchor ne }    }    set bd [Widget::getoption $path -borderwidth]    switch [Widget::getoption $path -baseline] {        top    { set htop $height; set hbot 1; set y 0 }        center { set htop [expr {$height/2}]; set hbot [expr {$height/2+$height%2+1}]; set y 0 }        bottom { set htop 1; set hbot $height; set y [expr {$bd+1}] }    }    $padtop configure -height $htop    $padbot configure -height $hbot    set pad [Widget::getoption $path -ipad]    pack $padbot -side top -fill x    pack $frame  -in $border -fill both -expand yes -padx $pad -pady $pad    pack $padtop -side top -fill x    pack $border -fill both -expand yes    place $label -relx $relx -x $x -anchor $anchor -y $y    bind $label <Configure> "TitleFrame::_place $path"    bind $path  <Destroy>   {Widget::destroy %W; rename %W {}}    rename $path ::$path:cmd    proc ::$path { cmd args } "return \[eval TitleFrame::\$cmd $path \$args\]"    return $path}# ------------------------------------------------------------------------------#  Command TitleFrame::configure# ------------------------------------------------------------------------------proc TitleFrame::configure { path args } {    set res [Widget::configure $path $args]    if { [Widget::hasChanged $path -ipad pad] } {        pack configure $path.f -padx $pad -pady $pad    }    if { [Widget::hasChanged $path -borderwidth val] |         [Widget::hasChanged $path -font        val] |         [Widget::hasChanged $path -side        val] |         [Widget::hasChanged $path -baseline    val] } {        _place $path    }    return $res}# ------------------------------------------------------------------------------#  Command TitleFrame::cget# ------------------------------------------------------------------------------proc TitleFrame::cget { path option } {    return [Widget::cget $path $option]}# ------------------------------------------------------------------------------#  Command TitleFrame::getframe# ------------------------------------------------------------------------------proc TitleFrame::getframe { path } {    return $path.f}# ------------------------------------------------------------------------------#  Command TitleFrame::_place# ------------------------------------------------------------------------------proc TitleFrame::_place { path } {    set height [winfo height $path.l]    switch [Widget::getoption $path -side] {        left    { set relx 0.0; set x 10;  set anchor nw }        center  { set relx 0.5; set x 0;   set anchor n  }        right   { set relx 1.0; set x -10; set anchor ne }    }    set bd [Widget::getoption $path -borderwidth]    switch [Widget::getoption $path -baseline] {        top    { set htop $height; set hbot 1; set y 0 }        center { set htop [expr {$height/2}]; set hbot [expr {$height/2+$height%2+1}]; set y 0 }        bottom { set htop 1; set hbot $height; set y [expr {$bd+1}] }    }    $path.p   configure -height $htop    $path.b.p configure -height $hbot    place $path.l -relx $relx -x $x -anchor $anchor -y $y}

⌨️ 快捷键说明

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