diff options
author | Mark Lentczner <markl@glyphic.com> | 2010-08-17 18:19:52 +0000 |
---|---|---|
committer | Mark Lentczner <markl@glyphic.com> | 2010-08-17 18:19:52 +0000 |
commit | 2ba3903b23ef41e3a0b08579f23bb38405b96ab6 (patch) | |
tree | 1b66c6a5a9366b0b178365b4414bfcf2aa46843f /html | |
parent | d7b77654bc1a36cef5a305429cc015aafcb2d391 (diff) |
clean up collapser logics
javascript code for collapasble sections cleaned up
rewrote class utilities in javascript to be more robust
refactored utilities for generating collapsable sections
made toc be same color as synopsis
module list has needed clear attribute in CSS
Diffstat (limited to 'html')
-rw-r--r-- | html/Ocean.std-theme/ocean.css | 46 | ||||
-rw-r--r-- | html/haddock-util.js | 64 |
2 files changed, 65 insertions, 45 deletions
diff --git a/html/Ocean.std-theme/ocean.css b/html/Ocean.std-theme/ocean.css index 74cb1b1b..0baa1443 100644 --- a/html/Ocean.std-theme/ocean.css +++ b/html/Ocean.std-theme/ocean.css @@ -281,8 +281,8 @@ div#style-menu-holder { #table-of-contents { float: right; clear: right; - background: rgb(239,238,209); - border: 1px solid rgba(196,69,29,0.2); + background: #f9f8db; + border: 1px solid #d8d7ad; padding: 0.5em 1em; position: relative; top: 0em; @@ -317,7 +317,6 @@ div#style-menu-holder { } #synopsis .caption { - text-align: right; float: left; width: 29px; color: rgba(255,255,255,0); @@ -328,23 +327,14 @@ div#style-menu-holder { } #synopsis p.caption.collapser { - background: url(synopsis.png) no-repeat 0 -8px; -} - -#synopsis p.caption.expander { background: url(synopsis.png) no-repeat -64px -8px; } -#synopsis ul, -#synopsis ul li.src { - background-color: #f9f8db; - white-space: nowrap; +#synopsis p.caption.expander { + background: url(synopsis.png) no-repeat 0px -8px; } -#synopsis ul.collapser, -#synopsis ul.expander { - background-image: none; - list-style: none; +#synopsis ul { height: 100%; overflow: auto; padding: 0.5em; @@ -355,6 +345,14 @@ div#style-menu-holder { overflow: hidden; } +#synopsis ul, +#synopsis ul li.src { + background-color: #f9f8db; + white-space: nowrap; + list-style: none; + margin-left: 0; +} + /* @end */ /* @group Main Content */ @@ -418,25 +416,11 @@ div#style-menu-holder { border-top: 1px solid #ccc; } -/* @group Left Margin */ - .subs, .doc { /* use this selector for one level of indent */ padding-left: 2em; } -/* use these two for two levels of indent */ -/* -#description .doc, #interface div.top { - padding-left: 1.25em; -} - -div.top .subs, div.top .doc { - padding-left: 1.875em; -} -*/ -/* @end */ - .arguments { margin-top: -0.4em; } @@ -530,6 +514,10 @@ div.top .subs, div.top .doc { margin: 0 0 0 2em; } +#module-list li { + clear: right; +} + #module-list .package { float: right; } diff --git a/html/haddock-util.js b/html/haddock-util.js index c5bc6a8d..e9e4f64d 100644 --- a/html/haddock-util.js +++ b/html/haddock-util.js @@ -1,26 +1,58 @@ // Haddock JavaScript utilities -function makeClassToggle(cOn, cOff) +var rspace = /\s\s+/g, + rtrim = /^\s+|\s+$/g; + +function spaced(s) { return (" " + s + " ").replace(rspace, " "); } +function trim(s) { return s.replace(rtrim, ""); } + +function hasClass(elem, value) { + var className = spaced(elem.className || ""); + return className.indexOf( " " + value + " " ) >= 0; +} + +function addClass(elem, value) { + var className = spaced(elem.className || ""); + if ( className.indexOf( " " + value + " " ) < 0 ) { + elem.className = trim(className + " " + value); + } +} + +function removeClass(elem, value) { + var className = spaced(elem.className || ""); + className = className.replace(" " + value + " ", " "); + elem.className = trim(className); +} + +function toggleClass(elem, valueOn, valueOff, bool) { + if (bool == null) { bool = ! hasClass(elem, valueOn); } + if (bool) { + removeClass(elem, valueOff); + addClass(elem, valueOn); + } + else { + removeClass(elem, valueOn); + addClass(elem, valueOff); + } + return bool; +} + + +function makeClassToggle(valueOn, valueOff) { - var rOn = new RegExp('\\b'+cOn+'\\b'); - var rOff = new RegExp('\\b'+cOff+'\\b'); - - return function(e, a) { - var c = e.className; - if (a == null) { a = rOff.test(c); } - if (a) { c = c.replace(rOff, cOn); } - else { c = c.replace(rOn, cOff); } - e.className = c; + return function(elem, bool) { + return toggleClass(elem, valueOn, valueOff, bool); } } -toggleClassShow = makeClassToggle("show", "hide"); -toggleClassCollapser = makeClassToggle("collapser", "expander"); +toggleShow = makeClassToggle("show", "hide"); +toggleCollapser = makeClassToggle("collapser", "expander"); -function toggleSection(toggler,id) +function toggleSection(id) { - toggleClassShow(document.getElementById(id)) - toggleClassCollapser(toggler); + var b = toggleShow(document.getElementById("section." + id)) + toggleCollapser(document.getElementById("control." + id), b) + return b; } @@ -244,7 +276,7 @@ function resetStyle() { function styleMenu(show) { var m = document.getElementById('style-menu'); - toggleClassShow(m, show); + if (m) toggleClassShow(m, show); } |