From: David Glasser <[EMAIL PROTECTED]>

---
 modules/conkeror.js         |    1 +
 modules/page-modes/gmail.js |   26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 0 deletions(-)
 create mode 100644 modules/page-modes/gmail.js

diff --git a/modules/conkeror.js b/modules/conkeror.js
index 898f2c4..0cecf9f 100644
--- a/modules/conkeror.js
+++ b/modules/conkeror.js
@@ -55,6 +55,7 @@ require("ssl.js");
 require("media.js");
 require("page-modes/youtube.js");
 require("page-modes/google-video.js");
+require("page-modes/gmail.js");
 
 //require("scroll-bars.js");
 
diff --git a/modules/page-modes/gmail.js b/modules/page-modes/gmail.js
new file mode 100644
index 0000000..edeaac6
--- /dev/null
+++ b/modules/page-modes/gmail.js
@@ -0,0 +1,26 @@
+require("content-buffer.js");
+require("bindings/default/content-buffer/normal.js");
+
+var gmail_keymap = new keymap($parent = content_buffer_normal_keymap);
+
+function gmail_label_go(buffer, label)
+{
+    buffer.window.content.location.hash = "#label/" + 
encodeURIComponent(label);
+}
+interactive("gmail-label-go",
+            "Go to a GMail label.",
+            function(I) {
+              gmail_label_go(I.buffer, (yield I.minibuffer.read($prompt = "Go 
to label: ")));
+            });
+
+define_key(gmail_keymap, "C-c g", "gmail-label-go");
+
+define_page_mode("gmail_mode", "GMail", $enable = function (buffer) {
+                   buffer.local_variables.content_buffer_normal_keymap = 
gmail_keymap;
+                   buffer.keymap = gmail_keymap;
+                 }, $disable = function (buffer) {
+                   delete buffer.local_variables.content_buffer_normal_keymap;
+                   buffer.keymap = content_buffer_normal_keymap;
+                 });
+
+auto_mode_list.push([/^https?:\/\/mail\.google\.com\//, gmail_mode]);
-- 
1.5.4.3

_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror

Reply via email to