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 :

g_signal_connect et ses arguments


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 36
    Points
    36
    Par défaut g_signal_connect et ses arguments
    Bonjour,

    Pour mon interface, j'utilise un épluchage en règle de mon disque pour pouvoir faire une sélection multiple de fichiers.
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    void LectureRepertoireImage (GtkWidget *Widget, gchar *NomDossier)
    {
        GtkWidget *Fenetre;
        GtkWidget *BoxExt;
        GtkWidget *BoxBoutons;
        GtkWidget *BoxCommande;
        GtkWidget *BarreDefilement;
        GtkWidget *Bouton;
    
        Fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(Fenetre),"Contenu du répertoire Images");
        gtk_window_set_default_size(GTK_WINDOW(Fenetre), 320, 200);
        gtk_window_set_position(GTK_WINDOW(Fenetre), GTK_WIN_POS_CENTER);
    
        /*VBox extérieure*/
        BoxExt = gtk_vbox_new(TRUE, 0);
        /*Ajout dans la Fenetre*/
        gtk_container_add(GTK_CONTAINER(Fenetre), BoxExt);
    
        /*Creation d'une fenetre défilable*/
        BarreDefilement = gtk_scrolled_window_new(NULL, NULL);
        /*Ajout des "défilables" dans BoxExt*/
        gtk_container_add(GTK_CONTAINER(BoxExt), BarreDefilement);
        /*Fixation des politiques de défilement - Aucune en horizontale et Toujours en verticale*/
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(BarreDefilement), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
        /*Creation de la boite à boutons*/
        BoxBoutons = gtk_vbox_new(FALSE, 0);
        /*Ajout des proprietes d'étirementà la boite de boutons*/
        gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(BarreDefilement), BoxBoutons);
    
        GDir *Repertoire = g_dir_open(NomDossier, 0, NULL);
        if(Repertoire)
        {
            const gchar *NomFichier = NULL;
            while ((NomFichier = g_dir_read_name(Repertoire)))
            {
                Bouton = gtk_check_button_new_with_label(NomFichier);
                gtk_box_pack_start(GTK_BOX(BoxBoutons), Bouton, FALSE, FALSE, 0);
            }
        }
    
        /*Boite horizontale avec les boutons de commande*/
        BoxCommande = gtk_hbox_new(TRUE, 0);
        /*Ajout de cette HBox dans la BoxExt*/
        gtk_container_add(GTK_CONTAINER(BoxExt), BoxCommande);
        Bouton = gtk_button_new_from_stock(GTK_STOCK_OK);
        gtk_box_pack_start(GTK_BOX(BoxCommande), Bouton, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT(Bouton), "activate", G_CALLBACK(AjoutDiaporama), (GtkWidget *)BoxBoutons);
    
        Bouton = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
        gtk_box_pack_start(GTK_BOX(BoxCommande), Bouton, FALSE, FALSE, 0);
    
        gtk_widget_show_all(Fenetre);
    }
    Mais me voilà bien embêtée... Comment envoyer, en même temps que la VBox connue sous le nom de BoxBoutons, le nom du dossier d'origine (NomDossier), pour obtenir le nom complet du fichier ?
    Dois-je changer de fonction g_signal ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633

  3. #3
    Nouveau membre du Club
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 36
    Points
    36
    Par défaut
    Fichtre... Ça n'a pas l'air simple. Merci.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Hmm j'ai relu l'entrée de la faq, elle est un peu bizarre. L'idée générale est que tu définis une structure où tu mets les différentes données qui t'intéressent.

  5. #5
    Nouveau membre du Club
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 36
    Points
    36
    Par défaut
    La grande question est : faut-il que je fasse que déclaration simplissime comme sur la FAQ, ou dois-je tenter la création de nouveau type de Widget, en suivant le tutoriel de Frank Hecht (http://franckh.developpez.com/tutori...eation-widget/) ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Ca dépend, je choisis au cas par cas en général Si ça a du sens de dériver un nouvel objet, autant le faire, ça peut faire gagner du temps dans d'autres cas. Si ca n'a pas trop de sens, ça sera plus une perte de temps qu'autre chose.

  7. #7
    Nouveau membre du Club
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 36
    Points
    36
    Par défaut
    Ce qui me chatouille un peu, dans la FAQ, c'est ça :
    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
    typedef struc
    {
        /*Bon, ça, c'est le parent*/
        GtkWindow parent;
        /*Ça, c'est le contenu de MyWindow*/
        GtkWidget *widget1;
        GtkWidget *widget2;
    } MyWindow;
     
    void fait_des_trucs(GtkWidget *widget, gpointer data)
    {
        MyWindow *self = data;
        /*...*/
    }
    int main (int argc, char** argv)
    {
        GtkWidget my_window = my_window_new();
        /*...*/
    }
    Où a donc été déclarée la fonction my_window_new() ?

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

Discussions similaires

  1. [E-00][VBA] Créer une fonction et ses arguments
    Par tiyolx dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/07/2013, 09h43
  2. fonction qui modifie ses arguments d'entrée
    Par Amergin dans le forum Caml
    Réponses: 9
    Dernier message: 05/01/2009, 17h32
  3. [JVM] Récupére ses arguments
    Par GyZmoO dans le forum Général Java
    Réponses: 2
    Dernier message: 23/01/2008, 17h28
  4. fwrite et ses argument
    Par Maria1505 dans le forum Langage
    Réponses: 2
    Dernier message: 10/12/2006, 16h42
  5. Masquer sous unix un processus ou ses arguments
    Par alainmahe dans le forum Linux
    Réponses: 6
    Dernier message: 08/12/2006, 13h02

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