IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Un popup menu qui ne s'affiche pas (sans parent)


Sujet :

GTK+ avec C & C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut Un popup menu qui ne s'affiche pas (sans parent)
    Bonjour à tous,

    Je rencontre un petit problème :
    J'essaie d'afficher un menu popup lorsque l'utilisateur fait un click droit sur une icône dans la barre de statut.
    Rien de bien difficile, il me suffit de créer mon menu puis de connecter le signal "popup-menu" de la GtkStatusIcon à une callback qui appelle gtk_menu_popup().
    Voici le code de ma callback :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_menu_popup(GTK_MENU(instance().m_skins), NULL, NULL, &gtk_status_icon_position_menu, NULL, button, activate_time);
    Le problème c'est que lorsque je clique (à droite bien sûr!) sur l'icône, je vois un minuscule carré qui ne ressemble pas vraiment à un menu, d'ailleurs quand je clique dedans rien ne se passe alors que mes items sont connectés à des callbacks.

    Savez vous d'où cela peut provenir?

    Merci d'avance!

    Sp@rtan03

    PS : Voici comment je crée mes menus (le tout se fait au sein d'un SINGLETON, je suis en c++, d'où le instance())

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sb_popup_menu = gtk_menu_new();
            mi_open_sw = gtk_menu_item_new_with_label(g_locale_to_utf8(LANGPACK::instance().expression("afficher reglages").c_str(), -1, NULL, NULL, NULL));
            g_signal_connect(G_OBJECT(mi_open_sw), "activate", G_CALLBACK(cb_mi_open_sw_activate), NULL);
            mi_separator = gtk_separator_menu_item_new();
            mi_quit = gtk_menu_item_new_with_label(g_locale_to_utf8(LANGPACK::instance().expression("quitter").c_str(), -1, NULL, NULL, NULL));
            g_signal_connect(G_OBJECT(mi_quit), "activate", G_CALLBACK(cb_mi_quit_activate), NULL);
            gtk_menu_shell_insert(GTK_MENU_SHELL(sb_popup_menu), mi_open_sw, 0);
            gtk_menu_shell_insert(GTK_MENU_SHELL(sb_popup_menu), mi_separator, 1);
            gtk_menu_shell_insert(GTK_MENU_SHELL(sb_popup_menu), mi_quit, 2);
    Pourquoi faire simple quand on peut faire compliqué!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut
    Je me demande si ça ne vient pas de ma façon de coder mon programme.
    Mon interface graphique et en réalité un objet (c++), plus préscisément un singleton et les callbacks en sont des méthodes statiques mais je me demande si il n'y pas incompatibilité avec GTK+ car la fonction qui appelle le gtk_main() est encore active lors de l'appel des callbacks et toutes deux font partie du même objet.
    Je crois que je vais essayer de coder l'interface graphique en C pur (pas de feinte de POO) des fois que ça change quelque chose. Car j'ai remarqué que je ne pouvais pas créer de fenêtre ou même de boite de dialogue sans rencontrer un bug d'affichage après le gtk_main(). J'arrive juste à créer une boite de dialogue recherche de fichier mais si je la détruit (gtk_widget_destroy) ça plante, je dois la cacher (gtk_widget_hide_all).
    J'ai remarqué que si je mettais mon menu dans la barre de menu de ma fenêtre (avant le gtk_main()) ça marchait.
    Ca pourrait peut-être venir du fait que j'utilise une dll?
    En tout cas je vais réessayer de coder ça en C!
    Pourquoi faire simple quand on peut faire compliqué!

Discussions similaires

  1. Sous-menu qui ne s'affiche pas
    Par foxy50 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 01/03/2015, 19h44
  2. Menu qui ne s'affiche pas comme prévu sous IE
    Par baggie dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 20/07/2012, 16h48
  3. [Joomla!] menu qui ne s'affiche pas comme il devrait
    Par dido153 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 01/03/2010, 10h00
  4. Menu qui ne s'affiche pas
    Par vg-matrix dans le forum Débuter
    Réponses: 2
    Dernier message: 09/10/2008, 12h59
  5. Sous-menu qui ne s'affiche pas sous Mozilla
    Par philippef dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 08/08/2008, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo