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.432 by root, Tue Aug 21 23:42:02 2007 UTC vs.
Revision 1.434 by root, Wed Aug 22 21:32:09 2007 UTC

2800 fontsize => 0.9, 2800 fontsize => 0.9,
2801 valign => 0, 2801 valign => 0,
2802 align => 0, 2802 align => 0,
2803 can_events => 1, 2803 can_events => 1,
2804 ellipsise => 1, 2804 ellipsise => 1,
2805 label => "%d%%",
2805 %arg, 2806 %arg,
2806 ); 2807 );
2807 2808
2808 $self->set_value ($arg{value} || -1); 2809 $self->set_value ($arg{value} || -1);
2809 2810
2810 $self 2811 $self
2811} 2812}
2812 2813
2814sub set_label {
2815 my ($self, $label) = @_;
2816
2817 return if $self->{label} eq $label;
2818 $self->{label} = $label;
2819
2820 $self->CFPlus::UI::Progress::set_value (0 + delete $self->{value});
2821}
2822
2813sub set_value { 2823sub set_value {
2814 my ($self, $value) = @_; 2824 my ($self, $value) = @_;
2815 2825
2816 if ($self->{value} != $value) { 2826 if ($self->{value} ne $value) {
2817 $self->{value} = $value; 2827 $self->{value} = $value;
2818 2828
2819 if ($value < 0) { 2829 if ($value < 0) {
2820 $self->set_text ("-"); 2830 $self->set_text ("-");
2821 } else { 2831 } else {
2822 $self->set_text (sprintf "%d%%", $value * 100); 2832 $self->set_text (sprintf $self->{label}, $value * 100);
2823 } 2833 }
2834
2824 $self->update; 2835 $self->update;
2825 } 2836 }
2826} 2837}
2827 2838
2828sub _draw { 2839sub _draw {
2859 2870
2860sub new { 2871sub new {
2861 my ($class, %arg) = @_; 2872 my ($class, %arg) = @_;
2862 2873
2863 my $self = $class->SUPER::new ( 2874 my $self = $class->SUPER::new (
2875 tooltip => sub {
2876 my ($self) = @_;
2877
2878 sprintf "%s points experience (level %d).\n%s points to next level %s.",
2879 ::formsep $self->{exp},
2880 $self->{lvl},
2881 ::formsep $self->{nxt}
2882 },
2864 %arg 2883 %arg
2865 ); 2884 );
2866 2885
2867 $::CONN->{on_exp_update}{$self+0} = sub { $self->set_value ($self->{value}) } 2886 $::CONN->{on_exp_update}{$self+0} = sub { $self->set_value ($self->{value}) }
2868 if $::CONN; 2887 if $::CONN;
2879 $self->SUPER::DESTROY; 2898 $self->SUPER::DESTROY;
2880} 2899}
2881 2900
2882sub set_value { 2901sub set_value {
2883 my ($self, $lvl, $exp) = @_; 2902 my ($self, $lvl, $exp) = @_;
2903
2904 $self->{lvl} = $exp;
2905 $self->{exp} = $exp;
2884 2906
2885 my $v = -1; 2907 my $v = -1;
2886 2908
2887 if ($::CONN && (my $table = $::CONN->{exp_table})) { 2909 if ($::CONN && (my $table = $::CONN->{exp_table})) {
2888 my $l0 = $table->[$lvl - 1]; 2910 my $l0 = $table->[$lvl - 1];
2889 my $l1 = $table->[$lvl]; 2911 my $l1 = $table->[$lvl];
2912
2913 $self->{nxt} = $l1;
2890 2914
2891 $v = ($exp - $l0) / ($l1 - $l0); 2915 $v = ($exp - $l0) / ($l1 - $l0);
2892 } 2916 }
2893 2917
2894 $self->SUPER::set_value ($v); 2918 $self->SUPER::set_value ($v);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines