diff options
author | Tom Feist <shabble@cowu.be> | 2010-07-24 17:23:55 +0000 |
---|---|---|
committer | Tom Feist <shabble@cowu.be> | 2010-07-24 17:23:55 +0000 |
commit | b6008b33538e96716798d7079a7e6aaaf90fe738 (patch) | |
tree | b4c260c665ef1a62bb75820a1a864f0161662c03 /prompt_info | |
parent | moved most tests to feature-tests/ (diff) | |
download | irssi-scripts-b6008b33538e96716798d7079a7e6aaaf90fe738.tar.gz irssi-scripts-b6008b33538e96716798d7079a7e6aaaf90fe738.zip |
moved prompt_info to its own subdir
Diffstat (limited to 'prompt_info')
-rw-r--r-- | prompt_info/prompt_info.pl | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/prompt_info/prompt_info.pl b/prompt_info/prompt_info.pl new file mode 100644 index 0000000..ad5321b --- /dev/null +++ b/prompt_info/prompt_info.pl @@ -0,0 +1,77 @@ +# Usage: + +# edit your theme, find the line beginning: +# +# prompt = "..." +# +# and add the string `$prompt_additional' somewhere inside it. +# If using the default: prompt = "[$*] ", then a good value would be: +# +# prompt = "[$*$prompt_additional] " +# +# Then add this script to your autorun directory (~/.irssi/scripts/autorun/) +# +# You can modify your prompt content by using the '/set_prompt <string>' command, +# or from scripts by Irssi:signal_emit('change prompt', $string); + +use strict; +use warnings; + +use Irssi; +use Irssi::TextUI; # for sbar_items_redraw + +use vars qw($VERSION %IRSSI); +$VERSION = "1.0.1"; +%IRSSI = + ( + authors => "shabble", + contact => 'shabble+irssi@metavore.org, shabble@#irssi/Freenode', + name => "prompt_info", + description => "Helper script for dynamically adding text " + . "into the input-bar prompt.", + license => "Public Domain", + changed => "24/7/2010" + ); + +sub DEBUG () { 0 } + +my $prompt_additional_content = ''; + +Irssi::expando_create('prompt_additional', \&expando_prompt, {}); + +sub expando_prompt { + my ($server, $witem, $arg) = @_; + return $prompt_additional_content; +} + +sub redraw_prompts { + Irssi::statusbar_items_redraw ('prompt'); + Irssi::statusbar_items_redraw ('prompt_empty'); +} + +sub handle_change_prompt_sig { + my ($text) = @_; + + print "Got prompt change sig with: $text" if DEBUG; + + my $expanded_text = Irssi::parse_special($text); + my $changed = ($expanded_text ne $prompt_additional_content); + + $prompt_additional_content = $expanded_text; + + if ($changed) { + print "Redrawing prompts" if DEBUG; + redraw_prompts(); + } +} + +sub prompt_additional_cmd { + my ($str) = @_; + print "Setting prompt to: $str" if DEBUG; + Irssi::signal_emit('change prompt', $str); +} + +Irssi::signal_register({'change prompt' => [qw/string/]}); +Irssi::signal_add('change prompt' => \&handle_change_prompt_sig); + +Irssi::command_bind('set_prompt' => \&prompt_additional_cmd); |