Index: openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl,v diff -u -r1.32 -r1.33 --- openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 15 Apr 2008 09:14:45 -0000 1.32 +++ openacs-4/packages/xotcl-core/tcl/30-widget-procs.tcl 17 Aug 2008 01:21:56 -0000 1.33 @@ -837,8 +837,12 @@ # templating and CSS # Class create Page - Page proc requireCSS name {set ::_xo_need_css($name) 1} - Page proc requireStyle s {set ::_xo_need_style($s) 1} + Page proc requireCSS {{-order 1} name} { + set ::_xo_need_css($name) [expr {[array size ::_xo_need_css]+1000*$order}] + } + Page proc requireStyle {{-order 1} s} { + set ::_xo_need_style($s) [expr {[array size ::_xo_need_style]+1000*$order}] + } Page proc requireJS name { if {![info exists ::_xo_need_js($name)]} {lappend ::_xo_js_order $name} set ::_xo_need_js($name) 1 @@ -858,15 +862,26 @@ } return [list] } + Page proc sort_keys_by_value {{-comparison integer} {-direction increasing} pairs} { + set result [list] + set a [list] + foreach {key value} $pairs { + lappend a [list $key $value] + } + foreach pair [lsort -index 1 -$comparison -$direction $a] { + lappend result [lindex $pair 0] + } + return $result + } Page proc header_stuff {} { set result "" foreach link [array names ::_xo_need_link] { append result "\n" } - foreach style [array names ::_xo_need_style] { + foreach style [my sort_keys_by_value [array get ::_xo_need_style]] { append result "\n" } - foreach file [array names ::_xo_need_css] { + foreach file [my sort_keys_by_value [array get ::_xo_need_css]] { append result "\n" } if {[info exists ::_xo_js_order]} {