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.438 by root, Sat Sep 1 07:22:21 2007 UTC vs.
Revision 1.440 by root, Sun Sep 16 18:27:48 2007 UTC

360 $self->{force_h} = $h; 360 $self->{force_h} = $h;
361 361
362 $self->realloc; 362 $self->realloc;
363} 363}
364 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)
373}
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";
368} 378}
369 379
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;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines