home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / custsort.tcl < prev    next >
Text File  |  1996-05-29  |  1KB  |  54 lines

  1. proc sortView {objA objB} {
  2.  
  3.     set labelA [$objA label]
  4.     set labelB [$objB label]
  5.     if {$labelA > $labelB} {
  6.         return 1
  7.     } elseif {$labelA < $labelB} {
  8.         return -1
  9.     } else {
  10.         return 0
  11.         #return [custSort $objA $objB]
  12.     }
  13. }
  14.  
  15. proc sortObjType {objA objB} {
  16.  
  17.     set labelA [$objA label]
  18.     set labelB [$objB label]
  19.     if {$labelA > $labelB} {
  20.         return 1
  21.     } elseif {$labelA < $labelB} {
  22.         return -1
  23.     } else {
  24.         return 0
  25.         #return [custSort $objA $objB]
  26.     }
  27. }
  28.  
  29. proc custSort { objA objB} {
  30.  
  31.     set specLevelA [$objA specLevel]
  32.     if {$specLevelA == "user"} {
  33.         set specLevelA 5
  34.     } else {
  35.         set specLevelA $icaseLevelInt($specLevelA)
  36.     }
  37.     set specLevelB [$objB specLevel]
  38.     if {$specLevelB == "user"} {
  39.         set specLevelB 5
  40.     } else {
  41.         set specLevelB $icaseLevelInt($specLevelB)
  42.     }
  43.         
  44.     if {$specLevelA > $specLevelB} {
  45.         return 1
  46.     } elseif {$specLevelA < $specLevelB} {
  47.         return -1
  48.     } else {
  49.         set scopeA [$objA scope]
  50.         set scopeB [$objB scope]
  51.         return [expr {[llength $scopeA] - [llength $scopeB]}]
  52.     }
  53. }
  54.