The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Kwiki::DoubleClickToEdit;
use Kwiki::Plugin -Base;
use mixin 'Kwiki::Installer';
use 5.006001;
our $VERSION = '0.10';

const class_id => 'double_click_to_edit';

sub javascript_file {
    return $self->preferences->double_click_to_edit->value
    ? 'double_click_to_edit.js'
    : ''
}

sub register {
    my $registry = shift;
    $registry->add(preload => 'double_click_to_edit');
    $registry->add(preference => $self->double_click);
}

sub double_click {
    my $p = $self->new_preference('double_click_to_edit');
    $p->query('Kwiki Double Click To Edit?');
    $p->type('boolean');
    $p->default('1');
    return $p;
}

__DATA__

=head1 NAME 

Kwiki::DoubleClickToEdit - Double Click Starts Edit

=head1 SYNOPSIS

=head1 DESCRIPTION

=head1 AUTHOR

Ingy döt Net <ingy@cpan.org>

=head1 COPYRIGHT

Copyright (c) 2006. Ingy döt Net. All rights reserved.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

=cut

__javascript/double_click_to_edit.js__
(
function() {
    var ol = window.onload;
    var doubleclick = function() {
        var links = document.getElementsByTagName('a');
        for (var i = 0; i < links.length; i++) {
            var link = links[i];
            var href = link.getAttribute('href');
            if (! href) continue;
            if (! href.match(/action=edit/)) continue;
            window.location = href;
            break;
        }
    };
    window.onload = function() {
        if (ol) ol();
        document.body.ondblclick = doubleclick;
    }
}
)();