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

📄 dynhelp.tcl

📁 Linux下的MSN聊天程序源码
💻 TCL
📖 第 1 页 / 共 2 页
字号:
# ----------------------------------------------------------------------------#  dynhelp.tcl#  This file is part of Unifix BWidget Toolkit#  $Id: dynhelp.tcl 3417 2004-12-03 00:31:24Z tjikkun $# ----------------------------------------------------------------------------#  Index of commands:#     - DynamicHelp::configure#     - DynamicHelp::include#     - DynamicHelp::sethelp#     - DynamicHelp::register#     - DynamicHelp::_motion_balloon#     - DynamicHelp::_motion_info#     - DynamicHelp::_leave_info#     - DynamicHelp::_menu_info#     - DynamicHelp::_show_help#     - DynamicHelp::_init# ----------------------------------------------------------------------------# JDC: allow variable and ballon help at the same timeesnamespace eval DynamicHelp {    Widget::define DynamicHelp dynhelp -classonly    Widget::declare DynamicHelp {        {-foreground     TkResource black         0 label}        {-topbackground  TkResource black         0 {label -foreground}}        {-background     TkResource "#FFFFC0"     0 label}        {-borderwidth    TkResource 1             0 label}        {-justify        TkResource left          0 label}        {-font           TkResource "helvetica 8" 0 label}        {-delay          Int        600           0 "%d >= 100 & %d <= 2000"}	{-state          Enum       "normal"      0 {normal disabled}}        {-padx           TkResource 1             0 label}        {-pady           TkResource 1             0 label}        {-bd             Synonym    -borderwidth}        {-bg             Synonym    -background}        {-fg             Synonym    -foreground}        {-topbg          Synonym    -topbackground}    }    proc use {} {}    variable _registered    variable _canvases    variable _top     ".help_shell"    variable _id      ""    variable _delay   600    variable _current_balloon ""    variable _current_variable ""    variable _saved    Widget::init DynamicHelp $_top {}    bind BwHelpBalloon <Enter>   {DynamicHelp::_motion_balloon enter  %W %X %Y}    bind BwHelpBalloon <Motion>  {DynamicHelp::_motion_balloon motion %W %X %Y}    bind BwHelpBalloon <Leave>   {DynamicHelp::_motion_balloon leave  %W %X %Y}    bind BwHelpBalloon <Button>  {DynamicHelp::_motion_balloon button %W %X %Y}    bind BwHelpBalloon <Destroy> {DynamicHelp::_unset_help %W}    bind BwHelpVariable <Enter>   {DynamicHelp::_motion_info %W}    bind BwHelpVariable <Motion>  {DynamicHelp::_motion_info %W}    bind BwHelpVariable <Leave>   {DynamicHelp::_leave_info  %W}    bind BwHelpVariable <Destroy> {DynamicHelp::_unset_help  %W}    bind BwHelpMenu <<MenuSelect>> {DynamicHelp::_menu_info select %W}    bind BwHelpMenu <Unmap>        {DynamicHelp::_menu_info unmap  %W}    bind BwHelpMenu <Destroy>      {DynamicHelp::_unset_help %W}}# ----------------------------------------------------------------------------#  Command DynamicHelp::configure# ----------------------------------------------------------------------------proc DynamicHelp::configure { args } {    variable _top    variable _delay    set res [Widget::configure $_top $args]    if { [Widget::hasChanged $_top -delay val] } {        set _delay $val    }    return $res}# ----------------------------------------------------------------------------#  Command DynamicHelp::include# ----------------------------------------------------------------------------proc DynamicHelp::include { class type } {    set helpoptions [list \	    [list -helptext String "" 0] \	    [list -helpvar  String "" 0] \	    [list -helptype Enum $type 0 [list balloon variable]] \	    ]    Widget::declare $class $helpoptions}# ----------------------------------------------------------------------------#  Command DynamicHelp::sethelp# ----------------------------------------------------------------------------proc DynamicHelp::sethelp { path subpath {force 0}} {    foreach {ctype ctext cvar} [Widget::hasChangedX $path \	    -helptype -helptext -helpvar] break    if { $force || $ctype || $ctext || $cvar } {	set htype [Widget::cget $path -helptype]        switch $htype {            balloon {                return [register $subpath balloon \			[Widget::cget $path -helptext]]            }            variable {                return [register $subpath variable \			[Widget::cget $path -helpvar] \			[Widget::cget $path -helptext]]            }        }        return [register $subpath $htype]    }}# ----------------------------------------------------------------------------#  Command DynamicHelp::register##  DynamicHelp::register path balloon  ?itemOrTag? text#  DynamicHelp::register path variable ?itemOrTag? text varName#  DynamicHelp::register path menu varName#  DynamicHelp::register path menuentry index text# ----------------------------------------------------------------------------proc DynamicHelp::register { path type args } {    variable _registered    set len [llength $args]    if {$type == "balloon"  && $len > 1} { set type canvasBalloon  }    if {$type == "variable" && $len > 2} { set type canvasVariable }    if { ![winfo exists $path] } {        _unset_help $path        return 0    }    switch $type {        balloon {            set text [lindex $args 0]	    if {$text == ""} {		if {[info exists _registered($path,balloon)]} {		    unset _registered($path,balloon)		}		return 0	    }	    _add_balloon $path $text        }        canvasBalloon {            set tagOrItem  [lindex $args 0]            set text       [lindex $args 1]	    if {$text == ""} {		if {[info exists _registered($path,$tagOrItem,balloon)]} {		    unset _registered($path,$tagOrItem,balloon)		}		return 0	    }	    _add_canvas_balloon $path $text $tagOrItem        }        variable {            set var  [lindex $args 0]            set text [lindex $args 1]	    if {$text == "" || $var == ""} {		if {[info exists _registered($path,variable)]} {		    unset _registered($path,variable)		}		return 0	    }	    _add_variable $path $text $var        }        canvasVariable {            set tagOrItem  [lindex $args 0]            set var        [lindex $args 1]            set text       [lindex $args 2]	    if {$text == "" || $var == ""} {		if {[info exists _registered($path,$tagOrItem,variable)]} {		    unset _registered($path,$tagOrItem,variable)		}		return 0	    }	    _add_canvas_variable $path $text $var $tagOrItem        }        menu {            set var [lindex $args 0]	    if {$var == ""} {		set cpath [BWidget::clonename $path]		if {[winfo exists $cpath]} { set path $cpath }		if {[info exists _registered($path)]} {		    unset _registered($path)		}		return 0	    }	    _add_menu $path $var        }        menuentry {            set cpath [BWidget::clonename $path]            if { [winfo exists $cpath] } { set path $cpath }            if {![info exists _registered($path)]} { return 0 }            set text  [lindex $args 1]            set index [lindex $args 0]	    if {$text == "" || $index == ""} {		set idx [lsearch $_registed($path) [list $index *]]		set _registered($path) [lreplace $_registered($path) $idx $idx]		return 0	    }	    _add_menuentry $path $text $index        }        default {            _unset_help $path	    return 0        }    }    return 1}proc DynamicHelp::add { path args } {    variable _registered    array set data {        -type     balloon        -text     ""        -item     ""        -index    -1        -command  ""        -variable ""    }    if {[winfo exists $path] && [winfo class $path] == "Menu"} {	set data(-type) menu    }    array set data $args    set item $path    switch -- $data(-type) {        "balloon" {            if {$data(-item) != ""} {                _add_canvas_balloon $path $data(-text) $data(-item)                set item $path,$data(-item)            } else {                _add_balloon $path $data(-text)            }	    if {$data(-variable) != ""} {		set _registered($item,balloonVar) $data(-variable)	    }        }        "variable" {            set var $data(-variable)            if {$data(-item) != ""} {                _add_canvas_variable $path $data(-text) $var $data(-item)                set item $path,$data(-item)            } else {                _add_variable $path $data(-text) $var            }        }        "menu" {            if {$data(-index) != -1} {                set cpath [BWidget::clonename $path]                if { [winfo exists $cpath] } { set path $cpath }                if {![info exists _registered($path)]} { return 0 }                _add_menuentry $path $data(-text) $data(-index)                set item $path,$data(-index)            } else {                _add_menu $path $data(-variable)            }        }        default {            return 0        }    }    if {$data(-command) != ""} {set _registered($item,command) $data(-command)}    return 1}proc DynamicHelp::delete { path } {    _unset_help $path}proc DynamicHelp::_add_bind_tag { path tag } {    set evt [bindtags $path]    set idx [lsearch $evt $tag]    set evt [lreplace $evt $idx $idx]

⌨️ 快捷键说明

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