diff options
Diffstat (limited to 'html')
-rw-r--r-- | html/frames.html | 55 | ||||
-rw-r--r-- | html/haddock-util.js | 48 |
2 files changed, 67 insertions, 36 deletions
diff --git a/html/frames.html b/html/frames.html index 9e904fc1..30ce1fa5 100644 --- a/html/frames.html +++ b/html/frames.html @@ -1,27 +1,28 @@ -<html>
-<head>
-<script type="text/javascript"><!--
-/*
-
- The synopsis frame needs to be updated using javascript, so we hide
- it by default and only show it if javascript is enabled.
-
- TODO: provide some means to disable it.
-*/
-function load() {
- var d = document.getElementById("inner-fs");
- d.rows = "50%,50%";
-}
---></script>
-<frameset id="outer-fs" cols="25%,75%" onload="load()">
- <frameset id="inner-fs" rows="100%,0%">
-
- <frame src="index-frames.html" name="modules">
- <frame src="" name="synopsis">
-
- </frameset>
- <frame src="index.html" name="main">
-
-</frameset>
-
-</html>
+<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<script src="haddock-util.js" type="text/javascript"></script> +<script type="text/javascript"><!-- +/* + + The synopsis frame needs to be updated using javascript, so we hide + it by default and only show it if javascript is enabled. + + TODO: provide some means to disable it. +*/ +function load() { + var d = document.getElementById("inner-fs"); + d.rows = "50%,50%"; + postReframe(); +} +--></script> +<frameset id="outer-fs" cols="25%,75%" onload="load()"> + <frameset id="inner-fs" rows="100%,0%"> + <frame src="index-frames.html" name="modules"> + <frame src="" name="synopsis"> + </frameset> + <frame src="index.html" name="main"> +</frameset> +</html> diff --git a/html/haddock-util.js b/html/haddock-util.js index 155ee08f..d9b0b3e4 100644 --- a/html/haddock-util.js +++ b/html/haddock-util.js @@ -24,6 +24,29 @@ function toggleSection(toggler,id) } +function setCookie(name, value) { + document.cookie = name + "=" + escape(value) + ";path=/;"; +} + +function clearCookie(name) { + document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT;"; +} + +function getCookie(name) { + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + for(var i=0;i < ca.length;i++) { + var c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) { + return unescape(c.substring(nameEQ.length,c.length)); + } + } + return null; +} + + + var max_results = 75; // 50 is not enough to search for map in the base libraries var shown_range = null; var last_search = null; @@ -147,6 +170,20 @@ function setSynopsis(filename) { } } +function reframe() { + if (parent.location.href == window.location.href) { + setCookie("haddock-reframe", document.URL); + window.location = "frames.html"; + } +} + +function postReframe() { + var s = getCookie("haddock-reframe"); + if (s) { + parent.window.main.location = s; + clearCookie("haddock-reframe"); + } +} function setActiveStyleSheet(href) { var i, a, found = false; @@ -162,19 +199,12 @@ function setActiveStyleSheet(href) { } } if (!found) href = ""; - document.cookie = "style=" + href + ";path=/"; + setCookie("haddock-style", href); styleMenu(false); } function resetStyle() { - var nameEQ = "style="; - var s; - var ca = document.cookie.split(';'); - for(var i=0;i < ca.length;i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) s = c.substring(nameEQ.length,c.length); - } + var s = getCookie("haddock-style"); if (s) setActiveStyleSheet(s); } |