(Commit as [EMAIL PROTECTED], not [EMAIL PROTECTED])
I don't know if the idiom I made up for doing a mode keymap was reasonable.
gmail-label-go really ought to take a list of labels as a completion.
The greasemonkey script I use does this to get that list:
function getLabels() {
var navPaneNode = gmail.getNavPaneElement();
var labelNodes = getNodesByTagNameAndClass(
navPaneNode, "div", LABEL_ITEM_CLASS_NAME);
var labels = [];
for (var i = 0, labelNode; labelNode = labelNodes[i]; i++) {
var labelName = labelNode.textContent.replace(UNREAD_COUNT_RE, "");
labels.push(labelName);
}
return labels;
}
In this context, "gmail" is the gmail API object loaded from the
gmonkey object described here:
http://code.google.com/p/gmail-greasemonkey/wiki/GmailGreasemonkey10API
I couldn't get that to work, though. Maybe Conkeror doesn't have unsafeWindow?
--dave
On Sat, Apr 5, 2008 at 12:04 AM, David Glasser <[EMAIL PROTECTED]> wrote:
> 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
>
--
David Glasser | [EMAIL PROTECTED] | http://www.davidglasser.net/
_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror