BEGIN { $ENV{'DYLD_LIBRARY_PATH'} = '/Users/rvosa/CIPRES-and-deps/cipres-1.0.1/build/lib/perl/lib/ext/lib:' . $ENV{'DYLD_LIBRARY_PATH'}; use lib '/Users/rvosa/CIPRES-and-deps/cipres-1.0.1/build/lib/perl/lib'; } use strict; use POE qw(Component::XUL Wheel::FollowTail); use XUL::Node; use XUL::Node::Application; use base 'XUL::Node::Application'; my $ROOT = '/Users/rvosa/CIPRES-and-deps/cipres-1.0.1/build/lib/perl/lib/xul-node/'; my $PORT = 8077; my $LOGFILE = $ENV{'HOME'} . '/registry.log'; POE::Session->create( 'inline_states' => { '_start' => sub { my $kernel = $_[KERNEL]; my $heap = $_[HEAP]; my $session = $_[SESSION]; POE::Component::XUL->spawn( { 'port' => $PORT, 'root' => $ROOT, 'apps' => { 'Test' => sub { return Window( $heap->{'tb'} = TextBox(), ); } }, } ); $heap->{'wheel'} = POE::Wheel::FollowTail->new( 'Filename' => $LOGFILE, 'InputEvent' => 'got_line', 'SeekBack' => 1024, ); $heap->{'first'} = 0; }, 'got_line' => sub { my $heap = $_[HEAP]; my $tb = $heap->{'tb'}; my $msg = $_[ARG0]; if ( $heap->{'first'}++ && defined $tb ) { # THIS DOESN'T WORK, NO UPDATE IN WIDGET $tb->value( $msg ); print "POSTED TO TEXTBOX: $msg\n"; } elsif ( $heap->{'first'}++ && ! defined $tb ) { print "NO TEXTBOX: $msg\n"; } }, }, ); $poe_kernel->run();