salut

je suis en train de creer une appli multi fenetre en glade et j'ai un probleme (de pointeur je pense) :
j'ai sur ma fentre MainWindow un gtk_toggle_button nommé ToggleButton qui doit afficher/cacher une fenetre fille nommée SubWindow et pour cela j'utilise le code suivant :

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
#include <stdio.h>
#include <stdlib.h>
 
#include <gtk/gtk.h>
#include <glade/glade.h> 
 
 
GladeXML *MonGlade; 
GtkWidget *MainWindow, *SubWindow, *ToggleButton;
 
 
void HidOrUnHide ()
{
	if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(ToggleButton))=TRUE)
	{
		gtk_widget_show(SubWindow);
	}
	else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(ToggleButton))=FALSE)
	{
		gtk_widget_hide(SubWindow);
	}
}
 
int main(int argc,char *argv[])
{
  gtk_init(&argc,&argv);
 
  MonGlade=glade_xml_new("MyWindows.glade",NULL,NULL);
  g_assert(MonGlade != NULL);
  glade_xml_signal_autoconnect(MonGlade);
 
  MainWindow=glade_xml_get_widget(MonGlade,"MainWindow" );
  SubWindow=glade_xml_get_widget(MonGlade,"SubWindow" );
  ToggleButton=glade_xml_get_widget(MonGlade,"ToggleButton" );
 
 g_signal_connect(G_OBJECT (SubWindow),"delete-event", G_CALLBACK(HideOrUnHide), NULL);
 
   g_signal_connect(G_OBJECT (ToggleButton),"toggled", G_CALLBACK(HideOrUnHide), NULL);
 
 gtk_widget_show_all(MainWindow);
 
  gtk_main(); 
  return EXIT_SUCCESS;
}

et quand je compile (dans Geany) il me dit

"erreur: lvalue required as left operand of assignment"

pour mes 2 lignes contenenant "gtk_toggle_button_get_active", en effet je n'arrive pas a trouver quel parametre donner à cette fonction... mais si ça se trouve c'est pas ça le pb....

si vous pouviez m'aider car la seule doc que j'ai est la reference de GTK en anglais et c'est pas très compréhensible....


please HELP ME !!!! ça fait deux heures que je bloque là dessus (j'ai essayé avec *, avec des **, avec &, avec && .... rien n'y fait)