… | |
… | |
240 | %$self = (); |
240 | %$self = (); |
241 | } |
241 | } |
242 | |
242 | |
243 | sub show { |
243 | sub show { |
244 | my ($self) = @_; |
244 | my ($self) = @_; |
|
|
245 | |
245 | return if $self->{parent}; |
246 | return if $self->{parent}; |
246 | |
247 | |
247 | $CFClient::UI::ROOT->add ($self); |
248 | $CFClient::UI::ROOT->add ($self); |
248 | } |
249 | } |
249 | |
250 | |
250 | sub center { |
251 | sub center { |
251 | my ($self) = @_; |
252 | my ($self) = @_; |
252 | |
253 | |
253 | $CFClient::UI::ROOT->on_post_alloc ( |
254 | $CFClient::UI::ROOT->on_post_alloc ( |
254 | "center_$self" => sub { |
255 | "center_$self" => sub { |
255 | $self->move (($::WIDTH - $self->{w}) * 0.5, ($::HEIGHT - $self->{h}) * 0.5); |
256 | $self->move (($self->{parent}{w} - $self->{w}) * 0.5, ($self->{parent}{h} - $self->{h}) * 0.5); |
256 | }, |
257 | }, |
257 | ); |
258 | ); |
258 | |
259 | |
259 | $self->update; |
260 | $self->update; |
260 | } |
261 | } |
… | |
… | |
265 | return if $self->{visible}; |
266 | return if $self->{visible}; |
266 | |
267 | |
267 | $self->{root} = $self->{parent}{root}; |
268 | $self->{root} = $self->{parent}{root}; |
268 | $self->{visible} = $self->{parent}{visible} + 1; |
269 | $self->{visible} = $self->{parent}{visible} + 1; |
269 | |
270 | |
270 | $self->emit (visibility_change => 1) |
271 | $self->emit (visibility_change => 1); |
271 | } |
272 | } |
272 | |
273 | |
273 | sub set_invisible { |
274 | sub set_invisible { |
274 | my ($self) = @_; |
275 | my ($self) = @_; |
275 | |
276 | |
… | |
… | |
3122 | } |
3123 | } |
3123 | } |
3124 | } |
3124 | } |
3125 | } |
3125 | |
3126 | |
3126 | while ($self->{size_alloc}) { |
3127 | while ($self->{size_alloc}) { |
|
|
3128 | for ( |
|
|
3129 | sort { $a->[0]{visible} <=> $b->[0]{visible} } |
3127 | for (values %{delete $self->{size_alloc}}) { |
3130 | values %{delete $self->{size_alloc}} |
|
|
3131 | ) { |
3128 | my ($widget, $w, $h) = @$_; |
3132 | my ($widget, $w, $h) = @$_; |
3129 | |
3133 | |
3130 | $w = 0 if $w < 0; |
3134 | $w = 0 if $w < 0; |
3131 | $h = 0 if $h < 0; |
3135 | $h = 0 if $h < 0; |
3132 | |
3136 | |