… | |
… | |
221 | $self->{user_w} = ($layout->{w} != 0 ? $layout->{w} : 1) * $::WIDTH; |
221 | $self->{user_w} = ($layout->{w} != 0 ? $layout->{w} : 1) * $::WIDTH; |
222 | $self->{user_h} = ($layout->{h} != 0 ? $layout->{h} : 1) * $::HEIGHT; |
222 | $self->{user_h} = ($layout->{h} != 0 ? $layout->{h} : 1) * $::HEIGHT; |
223 | } |
223 | } |
224 | |
224 | |
225 | $self |
225 | $self |
|
|
226 | } |
|
|
227 | |
|
|
228 | sub toggle_visibility { |
|
|
229 | my ($self) = @_; |
|
|
230 | |
|
|
231 | if ($self->{visible}) { |
|
|
232 | $self->hide; |
|
|
233 | } else { |
|
|
234 | $self->show; |
|
|
235 | } |
226 | } |
236 | } |
227 | |
237 | |
228 | sub destroy { |
238 | sub destroy { |
229 | my ($self) = @_; |
239 | my ($self) = @_; |
230 | |
240 | |
… | |
… | |
2592 | state => 0, |
2602 | state => 0, |
2593 | on_activate => \&toggle_flopper, |
2603 | on_activate => \&toggle_flopper, |
2594 | @_ |
2604 | @_ |
2595 | ); |
2605 | ); |
2596 | |
2606 | |
2597 | if ($self->{state}) { |
|
|
2598 | $self->{state} = 0; |
|
|
2599 | $self->toggle_flopper; |
|
|
2600 | } |
|
|
2601 | |
|
|
2602 | $self |
2607 | $self |
2603 | } |
2608 | } |
2604 | |
2609 | |
2605 | sub toggle_flopper { |
2610 | sub toggle_flopper { |
2606 | my ($self) = @_; |
2611 | my ($self) = @_; |
2607 | |
2612 | |
2608 | # TODO: use animation |
2613 | $self->{other}->toggle_visibility; |
2609 | if ($self->{state} = !$self->{state}) { |
|
|
2610 | $CFClient::UI::ROOT->add ($self->{other}); |
|
|
2611 | $self->{other}->move ($self->coord2global (0, $self->{h})); |
|
|
2612 | $self->_emit ("open"); |
|
|
2613 | } else { |
|
|
2614 | $CFClient::UI::ROOT->remove ($self->{other}); |
|
|
2615 | $self->_emit ("close"); |
|
|
2616 | } |
|
|
2617 | |
|
|
2618 | $self->_emit (changed => $self->{state}); |
|
|
2619 | } |
2614 | } |
2620 | |
2615 | |
2621 | ############################################################################# |
2616 | ############################################################################# |
2622 | |
2617 | |
2623 | package CFClient::UI::Tooltip; |
2618 | package CFClient::UI::Tooltip; |