ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/UI.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC/UI.pm (file contents):
Revision 1.256 by root, Tue May 30 01:42:16 2006 UTC vs.
Revision 1.257 by root, Tue May 30 02:22:02 2006 UTC

1026 1026
1027 my $self = $class->SUPER::new ( 1027 my $self = $class->SUPER::new (
1028 bg => [1, 1, 1, 1], 1028 bg => [1, 1, 1, 1],
1029 border_bg => [1, 1, 1, 1], 1029 border_bg => [1, 1, 1, 1],
1030 border => 0.6, 1030 border => 0.6,
1031 is_toplevel => 1,
1032 can_events => 1, 1031 can_events => 1,
1033 @_ 1032 @_
1034 ); 1033 );
1035 1034
1036 $self->{title} &&= new CFClient::UI::Label 1035 $self->{title} &&= new CFClient::UI::Label
2164 fg => [1, 1, 1], 2163 fg => [1, 1, 1],
2165 active_fg => [0, 0, 0], 2164 active_fg => [0, 0, 0],
2166 bg => [0, 0, 0, 0.2], 2165 bg => [0, 0, 0, 0.2],
2167 active_bg => [1, 1, 1, 0.5], 2166 active_bg => [1, 1, 1, 0.5],
2168 range => [0, 0, 100, 10, 0], 2167 range => [0, 0, 100, 10, 0],
2169 req_w => $::WIDTH / 80, 2168 min_w => $::WIDTH / 80,
2170 req_h => $::WIDTH / 80, 2169 min_h => $::WIDTH / 80,
2171 vertical => 0, 2170 vertical => 0,
2172 can_hover => 1, 2171 can_hover => 1,
2173 inner_pad => 0.02, 2172 inner_pad => 0.02,
2174 @_ 2173 @_
2175 ); 2174 );
2215} 2214}
2216 2215
2217sub size_request { 2216sub size_request {
2218 my ($self) = @_; 2217 my ($self) = @_;
2219 2218
2220 my $w = $self->{req_w}; 2219 ($self->{req_w}, $self->{req_h})
2221 my $h = $self->{req_h};
2222
2223 $self->{vertical} ? ($h, $w) : ($w, $h)
2224} 2220}
2225 2221
2226sub button_down { 2222sub button_down {
2227 my ($self, $ev, $x, $y) = @_; 2223 my ($self, $ev, $x, $y) = @_;
2228 2224
3141 3137
3142 my $widget = pop @queue || last; 3138 my $widget = pop @queue || last;
3143 3139
3144 $widget->{visible} or last; # do not resize invisible widgets 3140 $widget->{visible} or last; # do not resize invisible widgets
3145 3141
3146 my ($w, $h) = exists $widget->{force_w} && exists $widget->{force_h} 3142 my ($w, $h) = $widget->size_request;
3147 ? @$widget{qw(force_w force_h)}
3148 : $widget->size_request;
3149 3143
3150 my $min_size = $widget->{is_toplevel} ? 16 : 0; 3144 my $min_size = $widget->{is_toplevel} ? 16 : 0;
3151 3145
3152 $w = $min_size if $w < $min_size; 3146 $w = List::Util::max $widget->{min_w} || $widget->{is_toplevel} * 16, $w;
3153 $h = $min_size if $h < $min_size; 3147 $h = List::Util::max $widget->{min_h} || $widget->{is_toplevel} * 16, $h;
3148
3149 $w = $widget->{force_w} if exists $widget->{force_w};
3150 $h = $widget->{force_h} if exists $widget->{force_h};
3154 3151
3155 $widget->{req_w} = $w; 3152 $widget->{req_w} = $w;
3156 $widget->{req_h} = $h; 3153 $widget->{req_h} = $h;
3157 3154
3158 $self->{size_alloc}{$widget} = [$widget, undef, undef]; 3155 $self->{size_alloc}{$widget} = [$widget, undef, undef];
3159 3156
3160 push @queue, $widget->{parent} 3157 push @queue, $widget->{parent}
3161 if $widget->{parent}; 3158 if ($self->{w} != $w || $self->{h} != $h) && $widget->{parent};
3162 } 3159 }
3163 } 3160 }
3164 3161
3165 while (my $size_alloc = delete $self->{size_alloc}) { 3162 while (my $size_alloc = delete $self->{size_alloc}) {
3166 my @queue = sort $b->[0]{visible} <=> $a->[0]{visible}, 3163 my @queue = sort $b->[0]{visible} <=> $a->[0]{visible},

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines