J'ai ajouté GtkMenu en utilisant le code suivant:
Problème Lors du réglage de GtkMenu sous le bouton Widget
// Add popup menu.
gtk_menu_popup(GTK_MENU (widget), NULL, NULL, set_position, NULL,
bevent->button, bevent->time);
Et pour régler cette GtkMenu sous mon bouton j'ai utilisé cette fonction:
void set_position (GtkMenu *menu, gint *px, gint *py, gboolean *push_in, gpointer data)
{
gint w, h;
GtkBuilder *builder = GetBuilderPointer();
GtkWidget *button = GTK_WIDGET(gtk_builder_get_object(builder, "button_presence"));
gdk_window_get_size (button->window, &w, &h);
gdk_window_get_origin (button->window, px, py);
*py = h;
printf("\n\n w[%d] h[%d] px[%d] py[%d]\n\n", w, h, *px, *py);
*push_in = TRUE;
}
mais la fenêtre contextuelle s'affiche à la fin de la fenêtre entière et non à la fin du bouton ...
eteint du printf:
w [350] h [400] px [341] py [607]
ce qui se passe mal pourquoi il ne donne pas x, y et hauteur, largeur du bouton correctement ?
Remarque: Le widget de bouton utilisé ici est un widget composite personnalisé avec (GtkHBox + (GtkImage + GtkLabel)).
J'ai essayé le même code avec le bouton label normal mais GtkMenu est toujours affiché sous la fenêtre root non sous le bouton.
Pourquoi cela pourrait se passer ... Je suis coincé le relais sur cette ...
thnaks,
PP