Bonjour,

Dans une fenêtre GTK_WINDOW_TOPLEVEL, je mets un VBox. Dans le VBox, je mets un Button avec un label et un DrawingArea.
Le DrawingArea n'est pas visbile. Il est affiché ou masqué lorsque l'on clique sur le bouton (s'il est masqué, le clique sur le bouton l'affiche et vice-versa).

Dans le drawing area, je dessine un rectangle couvrant tout le widget, en modifiant la couleur de foreground du widget.

J'ai un problème, car lorsque j'ai affiché le drawingarea, puis lorsque je le masque, la couleur du label du bouton est modifiée ! Sa couleur devient identique à la couleur que j'utilise pour dessiner le rectangle du drawing area.

Voici le code de dessin dans le drawing area :

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
 
/*static*/ 
gboolean cAppShowHideWidget::s_boDrawingAreaExposeEvent(GtkWidget* pArea, GdkEventExpose* pEvent)
{
	int nWidth = pArea->allocation.width;
	int nHeight = pArea->allocation.height;
 
	GdkGC* pGC = pArea->style->fg_gc[GTK_WIDGET_STATE(pArea)];
 
	GdkColor Color = {0, 192*0xFFFF/0xFF, 0, 0};	
	gdk_gc_set_rgb_fg_color(pGC, &Color);
 
	gdk_draw_rectangle(
		pArea->window,
		pGC,
		TRUE, /*filled*/
		0, 0,
		nWidth, nHeight
	);
 
	return TRUE;
}
Je ne vois pas pourquoi la modification de la couleur de foreground du widget drawing area impact la couleur de foreground du bouton avec label.

Si quelqu'un a une explication, je suis preneur.

Merci.