home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / Texte / scribus / scribus-1.3.3.9-win32-install.exe / tcl / tix8.1 / StackWin.tcl < prev    next >
Text File  |  2001-11-03  |  2KB  |  86 lines

  1. # -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
  2. #
  3. #    $Id: StackWin.tcl,v 1.1.1.1.2.1 2001/11/03 07:23:17 idiscovery Exp $
  4. #
  5. # StackWin.tcl --
  6. #
  7. #    Similar to NoteBook but uses a Select widget to represent the pages.
  8. #
  9. # Copyright (c) 1993-1999 Ioi Kim Lam.
  10. # Copyright (c) 2000-2001 Tix Project Group.
  11. #
  12. # See the file "license.terms" for information on usage and redistribution
  13. # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  14. #
  15.  
  16. tixWidgetClass tixStackWindow {
  17.     -classname TixStackWindow
  18.     -superclass tixVStack
  19.     -method {
  20.     }
  21.     -flag {
  22.     }
  23.     -configspec {
  24.     }
  25. }
  26.  
  27. proc tixStackWindow:ConstructWidget {w} {
  28.     upvar #0 $w data
  29.  
  30.     tixChainMethod $w ConstructWidget
  31.  
  32.     set data(w:tabs) [tixSelect $w.tabs]
  33.  
  34.     # We can't use the packer because it will conflict with the
  35.     # geometry management of the VStack widget.
  36.     #
  37.     tixManageGeometry $data(w:tabs) "tixVStack:ClientGeomProc $w"
  38. }
  39.  
  40. proc tixStackWindow:add {w child args} {
  41.     upvar #0 $w data
  42.  
  43.     set ret [eval tixChainMethod $w add $child $args]
  44.  
  45.     # Find out the -label option
  46.     #
  47.     tixForEach {flag value} $args {
  48.     if {$flag == "-label"} {
  49.         set label $value
  50.     }
  51.     }
  52.  
  53.     $data(w:tabs) add $child -command "$w raise $child" \
  54.     -text $label
  55.  
  56.     return $ret
  57. }
  58.  
  59. proc tixStackWindow:raise {w child} {
  60.     upvar #0 $w data
  61.  
  62.     $data(w:tabs) config -value $child
  63.  
  64.     tixChainMethod $w raise $child
  65. }
  66.  
  67. proc tixStackWindow:Resize {w} {
  68.     upvar #0 $w data
  69.  
  70.     # We have to take care of the size of the tabs so that 
  71.     #
  72.     set tW [winfo reqwidth  $data(w:tabs)]
  73.     set tH [winfo reqheight $data(w:tabs)]
  74.  
  75.     tixMoveResizeWindow $data(w:tabs) $data(-ipadx) $data(-ipady) $tW $tH
  76.     tixMapWindow $data(w:tabs)
  77.  
  78.     set data(pad-y1) [expr $tH + $data(-ipadx)]
  79.     set data(minW)   [expr $tW + 2 * $data(-ipadx)]
  80.     set data(minH)   [expr $tH + 2 * $data(-ipady)]
  81.  
  82.     # Now that we know data(pad-y1), we can chain the call
  83.     #
  84.     tixChainMethod $w Resize
  85. }
  86.