Comment détruire un widget créé dans une autre fonction?
Bonjour à tous!
J'ai encore un petit problème! Comment détruire un widget créé dans une autre fonction? Dans la faq il y a bien cette page: http://gtk.developpez.com/faq/?page=...AUX_parametres, mais je ne comprends pas trop.
Dans mon cas, si je lis bien la faq, je devrais utiliser gtk_widget_get_name(), or cela ne renvoie que le nom du widget, et moi je voudrais avoir accès au widget pour pouvoir le détruire.
Voici mes fonctions:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
void GoToStep1(GtkBuilder *pBuildMainWindow, gpointer Data)
{
GtkWidget *pStepHorizontalBox;
pStepHorizontalBox = GTK_WIDGET(gtk_builder_get_object(pBuildMainWindow, "hbox2"));
GError *GtkBuildError = NULL;
GtkBuilder *pBuildStep;
pBuildStep = gtk_builder_new();
if(pBuildStep)
{
if(!gtk_builder_add_from_file(pBuildStep, "ui/Step1.xml", &GtkBuildError))
{
if(GtkBuildError)
{
printf("Error: %s", GtkBuildError -> message);
}
}
}
/* Declare widgets from GtkBuilder to handle signals */
GtkWidget *pMainProgressBar;
pMainProgressBar = GTK_WIDGET(gtk_builder_get_object(pBuildMainWindow, "progressbar1"));
GtkWidget *pMainNextButton;
pMainNextButton = GTK_WIDGET(gtk_builder_get_object(pBuildMainWindow, "button2"));
g_signal_connect_swapped(GTK_BUTTON(pMainNextButton), "clicked", G_CALLBACK(Progress10), pMainProgressBar);
GtkWidget *pAboutButton;
pAboutButton = GTK_WIDGET(gtk_builder_get_object(pBuildMainWindow, "button3"));
g_signal_connect(GTK_BUTTON(pAboutButton), "clicked", G_CALLBACK(AboutProgram), NULL);
GtkWidget *pSaveAsButton;
pSaveAsButton = GTK_WIDGET(gtk_builder_get_object(pBuildMainWindow, "button1"));
gtk_widget_set_sensitive(GTK_WIDGET(pSaveAsButton), FALSE);
/* Show step 1 */
GtkWidget *pStepFrame;
pStepFrame = GTK_WIDGET(gtk_builder_get_object(pBuildStep, "frame1"));
gtk_box_pack_start_defaults(GTK_BOX(pStepHorizontalBox), pStepFrame);
g_signal_connect_swapped(GTK_BUTTON(pMainNextButton), "clicked", G_CALLBACK(GoToStep2Destroy), pBuildMainWindow);
}
void GoToStep2Destroy(GtkBuilder *pBuildMainWindow, gpointer Data)
{
/* Ici j'ai bien récupéré le GtkWidget pBuildMainWindow, mais comment je détruis un widget enfant? \
* Sachant que je ne passe qu'un argument, c.a.d. le fenêtre principale du programme. Comment???? */
} |
Dans le main.c j'appelle la fonction: GoToStep1(pBuildMainWindow, NULL);
La première fonction fonctionne, mais après je dois détruire "pStepFrame".
Qui peut m'aider?
Merci