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 / SHList.tcl < prev    next >
Text File  |  2001-12-08  |  4KB  |  152 lines

  1. # -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
  2. #
  3. #    $Id: SHList.tcl,v 1.3.2.2 2001/12/09 02:54:02 idiscovery Exp $
  4. #
  5. # SHList.tcl --
  6. #
  7. #    This file implements Scrolled HList widgets
  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 tixScrolledHList {
  17.     -classname TixScrolledHList
  18.     -superclass tixScrolledWidget
  19.     -method {
  20.     }
  21.     -flag {
  22.      -highlightbackground -highlightcolor -highlightthickness
  23.     }
  24.     -configspec {
  25.     {-highlightbackground -highlightBackground HighlightBackground #d9d9d9}
  26.     {-highlightcolor -highlightColor HighlightColor black}
  27.     {-highlightthickness -highlightThickness HighlightThickness 2}
  28.     }
  29.     -default {
  30.     {.scrollbar            auto}
  31.     {*f1.borderWidth        1}
  32.     {*hlist.Background        #c3c3c3}
  33.     {*hlist.highlightBackground    #d9d9d9}
  34.     {*hlist.relief            sunken}
  35.     {*hlist.takeFocus        1}
  36.     {*Scrollbar.takeFocus        0}
  37.     }
  38.     -forcecall {
  39.     -highlightbackground -highlightcolor -highlightthickness
  40.     }
  41. }
  42.  
  43. proc tixScrolledHList:ConstructWidget {w} {
  44.     upvar #0 $w data
  45.  
  46.     tixChainMethod $w ConstructWidget
  47.  
  48.     set data(pw:f1) \
  49.     [frame $w.f1 -takefocus 0]
  50.     set data(w:hlist) \
  51.     [tixHList $w.f1.hlist -bd 0 -takefocus 1 -highlightthickness 0]
  52.  
  53.     pack $data(w:hlist) -in $data(pw:f1) -expand yes -fill both -padx 0 -pady 0
  54.  
  55.     set data(w:hsb) \
  56.     [scrollbar $w.hsb -orient horizontal -takefocus 0]
  57.     set data(w:vsb) \
  58.     [scrollbar $w.vsb -orient vertical -takefocus 0]
  59.     
  60.     set data(pw:client) $data(pw:f1)
  61. }
  62.  
  63. proc tixScrolledHList:SetBindings {w} {
  64.     upvar #0 $w data
  65.  
  66.     tixChainMethod $w SetBindings
  67.  
  68.     $data(w:hlist) config \
  69.     -xscrollcommand "$data(w:hsb) set"\
  70.     -yscrollcommand "$data(w:vsb) set"\
  71.     -sizecmd [list tixScrolledWidget:Configure $w]
  72.  
  73.     $data(w:hsb) config -command "$data(w:hlist) xview"
  74.     $data(w:vsb) config -command "$data(w:hlist) yview"
  75.  
  76. }
  77.  
  78. #----------------------------------------------------------------------
  79. #
  80. #        option configs
  81. #----------------------------------------------------------------------
  82. proc tixScrolledHList:config-takefocus {w value} {
  83.     upvar #0 $w data
  84.   
  85.     $data(w:hlist) config -takefocus $value
  86. }    
  87.  
  88. proc tixScrolledHList:config-highlightbackground {w value} {
  89.     upvar #0 $w data
  90.  
  91.     $data(pw:f1) config -highlightbackground $value
  92. }
  93.  
  94. proc tixScrolledHList:config-highlightcolor {w value} {
  95.     upvar #0 $w data
  96.  
  97.     $data(pw:f1) config -highlightcolor $value
  98. }
  99.  
  100. proc tixScrolledHList:config-highlightthickness {w value} {
  101.     upvar #0 $w data
  102.  
  103.     $data(pw:f1) config -highlightthickness $value
  104. }
  105.  
  106.  
  107. #----------------------------------------------------------------------
  108. #
  109. #        Widget commands
  110. #----------------------------------------------------------------------
  111.  
  112. #----------------------------------------------------------------------
  113. #
  114. #        Private Methods
  115. #----------------------------------------------------------------------
  116. # virtual
  117. #
  118. proc tixScrolledHList:RepackHook {w} {
  119.     upvar #0 $w data
  120.  
  121. if 0 {
  122.     if {[tixGetBoolean [$data(w:hlist) cget -header]]} {
  123.     set data(vsbPadY) [winfo height $data(w:hlist).tixsw:header]
  124.     } else {
  125.     set data(vsbPadY) 0
  126.     }
  127.  
  128.     puts $data(vsbPadY)\ $data(w:hlist).tixsw:header
  129. }
  130.     tixChainMethod $w RepackHook
  131. }
  132. #----------------------------------------------------------------------
  133. # virtual functions to query the client window's scroll requirement
  134. #----------------------------------------------------------------------
  135. proc tixScrolledHList:GeometryInfo {w mW mH} {
  136.     upvar #0 $w data
  137.  
  138.     set extra [expr [$w.f1 cget -bd]+[$w.f1 cget -highlightthickness]]
  139.  
  140.     set mW [expr $mW - $extra*2]
  141.     set mH [expr $mH - $extra*2]
  142.  
  143.     if {$mW < 1} {
  144.     set mW 1
  145.     }
  146.     if {$mH < 1} {
  147.     set mH 1
  148.     }
  149.  
  150.     return [$data(w:hlist) geometryinfo $mW $mH]
  151. }
  152.