Hello.
Correction to the actual code to remove widgets
from a VBOX.

I wont recommend 'creating' new widgets for the
case of TIME consumption, speed & resources.

However, it might be easy to program... ;-)

This kinda' works.
-Muthus
P.s: I missent this.. ;0 sorry for breaking the
thread.
P.P.s: this post was also missent.

--- Muthiah Annamalai <[EMAIL PROTECTED]> wrote:
> 
> --- Guenther Sohler <[EMAIL PROTECTED]>
> wrote:
> [snip]
> > I did not yet find a good strategy to delete all
> > widgets/childs from within a
> > vbox.
> >
>
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
> > 
> 
> GtkBox [base of VBox & HBox], has a GList of
> children
> it contains. You can simply iterate over the list,
> and delete each widget you want.
> 
> This code must work. Sorry, I couldnt check it.
> Cheers
> Muthu.
> 
> <CODE>
> 
> 

The code must read
<CODE>
void box_remove(GtkWidget *btn, GtkBox *box)

{     

     

     /* Remove all widgets in the Box*/      

     GtkWidget *widget=NULL;

     GtkBoxChild *child,*needed_box;

     GList *ptr=box->children;

     int len=g_list_length(box->children);

     int i=0;

     

     g_assert(btn!=NULL && box!=NULL);

     

     gtk_widget_freeze_child_notify (box);

     g_message("Length: %d\n",len);



     if(len <= 1)

            return;

            

     for(i=0;i<len;i++,ptr=ptr->next){

          child=(GtkBoxChild *)ptr->data;

          widget=child->widget;

          if(GTK_IS_LABEL(widget)){

            g_message("Label
{%s}",gtk_label_get_text(widget));

          }

          

           if(widget!=btn && widget!=NULL){

             g_message("Deleting Child:
%s",gtk_widget_get_name(GTK_WIDGET(widget)));         
   

             gtk_widget_unparent(widget);

           }                     

           else{

                needed_box=child;

           }

     }

     gtk_widget_thaw_child_notify (box);

     

     g_list_free(box->children);

     box->children=g_list_alloc();

     box->children->data=needed_box;

     gtk_container_check_resize(GTK_CONTAINER(box));

     len=g_list_length(box->children);

     g_message("New Length: %d\n",len);

     return;

}

</CODE>






                
__________________________________ 
Discover Yahoo! 
Use Yahoo! to plan a weekend, have fun online and more. Check it out! 
http://discover.yahoo.com/
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to