--- deliantra/Deliantra-Client/DC/UI.pm 2006/04/22 23:11:32 1.149 +++ deliantra/Deliantra-Client/DC/UI.pm 2006/04/23 00:08:29 1.150 @@ -98,6 +98,7 @@ x => 0, y => 0, z => 0, + can_events => 1, @_ }, $class; @@ -280,6 +281,8 @@ sub find_widget { my ($self, $x, $y) = @_; + return () unless $self->{can_events}; + return $self if $x >= $self->{x} && $x < $self->{x} + $self->{w} && $y >= $self->{y} && $y < $self->{y} + $self->{h}; @@ -381,6 +384,11 @@ our @ISA = CFClient::UI::Base::; +sub new { + my ($class, %arg) = @_; + $class->SUPER::new (can_events => 0, %arg); +} + sub size_request { (0, 0) } @@ -398,7 +406,7 @@ my $children = delete $arg{children} || []; - my $self = $class->SUPER::new (children => [], %arg); + my $self = $class->SUPER::new (children => [], can_events => 0, %arg); $self->add ($_) for @$children; $self @@ -662,6 +670,7 @@ bg => [1, 1, 1, 1], border_bg => [1, 1, 1, 1], border => 0.8, + can_events => 1, @_ ); @@ -1064,6 +1073,7 @@ valign => -1, padding => 2, layout => new CFClient::Layout, + can_events => 0, %arg ); @@ -1198,6 +1208,7 @@ can_hover => 1, can_focus => 1, valign => 0, + can_events => 1, @_ ) } @@ -1392,6 +1403,7 @@ can_hover => 1, align => 0, valign => 0, + can_events => 1, @_ ) } @@ -1506,7 +1518,7 @@ sub new { my $class = shift; - my $self = $class->SUPER::new (@_); + my $self = $class->SUPER::new (can_events => 0, @_); $self->{image} or confess "Image has 'image' not set. This is a fatal error!"; @@ -1681,13 +1693,20 @@ @_, ); - $self->add ($self->{value} = new CFClient::UI::Label valign => 1, align => 0, template => "999"); + $self->{value} = new CFClient::UI::Label valign => 1, align => 0, template => "999"; + $self->{max} = new CFClient::UI::Label valign => 1, align => 0, template => "999"; + $self->add ($self->{value}); $self->add ($self->{gauge} = new CFClient::UI::VGauge type => $self->{type}, expand => 1); - $self->add ($self->{max} = new CFClient::UI::Label valign => 1, align => 0, template => "999"); + $self->add ($self->{max}); $self } +sub size_request { + my ($self) = @_; + (($self->{max}->size_request)[0], 0) +} + sub set_fontsize { my ($self, $fsize) = @_; @@ -2059,6 +2078,7 @@ my $self = $class->SUPER::new ( state => 0, connect_activate => \&toggle_flopper, + can_events => 1, @_ );