Bonjour à tous et à toutes.
Mon problème est le suivant :
J'ai un editeur qui peut gérer plusieurs fichier avec le système d'onglet.
Mais pour mes propre raison, j'ai besoin de la fonction "gtk_notebook_get_current_page" qui indique le numéro de la page ouverte.
Cette fonction se trouve dans une fonction relié au signal "switch-page"
Liste_onglet est un widget statique (C'est déconseillé mais c'est temporaire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part g_signal_connect(G_OBJECT(Liste_onglet), "switch-page", G_CALLBACK(Change_Buffer), Liste_onglet);![]()
L'ennui c'est que la fonction qui contient "gtk_notebook_get_current_page" me sort n'importe quoi...
Le premier onglet qui apparaît cela me sort -1, des fois le prgramme décide d'inverser les nombres, ainsi un 2 (d'après lui) devient 1 etc...
Voici le code pour ceux qui ne comprennent pas ce que je veux dire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 void Change_Buffer(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { gint Nombre; Nombre = gtk_notebook_get_current_page(GTK_NOTEBOOK(user_data)); GtkWidget *Dialogue; Dialogue = gtk_message_dialog_new(GTK_WINDOW(MainWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Vous etes a la page %ld", Nombre); gtk_dialog_run(GTK_DIALOG(Dialogue)); gtk_widget_destroy(Dialogue); /* On trouuve le nombre de l'onglet ouvert */ gchar *Contenu_buffer = g_list_nth_data(Liste_Contenu, Nombre-1); /* On trouve le contenu du buffer */ gtk_text_buffer_get_start_iter(TextBuffer, &Debut); printf("%s", Contenu_buffer); if(Contenu_buffer != NULL) { gtk_text_buffer_insert(TextBuffer, &Debut, g_locale_to_utf8(Contenu_buffer, -1, NULL, NULL, NULL), -1); /* On insere le texte dans le buffer */ } g_free(Contenu_buffer); }
Je ne vois aucune erreur mais si quelqu'un pouvait m'aider je lui en serais reconnaiassant
Partager