# dynatab setting query # use Tk; use Tk::DynaTabFrame; use strict "vars"; my (%frame, %label, %cp_wg, $raised_label, %insideframe, $mw_main, %tabbed_frame, $dynatab_name, $tab_Tabbed); my ($dynatab_caption, $dynatab_title, $dynatab_image, $dynatab_colour , $dynatab_raised_colour); my ($tab_Tabbed, %insideframe, %label); #===============================sub raise ========================= sub dynatab_raise_cb() { my ($current_tab, $current_tab_name, $lbr_str); $current_tab = $tab_Tabbed->cget(-raised); $current_tab_name= $tab_Tabbed->cget(-raised_name); $lbr_str = "current <$current_tab> name <$current_tab_name>"; print "[dynatab_raise_cb] $lbr_str\n"; } #===================================================================== # # sub dynatab_frame_child # # this subroutine creates a child of the given dynatabbed frame # arguments # 0 exisiting tab frame parent # 1 referecne to new tabbed frame # 2 title of new tabbed frame # 3 colour of new tabbed frame # # ==================================================================== sub dynatab_frame_child($$$$$$$) { my ($tab_parent, $ref_child, $dynatab_caption, $dynatab_title, $dynatab_image, $dynatab_colour ,$dynatab_raised_colour) = @_; print "[dynatab_frame_child] caption <$dynatab_caption> title <$dynatab_title> image <$dynatab_image> colour <$dynatab_colour> raised <$dynatab_raised_colour>\n"; $$ref_child = $tab_parent->add( -caption => $dynatab_caption, -label => $dynatab_title, -tabtip => "Tip for tabno", ) ->pack() ; } #===========main========================= my $mw_Main = MainWindow->new; my $middle_Frame = $mw_Main->Frame(-borderwidth => 4, -relief => 'raised', )->grid(-row => 0, -column => 0); my $color = 'GREY'; my $raisecolor = 'WHITE'; my $side = 'nw'; $tab_Tabbed = $middle_Frame->DynaTabFrame( -font => 'Arial 8', -raisecmd => \&dynatab_raise_cb, -tabcolor => $color, -raisecolor => $raisecolor, -tabside => $side, -tabpadx => 3, -tabpady => 3, -tiptime => 600, -tipcolor => 'white' ) ->grid(-row => 0, -column => 0 , -sticky => 'nsew' ); # required to get something shown when ->pack is not used #$raised_label = $middle_Frame->Label( -width => 100)->grid(-row => 1, -column => 0); $dynatab_name = 'SNG'; $dynatab_caption = "C1"; $dynatab_title = "Tab 1"; dynatab_frame_child($tab_Tabbed, \$tabbed_frame{$dynatab_name}, $dynatab_caption, $dynatab_title, $dynatab_image, $dynatab_colour , $dynatab_raised_colour); $insideframe{a} = $tabbed_frame{$dynatab_name}->Frame(-borderwidth => 4, -relief => 'raised')->grid(-row => 0, -column => 0); $label{a} = $insideframe{a}->Label(-text => "Text 1 in $dynatab_title Tabbed Frame")->grid(-row => 1, -column => 0); $label{aa} = $insideframe{a}->Label(-text => "Text 2 in $dynatab_title Tabbed Frame")->grid(-row => 2, -column => 0); $label{ab} = $insideframe{a}->Label(-text => "Text 3 in $dynatab_title Tabbed Frame")->grid(-row => 3, -column => 0); $label{ac} = $insideframe{a}->Label(-text => "Text 4 in $dynatab_title Tabbed Frame")->grid(-row => 4, -column => 0); $label{ad} = $insideframe{a}->Label(-text => "Text 5 in $dynatab_title Tabbed Frame")->grid(-row => 5, -column => 0); $dynatab_name = 'DOU'; $dynatab_caption = "C2"; $dynatab_title = "Tab 2"; dynatab_frame_child($tab_Tabbed, \$tabbed_frame{$dynatab_name}, $dynatab_caption, $dynatab_title, $dynatab_image, $dynatab_colour , $dynatab_raised_colour); $insideframe{b} = $tabbed_frame{$dynatab_name}->Frame(-borderwidth => 4, -relief => 'raised')->grid(-row => 0, -column => 0); $label{b} = $insideframe{b}->Label(-text => "Text 1 in $dynatab_title Tabbed Frame")->grid(-row => 1, -column => 0); $label{ba} = $insideframe{b}->Label(-text => "Text 2 in $dynatab_title Tabbed Frame")->grid(-row => 2, -column => 0); $label{bc} = $insideframe{b}->Label(-text => "Text 3 in $dynatab_title Tabbed Frame")->grid(-row => 3, -column => 0); $label{bd} = $insideframe{b}->Label(-text => "Text 4 in $dynatab_title Tabbed Frame")->grid(-row => 4, -column => 0); $label{be} = $insideframe{b}->Label(-text => "Text 5 in $dynatab_title Tabbed Frame")->grid(-row => 5, -column => 0); MainLoop;