diff options
Diffstat (limited to 'plugins/perl/char_count.pl')
-rw-r--r-- | plugins/perl/char_count.pl | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/plugins/perl/char_count.pl b/plugins/perl/char_count.pl deleted file mode 100644 index 418046f4..00000000 --- a/plugins/perl/char_count.pl +++ /dev/null @@ -1,101 +0,0 @@ - -use strict; -use warnings; -use Xchat qw(:all); -use Glib qw(TRUE FALSE); -use Gtk2 -init; - -sub get_inputbox { - my $widget = Glib::Object->new_from_pointer( get_info( "win_ptr" ), 0 ); - my $input_box; - - my @containers = ($widget); - - while( @containers ) { - my $container = shift @containers; - - for my $child ( $container->get_children ) { - if( $child->get( "name" ) eq 'xchat-inputbox' ) { - $input_box = $child; - last; - } elsif( $child->isa( "Gtk2::Container" ) ) { - push @containers, $child; - } - } - } - return $input_box; -} - -sub get_hbox { - my $widget = shift; - my $hbox; - - while( $widget->parent ) { - if( $widget->parent->isa( "Gtk2::HBox" ) ) { - return $widget->parent; - } - $widget = $widget->parent; - } - -} - -my $input_box = get_inputbox(); - -if( $input_box ) { - my $hbox = get_hbox( $input_box ); - if( $hbox ) { - my $label = Gtk2::Label->new(); - $label->set_alignment( 0.5, ($label->get_alignment)[1] ); - $hbox->pack_end( $label, 0, 0, 5 ); - $label->show(); - - my $update_label = sub { - my $ctx_type = context_info->{"type"}; - hook_timer( 0, sub { - if( $ctx_type == 2 || $ctx_type == 3 ) { - my $count = length get_info "inputbox"; - $label->set_text( $count ? $count : "" ); - } else { - $label->set_text( "" ); - } - return REMOVE; - }); - return EAT_NONE; - }; - - hook_print( "Key Press", $update_label ); - hook_print( "Focus Tab", $update_label ); - hook_print( "Focus Window", $update_label ); - hook_command( "", - sub { - $label->set_text( "" ); - return EAT_NONE; - } - ); - - my @handlers; - my $buffer = $input_box->get_buffer; - my $handler = sub { $update_label->(); return TRUE }; - - if( $buffer->isa( "Gtk2::TextBuffer" ) ) { - push @handlers, $buffer->signal_connect( "changed", $handler ); - } elsif( $buffer->isa( "Gtk2::EntryBuffer" ) ) { - push @handlers, - $buffer->signal_connect( "deleted-text", $handler ); - $buffer->signal_connect( "inserted-text", $handler ); - } - - register( "Character Counter", "1.0.0", - "Display the number of characters in the inputbox", - sub { - $hbox->remove( $label ); - $buffer->signal_handler_disconnect( $_ ) for @handlers; - } - ); - } else { - prnt "Counldn't find hbox"; - } - -} else { - prnt "Couldn't fint input box"; -} |