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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? widget.tcl

?? Linux下的MSN聊天程序源碼
?? TCL
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
	    set exports($option) $optionDbName            set classopt($option) [list TkResource $value $ro \		    [list $tkwidget $realopt]]	    set optionClass($option) [lindex [$foo configure $realopt] 1]	    ::destroy $foo            continue        }	set optionDbName ".[lindex [_configure_option $option ""] 0]"	option add *${class}${optionDbName} $value widgetDefault	set exports($option) $optionDbName        # for any other resource type, we keep original optdesc        set classopt($option) [list $type $value $ro $arg]    }}proc Widget::define { class filename args } {    variable ::BWidget::use    set use($class)      $args    set use($class,file) $filename    lappend use(classes) $class    if {[set x [lsearch -exact $args "-classonly"]] > -1} {	set args [lreplace $args $x $x]    } else {	interp alias {} ::${class} {} ${class}::create	proc ::${class}::use {} {}	bind $class <Destroy> [list Widget::destroy %W]    }    foreach class $args { ${class}::use }}proc Widget::create { class path {rename 1} } {    if {$rename} { rename $path ::$path:cmd }    proc ::$path { cmd args } \    	[subst {return \[eval \[linsert \$args 0 ${class}::\$cmd [list $path]\]\]}]    return $path}# ----------------------------------------------------------------------------#  Command Widget::addmap# ----------------------------------------------------------------------------proc Widget::addmap { class subclass subpath options } {    upvar 0 ${class}::opt classopt    upvar 0 ${class}::optionExports exports    upvar 0 ${class}::optionClass optionClass    upvar 0 ${class}::map classmap    upvar 0 ${class}::map$subpath submap    foreach {option realopt} $options {        if { ![string length $realopt] } {            set realopt $option        }	set val [lindex $classopt($option) 1]	set optDb ".[lindex [_configure_option $realopt ""] 0]"	if { ![string equal $subpath ":cmd"] } {	    set optDb "$subpath$optDb"	}	option add *${class}${optDb} $val widgetDefault	lappend exports($option) $optDb	# Store the forward and backward mappings for this	# option <-> realoption pair        lappend classmap($option) $subpath $subclass $realopt	set submap($realopt) $option    }}# ----------------------------------------------------------------------------#  Command Widget::syncoptions# ----------------------------------------------------------------------------proc Widget::syncoptions { class subclass subpath options } {    upvar 0 ${class}::sync classync    foreach {option realopt} $options {        if { ![string length $realopt] } {            set realopt $option        }        set classync($option) [list $subpath $subclass $realopt]    }}# ----------------------------------------------------------------------------#  Command Widget::init# ----------------------------------------------------------------------------proc Widget::init { class path options } {    variable _inuse    upvar 0 ${class}::opt classopt    upvar 0 ${class}::$path:opt  pathopt    upvar 0 ${class}::$path:mod  pathmod    upvar 0 ${class}::map classmap    upvar 0 ${class}::$path:init pathinit    if { [info exists pathopt] } {	unset pathopt    }    if { [info exists pathmod] } {	unset pathmod    }    # We prefer to use the actual widget for option db queries, but if it    # doesn't exist yet, do the next best thing:  create a widget of the    # same class and use that.    set fpath $path    set rdbclass [string map [list :: ""] $class]    if { ![winfo exists $path] } {	set fpath ".#BWidgetClass#$class"	if { ![winfo exists $fpath] } {	    frame $fpath -class $rdbclass	}    }    foreach {option optdesc} [array get classopt] {        set pathmod($option) 0	if { [info exists classmap($option)] } {	    continue	}        set type [lindex $optdesc 0]        if { [string equal $type "Synonym"] } {	    continue        }        if { [string equal $type "TkResource"] } {            set alt [lindex [lindex $optdesc 3] 1]        } else {            set alt ""        }        set optdb [lindex [_configure_option $option $alt] 0]        set def   [option get $fpath $optdb $rdbclass]        if { [string length $def] } {            set pathopt($option) $def        } else {            set pathopt($option) [lindex $optdesc 1]        }    }    if {![info exists _inuse($class)]} { set _inuse($class) 0 }    incr _inuse($class)    set Widget::_class($path) $class    foreach {option value} $options {        if { ![info exists classopt($option)] } {            unset pathopt            unset pathmod            return -code error "unknown option \"$option\""        }        set optdesc $classopt($option)        set type    [lindex $optdesc 0]        if { [string equal $type "Synonym"] } {            set option  [lindex $optdesc 1]            set optdesc $classopt($option)            set type    [lindex $optdesc 0]        }        set pathopt($option) [$Widget::_optiontype($type) $option $value [lindex $optdesc 3]]	set pathinit($option) $pathopt($option)    }}# Bastien Chevreux (bach@mwgdna.com)## copyinit performs basically the same job as init, but it uses a#  existing template to initialize its values. So, first a perferct copy#  from the template is made just to be altered by any existing options#  afterwards.# But this still saves time as the first initialization parsing block is#  skipped.# As additional bonus, items that differ in just a few options can be#  initialized faster by leaving out the options that are equal.# This function is currently used only by ListBox::multipleinsert, but other#  calls should follow :)# ----------------------------------------------------------------------------#  Command Widget::copyinit# ----------------------------------------------------------------------------proc Widget::copyinit { class templatepath path options } {    upvar 0 ${class}::opt classopt \	    ${class}::$path:opt	 pathopt \	    ${class}::$path:mod	 pathmod \	    ${class}::$path:init pathinit \	    ${class}::$templatepath:opt	  templatepathopt \	    ${class}::$templatepath:mod	  templatepathmod \	    ${class}::$templatepath:init  templatepathinit    if { [info exists pathopt] } {	unset pathopt    }    if { [info exists pathmod] } {	unset pathmod    }    # We use the template widget for option db copying, but it has to exist!    array set pathmod  [array get templatepathmod]    array set pathopt  [array get templatepathopt]    array set pathinit [array get templatepathinit]    set Widget::_class($path) $class    foreach {option value} $options {	if { ![info exists classopt($option)] } {	    unset pathopt	    unset pathmod	    return -code error "unknown option \"$option\""	}	set optdesc $classopt($option)	set type    [lindex $optdesc 0]	if { [string equal $type "Synonym"] } {	    set option	[lindex $optdesc 1]	    set optdesc $classopt($option)	    set type	[lindex $optdesc 0]	}	set pathopt($option) [$Widget::_optiontype($type) $option $value [lindex $optdesc 3]]	set pathinit($option) $pathopt($option)    }}# Widget::parseArgs --##	Given a widget class and a command-line spec, cannonize and validate#	the given options, and return a keyed list consisting of the #	component widget and its masked portion of the command-line spec, and#	one extra entry consisting of the portion corresponding to the #	megawidget itself.## Arguments:#	class	widget class to parse for.#	options	command-line spec## Results:#	result	keyed list of portions of the megawidget and that segment of#		the command line in which that portion is interested.proc Widget::parseArgs {class options} {    upvar 0 ${class}::opt classopt    upvar 0 ${class}::map classmap        foreach {option val} $options {	if { ![info exists classopt($option)] } {	    error "unknown option \"$option\""	}        set optdesc $classopt($option)        set type    [lindex $optdesc 0]        if { [string equal $type "Synonym"] } {            set option  [lindex $optdesc 1]            set optdesc $classopt($option)            set type    [lindex $optdesc 0]        }	if { [string equal $type "TkResource"] } {	    # Make sure that the widget used for this TkResource exists	    Widget::_get_tkwidget_options [lindex [lindex $optdesc 3] 0]	}	set val [$Widget::_optiontype($type) $option $val [lindex $optdesc 3]]			if { [info exists classmap($option)] } {	    foreach {subpath subclass realopt} $classmap($option) {		lappend maps($subpath) $realopt $val	    }	} else {	    lappend maps($class) $option $val	}    }    return [array get maps]}# Widget::initFromODB --##	Initialize a megawidgets options with information from the option#	database and from the command-line arguments given.## Arguments:#	class	class of the widget.#	path	path of the widget -- should already exist.#	options	command-line arguments.## Results:#	None.proc Widget::initFromODB {class path options} {    variable _inuse    variable _class    upvar 0 ${class}::$path:opt  pathopt    upvar 0 ${class}::$path:mod  pathmod    upvar 0 ${class}::map classmap    if { [info exists pathopt] } {	unset pathopt    }    if { [info exists pathmod] } {	unset pathmod    }    # We prefer to use the actual widget for option db queries, but if it    # doesn't exist yet, do the next best thing:  create a widget of the    # same class and use that.    set fpath [_get_window $class $path]    set rdbclass [string map [list :: ""] $class]    if { ![winfo exists $path] } {	set fpath ".#BWidgetClass#$class"	if { ![winfo exists $fpath] } {	    frame $fpath -class $rdbclass	}    }    foreach {option optdesc} [array get ${class}::opt] {        set pathmod($option) 0	if { [info exists classmap($option)] } {	    continue	}        set type [lindex $optdesc 0]        if { [string equal $type "Synonym"] } {	    continue        }	if { [string equal $type "TkResource"] } {            set alt [lindex [lindex $optdesc 3] 1]        } else {            set alt ""        }        set optdb [lindex [_configure_option $option $alt] 0]        set def   [option get $fpath $optdb $rdbclass]        if { [string length $def] } {            set pathopt($option) $def        } else {            set pathopt($option) [lindex $optdesc 1]        }    }    if {![info exists _inuse($class)]} { set _inuse($class) 0 }    incr _inuse($class)    set _class($path) $class    array set pathopt $options}# ----------------------------------------------------------------------------#  Command Widget::destroy# ----------------------------------------------------------------------------proc Widget::destroy { path } {    variable _class    variable _inuse    if {![info exists _class($path)]} { return }    set class $_class($path)    upvar 0 ${class}::$path:opt pathopt    upvar 0 ${class}::$path:mod pathmod    upvar 0 ${class}::$path:init pathinit    if {[info exists _inuse($class)]} { incr _inuse($class) -1 }    if {[info exists pathopt]} {        unset pathopt    }    if {[info exists pathmod]} {        unset pathmod    }    if {[info exists pathinit]} {        unset pathinit    }    if {![string equal [info commands $path] ""]} { rename $path "" }    if {![string equal [info commands ::$path:cmd] ""]} { rename ::$path:cmd $path }    ## Unset any variables used in this widget.    foreach var [info vars ::${class}::$path:*] { unset $var }    unset _class($path)}# ----------------------------------------------------------------------------#  Command Widget::configure# ----------------------------------------------------------------------------proc Widget::configure { path options } {    set len [llength $options]    if { $len <= 1 } {        return [_get_configure $path $options]    } elseif { $len % 2 == 1 } {        return -code error "incorrect number of arguments"    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲一区二区三区| 风间由美一区二区av101| 波多野结衣中文一区| 国产欧美一区视频| 99精品国产视频| 一区二区成人在线视频| 欧美日韩的一区二区| 日本亚洲最大的色成网站www| 91精品麻豆日日躁夜夜躁| 麻豆国产91在线播放| 2023国产精华国产精品| 波多野结衣中文一区| 国产精品乱码一区二区三区软件 | 天堂精品中文字幕在线| 日韩欧美国产一二三区| 国产主播一区二区| 成人欧美一区二区三区小说 | 日本色综合中文字幕| 亚洲人成人一区二区在线观看 | 91浏览器在线视频| 亚洲国产一区二区三区| 精品福利在线导航| 色网站国产精品| 免费成人在线视频观看| 日本一区二区成人在线| 欧美日韩国产片| 色综合欧美在线视频区| 波多野结衣视频一区| 国产成人亚洲精品青草天美 | 韩国理伦片一区二区三区在线播放| 亚洲国产精品自拍| 欧美性感一类影片在线播放| 一区二区三区av电影| 中文字幕一区在线观看视频| 国产亚洲欧美在线| 欧美日本一区二区三区| 91福利国产成人精品照片| 国产麻豆成人传媒免费观看| 亚洲一区二区三区中文字幕在线 | 亚洲同性同志一二三专区| 欧美一级欧美一级在线播放| youjizz国产精品| av亚洲产国偷v产偷v自拍| 成人性生交大片免费看视频在线| 亚洲成人av在线电影| 国产精品三级av| 国产精品国产三级国产三级人妇 | 欧美私模裸体表演在线观看| 在线观看三级视频欧美| 国产成人精品免费网站| 国产成人av一区二区三区在线| 国产精品亚洲一区二区三区在线| 日韩国产精品久久久| 日本成人在线看| 九九**精品视频免费播放| 亚洲第一福利视频在线| 首页欧美精品中文字幕| 美女久久久精品| 国产精品1区2区| 波多野结衣亚洲| 欧美三级日韩三级| 色综合咪咪久久| 欧美日韩一区久久| 精品国产免费一区二区三区香蕉| 国产欧美一二三区| 亚洲免费看黄网站| 三级在线观看一区二区| 极品少妇xxxx精品少妇偷拍| 成人高清免费在线播放| 欧美午夜一区二区三区免费大片| 91精品一区二区三区久久久久久| 精品国产一区a| 欧美国产日韩a欧美在线观看| 亚洲精品高清在线观看| 成人欧美一区二区三区小说| 亚洲国产综合人成综合网站| 久久精品国产99国产| 美女诱惑一区二区| 成人黄色小视频| 欧美卡1卡2卡| 4438亚洲最大| 中文字幕精品一区 | 国产一区二区免费在线| 99久久99久久综合| 日韩精品中文字幕一区| 综合久久一区二区三区| 毛片av中文字幕一区二区| 成人激情开心网| 日韩色视频在线观看| 欧美一级片在线观看| 国产精品国产三级国产普通话99| 午夜欧美一区二区三区在线播放| 三级欧美在线一区| 99综合电影在线视频| 欧美一区二区视频观看视频| 亚洲免费资源在线播放| 国产精品亚洲一区二区三区在线| 欧美日韩专区在线| 国产精品欧美一级免费| 免费观看在线色综合| 97久久精品人人做人人爽50路 | 亚洲免费观看在线观看| 国产一区日韩二区欧美三区| 欧美午夜精品免费| 中文字幕一区二区三区在线播放 | 国产一区二区三区蝌蚪| 欧美日韩亚洲综合| 亚洲欧美日韩在线播放| 国产精品66部| 日韩美女一区二区三区四区| 亚洲高清免费在线| 91麻豆精品在线观看| 国产日产精品一区| 精品一区二区成人精品| 欧美精品在线视频| 一区二区三区在线免费播放| av电影在线不卡| 国产视频在线观看一区二区三区 | 在线成人av网站| 一区二区三区精密机械公司| 成人国产精品免费观看视频| 久久久不卡网国产精品一区| 亚洲男人天堂av网| 成人午夜又粗又硬又大| 久久一区二区三区国产精品| 久久福利视频一区二区| 欧美女孩性生活视频| 亚洲国产日韩a在线播放性色| 99九九99九九九视频精品| 国产精品萝li| 成人黄色软件下载| ㊣最新国产の精品bt伙计久久| 国产suv精品一区二区三区| 久久精品日韩一区二区三区| 精品一区二区免费看| 久久影院视频免费| 国产风韵犹存在线视精品| 久久综合中文字幕| 国产成人精品三级| 国产精品素人视频| 99久久综合国产精品| 亚洲免费av在线| 欧美性大战久久久| 午夜电影一区二区三区| 欧美一区二区福利在线| 久久99国产精品久久99果冻传媒| 久久综合九色综合97_久久久| 国产曰批免费观看久久久| 久久久青草青青国产亚洲免观| 国产成人一级电影| 国产精品国产三级国产普通话蜜臀| 99久久精品免费看国产| 亚洲精品日产精品乱码不卡| 欧美色综合网站| 日本网站在线观看一区二区三区| 日韩精品一区二区三区swag| 国产一区不卡视频| 综合久久综合久久| 欧美人动与zoxxxx乱| 精品亚洲国内自在自线福利| 欧美激情综合五月色丁香小说| 99re热这里只有精品免费视频| 亚洲一区二区三区四区在线 | 一道本成人在线| 香蕉av福利精品导航| 欧美tk—视频vk| 男男成人高潮片免费网站| 久久婷婷一区二区三区| 99久久精品免费观看| 亚洲成精国产精品女| 精品欧美乱码久久久久久1区2区| 床上的激情91.| 亚洲丶国产丶欧美一区二区三区| 精品国产人成亚洲区| 色综合久久久久久久久| 免费观看在线色综合| 国产精品久久久久久久久动漫| 欧美日韩亚洲丝袜制服| 国产精品99久| 亚洲国产aⅴ天堂久久| 国产日产欧产精品推荐色 | 亚洲妇女屁股眼交7| 久久新电视剧免费观看| 在线亚洲高清视频| 国产传媒日韩欧美成人| 午夜久久久久久久久久一区二区| 久久久蜜臀国产一区二区| 欧美中文字幕久久| 国产成人日日夜夜| 丝袜亚洲另类丝袜在线| 亚洲丝袜精品丝袜在线| 精品久久久久久久久久久久久久久| 色综合久久久久久久| 国产河南妇女毛片精品久久久| 亚洲伊人色欲综合网| 中文字幕av一区 二区| 日韩欧美高清在线| 欧美日韩一区二区三区高清| thepron国产精品| 麻豆精品国产传媒mv男同|