Re: Removin all Widgets from a VBox
- From: Muthiah Annamalai <dearestchum yahoo co in>
- To: Guenther Sohler <guenther sohler newlogic com>, gtk-app-devel-list gnome org
- Cc:
- Subject: Re: Removin all Widgets from a VBox
- Date: Wed, 8 Jun 2005 05:13:53 -0700 (PDT)
Hi!
I think Ive a solution to what youre asking me.
--- Guenther Sohler <guenther sohler newlogic com>
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>
#include <gtk/gtk.h>
void box_remove(GtkWidget *btn, GtkBox *box)
{
g_assert(btn!=NULL && box!=NULL);
/* Remove all widgets in the */
GtkWidget *widget=NULL;
GList *ptr=box->children;
while(ptr->next!=NULL){
widget=(GtkWidget *)ptr->data;
ptr=ptr->next;
if(widget!=btn && widget!=NULL){
gtk_widget_destroy(widget);
}
}
return;
}
int main()
{
GtkWidget *w,*box,*btn;
gtk_init(NULL,NULL);
w=gtk_window_new(GTK_WINDOW_TOPLEVEL);
box=gtk_hbox_new(0,0);
gtk_container_add(GTK_CONTAINER(w),box);
{
int i=0;
while(i<10){
gtk_box_pack_start_defaults(GTK_BOX(box),gtk_label_new(g_strdup_printf("%d",i)));
}
}
btn=gtk_button_new_with_label("Remove Labels");
gtk_box_pack_start_defaults(GTK_BOX(box),btn);
g_signal_connect(G_OBJECT(btn),"clicked",G_CALLBACK(box_remove),(gpointer)box);
gtk_widget_show_all(w);
gtk_main();
}
</CODE>
__________________________________
Discover Yahoo!
Find restaurants, movies, travel and more fun for the weekend. Check it out!
http://discover.yahoo.com/weekend.html
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]