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

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

?? 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
	}
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av性久久久久蜜臀aⅴ四虎| 在线观看精品一区| 高清视频一区二区| 国产专区欧美精品| 国产一区二区三区视频在线播放 | 成人在线视频一区二区| 成人中文字幕电影| 色成年激情久久综合| 88在线观看91蜜桃国自产| av电影一区二区| 另类小说综合欧美亚洲| 亚洲香蕉伊在人在线观| 日本视频一区二区| 久久爱www久久做| 国产福利精品导航| 99久久国产综合精品女不卡| 色婷婷综合久久久久中文一区二区| 色综合久久中文综合久久97| 欧美在线三级电影| 欧美一区二区免费观在线| 久久午夜电影网| 国产精品拍天天在线| 成人欧美一区二区三区| 亚洲一区二区精品久久av| 激情欧美一区二区| 丁香天五香天堂综合| 一本久久a久久精品亚洲| 91超碰这里只有精品国产| 欧美激情中文不卡| 亚洲va欧美va天堂v国产综合| 人人狠狠综合久久亚洲| 久久成人羞羞网站| 在线观看www91| 精品国产麻豆免费人成网站| 国产精品国模大尺度视频| 亚洲自拍偷拍av| 老司机精品视频一区二区三区| 国产成人免费xxxxxxxx| 欧美在线观看视频一区二区三区| 欧美一区二区三区视频在线 | 欧美电影在哪看比较好| 久久欧美中文字幕| 性久久久久久久| 成人综合在线视频| 6080午夜不卡| 国产精品第13页| 韩国欧美国产1区| 日本韩国欧美三级| 久久久精品国产免大香伊| 亚洲激情在线播放| 另类小说视频一区二区| 精品视频1区2区| 欧美激情在线看| 日本sm残虐另类| 91亚洲国产成人精品一区二三 | 日韩不卡一区二区三区 | 在线观看免费一区| 久久日韩精品一区二区五区| 亚洲成人动漫在线观看| caoporm超碰国产精品| 日韩亚洲欧美在线观看| 亚洲综合区在线| 极品美女销魂一区二区三区| 欧美日韩国产另类不卡| 亚洲色图一区二区| 极品销魂美女一区二区三区| 欧美一a一片一级一片| 亚洲人吸女人奶水| 国产福利不卡视频| 欧美日韩高清一区二区三区| 欧美日韩大陆在线| 日韩欧美第一区| 亚洲国产精品久久久久秋霞影院| 成人免费观看av| 2024国产精品| 美脚の诱脚舐め脚责91| 欧美一区二区性放荡片| 亚洲综合在线第一页| 99精品桃花视频在线观看| 亚洲国产成人av好男人在线观看| 国产精品一区二区91| 欧美一二三四区在线| 午夜电影久久久| 欧美色爱综合网| 亚洲激情自拍视频| 一本一道久久a久久精品| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩国产精品91| 精品国产免费一区二区三区四区| 丝袜亚洲精品中文字幕一区| 欧美在线一二三| 亚洲午夜私人影院| 在线观看视频一区二区欧美日韩| 亚洲男人电影天堂| 色婷婷精品大在线视频| 综合久久久久久久| 欧美色图免费看| 亚洲国产va精品久久久不卡综合| 91福利小视频| 国产日韩精品一区| 日韩欧美一级片| 欧美日韩国产精品自在自线| 精品国产91洋老外米糕| 国内精品在线播放| 日韩午夜精品电影| 欧美日韩高清一区二区不卡| 亚洲人成网站在线| 在线区一区二视频| 精品亚洲免费视频| 国产成+人+日韩+欧美+亚洲| 国内精品视频666| 精品写真视频在线观看 | 精品婷婷伊人一区三区三| 国产精品一区二区91| 国产一区二区不卡老阿姨| 亚洲成av人片在www色猫咪| 一区在线中文字幕| 中文字幕乱码一区二区免费| 欧美一三区三区四区免费在线看| 99久久99久久久精品齐齐| 成人午夜在线免费| 成人精品一区二区三区中文字幕 | 波多野结衣在线一区| 久久综合久久综合久久| 亚洲人成7777| 久久99久国产精品黄毛片色诱| 亚洲自拍偷拍图区| 亚洲超丰满肉感bbw| 日韩在线观看一区二区| 日本午夜精品一区二区三区电影| 亚洲成av人片在www色猫咪| 亚洲成a人v欧美综合天堂下载 | 亚洲综合色自拍一区| 日韩免费在线观看| 日本强好片久久久久久aaa| 国产精品网站一区| 99久久精品免费精品国产| 亚洲妇熟xx妇色黄| 日本一区二区三区dvd视频在线| 一本一本久久a久久精品综合麻豆| 亚洲一区欧美一区| 久久人人爽爽爽人久久久| 色视频成人在线观看免| 久久精品二区亚洲w码| 国产精品欧美久久久久无广告 | 久久久久9999亚洲精品| 欧美三级三级三级| 美国十次了思思久久精品导航| 1024国产精品| 韩国成人福利片在线播放| 成人黄色小视频在线观看| 日本韩国视频一区二区| 9191精品国产综合久久久久久 | 成人精品免费网站| 欧美视频在线不卡| 日韩欧美不卡一区| 亚洲人妖av一区二区| 蜜桃av一区二区在线观看| 99精品久久免费看蜜臀剧情介绍| 精品剧情在线观看| 亚洲男人的天堂在线aⅴ视频| 亚洲欧美在线另类| 欧美视频在线观看一区| 成人性生交大片免费看在线播放 | 亚洲成av人综合在线观看| 国产精品国产自产拍高清av| 日韩三级视频在线看| 国产精品一级二级三级| 欧美日韩午夜在线视频| 国产精品五月天| 九一久久久久久| 欧美v日韩v国产v| 国内精品伊人久久久久av一坑| 91亚洲国产成人精品一区二三 | 高清av一区二区| 日韩精品一区二区三区在线 | 欧美日韩中文字幕一区二区| 久久亚洲综合av| 精品一区二区三区久久久| 欧美日韩精品免费观看视频| 专区另类欧美日韩| 高清成人免费视频| 久久日韩粉嫩一区二区三区| 石原莉奈在线亚洲二区| 极品尤物av久久免费看| 欧美绝品在线观看成人午夜影视| 中文字幕色av一区二区三区| 国产麻豆日韩欧美久久| 精品国产污污免费网站入口| 久久国产福利国产秒拍| 日韩欧美中文字幕公布| 国产在线精品不卡| 亚洲视频一二三| 丁香激情综合国产| 国产欧美在线观看一区| 成人黄色片在线观看| 亚洲精品欧美在线| 久久亚洲综合色| 亚洲天天做日日做天天谢日日欢| 国产亚洲一区二区在线观看|