--- deliantra/Deliantra-Client/DC/UI.pm 2007/07/17 17:39:07 1.380 +++ deliantra/Deliantra-Client/DC/UI.pm 2007/07/20 16:32:17 1.385 @@ -1095,7 +1095,7 @@ }, ; - $self->SUPER::add (0, 0, $self->{vp}); + $self->SUPER::add_at (0, 0, $self->{vp}); $self->add ($child) if $child; @@ -1120,7 +1120,7 @@ my $visible = $w1 > $w2; if ($visible != $self->{hslider}{visible}) { - $visible ? $self->SUPER::add (0, 1, $self->{hslider}) + $visible ? $self->SUPER::add_at (0, 1, $self->{hslider}) : $self->{hslider}->hide; } @@ -1129,7 +1129,7 @@ my $visible = $h1 > $h2; if ($visible != $self->{vslider}{visible}) { - $visible ? $self->SUPER::add (1, 0, $self->{vslider}) + $visible ? $self->SUPER::add_at (1, 0, $self->{vslider}) : $self->{vslider}->hide; } } @@ -1357,6 +1357,10 @@ map { new_from_file CFPlus::Texture CFPlus::find_rcfile $_, mipmap => 1 } qw(d1_border_top.png d1_border_right.png d1_border_left.png d1_border_bottom.png); +my @icon = + map { new_from_file CFPlus::Texture CFPlus::find_rcfile $_, mipmap => 1 } + qw(x1_move.png x1_resize.png); + sub new { my ($class, %arg) = @_; @@ -1534,10 +1538,24 @@ my $border = $self->border; glColor @{ $self->{border_bg} }; - $border[0]->draw_quad_alpha (0, 0, $w, $border); - $border[1]->draw_quad_alpha (0, $border, $border, $ch); - $border[2]->draw_quad_alpha ($w - $border, $border, $border, $ch); - $border[3]->draw_quad_alpha (0, $h - $border, $w, $border); + $border[0]->draw_quad_alpha ( 0, 0, $w, $border); + $border[1]->draw_quad_alpha ( 0, $border, $border, $ch); + $border[2]->draw_quad_alpha ($w - $border, $border, $border, $ch); + $border[3]->draw_quad_alpha ( 0, $h - $border, $w, $border); + + # move + my $w2 = ($w - $border) * .5; + my $h2 = ($h - $border) * .5; + $icon[0]->draw_quad_alpha ( 0, $h2, $border, $border); + $icon[0]->draw_quad_alpha ($w - $border, $h2, $border, $border); + $icon[0]->draw_quad_alpha ($w2 , $h - $border, $border, $border); + + # resize + $icon[1]->draw_quad_alpha ( 0, 0, $border, $border); + $icon[1]->draw_quad_alpha ($w - $border, 0, $border, $border) + unless $self->{has_close_button}; + $icon[1]->draw_quad_alpha ( 0, $h - $border, $border, $border); + $icon[1]->draw_quad_alpha ($w - $border, $h - $border, $border, $border); if (@{$self->{bg}} < 4 || $self->{bg}[3]) { glColor @{ $self->{bg} }; @@ -1591,12 +1609,20 @@ # TODO: store row/col info in child widget and use standard add/del sub add { - my ($self) = shift; + my $self = shift; + + Carp::cluck "please use the add_at method instead of calling add, thank you.\n";#d# + $self->add_at (@_); +} + +sub add_at { + my $self = shift; while (@_) { - my ($x, $y, $child) = splice @_, 0, 3, (); + my ($col, $row, $child) = splice @_, 0, 3, (); + $child->set_parent ($self); - $self->{children}[$y][$x] = $child; + $self->{children}[$row][$col] = $child; } $self->{force_realloc} = 1; @@ -2383,7 +2409,7 @@ my @tex = map { new_from_file CFPlus::Texture CFPlus::find_rcfile $_, mipmap => 1 } - qw(b1_button_active.png); + qw(b1_button_inactive.png b1_button_active.png); sub new { my $class = shift; @@ -2391,8 +2417,8 @@ $class->SUPER::new ( padding_x => 4, padding_y => 4, - fg => [1, 1, 1], - active_fg => [0, 0, 1], + fg => [1.0, 1.0, 1.0], + active_fg => [0.8, 0.8, 0.8], can_hover => 1, align => 0, valign => 0, @@ -2420,7 +2446,8 @@ glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; glColor 0, 0, 0, 1; - $tex[0]->draw_quad_alpha (0, 0, $self->{w}, $self->{h}); + my $tex = $tex[$GRAB == $self]; + $tex->draw_quad_alpha (0, 0, $self->{w}, $self->{h}); glDisable GL_TEXTURE_2D; @@ -4259,7 +4286,6 @@ for values %{delete $self->{post_alloc_hook}}; } - glViewport 0, 0, $::WIDTH, $::HEIGHT; glClearColor +($::CFG->{fow_intensity}) x 3, 1; glClear GL_COLOR_BUFFER_BIT;