1use strict;
2use vars qw($VERSION %IRSSI);
3use Irssi;
4use Irssi::Irc;
5use Irssi::TextUI;
6
7my $instrut =
8  ".--------------------------------------------------.\n".
9  "| 1.) shell> mkdir ~/.irssi/scripts                |\n".
10  "| 2.) shell> cp twprompt.pl ~/.irssi/scripts/      |\n".
11  "| 3.) shell> cp twprompt.pl ~/.irssi/scripts/      |\n".
12  "| 4.) shell> mkdir ~/.irssi/scripts/autorun        |\n".
13  "| 5.) shell> ln -s ~/.irssi/scripts/twprompt.pl \\  |\n".
14  "|            ~/.irssi/scripts/autorun/twprompt.pl  |\n".
15  "| 6.) /sbar prompt remove prompt                   |\n".
16  "| 7.) /sbar prompt remove prompt_empty             |\n".
17  "| 8.) /sbar prompt add -before input -priority 100 |\n".
18  "|           -alignment left twprompt               |\n".
19  "| 9.) /toggle twprompt_instruct and last /save     |\n".
20  "|--------------------------------------------------|\n".
21  "|  Options:                               Default: |\n".
22  "|  /set twprompt_refresh <speed>              100  |\n".
23  "|  /set twprompt_color_a <string>             %%C   |\n".
24  "|  /set twprompt_color_b <string>             %%c   |\n".
25  "|  /toggle twprompt_instruct |Startup instructions |\n".
26  "\`--------------------------------------------------'";
27
28
29$VERSION = '1.00';
30%IRSSI = (
31   authors	=> 'John Engelbrecht',
32   contact	=> 'jengelbr@yahoo.com',
33   name	        => 'twprompt.pl',
34   description	=> 'BitchX\'s CrackRock3 animated prompt bar.',
35   sbitems      => 'twprompt',
36   license	=> 'Public Domain',
37   changed	=> 'Wed Sep 29 02:58:28 CDT 2004',
38   url		=> 'http://irssi.darktalker.net'."\n",
39);
40
41my $twprompt_file = "$ENV{HOME}/.irssi/twprompt.data";
42my $num = 1;
43my $jk=0;
44my $timeout;
45
46sub reload { Irssi::statusbar_items_redraw('twprompt'); }
47
48sub setup {
49   my $time = Irssi::settings_get_int('twprompt_refresh');
50   Irssi::timeout_remove($timeout);
51   $timeout = Irssi::timeout_add($time, 'reload' , undef);
52}
53
54sub show {
55   my ($item, $get_size_only) = @_;
56   my $text = get();
57   $item->default_handler($get_size_only, "{prompt ".$text."}", undef, 1);
58}
59
60sub get {
61   my $str = Irssi::active_win()->{active}->{name};
62   $str = "Status" if($str eq "");
63   my @chars = split //, $str;
64   my $total = $#chars;
65   my $text = "";
66   my $col_a = Irssi::settings_get_str('twprompt_color_a');
67   my $col_b = Irssi::settings_get_str('twprompt_color_b');
68   for my $cx (0..$total) {
69      if($cx == ($num - 1)) {
70         $text.=$col_a.$chars[$cx];
71      } else {
72         $text.=$col_b.$chars[$cx];
73         }
74      }
75   if(!$jk)  {
76      $jk=1;
77      return $text;
78      }
79   if($num <= ($total + 1)) {
80      $num++;
81      }
82   else {
83      $num = 1;
84      }
85   $jk=0;
86   return $text;
87}
88
89Irssi::statusbar_item_register('twprompt', '$0', 'show');
90Irssi::settings_add_str('tech_addon', 'twprompt_color_b',"%c");
91Irssi::settings_add_str('tech_addon', 'twprompt_color_a',"%C");
92Irssi::settings_remove('twprompt_instruct');
93Irssi::settings_add_bool('tech_addon', 'twprompt_instruct', 1);
94Irssi::settings_add_int('tech_addon', 'twprompt_refresh', 100);
95Irssi::signal_add('setup changed', 'setup');
96$timeout = Irssi::timeout_add(Irssi::settings_get_int('twprompt_refresh'), 'reload' , undef);
97
98if(Irssi::settings_get_bool('twprompt_instruct')) {
99   print $instrut;
100   }
101