aboutsummaryrefslogtreecommitdiff
path: root/html
diff options
context:
space:
mode:
authorMark Lentczner <markl@glyphic.com>2010-08-17 18:19:52 +0000
committerMark Lentczner <markl@glyphic.com>2010-08-17 18:19:52 +0000
commit2ba3903b23ef41e3a0b08579f23bb38405b96ab6 (patch)
tree1b66c6a5a9366b0b178365b4414bfcf2aa46843f /html
parentd7b77654bc1a36cef5a305429cc015aafcb2d391 (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.css46
-rw-r--r--html/haddock-util.js64
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);
}