http://qs1969.pair.com?node_id=1105629

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I'm not sure what wrong I'm doing. Here's a piece of code that demonstrates the problem I'm facing.

use Tk::Tree; my $mw = MainWindow->new; my $tree = $mw->ScrlTree(-indicator=>1, -browsecmd=>\&abba_browse,) ->pack(-fill => 'both', -expand => 1); my $styleref_select_parent = $tree->ItemStyle('imagetext', -stylename => 'stylename_select_parent', -selectbackground=>'cyan', -selectforeground=>'blue', -font=> [-family => 'Linotype Birka', -size => 20, -weight => 'bold', -slant => 'roman', -underline => 1, -overstrike => 1]); my $styleref_select_child = $tree->ItemStyle('imagetext', -stylename => 'stylename_select_child', -selectbackground=>'cyan', -selectforeground=>'red', -font=> [-family => 'Linotype Birka', -size => 10, -weight => 'bold', -slant => 'roman', -underline => 0, -overstrike => 0]); $tree->add('ABC', -text => 'Text is: ABC', -state=>'normal'); $tree->add('ABC.def', -text => 'Text is: def', -state=>'normal'); $tree->add('ABC.def.ghi', -text => 'Text is: ghi', -state=>'normal'); $tree->setmode(); $tree->close('ABC.def'); my $tree_element; MainLoop; sub abba_browse { $tree_element = $tree->info('selection')->[0]; if ($tree_element eq 'ABC') { $tree->entryconfigure($tree->info('selection'), -style=>$styleref_select_parent); } else { $tree->entryconfigure($tree->info('selection'), -style=>$styleref_select_child); } }

Question 1:
        When I click on the parent entry 'Text is ABC', the ItemStyle configured for this entry doesn't get applied. i.e. while the  -selectbackground doesn't work at all, the values of the  -font option applied are those configured for the child . Why is this so ?

Question 2:
        In the code if I move the declaration for  $styleref_select_parent past that of  $styleref_select_child then only those of the parent are applied to that of child as well. Is it then that only the last declaration which sets the  -font option is considered ?

Question 3:
        Just like we can configure the font for each of the display item in the tree via the -font option, is there a way to configure the size of the indicator in tandem with font for the text entries in the tree ?


BTW: I'm using,
        Strawberry Perl version: 5.16.3
        ItemStyle.pm version: 4.004
        Tree.pm version: 4.72

Many Thanks