google-maps.js: change zoom bindings to C-c prefix
[conkeror.git] / modules / page-modes / google-maps.js
blob916dbea0ace76dcbd60cef3bd851be481f4a772b
1 /**
2  * (C) Copyright 2009-2010 John J. Foerch
3  *
4  * Use, modification, and distribution are subject to the terms specified in the
5  * COPYING file.
6 **/
8 in_module(null);
10 require("content-buffer.js");
12 function google_maps_control (buffer, xpath) {
13     var doc = buffer.document;
14     var iter = doc.evaluate(xpath,
15                             doc,
16                             xpath_lookup_namespace,
17                             Ci.nsIDOMXPathResult.FIRST_ORDERED_NODE_TYPE ,
18                             null);
19     var node = iter.singleNodeValue;
20     if (node) {
21         var rect = node.getBoundingClientRect();
22         dom_node_click(node, rect.left + 1, rect.top + 1);
23     }
26 function define_google_maps_command (name, doc, control) {
27     interactive("google-maps-" + name, doc, function(I) {
28                 google_maps_control(I.buffer, "//div[@log='" + control + "']");
29                 });
31 ignore_function_for_get_caller_source_code_reference("define_google_maps_command");
33 function define_google_maps_zoom_command (name, doc, control) {
34     interactive("google-maps-" + name, doc,
35                 function (I) {
36                     google_maps_control(I.buffer, "//div[@guidedhelpid='"+control+"']/div[@title]");
37                 });
39 ignore_function_for_get_caller_source_code_reference("define_google_maps_zoom_command");
41 define_google_maps_zoom_command('zoom-in', "Zoom in on a google map", "zoom_in");
42 define_google_maps_zoom_command('zoom-out', "Zoom out on a google map", "zoom_out");
43 define_google_maps_command('pan-left', "Pan a google map left", 'pan_lt');
44 define_google_maps_command('pan-right', "Pan a google map right", 'pan_rt');
45 define_google_maps_command('pan-up', "Pan a google map up", 'pan_up');
46 define_google_maps_command('pan-down', "Pan a google map down", 'pan_down');
48 define_keymap("google_maps_keymap", $display_name = "google-maps");
49 define_key(google_maps_keymap, "C-c +",   "google-maps-zoom-in");
50 define_key(google_maps_keymap, "C-c -",   "google-maps-zoom-out");
51 define_key(google_maps_keymap, "C-f", "google-maps-pan-right");
52 define_key(google_maps_keymap, "C-b", "google-maps-pan-left");
53 define_key(google_maps_keymap, "C-n", "google-maps-pan-down");
54 define_key(google_maps_keymap, "C-p", "google-maps-pan-up");
56 var google_maps_modality = {
57     normal: google_maps_keymap
60 define_page_mode("google_maps_mode",
61                  $display_name = "Google Maps",
62                  $enable = function (buffer) {
63                      buffer.content_modalities.push(google_maps_modality);
64                  },
65                  $disable = function (buffer) {
66                      var i = buffer.content_modalities.indexOf(google_maps_modality);
67                      if (i > -1)
68                          buffer.content_modalities.splice(i, 1);
69                  });
71 var google_maps_re = build_url_regex($domain = "maps.google");
72 auto_mode_list.push([google_maps_re, google_maps_mode]);
74 provide("google-maps");