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 :

Menu Popup icone system tray


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut Menu Popup icone system tray
    Bonjour à tous,

    je cherche comment faire pour que mon icone (présent dans la system tray) puisse afficher son menu correctement.
    Lorsque je fait un clic droit sur cet icone, un menu doit s'afficher et je souhaiterai changer la position de ce menu.

    Cela me permeterai de gérer les différentes possibilité d'affichage en fonction de la position de la barre des taches de l'utilisateur.

    j'ai trouvé la fonction gtk_status_icon_position_menu(), mais impossible de la faire marché

    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
    void position_menu ()
    {
         gint *x,*y;
         gtk_status_icon_position_menu (GTK_MENU(menu), x, y, TRUE, p_status_icon);
         printf("%d\n%d\n", x,y); //==> renvoit 9 et 9 pour x et y
         system("PAUSE");
    }
     
    void popup_menu_function(GtkStatusIcon *status_icon, guint button, guint activate_time,  gpointer user_data)
    {
        GtkWidget *Connec, *Deconnec;
     
    	menu = gtk_menu_new();
     
    	// this opens the downloader window, or brings it to the foreground if already open
    	Connec = gtk_menu_item_new_with_mnemonic (("_Connexion"));
    	//g_signal_connect_swapped (item, "activate",G_CALLBACK (cb_new), NULL);
    	gtk_menu_shell_append (GTK_MENU_SHELL (menu), Connec);
     
    	// this opens the downloader window, or brings it to the foreground if already open
    	Deconnec = gtk_menu_item_new_with_mnemonic (("_Deconnexion"));
    	//g_signal_connect_swapped (item, "activate",G_CALLBACK (cb_new), NULL);
    	gtk_menu_shell_append (GTK_MENU_SHELL (menu), Deconnec);
     
    	gtk_widget_show_all (menu);
     
    	gtk_menu_popup (GTK_MENU(menu), NULL, NULL, position_menu, NULL, button, activate_time);
    }
    Merci d'avance pour votre aide

    ++

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Citation Envoyé par gy0m76 Voir le message
    Bonjour à tous,

    je cherche comment faire pour que mon icone (présent dans la system tray) puisse afficher son menu correctement.
    Lorsque je fait un clic droit sur cet icone, un menu doit s'afficher et je souhaiterai changer la position de ce menu.

    Cela me permeterai de gérer les différentes possibilité d'affichage en fonction de la position de la barre des taches de l'utilisateur.

    j'ai trouvé la fonction gtk_status_icon_position_menu(), mais impossible de la faire marché

    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
    void position_menu ()
    {
         gint *x,*y;
         gtk_status_icon_position_menu (GTK_MENU(menu), x, y, TRUE, p_status_icon);
         printf("%d\n%d\n", x,y); //==> renvoit 9 et 9 pour x et y
         system("PAUSE");
    }
     
    void popup_menu_function(GtkStatusIcon *status_icon, guint button, guint activate_time,  gpointer user_data)
    {
        GtkWidget *Connec, *Deconnec;
     
    	menu = gtk_menu_new();
     
    	// this opens the downloader window, or brings it to the foreground if already open
    	Connec = gtk_menu_item_new_with_mnemonic (("_Connexion"));
    	//g_signal_connect_swapped (item, "activate",G_CALLBACK (cb_new), NULL);
    	gtk_menu_shell_append (GTK_MENU_SHELL (menu), Connec);
     
    	// this opens the downloader window, or brings it to the foreground if already open
    	Deconnec = gtk_menu_item_new_with_mnemonic (("_Deconnexion"));
    	//g_signal_connect_swapped (item, "activate",G_CALLBACK (cb_new), NULL);
    	gtk_menu_shell_append (GTK_MENU_SHELL (menu), Deconnec);
     
    	gtk_widget_show_all (menu);
     
    	gtk_menu_popup (GTK_MENU(menu), NULL, NULL, position_menu, NULL, button, activate_time);
    }
    Merci d'avance pour votre aide

    ++
    Dans la fonction gtk_status_icon_position_menu tu utilise la variable "p_status_icon". Hors dans ton code elle n'apparait nulle part !!
    idem pour "menu". A mon avis dans la structure de ta fonction position_menu () il te manque le passage des arguments ...

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut
    Ces paramètres sont déclarés en global pour le moment

Discussions similaires

  1. system tray icone et animation
    Par mermich dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 21/01/2015, 21h50
  2. [Débutant] associer un hotkey avec un item de menu du system tray
    Par maan dans le forum C#
    Réponses: 3
    Dernier message: 16/06/2013, 20h48
  3. Icone dans le systeme tray
    Par Ldoppea dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 29/04/2009, 09h18
  4. Message du System Tray Icon
    Par jymmy dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 24/09/2008, 09h36

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