… | |
… | |
2044 | : ($self->{w} - $size->[0]) * 0.5); |
2044 | : ($self->{w} - $size->[0]) * 0.5); |
2045 | |
2045 | |
2046 | $self->{oy} = int ($self->{valign} < 0 ? $self->{padding_y} |
2046 | $self->{oy} = int ($self->{valign} < 0 ? $self->{padding_y} |
2047 | : $self->{valign} > 0 ? $self->{h} - $size->[1] - $self->{padding_y} |
2047 | : $self->{valign} > 0 ? $self->{h} - $size->[1] - $self->{padding_y} |
2048 | : ($self->{h} - $size->[1]) * 0.5); |
2048 | : ($self->{h} - $size->[1]) * 0.5); |
|
|
2049 | |
|
|
2050 | $self->{layout}->render ($self->{ox}, $self->{oy}, $self->{style}); |
2049 | }; |
2051 | }; |
2050 | |
2052 | |
2051 | # unless ($self->{list}) { |
2053 | # unless ($self->{list}) { |
2052 | # $self->{list} = CFPlus::OpenGL::glGenList; |
2054 | # $self->{list} = CFPlus::OpenGL::glGenList; |
2053 | # CFPlus::OpenGL::glNewList $self->{list}; |
2055 | # CFPlus::OpenGL::glNewList $self->{list}; |
… | |
… | |
2055 | # CFPlus::OpenGL::glEndList; |
2057 | # CFPlus::OpenGL::glEndList; |
2056 | # } |
2058 | # } |
2057 | # |
2059 | # |
2058 | # CFPlus::OpenGL::glCallList $self->{list}; |
2060 | # CFPlus::OpenGL::glCallList $self->{list}; |
2059 | |
2061 | |
2060 | $self->{layout}->render ($self->{ox}, $self->{oy}, $self->{style}); |
2062 | $self->{layout}->draw; |
2061 | } |
2063 | } |
2062 | |
2064 | |
2063 | #sub destroy { |
2065 | #sub destroy { |
2064 | # my ($self) = @_; |
2066 | # my ($self) = @_; |
2065 | # |
2067 | # |
… | |
… | |
3304 | |
3306 | |
3305 | if ($y0 < $y + $h && $y < $y1) { |
3307 | if ($y0 < $y + $h && $y < $y1) { |
3306 | my $layout = $self->get_layout ($para); |
3308 | my $layout = $self->get_layout ($para); |
3307 | |
3309 | |
3308 | $layout->render ($para->{indent}, $y - $y0); |
3310 | $layout->render ($para->{indent}, $y - $y0); |
|
|
3311 | $layout->draw; |
3309 | |
3312 | |
3310 | if (my @w = @{ $para->{widget} }) { |
3313 | if (my @w = @{ $para->{widget} }) { |
3311 | my @s = $layout->get_shapes; |
3314 | my @s = $layout->get_shapes; |
3312 | |
3315 | |
3313 | for (@w) { |
3316 | for (@w) { |
… | |
… | |
3589 | |
3592 | |
3590 | if (my $anim = $::CONN->{anim}[$self->{anim}]) { |
3593 | if (my $anim = $::CONN->{anim}[$self->{anim}]) { |
3591 | if ($anim && @$anim) { |
3594 | if ($anim && @$anim) { |
3592 | delete $self->{wait_face}; |
3595 | delete $self->{wait_face}; |
3593 | $self->{face} = $anim->[ $self->{frame} % @$anim ]; |
3596 | $self->{face} = $anim->[ $self->{frame} % @$anim ]; |
3594 | $self->{tex} = $::CONN->{texture}[ $::CONN->{faceid}[$self->{face}] ]; |
3597 | if (my $tex = $self->{tex} = $::CONN->{texture}[ $::CONN->{faceid}[$self->{face}] ]) { |
|
|
3598 | unless ($tex->{name} || $tex->{loading}) { |
|
|
3599 | $tex->upload (sub { $self->reconfigure }); |
|
|
3600 | } |
|
|
3601 | } |
3595 | } |
3602 | } |
3596 | } |
3603 | } |
3597 | } |
3604 | } |
3598 | |
3605 | |
3599 | sub size_request { |
3606 | sub size_request { |
3600 | my ($self) = @_; |
3607 | my ($self) = @_; |
3601 | |
3608 | |
3602 | if ($::CONN) { |
3609 | if ($::CONN) { |
3603 | if (my $faceid = $::CONN->{faceid}[$self->{face}]) { |
3610 | if (my $faceid = $::CONN->{faceid}[$self->{face}]) { |
3604 | if (my $tex = $::CONN->{texture}[$faceid]) { |
3611 | if (my $tex = $self->{tex} = $::CONN->{texture}[$faceid]) { |
3605 | $self->{tex} = $tex; |
3612 | if ($tex->{name}) { |
3606 | return ($self->{size_w} || $tex->{w}, $self->{size_h} || $tex->{h}); |
3613 | return ($self->{size_w} || $tex->{w}, $self->{size_h} || $tex->{h}); |
|
|
3614 | } elsif (!$tex->{loading}) { |
|
|
3615 | $tex->upload (sub { $self->reconfigure }); |
|
|
3616 | } |
3607 | } else { |
3617 | } else { |
3608 | $self->{wait_face} ||= $::CONN->connect_face_update ($faceid, sub { |
3618 | $self->{wait_face} ||= $::CONN->connect_face_update ($faceid, sub { |
3609 | $self->realloc; |
3619 | $self->reconfigure; |
3610 | }); |
3620 | }); |
3611 | } |
3621 | } |
3612 | } |
3622 | } |
3613 | } |
3623 | } |
3614 | |
3624 | |
… | |
… | |
4199 | } |
4209 | } |
4200 | |
4210 | |
4201 | sub update { |
4211 | sub update { |
4202 | my ($self) = @_; |
4212 | my ($self) = @_; |
4203 | |
4213 | |
4204 | $::WANT_REFRESH++; |
4214 | $::WANT_REFRESH->start; |
4205 | } |
4215 | } |
4206 | |
4216 | |
4207 | sub add { |
4217 | sub add { |
4208 | my ($self, @children) = @_; |
4218 | my ($self, @children) = @_; |
4209 | |
4219 | |