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 :

Comment utiliser "GTK_IS_XX" ?


Sujet :

GTK+ avec C & C++

Vue hybride

cypher.sephiroth Comment utiliser "GTK_IS_XX"... 05/11/2009, 12h20
liberforce GTK_IS_TOGGLE_BUTTON(toggle_bu... 05/11/2009, 14h08
cypher.sephiroth Donc, si je comprends bien,... 05/11/2009, 15h38
teuf13 Perso ça me mettrait un peu... 05/11/2009, 15h48
cypher.sephiroth C'est bien possible, mais... 09/11/2009, 10h10
teuf13 C'est pas ça que je suggère.... 09/11/2009, 11h40
liberforce Absolument pas. C'est fait... 06/11/2009, 15h41
cypher.sephiroth Je tente autre chose. Merci... 13/11/2009, 15h53
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut Comment utiliser "GTK_IS_XX" ?
    Bonjour,

    Pour me faire un équivalent de GtkFileChooser à ma sauce, j'utilise des CheckButtons dans une GtkDialog.
    Pour extraire les éléments sélectionnés, j'ai besoin de gtk_container_get_children qui m'extrait tout le contenu du GtkDialog.
    Comment utiliser la fonction "GTK_IS_XX" pour éviter "Invalid cast from 'GtkHSeparator'" et autres "gtk_toggle_button_get_active: assertion 'GTK_IS_TOGGLE_BUTTON(toggle_button)' failed" ?
    Merci de vos indices.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    GTK_IS_TOGGLE_BUTTON(toggle_button) te permet de vérifier si ta variable est bien du type GtkToggleButton. Si ça gueule, c'est qu'elle n'est pas de ce type.

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

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Donc, si je comprends bien, je peux utiliser une ligne du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(GTK_IS_TOGGLE_BUTTON(TempWidget)
    {
    //Code si le Widget est un ToggleButton
    }
    else
    {
    //Code si pas ToggleButton
    }

  4. #4
    Membre Expert
    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
    Par défaut
    Perso ça me mettrait un peu mal à l'aise de me retrouver à itérer sur des objets "au hasard" et à devoir faire le tri pour retrouver les bons.

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

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Perso ça me mettrait un peu mal à l'aise de me retrouver à itérer sur des objets "au hasard" et à devoir faire le tri pour retrouver les bons.
    C'est bien possible, mais dans la mesure où j'obtiens des messages d'avertissement, faire directement "Je sors tout ce qui est contenu, je teste à la barbare si le bouton est actif, qu'importe si c'est même pas un widget susceptible d'être actif et roule.", ça me met tout aussi mal à l'aise.

  6. #6
    Membre Expert
    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
    Par défaut
    C'est pas ça que je suggère. Je suggère que ton programme sache ce qu'il fait et que peut être ça serait mieux si tu ne retrouvais pas avec pleins de widgets que tu dois trier, mais plutôt que tu aies directement une liste des widgets avec lesquels tu dois interagir. Tu les crées bien à un moment ou à un autre, donc à ce moment là tu sais quels widgets vont avoir besoin d'un traitement dans le futur, c'est donc dommage de perdre cette information.

  7. #7
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Citation Envoyé par cypher.sephiroth Voir le message
    Donc, si je comprends bien, je peux utiliser une ligne du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(GTK_IS_TOGGLE_BUTTON(TempWidget)
    {
    //Code si le Widget est un ToggleButton
    }
    else
    {
    //Code si pas ToggleButton
    }
    Absolument pas. C'est fait pour aider le programmeur, et déclencher une assertion si la condition est fausse. En gros ça te sert à vérifier que tu ne fournis pas n'importe quoi à ton code, qui risque de crasher plus tard.

    Le bon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GTK_IS_TOGGLE_BUTTON(TempWidget);
    /* maintenant je peux utiliser des méthodes en étant sur que je manipule bien un GtkToggleButton */
    Ça ne sert pas à deviner de quel type est ton objet, ça te sert à vérifier qu'il est bien d'un type donné, et provoquer une erreur fatale si ce n'est pas le cas (et te permettre de corriger le bug de ton application).

    Je te conseille aussi de jeter un coup d'oeil à g_assert, indispensable pour repérer les erreurs de programmation (runtime errors, celles qui ne se voient pas à la compilation, mais à l'exécution) en amont.

  8. #8
    Membre confirmé
    Profil pro
    Recette MOE/MOA
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Recette MOE/MOA

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Je tente autre chose. Merci de vos réponses.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/05/2008, 22h26

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