… | |
… | |
360 | $self->{force_h} = $h; |
360 | $self->{force_h} = $h; |
361 | |
361 | |
362 | $self->realloc; |
362 | $self->realloc; |
363 | } |
363 | } |
364 | |
364 | |
365 | # travsle the widget chain up to find the maximum "physical" size constraints |
365 | # traverse the widget chain up to find the maximum "physical" size constraints |
366 | sub get_max_wh { |
366 | sub get_max_wh { |
367 | my ($self) = @_; |
367 | my ($self) = @_; |
368 | |
|
|
369 | return ($self->{alloc_w}, $self->{alloc_h}) |
|
|
370 | if $self->{alloc_w} && !$self->{root}{realloc}{$self+0}; |
|
|
371 | |
368 | |
372 | return $self->{parent}->get_max_wh |
369 | return $self->{parent}->get_max_wh |
373 | if $self->{parent}; |
370 | if $self->{parent}; |
374 | |
371 | |
375 | ($::WIDTH, $::HEIGHT) |
372 | ($::WIDTH, $::HEIGHT) |
… | |
… | |
1388 | $self->CFPlus::UI::Container::add ($self->{title_widget}) if $self->{title_widget}; |
1385 | $self->CFPlus::UI::Container::add ($self->{title_widget}) if $self->{title_widget}; |
1389 | } |
1386 | } |
1390 | |
1387 | |
1391 | sub border { |
1388 | sub border { |
1392 | int $_[0]{border} * $::FONTSIZE |
1389 | int $_[0]{border} * $::FONTSIZE |
|
|
1390 | } |
|
|
1391 | |
|
|
1392 | sub get_max_wh { |
|
|
1393 | my ($self) = @_; |
|
|
1394 | |
|
|
1395 | return ($self->{w}, $self->{h}) |
|
|
1396 | if $self->{visible} && $self->{w}; |
|
|
1397 | |
|
|
1398 | $self->SUPER::get_max_wh |
1393 | } |
1399 | } |
1394 | |
1400 | |
1395 | sub size_request { |
1401 | sub size_request { |
1396 | my ($self) = @_; |
1402 | my ($self) = @_; |
1397 | |
1403 | |
… | |
… | |
4119 | } |
4125 | } |
4120 | |
4126 | |
4121 | sub _set_value { |
4127 | sub _set_value { |
4122 | my ($self, $value) = @_; |
4128 | my ($self, $value) = @_; |
4123 | |
4129 | |
4124 | my ($item) = grep $_->[0] eq $value, @{ $self->{options} } |
4130 | my ($item) = grep $_->[0] eq $value, @{ $self->{options} }; |
|
|
4131 | $item ||= $self->{options}[0] |
4125 | or return; |
4132 | or return; |
4126 | |
4133 | |
4127 | $self->{value} = $item->[0]; |
4134 | $self->{value} = $item->[0]; |
4128 | $self->set_markup ("$item->[1] ⇓"); |
4135 | $self->set_markup ("$item->[1] ⇓"); |
4129 | $self->set_tooltip ($item->[2]); |
4136 | # $self->set_tooltip ($item->[2]); |
4130 | } |
4137 | } |
4131 | |
4138 | |
4132 | sub set_value { |
4139 | sub set_value { |
4133 | my ($self, $value) = @_; |
4140 | my ($self, $value) = @_; |
4134 | |
4141 | |
4135 | return unless $self->{value} ne $value; |
4142 | return unless $self->{value} ne $value; |
4136 | |
4143 | |
4137 | $self->_set_value ($value); |
4144 | $self->_set_value ($value); |
4138 | $self->emit (changed => $value); |
4145 | $self->emit (changed => $value); |
|
|
4146 | } |
|
|
4147 | |
|
|
4148 | sub set_options { |
|
|
4149 | my ($self, $options) = @_; |
|
|
4150 | |
|
|
4151 | $self->{options} = $options; |
|
|
4152 | $self->_set_value ($self->{value}); |
4139 | } |
4153 | } |
4140 | |
4154 | |
4141 | ############################################################################# |
4155 | ############################################################################# |
4142 | |
4156 | |
4143 | package CFPlus::UI::Statusbox; |
4157 | package CFPlus::UI::Statusbox; |