… | |
… | |
458 | sub set_parent { |
458 | sub set_parent { |
459 | my ($self, $parent) = @_; |
459 | my ($self, $parent) = @_; |
460 | |
460 | |
461 | Scalar::Util::weaken ($self->{parent} = $parent); |
461 | Scalar::Util::weaken ($self->{parent} = $parent); |
462 | |
462 | |
|
|
463 | $self->{root} = $parent->{root}; |
|
|
464 | $self->{visible} = $parent->{visible}; |
|
|
465 | |
463 | # TODO: req_w _does_change after ->reconfigure |
466 | # TODO: req_w _does_change after ->reconfigure |
464 | $self->check_size |
467 | $self->check_size |
465 | unless exists $self->{req_w}; |
468 | unless exists $self->{req_w}; |
466 | |
469 | |
467 | $self->show; |
470 | $self->show; |
… | |
… | |
871 | $self->{vp}->add ($self->{scrolled}); |
874 | $self->{vp}->add ($self->{scrolled}); |
872 | $self->add ($self->{vp}); |
875 | $self->add ($self->{vp}); |
873 | $self->add ($self->{slider}); |
876 | $self->add ($self->{slider}); |
874 | |
877 | |
875 | $self |
878 | $self |
|
|
879 | } |
|
|
880 | |
|
|
881 | sub update { |
|
|
882 | my ($self) = @_; |
|
|
883 | |
|
|
884 | $self->SUPER::update; |
|
|
885 | |
|
|
886 | # todo: overwrite size_allocate of child |
|
|
887 | my $child = $self->{vp}->child; |
|
|
888 | $self->{slider}->set_range ([$self->{slider}{range}[0], 0, $child->{h}, $self->{vp}{h}, 1]); |
876 | } |
889 | } |
877 | |
890 | |
878 | sub size_allocate { |
891 | sub size_allocate { |
879 | my ($self, $w, $h) = @_; |
892 | my ($self, $w, $h) = @_; |
880 | |
893 | |
… | |
… | |
1168 | sub size_allocate { |
1181 | sub size_allocate { |
1169 | my ($self, $w, $h) = @_; |
1182 | my ($self, $w, $h) = @_; |
1170 | |
1183 | |
1171 | my ($ws, $hs) = $self->get_wh; |
1184 | my ($ws, $hs) = $self->get_wh; |
1172 | |
1185 | |
1173 | my $req_w = sum @$ws; |
1186 | my $req_w = (sum @$ws) || 1; |
1174 | my $req_h = sum @$hs; |
1187 | my $req_h = (sum @$hs) || 1; |
1175 | |
1188 | |
1176 | # TODO: nicer code && do row_expand |
1189 | # TODO: nicer code && do row_expand |
1177 | my @col_expand = @{$self->{col_expand}}; |
1190 | my @col_expand = @{$self->{col_expand}}; |
1178 | @col_expand = (1) x @$ws unless @col_expand; |
1191 | @col_expand = (1) x @$ws unless @col_expand; |
1179 | my $col_expand = (sum @col_expand) || 1; |
1192 | my $col_expand = (sum @col_expand) || 1; |
… | |
… | |
2133 | } |
2146 | } |
2134 | |
2147 | |
2135 | sub set_range { |
2148 | sub set_range { |
2136 | my ($self, $range) = @_; |
2149 | my ($self, $range) = @_; |
2137 | |
2150 | |
2138 | $self->{range} = $range; |
2151 | ($range, $self->{range}) = ($self->{range}, $range); |
2139 | |
2152 | |
2140 | $self->update; |
2153 | $self->update |
|
|
2154 | if "@$range" ne "@{$self->{range}}"; |
2141 | } |
2155 | } |
2142 | |
2156 | |
2143 | sub set_value { |
2157 | sub set_value { |
2144 | my ($self, $value) = @_; |
2158 | my ($self, $value) = @_; |
2145 | |
2159 | |
… | |
… | |
2748 | $self->{scrolled}->add (1, $row, $item->{desc_widget}); |
2762 | $self->{scrolled}->add (1, $row, $item->{desc_widget}); |
2749 | $self->{scrolled}->add (2, $row, $item->{weight_widget}); |
2763 | $self->{scrolled}->add (2, $row, $item->{weight_widget}); |
2750 | |
2764 | |
2751 | $row++; |
2765 | $row++; |
2752 | } |
2766 | } |
2753 | |
|
|
2754 | # $range->{range} = [$self->{pos}, 0, $self->{max_pos}, $page]; |
|
|
2755 | } |
2767 | } |
2756 | |
2768 | |
2757 | sub size_request { |
2769 | sub size_request { |
2758 | my ($self) = @_; |
2770 | my ($self) = @_; |
2759 | ($self->{req_w}, $self->{req_h}); |
2771 | ($self->{req_w}, $self->{req_h}); |