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

📄 dynhelp.tcl

📁 Linux下的MSN聊天程序源码
💻 TCL
📖 第 1 页 / 共 2 页
字号:
    lappend evt $tag    bindtags $path $evt}proc DynamicHelp::_add_balloon { path text } {    variable _registered    set _registered($path,balloon) $text    _add_bind_tag $path BwHelpBalloon}proc DynamicHelp::_add_canvas_balloon { path text tagOrItem } {    variable _canvases    variable _registered    set _registered($path,$tagOrItem,balloon) $text    if {![info exists _canvases($path,balloon)]} {        ## This canvas doesn't have the bindings yet.        _add_bind_tag $path BwHelpBalloon        $path bind BwHelpBalloon <Enter> \            {DynamicHelp::_motion_balloon enter  %W %X %Y 1}        $path bind BwHelpBalloon <Motion> \            {DynamicHelp::_motion_balloon motion %W %X %Y 1}        $path bind BwHelpBalloon <Leave> \            {DynamicHelp::_motion_balloon leave  %W %X %Y 1}        $path bind BwHelpBalloon <Button> \            {DynamicHelp::_motion_balloon button %W %X %Y 1}        set _canvases($path,balloon) 1    }    $path addtag BwHelpBalloon withtag $tagOrItem}proc DynamicHelp::_add_variable { path text varName } {    variable _registered    set _registered($path,variable) [list $varName $text]    _add_bind_tag $path BwHelpVariable}proc DynamicHelp::_add_canvas_variable { path text varName tagOrItem } {    variable _canvases    variable _registered    set _registered($path,$tagOrItem,variable) [list $varName $text]    if {![info exists _canvases($path,variable)]} {        ## This canvas doesn't have the bindings yet.        _add_bind_tag $path BwHelpVariable        $path bind BwHelpVariable <Enter> \            {DynamicHelp::_motion_info %W 1}        $path bind BwHelpVariable <Motion> \            {DynamicHelp::_motion_info %W 1}        $path bind BwHelpVariable <Leave> \            {DynamicHelp::_leave_info  %W 1}        set _canvases($path,variable) 1    }    $path addtag BwHelpVariable withtag $tagOrItem}proc DynamicHelp::_add_menu { path varName } {    variable _registered    set cpath [BWidget::clonename $path]    if { [winfo exists $cpath] } { set path $cpath }    set _registered($path) [list $varName]    _add_bind_tag $path BwHelpMenu}proc DynamicHelp::_add_menuentry { path text index } {    variable _registered    set idx  [lsearch $_registered($path) [list $index *]]    set list [list $index $text]    if { $idx == -1 } {	lappend _registered($path) $list    } else {	set _registered($path) \	    [lreplace $_registered($path) $idx $idx $list]    }}# ----------------------------------------------------------------------------#  Command DynamicHelp::_motion_balloon# ----------------------------------------------------------------------------proc DynamicHelp::_motion_balloon { type path x y {isCanvasItem 0} } {    variable _top    variable _id    variable _delay    variable _current_balloon    set w $path    if {$isCanvasItem} { set path [_get_canvas_path $path balloon] }    if { $_current_balloon != $path && $type == "enter" } {        set _current_balloon $path        set type "motion"        destroy $_top    }    if { $_current_balloon == $path } {        if { $_id != "" } {            after cancel $_id            set _id ""        }        if { $type == "motion" } {            if { ![winfo exists $_top] } {                set cmd [list DynamicHelp::_show_help $path $w $x $y]                set _id [after $_delay $cmd]            }        } else {            destroy $_top            set _current_balloon ""        }    }}# ----------------------------------------------------------------------------#  Command DynamicHelp::_motion_info# ----------------------------------------------------------------------------proc DynamicHelp::_motion_info { path {isCanvasItem 0} } {    variable _saved    variable _registered    variable _current_variable    if {$isCanvasItem} { set path [_get_canvas_path $path variable] }    if { $_current_variable != $path        && [info exists _registered($path,variable)] } {        set varName [lindex $_registered($path,variable) 0]        if {![info exists _saved]} { set _saved [GlobalVar::getvar $varName] }        set string [lindex $_registered($path,variable) 1]        if {[info exists _registered($path,command)]} {            set string [eval $_registered($path,command)]        }        GlobalVar::setvar $varName $string        set _current_variable $path    }}# ----------------------------------------------------------------------------#  Command DynamicHelp::_leave_info# ----------------------------------------------------------------------------proc DynamicHelp::_leave_info { path {isCanvasItem 0} } {    variable _saved    variable _registered    variable _current_variable    if {$isCanvasItem} { set path [_get_canvas_path $path variable] }    if { [info exists _registered($path,variable)] } {        set varName [lindex $_registered($path,variable) 0]        GlobalVar::setvar $varName $_saved    }    unset _saved    set _current_variable ""}# ----------------------------------------------------------------------------#  Command DynamicHelp::_menu_info#    Version of R1v1 restored, due to lack of [winfo ismapped] and <Unmap>#    under windows for menu.# ----------------------------------------------------------------------------proc DynamicHelp::_menu_info { event path } {    variable _registered    if { [info exists _registered($path)] } {        set index   [$path index active]        set varName [lindex $_registered($path) 0]        if { ![string equal $index "none"] &&             [set idx [lsearch $_registered($path) [list $index *]]] != -1 } {	    set string [lindex [lindex $_registered($path) $idx] 1]	    if {[info exists _registered($path,$index,command)]} {		set string [eval $_registered($path,$index,command)]	    }            GlobalVar::setvar $varName $string        } else {            GlobalVar::setvar $varName ""        }    }}# ----------------------------------------------------------------------------#  Command DynamicHelp::_show_help# ----------------------------------------------------------------------------proc DynamicHelp::_show_help { path w x y } {    variable _top    variable _registered    variable _id    variable _delay    if { [Widget::getoption $_top -state] == "disabled" } { return }    if { [info exists _registered($path,balloon)] } {        destroy  $_top        set string $_registered($path,balloon)	if {[info exists _registered($path,balloonVar)]} {	    upvar #0 $_registered($path,balloonVar) var	    if {[info exists var]} { set string $var }	}        if {[info exists _registered($path,command)]} {            set string [eval $_registered($path,command)]        }	if {$string == ""} { return }        toplevel $_top -relief flat \            -bg [Widget::getoption $_top -topbackground] \            -bd [Widget::getoption $_top -borderwidth] \            -screen [winfo screen $w]        wm overrideredirect $_top 1        wm transient $_top        wm withdraw $_top	catch { wm attributes $_top -topmost 1 }        label $_top.label -text $string \            -relief flat -bd 0 -highlightthickness 0 \	    -padx       [Widget::getoption $_top -padx] \	    -pady       [Widget::getoption $_top -pady] \            -foreground [Widget::getoption $_top -foreground] \            -background [Widget::getoption $_top -background] \            -font       [Widget::getoption $_top -font] \            -justify    [Widget::getoption $_top -justify]        pack $_top.label -side left        update idletasks	if {![winfo exists $_top]} {return}        set  scrwidth  [winfo vrootwidth  .]        set  scrheight [winfo vrootheight .]        set  width     [winfo reqwidth  $_top]        set  height    [winfo reqheight $_top]        incr y 12        incr x 8        if { $x+$width > $scrwidth } {            set x [expr {$scrwidth - $width}]        }        if { $y+$height > $scrheight } {            set y [expr {$y - 12 - $height}]        }        wm geometry  $_top "+$x+$y"        update idletasks	if {![winfo exists $_top]} { return }        wm deiconify $_top        raise $_top    }}# ----------------------------------------------------------------------------#  Command DynamicHelp::_unset_help# ----------------------------------------------------------------------------proc DynamicHelp::_unset_help { path } {    variable _canvases    variable _registered    if {[info exists _registered($path)]} { unset _registered($path) }    if {[winfo exists $path]} {	set cpath [BWidget::clonename $path]	if {[info exists _registered($cpath)]} { unset _registered($cpath) }    }    array unset _canvases   $path,*    array unset _registered $path,*}# ----------------------------------------------------------------------------#  Command DynamicHelp::_get_canvas_path# ----------------------------------------------------------------------------proc DynamicHelp::_get_canvas_path { path type {item ""} } {    variable _registered    if {$item == ""} { set item [$path find withtag current] }    ## Check the tags related to this item for the one that    ## represents our text.  If we have text specific to this    ## item or for 'all' items, they override any other tags.    eval [list lappend tags $item all] [$path itemcget $item -tags]    foreach tag $tags {	set check $path,$tag	if {![info exists _registered($check,$type)]} { continue }	return $check    }}

⌨️ 快捷键说明

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