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.478 by root, Tue Dec 22 00:35:44 2009 UTC vs.
Revision 1.483 by root, Wed Jan 4 11:23:23 2012 UTC

1package DC::UI; 1package DC::UI;
2 2
3use utf8; 3use common::sense;
4use strict;
5 4
6use List::Util (); 5use List::Util ();
7 6
7use AnyEvent ();
8use Guard (); 8use Guard ();
9 9
10use DC; 10use DC;
11use DC::Pod; 11use DC::Pod;
12use DC::Texture; 12use DC::Texture;
223 223
224############################################################################# 224#############################################################################
225 225
226package DC::UI::Base; 226package DC::UI::Base;
227 227
228use strict; 228use common::sense;
229 229
230use DC::OpenGL; 230use DC::OpenGL;
231 231
232sub new { 232sub new {
233 my $class = shift; 233 my $class = shift;
643 643
644package DC::UI::DrawBG; 644package DC::UI::DrawBG;
645 645
646our @ISA = DC::UI::Base::; 646our @ISA = DC::UI::Base::;
647 647
648use strict; 648use common::sense;
649
649use DC::OpenGL; 650use DC::OpenGL;
650 651
651sub new { 652sub new {
652 my $class = shift; 653 my $class = shift;
653 654
3054 3055
3055############################################################################# 3056#############################################################################
3056 3057
3057package DC::UI::Slider; 3058package DC::UI::Slider;
3058 3059
3059use strict; 3060use common::sense;
3060 3061
3061use DC::OpenGL; 3062use DC::OpenGL;
3062 3063
3063our @ISA = DC::UI::DrawBG::; 3064our @ISA = DC::UI::DrawBG::;
3064 3065
3150 if ($GRAB == $self) { 3151 if ($GRAB == $self) {
3151 my ($x, $w) = $self->{vertical} ? ($y, $self->{h}) : ($x, $self->{w}); 3152 my ($x, $w) = $self->{vertical} ? ($y, $self->{h}) : ($x, $self->{w});
3152 3153
3153 my (undef, $lo, $hi, $page) = @{$self->{range}}; 3154 my (undef, $lo, $hi, $page) = @{$self->{range}};
3154 3155
3155 $x = ($x - $self->{click}[1]) / ($w * $self->{scale}); 3156 $x = ($x - $self->{click}[1]) / ($w * $self->{scale} || 1e999);
3156 3157
3157 $self->set_value ($self->{click}[0] + $x * ($hi - $page - $lo)); 3158 $self->set_value ($self->{click}[0] + $x * ($hi - $page - $lo));
3158 } else { 3159 } else {
3159 return 0; 3160 return 0;
3160 } 3161 }
3286 indent => 0, 3287 indent => 0,
3287 #font => default_font 3288 #font => default_font
3288 @_, 3289 @_,
3289 3290
3290 layout => (new DC::Layout), 3291 layout => (new DC::Layout),
3291 par => [],
3292 max_par => 0, 3292 max_par => 0,
3293 height => 0, 3293 height => 0,
3294 children => [ 3294 children => [
3295 (new DC::UI::Empty expand => 1), 3295 (new DC::UI::Empty expand => 1),
3296 (new DC::UI::Slider vertical => 1), 3296 (new DC::UI::Slider vertical => 1),
3297 ], 3297 ],
3298 ); 3298 );
3299 3299
3300 $self->{children}[1]->connect (changed => sub { $self->update }); 3300 $self->{children}[1]->connect (changed => sub { $self->update });
3301
3302 $self->add_paragraph (@{ delete $self->{par} }) if @{ $self->{par} };
3301 3303
3302 $self 3304 $self
3303} 3305}
3304 3306
3305sub set_fontsize { 3307sub set_fontsize {
4292 $self 4294 $self
4293} 4295}
4294 4296
4295sub reorder { 4297sub reorder {
4296 my ($self) = @_; 4298 my ($self) = @_;
4297 my $NOW = EV::time; 4299 my $NOW = AE::time;
4298 4300
4299 # freeze display when hovering over any label 4301 # freeze display when hovering over any label
4300 return if $DC::UI::TOOLTIP->{owner} 4302 return if $DC::UI::TOOLTIP->{owner}
4301 && grep $DC::UI::TOOLTIP->{owner} == $_->{label}, 4303 && grep $DC::UI::TOOLTIP->{owner} == $_->{label},
4302 values %{ $self->{item} }; 4304 values %{ $self->{item} };
4401 $ROOT->on_refresh (reorder => sub { 4403 $ROOT->on_refresh (reorder => sub {
4402 $self->reorder; 4404 $self->reorder;
4403 }); 4405 });
4404} 4406}
4405 4407
4408sub clr_group {
4409 my ($self, $group) = @_;
4410
4411 if (delete $self->{item}{$group}) {
4412 $ROOT->on_refresh (reorder => sub {
4413 $self->reorder;
4414 });
4415 }
4416}
4417
4406sub reconfigure { 4418sub reconfigure {
4407 my ($self) = @_; 4419 my ($self) = @_;
4408 4420
4409 delete $_->{label} 4421 delete $_->{label}
4410 for values %{ $self->{item} || {} }; 4422 for values %{ $self->{item} || {} };

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines