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.228 by root, Wed May 24 03:52:54 2006 UTC vs.
Revision 1.229 by root, Wed May 24 21:49:58 2006 UTC

816 816
817 my $slider = new CFClient::UI::Slider 817 my $slider = new CFClient::UI::Slider
818 vertical => 1, 818 vertical => 1,
819 range => [0, 0, 1, 0.01], # HACK fix 819 range => [0, 0, 1, 0.01], # HACK fix
820 connect_changed => sub { 820 connect_changed => sub {
821 $self->{vp}->set_offset (0, $_[1] * ($self->{vp}{child_h} - $self->{vp}{h})); 821 $self->{vp}->set_offset (0, $_[1]);
822 }, 822 },
823 ; 823 ;
824 824
825 $self = $class->SUPER::new ( 825 $self = $class->SUPER::new (
826 vp => (new CFClient::UI::ViewPort expand => 1), 826 vp => (new CFClient::UI::ViewPort expand => 1),
831 $self->{vp}->add ($self->{scrolled}); 831 $self->{vp}->add ($self->{scrolled});
832 $self->add ($self->{vp}); 832 $self->add ($self->{vp});
833 $self->add ($self->{slider}); 833 $self->add ($self->{slider});
834 834
835 $self 835 $self
836}
837
838sub size_allocate {
839 my ($self, $w, $h) = @_;
840
841 $self->SUPER::size_allocate ($w, $h);
842
843 my $child = $self->{vp}->child;
844 $self->{slider}->set_range ([$self->{slider}{range}[0], 0, $child->{h}, $self->{vp}{h}, 1]);
836} 845}
837 846
838#TODO# update range on size_allocate depending on child 847#TODO# update range on size_allocate depending on child
839# update viewport offset on scroll 848# update viewport offset on scroll
840 849
3088} 3097}
3089 3098
3090sub add { 3099sub add {
3091 my ($self, @children) = @_; 3100 my ($self, @children) = @_;
3092 3101
3102 for (my @widgets = @children; my $w = pop @widgets; ) {
3103 push @widgets, $w->children;
3104 $w->{root} = $self;
3105 $w->{visible} = 1;
3106 }
3107
3093 for my $child (@children) { 3108 for my $child (@children) {
3094 $child->{toplevel} = 1; 3109 $child->{toplevel} = 1;
3095 3110
3096 # integerise window positions 3111 # integerise window positions
3097 $child->{x} = int $child->{x}; 3112 $child->{x} = int $child->{x};
3098 $child->{y} = int $child->{y}; 3113 $child->{y} = int $child->{y};
3099 } 3114 }
3100 3115
3101 $self->SUPER::add (@children); 3116 $self->SUPER::add (@children);
3102
3103 while (@children) {
3104 my $w = pop @children;
3105 push @children, $w->children;
3106 $w->{visible} = 1;
3107 }
3108} 3117}
3109 3118
3110sub remove { 3119sub remove {
3111 my ($self, @children) = @_; 3120 my ($self, @children) = @_;
3112 3121

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines