diff options
| author | Jez Ng | 2012-10-26 13:27:37 -0400 |
|---|---|---|
| committer | Jez Ng | 2012-10-29 18:28:46 -0400 |
| commit | aeb455a577c0a20684f357ff737203b5cb419cd4 (patch) | |
| tree | 184db85bb1569360854c4c2814634f1c580efe9b /content_scripts/marks.coffee | |
| parent | 76622cd99cf671531cfa21c5d6243f3e4e185116 (diff) | |
| download | vimium-aeb455a577c0a20684f357ff737203b5cb419cd4.tar.bz2 | |
Implement marks.
Diffstat (limited to 'content_scripts/marks.coffee')
| -rw-r--r-- | content_scripts/marks.coffee | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/content_scripts/marks.coffee b/content_scripts/marks.coffee new file mode 100644 index 00000000..e280a3b1 --- /dev/null +++ b/content_scripts/marks.coffee @@ -0,0 +1,45 @@ +root = window.Marks = {} + +root.activateCreateMode = -> + handlerStack.push keydown: (e) -> + keyChar = KeyboardUtils.getKeyChar(event) + return unless keyChar isnt "" + + if /[A-Z]/.test keyChar + chrome.extension.sendRequest { + handler: 'createMark', + markName: keyChar + scrollX: window.scrollX, + scrollY: window.scrollY + }, -> HUD.showForDuration "Created global mark '#{keyChar}'", 1000 + else if /[a-z]/.test keyChar + [baseLocation, sep, hash] = window.location.href.split '#' + localStorage["vimiumMark|#{baseLocation}|#{keyChar}"] = JSON.stringify + scrollX: window.scrollX, + scrollY: window.scrollY + HUD.showForDuration "Created local mark '#{keyChar}'", 1000 + + @remove() + + false + +root.activateGotoMode = -> + handlerStack.push keydown: (e) -> + keyChar = KeyboardUtils.getKeyChar(event) + return unless keyChar isnt "" + + if /[A-Z]/.test keyChar + chrome.extension.sendRequest + handler: 'gotoMark' + markName: keyChar + else if /[a-z]/.test keyChar + [baseLocation, sep, hash] = window.location.href.split '#' + markString = localStorage["vimiumMark|#{baseLocation}|#{keyChar}"] + if markString? + mark = JSON.parse markString + window.scrollTo mark.scrollX, mark.scrollY + HUD.showForDuration "Jumped to local mark '#{keyChar}'", 1000 + + @remove() + + false |
