Re: question about expander



On 3/26/07, Dimitar Kenanov <kenanov minet uni-jena de> wrote:
i have a question about Gtk2::Expander.
...
I do not know what is happening. What am i doin wrong? Is it really

Short answer: global variables used all over the place.
Slightly longer answer:

sub expand_create_data_form{
($expand_crd,$mess)= _;
       if($expand_crd->get_expanded){
               $expand_crd->set_label('Hide Create data');
               $dframe=(&create_data_form);       <===== global
               $dframe->show;
               $expand_crd->add($dframe);
               print "Added $mess\n";
               return $expand_crd;
       }else{
               $expand_crd->set_label('Show Create Data');
               $expand_crd->remove($dframe);
               print "Removed $mess\n";
               return $expand_crd;
       }
}

the global $dframe gets assigned the last data_form you created,
e.g. when you expand on tab #1. But then you try to remove the same $dframe
when un-expanding on tab #0 afterward, but it isn't a child of
$expand_crd there.
You somehow have to remember the "correct" $dframe per tab.

Cheers, Roderich



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]