📄 fileselectiondialog.itk
字号:
## Fileselectiondialog# ----------------------------------------------------------------------# Implements a file selection box similar to the OSF/Motif standard# file selection dialog composite widget. The Fileselectiondialog is # derived from the Dialog class and is composed of a FileSelectionBox# with attributes set to manipulate the dialog buttons.# # ----------------------------------------------------------------------# AUTHOR: Mark L. Ulferts EMAIL: mulferts@spd.dsccc.com## @(#) $Id: fileselectiondialog.itk,v 1.1 2003/02/05 10:54:06 mdejong Exp $# ----------------------------------------------------------------------# Copyright (c) 1995 DSC Technologies Corporation# ======================================================================# Permission to use, copy, modify, distribute and license this software # and its documentation for any purpose, and without fee or written # agreement with DSC, is hereby granted, provided that the above copyright # notice appears in all copies and that both the copyright notice and # warranty disclaimer below appear in supporting documentation, and that # the names of DSC Technologies Corporation or DSC Communications # Corporation not be used in advertising or publicity pertaining to the # software without specific, written prior permission.# # DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-# INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE# AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL # DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION,# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS # SOFTWARE.# ======================================================================## Usual options.#itk::usual Fileselectiondialog { keep -activebackground -activerelief -background -borderwidth -cursor \ -elementborderwidth -foreground -highlightcolor -highlightthickness \ -insertbackground -insertborderwidth -insertofftime -insertontime \ -insertwidth -jump -labelfont -modality -selectbackground \ -selectborderwidth -textbackground -textfont }# ------------------------------------------------------------------# FILESELECTIONDIALOG# ------------------------------------------------------------------class iwidgets::Fileselectiondialog { inherit iwidgets::Dialog constructor {args} {} public { method childsite {} method get {} method filter {} } protected method _dbldir {}}## Provide a lowercased access method for the Fileselectiondialog class.# proc ::iwidgets::fileselectiondialog {pathName args} { uplevel ::iwidgets::Fileselectiondialog $pathName $args}## Use option database to override default resources of base classes.#option add *Fileselectiondialog.borderWidth 2 widgetDefaultoption add *Fileselectiondialog.title "File Selection Dialog" widgetDefaultoption add *Fileselectiondialog.width 350 widgetDefaultoption add *Fileselectiondialog.height 400 widgetDefaultoption add *Fileselectiondialog.master "." widgetDefault# ------------------------------------------------------------------# CONSTRUCTOR# ------------------------------------------------------------------body iwidgets::Fileselectiondialog::constructor {args} { component hull configure -borderwidth 0 itk_option add hull.width hull.height # # Turn off pack propagation for the hull widget so the width # and height options become active. # pack propagate $itk_component(hull) no # # Instantiate a file selection box widget. # itk_component add fsb { iwidgets::Fileselectionbox $itk_interior.fsb -width 150 -height 150 \ -selectioncommand [code $this invoke] \ -selectdircommand [code $this default Apply] \ -selectfilecommand [code $this default OK] } { usual keep -labelfont -childsitepos -directory -dirslabel \ -dirsearchcommand -dirson -fileslabel -fileson \ -filesearchcommand -filterlabel -filteron \ -filetype -invalid -mask -nomatchstring \ -selectionlabel -selectionon } grid $itk_component(fsb) -sticky nsew grid rowconfigure $itk_interior 0 -weight 1 grid columnconfigure $itk_interior 0 -weight 1 $itk_component(fsb) component filter configure \ -focuscommand [code $this default Apply] $itk_component(fsb) component selection configure \ -focuscommand [code $this default OK] $itk_component(fsb) component dirs configure \ -dblclickcommand [code $this _dbldir] $itk_component(fsb) component files configure \ -dblclickcommand [code $this invoke] buttonconfigure Apply -text "Filter" \ -command [code $itk_component(fsb) filter] set itk_interior [$itk_component(fsb) childsite] hide Help eval itk_initialize $args} # ------------------------------------------------------------------# METHODS# ------------------------------------------------------------------# ------------------------------------------------------------------# METHOD: childsite## Thinwrapped method of file selection box class.# ------------------------------------------------------------------body iwidgets::Fileselectiondialog::childsite {} { return [$itk_component(fsb) childsite]}# ------------------------------------------------------------------# METHOD: get## Thinwrapped method of file selection box class.# ------------------------------------------------------------------body iwidgets::Fileselectiondialog::get {} { return [$itk_component(fsb) get]}# ------------------------------------------------------------------# METHOD: filter## Thinwrapped method of file selection box class.# ------------------------------------------------------------------body iwidgets::Fileselectiondialog::filter {} { return [$itk_component(fsb) filter]}# ------------------------------------------------------------------# PROTECTED METHOD: _dbldir## Double select in directory list. If the files list is on then# make the default button the filter and invoke. If not, just invoke.# ------------------------------------------------------------------body iwidgets::Fileselectiondialog::_dbldir {} { if {$itk_option(-fileson)} { default Apply } invoke}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -