aboutsummaryrefslogtreecommitdiffstats
path: root/vimiumFrontend.js
diff options
context:
space:
mode:
authorilya2009-11-15 18:55:55 -0800
committerilya2009-11-15 18:55:55 -0800
commit1d126397d4ecb131f83ee8709df2e2568967ac9c (patch)
tree0ab7a846a265968c9a6da1ed4089b04a4292a6dd /vimiumFrontend.js
parent50d376c0663fe7474149541c22de5bb5cbe192b4 (diff)
downloadvimium-1d126397d4ecb131f83ee8709df2e2568967ac9c.tar.bz2
First pass at a settings page. Hooked up scrollStepSize as our first setting.
Diffstat (limited to 'vimiumFrontend.js')
-rw-r--r--vimiumFrontend.js31
1 files changed, 24 insertions, 7 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js
index e1fd3ec2..3424a52e 100644
--- a/vimiumFrontend.js
+++ b/vimiumFrontend.js
@@ -1,14 +1,29 @@
-var SCROLL_STEP_SIZE = 60; // Pixels
+var settings = {};
+var settingsToLoad = ["scrollStepSize"];
+
var getCurrentUrlHandlers = []; // function (url)
var keyCodes = { ESC: 27 };
var insertMode = false;
var keyPort;
+var settingPort;
// TODO(philc): This should be pulled from the extension's storage when the page loads.
var currentZoomLevel = 100;
+function getSetting(key) {
+ if (!settingPort)
+ {
+ settingPort = chrome.extension.connect({ name: "getSetting" });
+ }
+ settingPort.postMessage({ key: key });
+}
+
+function setSetting(args) { settings[args.key] = args.value; }
+
function initializeFrontend() {
+ for (var i in settingsToLoad) { getSetting(settingsToLoad[i]); }
+
document.addEventListener("keydown", onKeydown);
document.addEventListener("focus", onFocusCapturePhase, true);
document.addEventListener("blur", onBlurCapturePhase, true);
@@ -42,6 +57,8 @@ function initializeFrontend() {
port.onMessage.addListener(function (args) {
if (getCurrentUrlHandlers.length > 0) { getCurrentUrlHandlers.pop()(args.url); }
});
+ } else if (port.name == "returnSetting") {
+ port.onMessage.addListener(setSetting);
}
});
@@ -60,12 +77,12 @@ function zoomOut() { document.body.style.zoom = (currentZoomLevel -= 20) + "%";
function scrollToBottom() { window.scrollTo(0, document.body.scrollHeight); }
function scrollToTop() { window.scrollTo(0, 0); }
-function scrollUp() { window.scrollBy(0, -1 * SCROLL_STEP_SIZE); }
-function scrollDown() { window.scrollBy(0, SCROLL_STEP_SIZE); }
-function scrollPageUp() { window.scrollBy(0, -6 * SCROLL_STEP_SIZE); }
-function scrollPageDown() { window.scrollBy(0, 6 * SCROLL_STEP_SIZE); }
-function scrollLeft() { window.scrollBy(-1 * SCROLL_STEP_SIZE, 0); }
-function scrollRight() { window.scrollBy(SCROLL_STEP_SIZE, 0); }
+function scrollUp() { window.scrollBy(0, -1 * settings["scrollStepSize"]); }
+function scrollDown() { window.scrollBy(0, settings["scrollStepSize"]); }
+function scrollPageUp() { window.scrollBy(0, -6 * settings["scrollStepSize"]); }
+function scrollPageDown() { window.scrollBy(0, 6 * settings["scrollStepSize"]); }
+function scrollLeft() { window.scrollBy(-1 * settings["scrollStepSize"], 0); }
+function scrollRight() { window.scrollBy(settings["scrollStepSize"], 0); }
function reload() { window.location.reload(); }
function goBack() { history.back(); }