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 :

Utilisation de GtkUIManager, quelques problèmes


Sujet :

GTK+ avec C & C++

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut Utilisation de GtkUIManager, quelques problèmes
    Bonjour,

    j'ai créé une fenêtre dans laquelle j'ajoute mon menu par l'utilisation du GtkUIManager. Les problèmes devant lesquels je suis sont :

    - les raccourcis que j'ai défini dans mon "menu.xml" ne fonctionnent pas du tout
    - comment spécifier la structure de données à passer en 2nd argument du callback d'un élément du menu ?

    Merci beaucoup


    edit: voici la fonction que j'utilise
    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
     
    int menu_build_ui(GtkWidget *p_box, const gchar *xml_file) {
     
        GtkUIManager *p_ui_manager = gtk_ui_manager_new();
        GtkActionGroup *p_action_group = NULL;
     
        if(p_ui_manager == NULL)
            return 0;
     
        gtk_ui_manager_add_ui_from_file
        (
            p_ui_manager,
            xml_file,
            NULL
        );
     
        g_signal_connect
        (
            p_ui_manager,
            "add-widget",
            G_CALLBACK(menu_add_widget),
            p_box
        );
     
        GtkActionEntry entries[] =
        {
            { "FileAction",     NULL,           "File",     "<Alt>f",       NULL,   NULL },
            { "NewAction",      GTK_STOCK_NEW,  "New",      "<Control>n",   "New",   G_CALLBACK(cb_add_tab) },
            { "OpenAction",     GTK_STOCK_OPEN, "Open",     "<Control>o",   "Open",   G_CALLBACK(generic_cb) },
            { "SaveAction",     GTK_STOCK_SAVE, "Save",     "<Control>s",   "Save",   G_CALLBACK(generic_cb) },
            { "QuitAction",     GTK_STOCK_QUIT, "Quit",     "<Control>q",   "Quit",   G_CALLBACK(generic_quit) }
        };
     
     
        p_action_group = gtk_action_group_new("menuActionGroup");
        gtk_action_group_add_actions(p_action_group, entries, G_N_ELEMENTS(entries), NULL);
        gtk_ui_manager_insert_action_group( p_ui_manager, p_action_group, 0);
     
        return 0;
     
    }

  2. #2
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Salut
    Pour le problèmes des raccourçis clavier, il peut y avoir plusieurs problèmes,
    Citation Envoyé par bit_o
    comment spécifier la structure de données à passer en 2nd argument du callback d'un élément du menu ?
    C'est dans l'appel à la fonction gtk_action_group_add_actions () en 4ème paramètre que tu donnes le pointeur pour les fonctions callbacks.
    Omnes Vulnerant Ultima Necat
    Bye

  3. #3
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut
    pour l'argument c'est bon.
    Mais pour les raccourcis, je n'ai toujours pas trouvé. Il ne faut pas spécifier à la fenêtre que l'on va utiliser des raccourcis ou quelque chose du genre ?

    par exemple on peut faire appel à la fonction "gtk_window_add_accel_group(...)" quand on gère soit même le menu. Mais là, vu que c'est le GtkUIManager qui s'en charge, je ne vois pas

    Merci en tout cas Shugo

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par bit_o Voir le message
    par exemple on peut faire appel à la fonction "gtk_window_add_accel_group(...)" quand on gère soit même le menu. Mais là, vu que c'est le GtkUIManager qui s'en charge, je ne vois pas
    Nan il faut le faire aussi

  5. #5
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Citation Envoyé par bit_o
    par exemple on peut faire appel à la fonction "gtk_window_add_accel_group(...)" quand on gère soit même le menu. Mais là, vu que c'est le GtkUIManager qui s'en charge, je ne vois pas
    Je confirme, il faut l'appeler quand même, c'est pas compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GtkAccelGroup* p_AccelGroup = gtk_ui_manager_get_accel_group (pUiManager);
    gtk_window_add_accel_group (GTK_WINDOW (p_Window), pAccelGroup);
    Omnes Vulnerant Ultima Necat
    Bye

  6. #6
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut
    tu pourrais me préciser un petit peu la marche à suivre parce que je ne vois pas où doit-on ajouter l'instruction gtk_window_add_accel_group et surtout comment spécifier tous les raccourcis, et sur quel menuItem ils pointent ?

    Merci

    Edit : cf msg précédent. Merci beaucoup à vous deux

    Tout marche parfaitement

  7. #7
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Si ton problème est résolu pense au tag .
    Omnes Vulnerant Ultima Necat
    Bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [androMDA] - quelques problèmes avec le tutoriel
    Par spidetra dans le forum Maven
    Réponses: 6
    Dernier message: 31/03/2008, 15h55
  2. [MS CRM 3.0] Quelques problèmes d'utilisation
    Par Me,Myself and I dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 22/11/2006, 22h26
  3. Quelques problèmes avec charAt
    Par Tazzz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/11/2005, 14h05
  4. Quelques problèmes avec SQL SERVEUR (LIKE et caractères)
    Par poussinphp dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 21/09/2005, 09h43
  5. [MFC]Utilisation d'un SLIDER , problème de conversion
    Par sylvain_c42 dans le forum MFC
    Réponses: 1
    Dernier message: 10/05/2005, 14h31

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