2 * (C) Copyright 2009 John J. Foerch
4 * Use, modification, and distribution are subject to the terms specified in the
11 * require('eye-guide.js');
12 * define_key(content_buffer_normal_keymap, "space", "eye-guide-scroll-down");
13 * define_key(content_buffer_normal_keymap, "back_space", "eye-guide-scroll-up");
19 define_variable("eye_guide_interval", 800,
20 "Interval during which the eye guide is visible (in ms). "+
21 "When 0, the eye guide will remain visible.");
23 define_variable("eye_guide_context_size", 50,
24 "Context size in pixels for eye-guide-scroll-down and "+
25 "eye-guide-scroll-up.");
27 interactive("eye-guide-scroll-down",
28 "Alternative to scroll-page-down, displays a guide to help "+
29 "your eyes follow the scroll.",
31 let win = I.buffer.focused_frame;
32 let doc = I.buffer.document;
33 let context = eye_guide_context_size;
34 let old_y = win.scrollY;
35 win.scrollBy(0, win.innerHeight - context);
36 if (win.scrollY == old_y)
38 if (win.scrollY - old_y < win.innerHeight - context)
39 context = win.innerHeight - (win.scrollY - old_y);
40 let guide = doc.getElementById("__conkeror_eye_guide");
42 guide = doc.createElementNS(XHTML_NS, "div");
43 guide.id = "__conkeror_eye_guide";
44 doc.documentElement.appendChild(guide);
46 guide.style.top = '0px';
47 guide.style.height = context+'px';
48 guide.style.display = "block";
49 guide.className = "__conkeror_eye_guide_scroll_down";
50 if (win.eye_guide_timer) {
51 win.clearTimeout(win.eye_guide_timer);
52 win.eye_guide_timer = null;
54 if (eye_guide_interval != 0) {
55 win.eye_guide_timer = win.setTimeout(
57 guide.style.display = "none";
63 interactive("eye-guide-scroll-up",
64 "Alternative to scroll-page-up, displays a guide to help "+
65 "your eyes follow the scroll.",
67 let win = I.buffer.focused_frame;
68 let doc = I.buffer.document;
69 let context = eye_guide_context_size;
70 let old_y = win.scrollY;
71 win.scrollBy(0, 0 - (win.innerHeight - context));
72 if (win.scrollY == old_y)
74 if (old_y - win.scrollY < win.innerHeight - context)
75 context = win.innerHeight - old_y;
76 let guide = doc.getElementById("__conkeror_eye_guide");
78 guide = doc.createElementNS(XHTML_NS, "div");
79 guide.id = "__conkeror_eye_guide";
80 doc.documentElement.appendChild(guide);
82 guide.style.top = (win.innerHeight - context) + "px";
83 guide.style.height = context+'px';
84 guide.style.display = "block";
85 guide.className = "__conkeror_eye_guide_scroll_up";
86 if (win.eye_guide_timer) {
87 win.clearTimeout(win.eye_guide_timer);
88 win.eye_guide_timer = null;
90 if (eye_guide_interval != 0) {
91 win.eye_guide_timer = win.setTimeout(
93 guide.style.display = "none";