亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainframe.tcl

?? Linux下的MSN聊天程序源碼
?? TCL
?? 第 1 頁 / 共 2 頁
字號:
# ----------------------------------------------------------------------------#  Command MainFrame::getmenu# ----------------------------------------------------------------------------proc MainFrame::getmenu { path menuid } {    variable _widget    if { [info exists _widget($path,menuid,$menuid)] } {        return $_widget($path,menuid,$menuid)    }    return ""}# -----------------------------------------------------------------------------#  Command MainFrame::setmenustate# -----------------------------------------------------------------------------proc MainFrame::setmenustate { path tag state } {    variable _widget    #    if { [info exists _widget($path,tags,$tag)] } {    #        foreach {menu entry} $_widget($path,tags,$tag) {    #            $menu entryconfigure $entry -state $state    #        }    #    }    # We need a more sophisticated state system.    # The original model was this:  each menu item has a list of tags;    # whenever any one of those tags changed state, the menu item did too.    # This makes it hard to have items that are enabled only when both tagA and    # tagB are.  The new model therefore only sets the menustate to enabled    # when ALL of its tags are enabled.    # First see if this is a real tag    if { [info exists _widget($path,tagstate,$tag)] } {	if { ![string equal $state "disabled"] } {	    set _widget($path,tagstate,$tag) 1	} else {	    set _widget($path,tagstate,$tag) 0	}	foreach {menu entry} $_widget($path,tags,$tag) {	    set expression "1"	    foreach menutag $_widget($path,menutags,[list $menu $entry]) {		append expression " && $_widget($path,tagstate,$menutag)"	    }	    if { [expr $expression] } {		set state normal	    } else {		set state disabled	    }	    $menu entryconfigure $entry -state $state	}    }    return}# -----------------------------------------------------------------------------#  Command MainFrame::menuonly# ----------------------d------------------------------------------------------proc MainFrame::menuonly { path } {    variable _widget    catch {pack forget $path.sep}    catch {pack forget $path.botf.sep}    catch {pack forget $path.frame}}# ----------------------------------------------------------------------------#  Command MainFrame::showtoolbar# ----------------------------------------------------------------------------proc MainFrame::showtoolbar { path index bool } {    variable _widget    set toolframe $path.topf.f$index    if { [winfo exists $toolframe] } {        if { !$bool && [llength [grid info $toolframe]] } {            grid forget $toolframe            $path.topf configure -height 1        } elseif { $bool && ![llength [grid info $toolframe]] } {            grid $toolframe -column 0 -row $index -sticky ew        }    }}# ----------------------------------------------------------------------------#  Command MainFrame::showstatusbar# ----------------------------------------------------------------------------proc MainFrame::showstatusbar { path name } {    set status $path.status    if { [string equal $name "none"] } {        pack forget $status    } else {        pack $status -fill x        switch -- $name {            status {                catch {pack forget $status.prg}            }            progression {                pack $status.prg -in $status.prgf            }        }    }}# ----------------------------------------------------------------------------#  Command MainFrame::_destroy# ----------------------------------------------------------------------------proc MainFrame::_destroy { path } {    variable _widget    Widget::destroy $path    catch {destroy [$_widget($path,top) cget -menu]}    $_widget($path,top) configure -menu {}    # Unset all of the state vars associated with this main frame.    foreach index [array names _widget $path,*] {	unset _widget($index)    }}# ----------------------------------------------------------------------------#  Command MainFrame::_create_menubar# ----------------------------------------------------------------------------proc MainFrame::_create_menubar { path descmenu } {    variable _widget    global    tcl_platform    set bg      [Widget::getoption $path -background]    set top     $_widget($path,top)    foreach {v x} {mbfnt -menubarfont mefnt -menuentryfont} {	if {[string length [Widget::getoption $path $x]]} {	    set $v [list -font [Widget::getoption $path $x]]	} else {	    set $v ""	}    }    if {$tcl_platform(platform) == "unix"} {	lappend mbfnt -borderwidth 1    }    set menubar [eval [list menu $top.menubar -tearoff 0 \	    -background $bg] $mbfnt]    $top configure -menu $menubar    set count 0    foreach {name tags menuid tearoff entries} $descmenu {        set opt  [_parse_name $name]        if { [string length $menuid] && ![info exists _widget($path,menuid,$menuid)] } {            # menu has identifier	    # we use it for its pathname, to enable special menu entries	    # (help, system, ...)	    set menu $menubar.$menuid        } else {	    set menu $menubar.menu$count	}        eval [list $menubar add cascade] $opt [list -menu $menu]        eval [list menu $menu -tearoff $tearoff -background $bg] $mefnt        foreach tag $tags {            lappend _widget($path,tags,$tag) $menubar $count	    # ericm@scriptics:  Add a tagstate tracker	    if { ![info exists _widget($path,tagstate,$tag)] } {		set _widget($path,tagstate,$tag) 1	    }        }	# ericm@scriptics.com:  Add mapping from menu items to tags	set _widget($path,menutags,[list $menubar $count]) $tags	            if { [string length $menuid] } {            # menu has identifier            set _widget($path,menuid,$menuid) $menu        }        _create_entries $path $menu $bg $entries        incr count    }}# ----------------------------------------------------------------------------#  Command MainFrame::_create_entries# ----------------------------------------------------------------------------proc MainFrame::_create_entries { path menu bg entries } {    variable _widget    set count      [$menu cget -tearoff]    set registered 0    foreach entry $entries {        set len  [llength $entry]        set type [lindex $entry 0]        if { [string equal $type "separator"] } {            $menu add separator            incr count            continue        }        # entry name and tags        set opt  [_parse_name [lindex $entry 1]]        set tags [lindex $entry 2]        foreach tag $tags {            lappend _widget($path,tags,$tag) $menu $count	    # ericm@scriptics:  Add a tagstate tracker	    if { ![info exists _widget($path,tagstate,$tag)] } {		set _widget($path,tagstate,$tag) 1	    }        }	# ericm@scriptics.com:  Add mapping from menu items to tags	set _widget($path,menutags,[list $menu $count]) $tags        if { [string equal $type "cascad"] } {            set menuid  [lindex $entry 3]            set tearoff [lindex $entry 4]            set submenu $menu.menu$count            eval [list $menu add cascade] $opt [list -menu $submenu]            menu $submenu -tearoff $tearoff -background $bg            if { [string length $menuid] } {                # menu has identifier                set _widget($path,menuid,$menuid) $submenu            }            _create_entries $path $submenu $bg [lindex $entry 5]            incr count            continue        }        # entry help description        set desc [lindex $entry 3]        if { [string length $desc] } {            if { !$registered } {                DynamicHelp::register $menu menu [Widget::getoption $path -textvariable]                set registered 1            }            DynamicHelp::register $menu menuentry $count $desc        }        # entry accelerator        set accel [_parse_accelerator [lindex $entry 4]]        if { [llength $accel] } {            lappend opt -accelerator [lindex $accel 0]            bind $_widget($path,top) [lindex $accel 1] [list $menu invoke $count]        }        # user options        set useropt [lrange $entry 5 end]        if { [string equal $type "command"] ||              [string equal $type "radiobutton"] ||             [string equal $type "checkbutton"] } {            eval [list $menu add $type] $opt $useropt        } else {            return -code error "invalid menu type \"$type\""        }        incr count    }}# ----------------------------------------------------------------------------#  Command MainFrame::_parse_name# ----------------------------------------------------------------------------proc MainFrame::_parse_name { menuname } {    set idx [string first "&" $menuname]    if { $idx == -1 } {        return [list -label $menuname]    } else {        set beg [string range $menuname 0 [expr {$idx-1}]]        set end [string range $menuname [expr {$idx+1}] end]        append beg $end        return [list -label $beg -underline $idx]    }}# MainFrame::_parse_accelerator --##	Given a key combo description, construct an appropriate human readable#	string (for display on as a menu accelerator) and the corresponding#	bind event.## Arguments:#	desc	a list with the following format:#			?sequence? key#		sequence may be None, Ctrl, Alt, or CtrlAlt#		key may be any key## Results:#	{accel event}	a list containing the accelerator string and the eventproc MainFrame::_parse_accelerator { desc } {    if { [llength $desc] == 1 } {	set seq None	set key [string tolower [lindex $desc 0]]	# If the key is an F key (ie, F1, F2, etc), it has to be capitalized	if {[regexp {f1?[0-9]} $key]} {	    set key [string toupper $key]	}    } elseif { [llength $desc] == 2 } {        set seq [lindex $desc 0]        set key [string tolower [lindex $desc 1]]	# If the key is an F key (ie, F1, F2, etc), it has to be capitalized	if {[regexp {f1?[0-9]} $key]} {	    set key [string toupper $key]	}    } else {	return {}    }    switch -- $seq {	None {	    set accel "[string toupper $key]"	    set event "<Key-$key>"	}	Ctrl {	    set accel "Ctrl+[string toupper $key]"	    set event "<Control-Key-$key>"	}	Alt {	    set accel "Alt+[string toupper $key]"	    set event "<Alt-Key-$key>"	}	CtrlAlt {	    set accel "Ctrl+Alt+[string toupper $key]"	    set event "<Control-Alt-Key-$key>"	}	default {	    return -code error "invalid accelerator code $seq"	}    }    return [list $accel $event]}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合色综合色综合色综合色综合 | 成人av中文字幕| 亚洲精品欧美专区| 精品国产sm最大网站| 色综合久久天天| 国产盗摄一区二区三区| 午夜电影网一区| 国产精品第四页| 久久精品男人天堂av| 91精品国产福利在线观看| 色综合久久99| 成人性生交大合| 国产乱码精品一区二区三| 日本美女一区二区| 亚洲综合色区另类av| 亚洲欧美日本韩国| 国产精品久久看| 国产色产综合产在线视频| 91麻豆精品91久久久久同性| 在线观看av一区二区| 国产成人精品一区二区三区四区 | 成人免费在线播放视频| 久久久九九九九| wwww国产精品欧美| 欧美大片一区二区| 在线91免费看| 欧美午夜一区二区| 色悠悠久久综合| 97精品国产露脸对白| 99在线精品视频| 99久久综合国产精品| 97aⅴ精品视频一二三区| 岛国一区二区三区| 成人性生交大片免费看中文网站| 精品一区二区久久久| 久国产精品韩国三级视频| 免费久久99精品国产| 美女看a上一区| 激情五月播播久久久精品| 精品一区二区三区欧美| 毛片不卡一区二区| 精品亚洲免费视频| 国产在线精品不卡| 国产剧情一区二区| 成人av电影免费观看| 一本久道中文字幕精品亚洲嫩| 一道本成人在线| 欧美日韩中文字幕一区| 欧美日本在线播放| 日韩久久精品一区| 久久精品无码一区二区三区| 中文字幕的久久| 亚洲欧美日韩一区二区三区在线观看| 一区二区三区在线视频免费| 亚洲综合丁香婷婷六月香| 日韩电影一二三区| 国产一区美女在线| 成人免费毛片app| 在线免费精品视频| 欧美一级在线免费| 国产亚洲欧美色| 日韩视频在线永久播放| 欧美日韩精品一二三区| 日韩精品专区在线影院重磅| 国产欧美一区二区精品性| 国产精品成人在线观看| 亚洲高清在线视频| 国产专区欧美精品| 一本高清dvd不卡在线观看| 欧美日韩日本视频| 久久这里只有精品视频网| 国产精品久久久久国产精品日日| 亚洲第一主播视频| 国产精品影视网| 欧美在线免费观看亚洲| 精品噜噜噜噜久久久久久久久试看| 国产亚洲视频系列| 亚洲午夜久久久久久久久电影网| 免费人成精品欧美精品| av激情成人网| 欧美一区二区三区四区五区 | 久久精品国产在热久久| 成人亚洲一区二区一| 欧美日韩国产a| 中文一区在线播放| 亚洲chinese男男1069| 国产福利一区二区三区视频| 欧美日韩综合不卡| 国产精品蜜臀av| 青青草97国产精品免费观看| 不卡视频免费播放| 欧美一区二区视频在线观看| 中文字幕一区三区| 久久精品国产澳门| 欧美综合在线视频| 中文字幕久久午夜不卡| 日韩国产精品久久久| 成人app在线观看| 精品国产伦一区二区三区观看体验 | 国产精品66部| 91精品国产一区二区三区| 成人欧美一区二区三区黑人麻豆 | 欧美熟乱第一页| 中文字幕欧美日韩一区| 免费视频一区二区| 欧洲亚洲国产日韩| 国产精品色眯眯| 国产精品亚洲视频| 欧美mv日韩mv国产网站app| 亚洲福利一区二区| 91在线视频网址| 国产精品天干天干在线综合| 黄网站免费久久| 欧美一二三区在线| 亚洲一区二区三区免费视频| 99麻豆久久久国产精品免费| 欧美激情一区在线观看| 精品伊人久久久久7777人| 欧美精品日韩一本| 亚洲高清视频的网址| 日本韩国一区二区| 自拍偷拍国产亚洲| 白白色亚洲国产精品| 欧美激情综合五月色丁香| 国产九色精品成人porny| 精品欧美久久久| 久久99久国产精品黄毛片色诱| 日韩一区二区免费视频| 日本亚洲免费观看| 欧美日韩国产综合草草| 亚洲成a人片在线观看中文| 欧美在线视频全部完| 亚洲精品国产a| 91久久香蕉国产日韩欧美9色| 中文字幕在线视频一区| 99九九99九九九视频精品| 亚洲天天做日日做天天谢日日欢 | 国产精品婷婷午夜在线观看| 丁香婷婷综合网| 中文字幕欧美激情| 成人精品免费看| 亚洲天堂成人在线观看| 91老司机福利 在线| 亚洲蜜臀av乱码久久精品| 91视频国产资源| 一区二区理论电影在线观看| 日本韩国精品一区二区在线观看| 亚洲一区在线看| 这里只有精品电影| 久久99精品久久久| 国产欧美一区二区三区沐欲| 成人av手机在线观看| 亚洲男人的天堂在线观看| 欧美三日本三级三级在线播放| 亚洲高清在线精品| 日韩免费看的电影| 国产成人免费9x9x人网站视频| 中文字幕一区二区三区在线不卡 | 91.成人天堂一区| 麻豆免费看一区二区三区| 久久先锋影音av鲁色资源网| 成人av资源站| 亚瑟在线精品视频| 精品久久国产老人久久综合| 国产成人精品网址| 洋洋成人永久网站入口| 日韩一区二区三区高清免费看看| 国产成人av电影在线观看| 亚洲免费观看高清| 日韩精品一区二区三区四区| 成人福利视频在线看| 婷婷国产v国产偷v亚洲高清| 亚洲精品在线三区| 91在线观看下载| 日本91福利区| 中文字幕中文在线不卡住| 7777精品伊人久久久大香线蕉最新版| 激情成人综合网| 亚洲一级在线观看| 久久久久99精品国产片| 欧美三级视频在线观看| 国产福利一区二区| 午夜电影网一区| 国产精品国产三级国产| 欧美一区二区三区免费视频| 成人的网站免费观看| 日本成人在线看| 亚洲欧洲日韩av| 日韩精品在线一区二区| 在线视频你懂得一区| 国产精品综合一区二区| 午夜精品免费在线| 国产精品成人免费在线| 日韩欧美国产精品| 欧美自拍偷拍一区| 处破女av一区二区| 久久国产精品99久久人人澡| 一区二区三区中文字幕精品精品| 国产日韩三级在线| 日韩精品一区国产麻豆|