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.437 by root, Wed Aug 22 22:36:26 2007 UTC vs.
Revision 1.442 by root, Mon Oct 8 17:01:03 2007 UTC

269 $self->emit ("destroy"); 269 $self->emit ("destroy");
270 %$self = (); 270 %$self = ();
271} 271}
272 272
273sub TO_JSON { 273sub TO_JSON {
274 { __w_ => $_[0]{s_id} } 274 { "\fw" => $_[0]{s_id} }
275} 275}
276 276
277sub show { 277sub show {
278 my ($self) = @_; 278 my ($self) = @_;
279 279
358 358
359 $self->{force_w} = $w; 359 $self->{force_w} = $w;
360 $self->{force_h} = $h; 360 $self->{force_h} = $h;
361 361
362 $self->realloc; 362 $self->realloc;
363}
364
365# traverse the widget chain up to find the maximum "physical" size constraints
366sub get_max_wh {
367 my ($self) = @_;
368
369 return $self->{parent}->get_max_wh
370 if $self->{parent};
371
372 ($::WIDTH, $::HEIGHT)
363} 373}
364 374
365sub size_request { 375sub size_request {
366 require Carp; 376 require Carp;
367 Carp::confess "size_request is abstract"; 377 Carp::confess "size_request is abstract";
817 827
818 1 828 1
819} 829}
820 830
821############################################################################# 831#############################################################################
822
823# back-buffered drawing area 832# back-buffered drawing area
824 833
825package CFPlus::UI::Window; 834package CFPlus::UI::Window;
826 835
827our @ISA = CFPlus::UI::Bin::; 836our @ISA = CFPlus::UI::Bin::;
1376 $self->CFPlus::UI::Container::add ($self->{title_widget}) if $self->{title_widget}; 1385 $self->CFPlus::UI::Container::add ($self->{title_widget}) if $self->{title_widget};
1377} 1386}
1378 1387
1379sub border { 1388sub border {
1380 int $_[0]{border} * $::FONTSIZE 1389 int $_[0]{border} * $::FONTSIZE
1390}
1391
1392sub get_max_wh {
1393 my ($self) = @_;
1394
1395 return ($self->{w}, $self->{h})
1396 if $self->{visible} && $self->{w};
1397
1398 $self->SUPER::get_max_wh
1381} 1399}
1382 1400
1383sub size_request { 1401sub size_request {
1384 my ($self) = @_; 1402 my ($self) = @_;
1385 1403
1942 1960
1943sub size_request { 1961sub size_request {
1944 my ($self) = @_; 1962 my ($self) = @_;
1945 1963
1946 $self->{size_req} ||= do { 1964 $self->{size_req} ||= do {
1965 my ($max_w, $max_h) = $self->get_max_wh;
1966
1947 $self->{layout}->set_font ($self->{font}) if $self->{font}; 1967 $self->{layout}->set_font ($self->{font}) if $self->{font};
1948 $self->{layout}->set_width ($self->{max_w} || -1); 1968 $self->{layout}->set_width ($self->{max_w} || $max_w || -1);
1949 $self->{layout}->set_ellipsise ($self->{ellipsise}); 1969 $self->{layout}->set_ellipsise ($self->{ellipsise});
1950 $self->{layout}->set_single_paragraph_mode ($self->{ellipsise}); 1970 $self->{layout}->set_single_paragraph_mode ($self->{ellipsise});
1951 $self->{layout}->set_height ($self->{fontsize} * $::FONTSIZE); 1971 $self->{layout}->set_height ($self->{fontsize} * $::FONTSIZE);
1952 1972
1953 my ($w, $h) = $self->{layout}->size; 1973 my ($w, $h) = $self->{layout}->size;
4105} 4125}
4106 4126
4107sub _set_value { 4127sub _set_value {
4108 my ($self, $value) = @_; 4128 my ($self, $value) = @_;
4109 4129
4110 my ($item) = grep $_->[0] eq $value, @{ $self->{options} } 4130 my ($item) = grep $_->[0] eq $value, @{ $self->{options} };
4131 $item ||= $self->{options}[0]
4111 or return; 4132 or return;
4112 4133
4113 $self->{value} = $item->[0]; 4134 $self->{value} = $item->[0];
4114 $self->set_markup ("$item->[1] ⇓"); 4135 $self->set_markup ("$item->[1] ⇓");
4115 $self->set_tooltip ($item->[2]); 4136# $self->set_tooltip ($item->[2]);
4116} 4137}
4117 4138
4118sub set_value { 4139sub set_value {
4119 my ($self, $value) = @_; 4140 my ($self, $value) = @_;
4120 4141
4121 return unless $self->{value} ne $value; 4142 return unless $self->{value} ne $value;
4122 4143
4123 $self->_set_value ($value); 4144 $self->_set_value ($value);
4124 $self->emit (changed => $value); 4145 $self->emit (changed => $value);
4146}
4147
4148sub set_options {
4149 my ($self, $options) = @_;
4150
4151 $self->{options} = $options;
4152 $self->_set_value ($self->{value});
4125} 4153}
4126 4154
4127############################################################################# 4155#############################################################################
4128 4156
4129package CFPlus::UI::Statusbox; 4157package CFPlus::UI::Statusbox;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines