From 5ad9608ab4c8e828ea979377ce94066a3f7ddccb Mon Sep 17 00:00:00 2001 From: Tom Feist Date: Sat, 24 Jul 2010 19:04:17 +0100 Subject: moved testing stuff to a signle dir --- scrolled-reminder/scrolled_reminder.pl | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 scrolled-reminder/scrolled_reminder.pl (limited to 'scrolled-reminder/scrolled_reminder.pl') diff --git a/scrolled-reminder/scrolled_reminder.pl b/scrolled-reminder/scrolled_reminder.pl new file mode 100644 index 0000000..d768220 --- /dev/null +++ b/scrolled-reminder/scrolled_reminder.pl @@ -0,0 +1,67 @@ +use strict; +use warnings; + +use Irssi; +use Irssi::TextUI; +use Irssi::Irc; + +use Data::Dumper; + +our $VERSION = '0.01'; +our %IRSSI = ( + authors => 'Tom Feist', + contact => 'shabble@cowu.be', + name => 'scrolled-reminder', + description => 'Requires confirmation to messages sent' + . 'when the current window is scrolled up', + + license => 'WTFPL; http://sam.zoy.org/wtfpl/', + url => 'http://metavore.org/', + ); + + +sub handle_send_text { + my ($text, $server_tag, $win_item) = @_; + unless ($win_item) { + # not all windows have window-items (eg: status window) + return; + } + + my $window = $win_item->window; + my $view = $window->view; + + if ($view->{bottom} != 1) { + # we're scrolled up. + unless (require_confirmation($window)) { + Irssi::signal_stop; + } + } +} + +sub handle_keypress { + my ($key) = @_; + Irssi::print("key pressed: " . $key); + if ($key == 3) { # Ctrl-c + } elsif ($key == 11) { # Ctrl-k + } else { + } + + Irssi::signal_remove('gui key pressed', \&handle_keypress); +} + +sub require_confirmation { + my ($window) = @_; + Irssi::signal_add_first('gui key pressed', \&handle_keypress); + + $window->print("You are scrolled up Really send?"); + write_to_prompt($window, 'Press Ctrl-K to confirm, Ctrl-C to cancel '); +} + +sub write_to_prompt { + my ($window, $msg) = @_; + #$window->command("insert_text $msg"); + +} + +Irssi::signal_add_first('send text', 'handle_send_text'); + -- cgit v1.2.3