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

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

?? wizard.tcl

?? The BWidget Toolkit is a high-level Widget Set for Tcl/Tk built using native Tcl/Tk 8.x namespaces.
?? TCL
?? 第 1 頁 / 共 3 頁
字號:
# ------------------------------------------------------------------------------
#  wizard.tcl
#
# ------------------------------------------------------------------------------
#  Index of commands:
#
#   Public commands
#     - Wizard::create
#     - Wizard::configure
#     - Wizard::cget
#
#   Private commands (event bindings)
#     - Wizard::_destroy
# ------------------------------------------------------------------------------

namespace eval Wizard {
    Widget::define Wizard wizard ButtonBox Separator PagesManager

    namespace eval Step {
	Widget::declare Wizard::Step {
            {-type            String     "step"   1  }
	    {-data            String     ""       0  }
	    {-title           String     ""       0  }
	    {-default         String     "next"   0  }
	    {-text1           String     ""       0  }
	    {-text2           String     ""       0  }
	    {-text3           String     ""       0  }
	    {-text4           String     ""       0  }
	    {-text5           String     ""       0  }
	    {-icon            String     ""       0  }
	    {-image           String     ""       0  }
	    {-bitmap          String     ""       0  }
	    {-iconbitmap      String     ""       0  }

            {-create          Boolean    "0"      1  }
            {-appendorder     Boolean    "1"      0  }

            {-nexttext        String     "Next >" 0  }
            {-backtext        String     "< Back" 0  }
            {-helptext        String     "Help"   0  }
            {-canceltext      String     "Cancel" 0  }
            {-finishtext      String     "Finish" 0  }
            {-separatortext   String     ""       0  }

            {-createcommand   String     ""       0  }
            {-raisecommand    String     ""       0  }
	    {-nextcommand     String     ""       0  }
	    {-backcommand     String     ""       0  }
	    {-helpcommand     String     ""       0  }
	    {-cancelcommand   String     ""       0  }
	    {-finishcommand   String     ""       0  }

	}
    }

    namespace eval Branch {
	Widget::declare Wizard::Branch {
            {-type            String     "branch" 1  }
            {-command         String     ""       0  }
            {-action          Enum       "merge"  0  {merge terminate} }
        }
    }

    namespace eval Widget {
	Widget::declare Wizard::Widget {
            {-type            String     "widget" 1  }
            {-step            String     ""       1  }
            {-widget          String     ""       1  }
	}
    }

    namespace eval layout {}

    Widget::tkinclude Wizard frame :cmd \
    	include    { -width -height -background -foreground -cursor }

    Widget::declare Wizard {
   	{-type            Enum       "dialog" 1 {dialog frame} }
   	{-width           TkResource "450"    0 frame}
	{-height          TkResource "300"    0 frame}
	{-relief          TkResource "flat"   0 frame}
	{-borderwidth     TkResource "0"      0 frame}
	{-background      TkResource ""       0 frame}
	{-foreground      String     "black"  0      }
	{-title           String     "Wizard" 0      }

	{-autobuttons     Boolean    "1"      0      }
	{-helpbutton      Boolean    "0"      1      }
	{-finishbutton    Boolean    "0"      1      }
        {-resizable       String     "0 0"    0      }
	{-separator       Boolean    "1"      1      }
        {-parent          String     "."      1      }
        {-transient       Boolean    "1"      1      }
        {-place           Enum       "center" 1
                                     {none center left right above below}}

        {-icon            String     ""       0      }
        {-image           String     ""       0      }
	{-bitmap          String     ""       0      }
	{-iconbitmap      String     ""       0      }
        {-raisecommand    String     ""       0      }
        {-createcommand   String     ""       0      }
        {-separatortext   String     ""       0      }

        {-fg              Synonym    -foreground     }
        {-bg              Synonym    -background     }
        {-bd              Synonym    -borderwidth    }
    }

    image create photo Wizard::none

    Widget::addmap Wizard "" :cmd { -background {} -relief {} -borderwidth {} }

    Widget::addmap Wizard "" .steps { -width {} -height {} }

    bind Wizard <Destroy> [list Wizard::_destroy %W]
}


# ------------------------------------------------------------------------------
#  Command Wizard::create
# ------------------------------------------------------------------------------
proc Wizard::create { path args } {
    array set maps [list Wizard {} :cmd {}]
    array set maps [Widget::parseArgs Wizard $args]

    Widget::initFromODB Wizard $path $maps(Wizard)

    Widget::getVariable $path data
    Widget::getVariable $path branches

    array set data {
        steps   ""
        buttons ""
        order   ""
	current ""
    }

    array set branches {
        root    ""
    }

    set frame $path

    set type [Widget::cget $path -type]

    if {[string equal $type "dialog"]} {
        set top $path
        eval [list toplevel $path] $maps(:cmd) -class Wizard
        wm withdraw   $path
        wm protocol   $path WM_DELETE_WINDOW [list $path cancel]
        if {[Widget::cget $path -transient]} {
	    wm transient  $path [Widget::cget $path -parent]
        }
        eval wm resizable $path [Widget::cget $path -resizable]

        bind $path <Escape>         [list $path cancel]
        bind $path <<WizardFinish>> [list destroy $path]
        bind $path <<WizardCancel>> [list destroy $path]
    } else {
        set top [winfo toplevel $path]
        eval [list frame $path] $maps(:cmd) -class Wizard
    }

    wm title $top [Widget::cget $path -title]

    PagesManager $path.steps
    pack $path.steps -expand 1 -fill both

    widgets $path set steps -widget $path.steps

    if {[Widget::cget $path -separator]} {
        frame $path.separator
        pack $path.separator -fill x

        label $path.separator.l -text [Widget::cget $path -separatortext]
        pack  $path.separator.l -side left

        Separator $path.separator.s -orient horizontal
        pack $path.separator.s -side left -expand 1 -fill x -pady 2

	widgets $path set separator      -widget $path.separator.s
	widgets $path set separatortext  -widget $path.separator.l
	widgets $path set separatorframe -widget $path.separator
    }

    ButtonBox $path.buttons -spacing 2 -homogeneous 1
    pack $path.buttons -anchor se -padx 10 -pady 5

    widgets $path set buttons -widget $path.buttons

    insert $path button end back  -text "< Back" -command "$path back" -width 12
    insert $path button end next  -text "Next >" -command "$path next"
    if {[Widget::cget $path -finishbutton]} {
	insert $path button end finish -text "Finish" -command "$path finish"
    }
    insert $path button end cancel -text "Cancel" -command "$path cancel"

    if {[Widget::cget $path -helpbutton]} {
	$path.buttons configure -spacing 10
	insert $path button 0 help -text "Help" -command "$path help"
	$path.buttons configure -spacing 2
    }

    return [Widget::create Wizard $path]
}


# ------------------------------------------------------------------------------
#  Command Wizard::configure
# ------------------------------------------------------------------------------
proc Wizard::configure { path args } {
    set res [Widget::configure $path $args]

    if {[Widget::hasChanged $path -title title]} {
	wm title [winfo toplevel $path] $title
    }

    if {[Widget::hasChanged $path -resizable resize]} {
	eval wm resizable [winfo toplevel $path] $resize
    }

    return $res
}


# ------------------------------------------------------------------------------
#  Command Wizard::cget
# ------------------------------------------------------------------------------
proc Wizard::cget { path option } {
    return [Widget::cget $path $option]
}


proc Wizard::itemcget { path item option } {
    Widget::getVariable $path items
    Widget::getVariable $path steps
    Widget::getVariable $path buttons
    Widget::getVariable $path widgets

    if {![exists $path $item]} {
	## It's not an item.  Just pass the configure to the widget.
	set item [$path widgets get $item]
	return [eval $item configure $args] 
    }

    if {[_is_step $path $item]} {
        ## It's a step
        return [Widget::cget $items($item) $option]
    }

    if {[_is_branch $path $item]} {
        ## It's a branch
        return [Widget::cget $items($item) $option]
    }

    if {[info exists buttons($item)]} {
        ## It's a button
        return [$path.buttons itemcget $items($item) $option]
    }

    return -code error "item \"$item\" does not exist"
}


proc Wizard::itemconfigure { path item args } {
    Widget::getVariable $path items
    Widget::getVariable $path steps
    Widget::getVariable $path buttons
    Widget::getVariable $path widgets

    if {![exists $path $item]} {
	## It's not an item.  Just pass the configure to the widget.
	set item [$path widgets get $item]
	return [eval $item configure $args] 
    }

    if {[info exists steps($item)]} {
        ## It's a step.
        set res [Widget::configure $items($item) $args]

	if {$item == [$path step current]} {
	    if {[Widget::hasChanged $items($item) -title title]} {
		wm title [winfo toplevel $path] $title
	    }
	}

	return $res
    }

    if {[_is_branch $path $item]} {
        ## It's a branch
        return [Widget::configure $items($item) $args]
    }

    if {[info exists buttons($item)]} {
        ## It's a button.
        return [eval $path.buttons itemconfigure [list $items($item)] $args]
    }

    return -code error "item \"$item\" does not exist"
}


proc Wizard::show { path } {
    wm deiconify [winfo toplevel $path]
}


proc Wizard::invoke { path button } {
    Widget::getVariable $path buttons
    if {![info exists buttons($button)]} {
        return -code error "button \"$button\" does not exist"
    }
    [$path widgets get $button] invoke
}


proc Wizard::insert { path type idx args } {
    Widget::getVariable $path items
    Widget::getVariable $path widgets
    Widget::getVariable $path branches

    switch -- $type {
        "button" {
            set node [lindex $args 0]
        }

        "step" - "branch" {
            set node   [lindex $args 1]
            set branch [lindex $args 0]

            if {![info exists branches($branch)]} {
                return -code error "branch \"$branch\" does not exist"
            }
	}

	default {
	    set types [list button branch step]
	    set err [BWidget::badOptionString option $type $types]
	    return -code error $err
	}
    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品免费在线观看| 成人av影院在线| 中文字幕在线不卡视频| 欧美日韩亚洲国产综合| 国产经典欧美精品| 午夜精品123| 国产精品久久久久影视| 日韩视频国产视频| 色欧美乱欧美15图片| 国内成人自拍视频| 日本视频在线一区| 洋洋av久久久久久久一区| 国产日韩精品久久久| 日韩欧美的一区| 欧美色图一区二区三区| 成人性生交大片免费看视频在线| 免费视频最近日韩| 午夜一区二区三区视频| 亚洲日本免费电影| 中文字幕制服丝袜成人av| 久久久精品免费网站| 日韩视频免费观看高清完整版在线观看 | 日本强好片久久久久久aaa| 一区视频在线播放| 欧美国产丝袜视频| 久久久久高清精品| 久久久欧美精品sm网站| 日韩免费观看高清完整版在线观看 | 经典三级视频一区| 日韩—二三区免费观看av| 亚洲一区二区视频在线| 亚洲精品免费在线播放| 中文字幕精品一区二区精品绿巨人 | 久久99精品久久久久久| 日产精品久久久久久久性色| 亚洲bt欧美bt精品| 亚洲成人av资源| 亚洲成人一二三| 午夜电影一区二区| 日韩中文字幕亚洲一区二区va在线| 亚洲影院免费观看| 午夜精彩视频在线观看不卡| 香蕉av福利精品导航| 午夜国产不卡在线观看视频| 肉丝袜脚交视频一区二区| 日本在线不卡视频| 久久疯狂做爰流白浆xx| 国产专区综合网| 国产69精品久久久久毛片| 国产+成+人+亚洲欧洲自线| 不卡视频在线观看| 日本丰满少妇一区二区三区| 日本国产一区二区| 欧美精品三级日韩久久| 欧美一级在线免费| 久久久久久久久久久久久久久99 | 欧美午夜电影在线播放| 欧美视频在线播放| 日韩你懂的电影在线观看| 精品处破学生在线二十三| 久久精品男人天堂av| 亚洲免费观看高清完整版在线观看熊 | 久久精品一级爱片| 亚洲国产高清aⅴ视频| 一区二区三区在线视频观看58| 亚洲午夜激情网页| 精品夜夜嗨av一区二区三区| 国产不卡在线播放| 91精品福利视频| 欧美不卡激情三级在线观看| 日本一区二区三区电影| 亚洲免费观看视频| 免费精品视频在线| 成人免费视频一区二区| 欧美日韩精品系列| 久久久久国产精品麻豆ai换脸| 日韩一区日韩二区| 免费欧美日韩国产三级电影| 中文字幕的久久| 亚洲欧美综合在线精品| 一区二区三区在线视频免费| 一区二区三区欧美亚洲| 日本成人在线电影网| 成人午夜激情影院| 欧美日韩国产综合一区二区| 国产亚洲一二三区| 午夜精品久久久久久久久久| 国产成人av影院| 欧美伦理电影网| 国产精品久久久久aaaa樱花 | 日韩精品一区国产麻豆| 亚洲丝袜制服诱惑| 狠狠狠色丁香婷婷综合久久五月| 色又黄又爽网站www久久| 欧美tickle裸体挠脚心vk| 亚洲综合成人在线视频| 国产成人免费av在线| 91精品国产一区二区三区蜜臀| 亚洲欧洲精品一区二区三区不卡| 日本vs亚洲vs韩国一区三区二区| 成人小视频免费观看| 日韩精品一区二区在线| 亚洲国产精品一区二区久久| 国产91在线看| 亚洲精品在线三区| 日韩av一二三| 欧美丝袜自拍制服另类| 成人免费一区二区三区视频| 精品亚洲porn| 欧美高清视频不卡网| 亚洲欧洲综合另类在线| 国产成人精品影视| 日韩精品一区二| 日本欧美加勒比视频| 欧美亚洲国产怡红院影院| 中文字幕在线不卡一区二区三区 | 国产一区二区网址| 91精品国产乱| 亚洲大片精品永久免费| 色系网站成人免费| 国产精品久久精品日日| 国产成人av一区二区| 精品国产青草久久久久福利| 婷婷激情综合网| 精品视频一区 二区 三区| 亚洲欧美偷拍另类a∨色屁股| 粉嫩av一区二区三区| 国产日韩欧美电影| 国产ts人妖一区二区| 国产日韩欧美制服另类| 国产精品123区| 国产清纯白嫩初高生在线观看91| 国产精品综合视频| 久久日韩粉嫩一区二区三区| 久久99热狠狠色一区二区| 欧美videofree性高清杂交| 久久精品国产精品亚洲综合| 日韩亚洲欧美一区| 精品一区二区免费视频| 精品乱人伦小说| 国产精品影视天天线| 欧美国产日韩一二三区| 97se亚洲国产综合自在线不卡| 亚洲色图欧美偷拍| 欧亚一区二区三区| 午夜欧美在线一二页| 日韩免费看网站| 国产精品一区三区| 国产精品福利av| 日本精品一区二区三区四区的功能| 亚洲国产一区二区视频| 欧美一级生活片| 国模娜娜一区二区三区| 国产精品天美传媒沈樵| 色偷偷成人一区二区三区91| 亚洲福中文字幕伊人影院| 欧美一区二区三区四区久久| 久久99精品久久久久久国产越南| 国产日韩精品一区二区浪潮av | 欧美一卡在线观看| 精品在线播放午夜| 国产精品国产自产拍高清av王其| 99视频在线精品| 日韩中文字幕91| 久久久99久久| 色偷偷久久一区二区三区| 日本aⅴ免费视频一区二区三区| 久久综合一区二区| 色哟哟在线观看一区二区三区| 亚洲第一二三四区| 国产三级三级三级精品8ⅰ区| 91免费视频观看| 久久国产视频网| 中文字幕一区二区三区视频| 7878成人国产在线观看| 风流少妇一区二区| 午夜免费欧美电影| 亚洲国产精品传媒在线观看| 欧美天天综合网| 国产精品99久久久久久宅男| 一区2区3区在线看| 久久一区二区视频| 欧美日韩国产天堂| 国产电影精品久久禁18| 亚洲激情图片小说视频| 久久久精品国产免大香伊| 欧美色图在线观看| 成人app网站| 蜜臀av一区二区| 亚洲欧美一区二区三区孕妇| 欧美电影免费观看高清完整版在线 | 国产蜜臀av在线一区二区三区| 欧美影视一区二区三区| 国产高清在线精品| 精品一区免费av| 中文字幕亚洲视频| 久久嫩草精品久久久精品一| 欧美日韩一级片网站| 99在线热播精品免费| 国产又粗又猛又爽又黄91精品|