I can't seem to find any documentation about this, so I'm hoping someone has come up with a creative way to resolve this problem.

I have a Wx::TreeCtrl object that I would like to display a multi-lined label for.  When I append an item that has new lines in the label text the new lines are not displayed.  Is there a way to display longer text in line in the tree control or to get longer labels to wrap?

I've attached a very small sample of what I am trying to do.

Any help would be very much appreciated.

Thanks,

#!/usr/bin/perl -w -- 
# generated by wxGlade 0.4.1 on Thu Aug 02 11:56:34 2007
# To get wxPerl visit http://wxPerl.sourceforge.net/

use Wx 0.15 qw[:allclasses];
use strict;

package MyDialog;

use Wx qw[:everything];
use base qw(Wx::Dialog);
use strict;

sub new {
	my( $self, $parent, $id, $title, $pos, $size, $style, $name ) = @_;
	$parent = undef              unless defined $parent;
	$id     = -1                 unless defined $id;
	$title  = ""                 unless defined $title;
	$pos    = wxDefaultPosition  unless defined $pos;
	$size   = wxDefaultSize      unless defined $size;
	$name   = ""                 unless defined $name;

# begin wxGlade: MyDialog::new

	$style = wxDEFAULT_DIALOG_STYLE 
		unless defined $style;

	$self = $self->SUPER::new( $parent, $id, $title, $pos, $size, $style, $name );
	$self->{results_tree} = Wx::TreeCtrl->new($self, -1, wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_DEFAULT_STYLE|wxSUNKEN_BORDER|wxTR_HAS_VARIABLE_ROW_HEIGHT);
	$self->{button_1} = Wx::Button->new($self, -1, "Save");
	$self->{button_2} = Wx::Button->new($self, -1, "Close");

	$self->__set_properties();
	$self->__do_layout();

# end wxGlade
	my $results_root = $self->{results_tree}->AddRoot("Results");
	my $error_root = $self->{results_tree}->AppendItem($results_root,"Errors");
	my $error_item = $self->{results_tree}->AppendItem($error_root,"Missing %ZdTOOLS mapping");
	$self->{results_tree}->AppendItem($error_item,"Namespace : PRD");
	my $details_item = $self->{results_tree}->AppendItem($error_item,"Details");
	$self->{results_tree}->AppendItem($details_item,"The %ZdTOOLS routine mapping is missing from the PRD namespace");
	my $warning_root = $self->{results_tree}->AppendItem($results_root,"Warnings");
	$error_item = $self->{results_tree}->AppendItem($warning_root,"Split SLM Range");
	$self->{results_tree}->AppendItem($error_item,"Namespace : PRD");
	$details_item = $self->{results_tree}->AppendItem($error_item,"Globals");
	$self->{results_tree}->AppendItem($details_item,"ENU");
	
	$details_item = $self->{results_tree}->AppendItem($error_item,"Details");
	$self->{results_tree}->AppendItem($details_item,"It appears that the global ENU in the namespace PRD\r\nhas had the masterfile (\"ETR\") split on an ID, but the ID\nrange has an end point of 9999999. Any data in the ID\nranges beyond this will be placed in the default dataset for this global.");

	my $info_root = $self->{results_tree}->AppendItem($results_root,"Info");
	$error_item = $self->{results_tree}->AppendItem($info_root,"INTEGCHK database list");

	return $self;

}


sub __set_properties {
	my $self = shift;

# begin wxGlade: MyDialog::__set_properties

	$self->SetTitle("Audit Results");
	$self->SetSize(Wx::Size->new(619, 565));

# end wxGlade
}

sub __do_layout {
	my $self = shift;

# begin wxGlade: MyDialog::__do_layout

	$self->{sizer_1} = Wx::BoxSizer->new(wxVERTICAL);
	$self->{sizer_3} = Wx::BoxSizer->new(wxHORIZONTAL);
	$self->{sizer_2} = Wx::BoxSizer->new(wxHORIZONTAL);
	$self->{sizer_2}->Add($self->{results_tree}, 1, wxEXPAND, 0);
	$self->{sizer_1}->Add($self->{sizer_2}, 1, wxEXPAND, 0);
	$self->{sizer_3}->Add($self->{button_1}, 0, wxADJUST_MINSIZE, 0);
	$self->{sizer_3}->Add($self->{button_2}, 0, wxADJUST_MINSIZE, 0);
	$self->{sizer_1}->Add($self->{sizer_3}, 0, wxALIGN_RIGHT|wxALIGN_BOTTOM, 0);
	$self->SetAutoLayout(1);
	$self->SetSizer($self->{sizer_1});
	$self->Layout();

# end wxGlade
}

# end of class MyDialog

1;

package MyApp;

use base qw(Wx::App);
use strict;

sub OnInit {
	my( $self ) = shift;

	Wx::InitAllImageHandlers();

	my $dialog_1 = MyDialog->new();

	$self->SetTopWindow($dialog_1);
	$dialog_1->Show(1);

	return 1;
}
# end of class MyApp

package main;

unless(caller){
	my $app = MyApp->new();
	$app->MainLoop();
}



Daniell Freed
Bereshit bara Elohim et hashamayim ve'et ha'arets...


Reply via email to