home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / BWidget-1.2 / labelframe.tcl < prev    next >
Text File  |  2000-11-02  |  4KB  |  100 lines

  1. # ------------------------------------------------------------------------------
  2. #  labelframe.tcl
  3. #  This file is part of Unifix BWidget Toolkit
  4. # ------------------------------------------------------------------------------
  5. #  Index of commands:
  6. #     - LabelFrame::create
  7. #     - LabelFrame::getframe
  8. #     - LabelFrame::configure
  9. #     - LabelFrame::cget
  10. # ------------------------------------------------------------------------------
  11.  
  12. namespace eval LabelFrame {
  13.     Label::use
  14.  
  15.     Widget::bwinclude LabelFrame Label .l \
  16.         remove     {
  17.             -highlightthickness -highlightcolor -highlightbackground
  18.             -takefocus -relief -borderwidth
  19.             -bitmap -image -cursor -textvariable
  20.             -dragenabled -draginitcmd -dragendcmd -dragevent -dragtype
  21.             -dropenabled -droptypes -dropovercmd  -dropcmd} \
  22.         initialize {-anchor w}
  23.  
  24.     Widget::declare LabelFrame {
  25.         {-relief      TkResource flat 0 frame}
  26.         {-borderwidth TkResource 0    0 frame}
  27.         {-side        Enum       left 1 {left right top bottom}}
  28.         {-bd          Synonym    -borderwidth}
  29.     }
  30.  
  31.     Widget::addmap LabelFrame "" :cmd {-background {}}
  32.     Widget::addmap LabelFrame "" .f   {-background {} -relief {} -borderwidth {}}
  33.  
  34.     Widget::syncoptions LabelFrame Label .l {-text {} -underline {}}
  35.  
  36.     bind BwLabelFrame <FocusIn> {Label::setfocus %W.l}
  37.     bind BwLabelFrame <Destroy> {Widget::destroy %W; rename %W {}}
  38.  
  39.     proc ::LabelFrame { path args } { return [eval LabelFrame::create $path $args] }
  40.     proc use {} {}
  41. }
  42.  
  43.  
  44. # ------------------------------------------------------------------------------
  45. #  Command LabelFrame::create
  46. # ------------------------------------------------------------------------------
  47. proc LabelFrame::create { path args } {
  48.     Widget::init LabelFrame $path $args
  49.  
  50.     set path  [frame $path -background [Widget::getoption $path -background] \
  51.                    -relief flat -bd 0 -takefocus 0 -highlightthickness 0]
  52.  
  53.     set label [eval Label::create $path.l [Widget::subcget $path .l] \
  54.                    -takefocus 0 -highlightthickness 0 -relief flat -borderwidth 0 \
  55.                    -dropenabled 0 -dragenabled 0]
  56.     set frame [eval frame $path.f [Widget::subcget $path .f] \
  57.                    -highlightthickness 0 -takefocus 0]
  58.  
  59.     switch  [Widget::getoption $path -side] {
  60.         left   {set packopt "-side left"}
  61.         right  {set packopt "-side right"}
  62.         top    {set packopt "-side top -fill x"}
  63.         bottom {set packopt "-side bottom -fill x"}
  64.     }
  65.  
  66.     eval pack $label $packopt
  67.     pack $frame -fill both -expand yes
  68.  
  69.     bindtags $path [list $path BwLabelFrame [winfo toplevel $path] all]
  70.  
  71.     rename $path ::$path:cmd
  72.     proc ::$path { cmd args } "return \[eval LabelFrame::\$cmd $path \$args\]"
  73.  
  74.     return $path
  75. }
  76.  
  77.  
  78. # ------------------------------------------------------------------------------
  79. #  Command LabelFrame::getframe
  80. # ------------------------------------------------------------------------------
  81. proc LabelFrame::getframe { path } {
  82.     return $path.f
  83. }
  84.  
  85.  
  86. # ------------------------------------------------------------------------------
  87. #  Command LabelFrame::configure
  88. # ------------------------------------------------------------------------------
  89. proc LabelFrame::configure { path args } {
  90.     return [Widget::configure $path $args]
  91. }
  92.  
  93.  
  94. # ------------------------------------------------------------------------------
  95. #  Command LabelFrame::cget
  96. # ------------------------------------------------------------------------------
  97. proc LabelFrame::cget { path option } {
  98.     return [Widget::cget $path $option]
  99. }
  100.