]> git.gir.st - VimFx.git/blob - packages/hints.coffee
hints and markers development, loading of css sheets, renamed the project to vimff
[VimFx.git] / packages / hints.coffee
1 HINTCHARS = 'asdfghjkl;'
2 CONTAINER_ID = 'vimffHintMarkerContainer'
3
4 { interfaces: Ci } = Components
5 HTMLDocument = Ci.nsIDOMHTMLDocument
6 { Marker, getElementRect } = require 'marker'
7
8 createOrGetHintsContainer = (document) ->
9 if container = document.getElementById CONTAINER_ID
10 return container
11 else
12 container = document.createElement 'div'
13 container.id = CONTAINER_ID
14 document.body.appendChild container
15 return container
16
17 hasHints = (document) ->
18 document.getUserData 'vimff.has_hints'
19
20 addHints = (document, cb) ->
21 if hasHints document
22 removeHints document
23
24 if document instanceof HTMLDocument
25 container = createOrGetHintsContainer document
26
27 markers = []
28 for link in document.links
29 if rect = getElementRect link
30 marker = new Marker(link, 'aa', container)
31 marker.show()
32 marker.setPosition rect.left, rect.top
33 markers.push marker
34
35 document.setUserData 'vimff.has_hints', true, null
36 document.setUserData 'vimff.markers', markers, null
37
38 removeHints = (document) ->
39 console.log hasHints document
40 if hasHints document
41 document.setUserData 'vimff.has_hints', undefined, null
42 document.setUserData 'vimff.markers', undefined, null
43
44 container = createOrGetHintsContainer document
45 document.body.removeChild container
46
47 exports.addHints = addHints
48 exports.removeHints = removeHints
49 exports.hasHints = removeHints
Imprint / Impressum