📄 extfileselectiondialog.itk
字号:
## Extfileselectiondialog# ----------------------------------------------------------------------# Implements a file selection dialog that is a slightly extended version# of the OSF/Motif standard composite widget. The Extfileselectionbox # differs from the Motif standard in that the filter and selection # fields are comboboxes and the files and directory lists are in a # paned window.# # ----------------------------------------------------------------------# AUTHOR: Mark L. Ulferts EMAIL: mulferts@spd.dsccc.com## @(#) $Id: extfileselectiondialog.itk,v 1.1 2003/02/05 10:54:06 mdejong Exp $# ----------------------------------------------------------------------# Copyright (c) 1997 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 Extfileselectiondialog { keep -activebackground -activerelief -background -borderwidth -cursor \ -elementborderwidth -foreground -highlightcolor -highlightthickness \ -insertbackground -insertborderwidth -insertofftime -insertontime \ -insertwidth -jump -labelfont -modality -selectbackground \ -selectborderwidth -textbackground -textfont }# ------------------------------------------------------------------# EXTFILESELECTIONDIALOG# ------------------------------------------------------------------class iwidgets::Extfileselectiondialog { inherit iwidgets::Dialog constructor {args} {} public { method childsite {} method get {} method filter {} } protected method _dbldir {}}## Provide a lowercased access method for the Extfileselectiondialog class.# proc ::iwidgets::extfileselectiondialog {pathName args} { uplevel ::iwidgets::Extfileselectiondialog $pathName $args}## Use option database to override default resources of base classes.#option add *Extfileselectiondialog.borderWidth 2 widgetDefaultoption add *Extfileselectiondialog.title "File Selection Dialog" widgetDefaultoption add *Extfileselectiondialog.width 350 widgetDefaultoption add *Extfileselectiondialog.height 400 widgetDefaultoption add *Extfileselectiondialog.master "." widgetDefault# ------------------------------------------------------------------# CONSTRUCTOR# ------------------------------------------------------------------body iwidgets::Extfileselectiondialog::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::Extfileselectionbox $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::Extfileselectiondialog::childsite {} { return [$itk_component(fsb) childsite]}# ------------------------------------------------------------------# METHOD: get## Thinwrapped method of file selection box class.# ------------------------------------------------------------------body iwidgets::Extfileselectiondialog::get {} { return [$itk_component(fsb) get]}# ------------------------------------------------------------------# METHOD: filter## Thinwrapped method of file selection box class.# ------------------------------------------------------------------body iwidgets::Extfileselectiondialog::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::Extfileselectiondialog::_dbldir {} { if {$itk_option(-fileson)} { default Apply } invoke}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -