home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 May / PCWorld_2002-05_cd.bin / Software / TemaCD / activetcltk / ActiveTcl8.3.4.1-8.win32-ix86.exe / ActiveTcl8.3.4.1-win32-ix86 / lib / bwidget1.3.0 / progressdlg.tcl < prev    next >
Encoding:
Text File  |  2001-10-22  |  3.2 KB  |  92 lines

  1. # ------------------------------------------------------------------------------
  2. #  progressdlg.tcl
  3. #  This file is part of Unifix BWidget Toolkit
  4. # ------------------------------------------------------------------------------
  5. #  Index of commands:
  6. #     - ProgressDlg::create
  7. # ------------------------------------------------------------------------------
  8.  
  9. namespace eval ProgressDlg {
  10.     Dialog::use
  11.     ProgressBar::use
  12.  
  13.     Widget::bwinclude ProgressDlg Dialog :cmd \
  14.         remove {
  15.             -modal -image -bitmap -side -anchor -cancel -default
  16.             -homogeneous -padx -pady -spacing
  17.         }
  18.  
  19.     Widget::bwinclude ProgressDlg ProgressBar .frame.pb \
  20.         remove {-orient -width -height}
  21.  
  22.     Widget::declare ProgressDlg {
  23.         {-width        TkResource 25 0 label}
  24.         {-height       TkResource 2  0 label}
  25.         {-textvariable TkResource "" 0 label}
  26.         {-font         TkResource "" 0 label}
  27.         {-stop         String "" 0}
  28.         {-command      String "" 0}
  29.     }
  30.  
  31.     Widget::addmap ProgressDlg :cmd .frame.msg \
  32.         {-width {} -height {} -textvariable {} -font {} -background {}}
  33.  
  34.     proc ::ProgressDlg { path args } { return [eval ProgressDlg::create $path $args] }
  35.     proc use {} {}
  36. }
  37.  
  38.  
  39. # ------------------------------------------------------------------------------
  40. #  Command ProgressDlg::create
  41. # ------------------------------------------------------------------------------
  42. proc ProgressDlg::create { path args } {
  43.     array set maps [list ProgressDlg {} :cmd {} .frame.msg {} .frame.pb {}]
  44.     array set maps [Widget::parseArgs ProgressDlg $args]
  45.     
  46.     eval Dialog::create $path $maps(:cmd) -image [Bitmap::get hourglass] \
  47.         -modal none -side bottom -anchor c -class ProgressDlg
  48.  
  49.     Widget::initFromODB ProgressDlg "$path#ProgressDlg" $maps(ProgressDlg)
  50.  
  51.     wm protocol $path WM_DELETE_WINDOW {;}
  52.  
  53.     set frame [Dialog::getframe $path]
  54.     bind $frame <Destroy> "Widget::destroy $path#ProgressDlg"
  55.     $frame configure -cursor watch
  56.  
  57.     eval label $frame.msg $maps(.frame.msg) -relief flat -borderwidth 0 \
  58.         -highlightthickness 0 -anchor w -justify left
  59.     pack $frame.msg -side top -pady 3m -anchor nw -fill x -expand yes
  60.  
  61.     eval ProgressBar::create $frame.pb $maps(.frame.pb) -width 100
  62.     pack $frame.pb -side bottom -anchor w -fill x -expand yes
  63.  
  64.     set stop [Widget::cget "$path#ProgressDlg" -stop]
  65.     set cmd  [Widget::cget "$path#ProgressDlg" -command]
  66.     if { $stop != "" && $cmd != "" } {
  67.         Dialog::add $path -text $stop -name $stop -command $cmd
  68.     }
  69.     Dialog::draw $path
  70.     BWidget::grab local $path
  71.  
  72.     proc ::$path { cmd args } "return \[eval ProgressDlg::\$cmd $path \$args\]"
  73.  
  74.     return $path
  75. }
  76.  
  77.  
  78. # ------------------------------------------------------------------------------
  79. #  Command ProgressDlg::configure
  80. # ------------------------------------------------------------------------------
  81. proc ProgressDlg::configure { path args } {
  82.     return [Widget::configure "$path#ProgressDlg" $args]
  83. }
  84.  
  85.  
  86. # ------------------------------------------------------------------------------
  87. #  Command ProgressDlg::cget
  88. # ------------------------------------------------------------------------------
  89. proc ProgressDlg::cget { path option } {
  90.     return [Widget::cget "$path#ProgressDlg" $option]
  91. }
  92.