--- deliantra/Deliantra-Client/DC/UI.pm 2006/04/22 03:50:25 1.147 +++ deliantra/Deliantra-Client/DC/UI.pm 2006/04/22 12:14:45 1.148 @@ -584,38 +584,60 @@ use CFClient::OpenGL; -sub size_request { - my ($self) = @_; - my $chld = $self->child - or return (0, 0); +sub new { + my $class = shift; - $chld->move (2, 2); + my $self = $class->SUPER::new ( + bg => [1, 1, 1, 1], + border_bg => [1, 1, 1, 1], + border => 0.8, + @_ + ); - map { $_ + 4 } $chld->size_request; + $self } -sub size_allocate { - my ($self, $x, $y, $w, $h) = @_; - - $self->child->configure (2, 2, $w - 4, $h - 4); +sub set_size { + my ($self, $w, $h) = @_; + $self->{req_w} = $w; + $self->{req_h} = $h; + $self->check_size; } -sub _draw { +sub size_request { my ($self) = @_; + ($self->{req_w}, $self->{req_h}) +} - my $chld = $self->child; +sub size_allocate { + my ($self, $w, $h) = @_; + $self->{w} = $w; + $self->{h} = $h; + $self->child->configure (0, 0, $w, $h); +} - my ($w, $h) = $chld->size_request; +sub _draw { + my ($self) = @_; - glBegin GL_QUADS; - glColor 0, 0, 0; - glVertex 0 , 0; - glVertex 0 , $h + 4; - glVertex $w + 4 , $h + 4; - glVertex $w + 4 , 0; - glEnd; + my ($w, $h) = ($self->{w}, $self->{h}); - $chld->draw; + glEnable GL_BLEND; + glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; + glEnable GL_TEXTURE_2D; + glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; + +# glBegin GL_QUADS; +# glColor 0, 0, 0, 0; +# glVertex 0 , 0; +# glVertex 0 , $h; +# glVertex $w, $h; +# glVertex $w, 0; +# glEnd; + + + $self->child->draw; + glDisable GL_BLEND; + glDisable GL_TEXTURE_2D; } #############################################################################