Enlightenment CVS committal Author : leviathan Project : e17 Module : libs/etk-perl
Dir : e17/libs/etk-perl/etk_test Modified Files: etk_test.pl Log Message: Move to the new Etk_Tree NOTE: Currently you can only set one model per column, and the fields_get and events do not work =================================================================== RCS file: /cvs/e/e17/libs/etk-perl/etk_test/etk_test.pl,v retrieving revision 1.46 retrieving revision 1.47 diff -u -3 -r1.46 -r1.47 --- etk_test.pl 14 Jan 2007 15:52:10 -0000 1.46 +++ etk_test.pl 21 Jan 2007 01:12:44 -0000 1.47 @@ -426,207 +426,88 @@ { my $win = Etk::Window->new(); $win->TitleSet("Etk-Perl Tree Test"); - my $table = Etk::Table->new(2, 3, 0); - my $label = Etk::Label->new("<h1>Tree:</h1>"); - - $table->Attach($label, 0, 0, 0, 0, 0, 0, - HFill | VFill); + $win->Resize(440, 500); + + my $vbox = Etk::VBox->new(0, 0); + $win->Add($vbox); my $tree = Etk::Tree->new(); - $tree->SizeRequestSet(320, 400); - $table->AttachDefault($tree, 0, 0, 1, 1); $tree->ModeSet(ModeTree); $tree->MultipleSelectSet(1); - $tree->Freeze(); - - my $col1 = $tree->ColNew("Column 1", Etk::Tree::Model::IconText->new($tree, FromEdje), 90); - my $col2 = $tree->ColNew("Column 2", Etk::Tree::Model::Double->new($tree), 60); - my $col3 = $tree->ColNew("Column 3", Etk::Tree::Model::Image->new($tree, FromFile), 60); - my $col4 = $tree->ColNew("Column 4", Etk::Tree::Model::Checkbox->new($tree), 40); - - $col4->SignalConnect("cell_value_changed", - sub { - my $self = shift; - my $row = shift; - - if ($row->FieldsGet($self)) { - print "Checkbox activated\n"; - } else { - print "Checkbox deactivated\n"; - } - } - ); - - $tree->Build(); - for(my $i = 0; $i < 1000; $i++) - { - my $row = $tree->Append(); - $row->FieldsSet($col1, Etk::Theme::IconGet(), "places/user-home_16", "Row1"); - $row->FieldsSet($col2, 10); - $row->FieldsSet($col3, "images/1star.png"); - - my $row2 = $row->AppendToRow(); - $row2->FieldsSet($col1, Etk::Theme::IconGet(), "places/folder_16", "Row2"); - $row2->FieldsSet($col2, 20); - $row2->FieldsSet($col3, "images/2stars.png"); - - my $row3 = $row2->AppendToRow(); - $row3->FieldsSet($col1, Etk::Theme::IconGet(), "mimetypes/text-x-generic_16", "Row3"); - $row3->FieldsSet($col2, 30); - $row3->FieldsSet($col3, "images/3stars.png"); - } - $tree->Thaw(); + $tree->PaddingSet(5, 5, 5, 5); - $label = Etk::Label->new("<h1>List:</h1>"); - $table->Attach($label, 1, 1, 0, 0, 0, 0, HFill | VFill); - - $tree = Etk::Tree->new(); - $tree->SizeRequestSet(320, 400); - $table->AttachDefault($tree, 1, 1, 1, 1); - $tree->ModeSet(ModeList); - $tree->MultipleSelectSet(1); - $tree->Freeze(); + $vbox->Append($tree, BoxStart, BoxExpandFill, 0); - $col1 = $tree->ColNew("Column 1", Etk::Tree::Model::IconText->new($tree, FromFile), 90); - $col2 = $tree->ColNew("Column 2", Etk::Tree::Model::Int->new($tree), 90); - $col3 = $tree->ColNew("Column 3", Etk::Tree::Model::Image->new($tree, FromFile), 90); + my $col1 = $tree->ColNew("Column 1", 130, 0.0); +# $col1->ModelAdd(new Etk::Tree::Model::Image); + $col1->ModelAdd(new Etk::Tree::Model::Text); - my @cols = ($col1, $col2, $col3); + my $col2 = $tree->ColNew("Column 2", 60, 1.0); + $col2->ModelAdd(new Etk::Tree::Model::Double); + my $col3 = $tree->ColNew("Column 3", 60, 0.0); + $col3->ModelAdd(new Etk::Tree::Model::Image); - $tree->Build(); - tree_add_items($tree, 500, @cols); + my $col4 = $tree->ColNew("Column 4", 60, 0.5); + $col4->ModelAdd(new Etk::Tree::Model::Checkbox); - $tree->SignalConnect("row_selected", - sub { - my $self = shift; - my $row = shift; - my $col = $tree->NthColGet(0); - my @fields = $row->FieldsGet($col); - - print "Row selected: ", join " ", @fields, "\n"; - } - ); + # $tree->SignalConnect("row_clicked", sub { +# my $self = shift; +# my $row = shift; +# my $event = shift; + # fields get. - $tree->SignalConnect("row_unselected", sub { print "Row unselected\n" } ); + # }); - $tree->SignalConnect("row_activated", - sub { + $col4->SignalConnect("cell_value_changed", + sub { my $self = shift; my $row = shift; - - print "Row activated: ", - $row->FieldsGet($tree->NthColGet(0)), " ", - $row->FieldsGet($tree->NthColGet(1)), " ", - $row->FieldsGet($tree->NthColGet(2)), "\n"; - } - ); - - my $frame = Etk::Frame->new("List Actions"); - $table->Attach($frame, 0, 1, 2, 2, 0, 0, HFill | VFill); - my $hbox = Etk::HBox->new(1, 10); - - $frame->Add($hbox); - - my $button; - $button = Etk::Button->new("Clear"); - $button->SignalConnect("clicked", sub { $tree->Clear() }); - $hbox->Append($button, BoxStart, BoxExpandFill); - - $button = Etk::Button->new("Add 5 rows"); - $button->SignalConnect("clicked", sub { tree_add_items($tree, 5, @cols) }); - $hbox->Append($button, BoxStart, BoxExpandFill); - - $button = Etk::Button->new("Add 50 rows"); - $button->SignalConnect("clicked", sub { tree_add_items($tree, 50, @cols) }); - $hbox->Append($button, BoxStart, BoxExpandFill); - - $button = Etk::Button->new("Add 500 rows"); - $button->SignalConnect("clicked", sub { tree_add_items($tree, 500, @cols) }); - $hbox->Append($button, BoxStart, BoxExpandFill); - - $button = Etk::Button->new("Add 5000 rows"); - $button->SignalConnect("clicked", sub { tree_add_items($tree, 5000, @cols) }); - $hbox->Append($button, BoxStart, BoxExpandFill); - - my $ascendant = 1; - - $button = Etk::Button->new("Sort"); - - $button->SignalConnect("clicked", - sub { - #$tree->Sort(\&tree_col2_compare_cb, $ascendant, $col2, undef); - $tree->SortNumeric($ascendant, $col2, undef); - $ascendant = !$ascendant; +# if ($row->FieldsGet($self)) { +# print "Checkbox activated\n"; +# } else { +# print "Checkbox deactivated\n"; +# } } ); - $hbox->Append($button, BoxStart, BoxExpandFill); - - $win->Add($table); - $win->ShowAll(); -} -sub tree_col2_compare_cb -{ - my $tree = shift; - my $row1 = shift; - my $row2 = shift; - my $col = shift; - my $data = shift; - - my $v1 = $row1->FieldIntGet($col); - my $v2 = $row2->FieldIntGet($col); - - if ($v1 < $v2) - { - return -1; - } - elsif ($v1 > $v2) - { - return 1; - } - else - { - return 0; - } - - return 1; -} - -sub tree_add_items -{ - my $tree = shift; - my $n = shift; - my ($col1, $col2, $col3) = @_; + $tree->Build(); $tree->Freeze(); - for my $i (0 .. $n) + + for(my $i = 0; $i < 1000; $i++) { - my $row_name = "Row$i"; - my $star_path = ""; - if($i % 3 ==0) - { - $star_path = "images/1star.png"; - } elsif($i % 3 == 1) - { - $star_path = "images/2stars.png"; - } else - { - $star_path = "images/3stars.png"; - } - my $rand_value =int( rand(10000)); + my $row = $tree->RowAppend(); - - my $row = $tree->Append(); - $row->FieldsSet($col1, "images/1star.png", $row_name); - $row->FieldsSet($col2, $rand_value); - $row->FieldsSet($col3, $star_path); + $row->FieldsSet(0, $col1, # Etk::Theme::IconGet(), +# Etk::Stock::KeyGet(PlacesUserHome, SizeSmall), + "Row " . (($i*3)+1)); + $row->FieldsSet(0, $col2, 10.0); + $row->FieldsSet(0, $col3, "images/1star.png"); + $row->FieldsSet(0, $col4, 0); + + my $row2 = $tree->RowAppend($row); + $row2->FieldsSet(0, $col1, "Row " . (($i*3)+2)); + $row2->FieldsSet(0, $col2, 20.0); + $row2->FieldsSet(0, $col3, "images/2stars.png"); + $row2->FieldsSet(0, $col4, 1); + + my $row3 = $tree->RowAppend($row2); + $row3->FieldsSet(0, $col1, "Row " . (($i*3)+3)); + $row3->FieldsSet(0, $col2, 30.0); + $row3->FieldsSet(0, $col3, "images/3stars.png"); + $row3->FieldsSet(0, $col4, 1); } + $tree->Thaw(); - + + my $status = Etk::StatusBar->new(); + $vbox->Append($status, BoxStart, BoxFill, 0); + + $win->ShowAll(); } sub menu_window_show ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs