2 * (C) Copyright 2009-2011 John J. Foerch
4 * Use, modification, and distribution are subject to the terms specified in the
10 require("content-buffer.js");
12 function dom_click_xpath (doc, xpath) {
13 var iter = doc.evaluate(xpath,
15 xpath_lookup_namespace,
16 Ci.nsIDOMXPathResult.FIRST_ORDERED_NODE_TYPE ,
18 var node = iter.singleNodeValue;
20 var rect = node.getBoundingClientRect();
21 dom_node_click(node, rect.left + 1, rect.top + 1);
25 interactive("google-maps-zoom-in",
26 "Zoom in on a google map",
28 dom_click_xpath(I.buffer.document,
29 "//div[@guidedhelpid='zoom_in']/div[@title]");
32 interactive("google-maps-zoom-out",
33 "Zoom out on a google map",
35 dom_click_xpath(I.buffer.document,
36 "//div[@guidedhelpid='zoom_out']/div[@title]");
39 interactive("google-maps-pan-left",
40 "Pan a google map left",
42 dom_click_xpath(I.buffer.document,
43 "//div[@log='pan_lt']");
46 interactive("google-maps-pan-right",
47 "Pan a google map right",
49 dom_click_xpath(I.buffer.document,
50 "//div[@log='pan_rt']");
53 interactive("google-maps-pan-up",
54 "Pan a google map up",
56 dom_click_xpath(I.buffer.document,
57 "//div[@log='pan_up']");
60 interactive("google-maps-pan-down",
61 "Pan a google map down",
63 dom_click_xpath(I.buffer.document,
64 "//div[@log='pan_down']");
67 define_keymap("google_maps_keymap", $display_name = "google-maps");
68 define_key(google_maps_keymap, "C-c +", "google-maps-zoom-in");
69 define_key(google_maps_keymap, "C-c -", "google-maps-zoom-out");
70 define_key(google_maps_keymap, "C-f", "google-maps-pan-right");
71 define_key(google_maps_keymap, "C-b", "google-maps-pan-left");
72 define_key(google_maps_keymap, "C-n", "google-maps-pan-down");
73 define_key(google_maps_keymap, "C-p", "google-maps-pan-up");
75 define_keymaps_page_mode("google-maps-mode",
76 build_url_regexp($domain = "maps.google"),
77 { normal: google_maps_keymap },
78 $display_name = "Google Maps");
80 page_mode_activate(google_maps_mode);
82 provide("google-maps");