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

Linux Discussion :

X11/motif : tester qu'une adresse est un widget ?


Sujet :

Linux

  1. #1
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut X11/motif : tester qu'une adresse est un widget ?
    Bonjour,

    Dans mon application, la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!XtIsManaged(widget))
    permettait soit de créer le widget soit de faire un XtPopup sur celui-ci.
    C'était sous unix et cela marchait très bien.
    Sous linux, le XtIsManaged semble prendre en argument un widget valide (ce qui n'est déjà pas le cas la première fois lorsque widget=NULL).

    Comment faire autrement ?

    Merci

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    http://www.developpez.net/forums/d57...s-xtismanaged/

    The XtIsManaged function returns True if the specified widget is of
    class RectObj or any subclass thereof and is managed, or False other-
    wise.
    Je ne vois rien dans la norme qui laisse supposer qu'on peut lui passer NULL (i.e un widget invalide).

  3. #3
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Je n'ai pas dit que la norme prévoyait la valeur NULL en entrée de XtIsManaged.
    Cependant, sous unix (HPUX et solaris en tout cas), le XtIsManaged ne part pas en segmentation fault et l'appli. tourne correctement) alors que sous linux c'est systématique.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    c'est exact, mais comme de toutes façons c'est une sûreté logique en C (tester par rapport à NULL), c'est mieux, non ?

    Comme ce genre de problèmes n'arrive que dans le cas de créations conditionnelles ou de tableaux de widgets, une bonne pratique est de tester les cas pouvant être litigieux..


    De plus, avant de faire le XtIsManaged, tu aurais pu faire un XtIsRealized..

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

Discussions similaires

  1. Tester si une procedure est en cours d'éxécution
    Par tipiweb dans le forum Langage
    Réponses: 3
    Dernier message: 27/07/2005, 14h34
  2. [langage] Comment tester si une chaine est vide
    Par |Bio dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 15h05
  3. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 16h25
  4. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17
  5. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54

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