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

API graphiques Discussion :

CEGUI et boîte de message


Sujet :

API graphiques

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Points : 82
    Points
    82
    Par défaut CEGUI et boîte de message
    Bonjour,
    J'aimerais savoir s'il est possible d'afficher des boîtes de messages modales (avec CEGUI et Ogre) ? Du style, "Voulez-vous vraiment quitter l'application ?"

    Si oui, comment. Si non, comment je peux me débrouiller pour avoir un tel résultat sous Ogre ?


    Cela serait préférable une classe que l'on peut utiliser à la volée ! Comme QMessageBox (dans QT) qui permet de créer des messages, mais possèdent en outre des membres statiques qui en crée en une ligne de code !

    Merci d'avance pour votre aide !

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonjour,

    Alors oui, il est possible de faire une boite modale avec CEGUI. Une telle boite ne serait qu'une window, un texte de message et quelques boutons. Pour la rendre modale, plusieurs méthodes :

    * désactiver tous les objets qui pourraient intercepter un évènement utilisateur
    * débrancher le passage des évènements à Ogre pour les garder dans CEGUI
    * mettre un grand cadre semi opaque pour remplir l'écran et dessiner la fenêtre par dessus.

    A ma connaissance, l'objet "modal window" n'existe pas nativement dans CEGUI, tu devras donc recoder un morceau (l'une des 3 solutions, voire une autre).

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Points : 82
    Points
    82
    Par défaut
    Et dans mon code de la classe, j'aimerais qu'il y ait une fonction comme QT, du style : int DQialog::exec()

    Voici le code de cette fonction (sorti de QT) :
    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
    int QDialog::exec()
    {
        Q_D(QDialog);
        if (d->eventLoop) {
            qWarning("QDialog::exec: Recursive call detected");
            return -1;
        }
     
        bool deleteOnClose = testAttribute(Qt::WA_DeleteOnClose);
        setAttribute(Qt::WA_DeleteOnClose, false);
     
        bool wasShowModal = testAttribute(Qt::WA_ShowModal);
        setAttribute(Qt::WA_ShowModal, true);
        setResult(0);
     
    //On Windows Mobile we create an empty menu to hide the current menu
    #ifdef Q_OS_WINCE_WM
    #ifndef QT_NO_MENUBAR
        QMenuBar *menuBar = 0;
        if (!findChild<QMenuBar *>())
            menuBar = new QMenuBar(this);
        if (qt_wince_is_smartphone()) {
            QAction *doneAction = new QAction(tr("Done"), this);
            menuBar->setDefaultAction(doneAction);
            connect(doneAction, SIGNAL(triggered()), this, SLOT(_q_doneAction()));
        }
    #endif //QT_NO_MENUBAR
    #endif //Q_OS_WINCE_WM
     
        show();
     
        QEventLoop eventLoop;
        d->eventLoop = &eventLoop;
        QPointer<QDialog> guard = this;
        (void) eventLoop.exec();
        if (guard.isNull())
            return QDialog::Rejected;
        d->eventLoop = 0;
     
        setAttribute(Qt::WA_ShowModal, wasShowModal);
     
        int res = result();
        if (deleteOnClose)
            delete this;
    #ifdef Q_OS_WINCE_WM
    #ifndef QT_NO_MENUBAR
        else if (menuBar)
            delete menuBar;
    #endif //QT_NO_MENUBAR
    #endif //Q_OS_WINCE_WM
        return res;
    }
    C'est à mon avis grâce à l'event loop que cette fonction marche...
    Mais comment faire pareil dans mon code ?

Discussions similaires

  1. [OpenOffice] Réafficher une boîte de message
    Par mpat dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 14/09/2007, 13h10
  2. Boîte de message InputBox à composants multiples
    Par randriano dans le forum Delphi
    Réponses: 5
    Dernier message: 11/04/2007, 09h25
  3. Boîte de message sans bouton "Veuillez patienter..."
    Par Droïde Système7 dans le forum Delphi
    Réponses: 18
    Dernier message: 14/02/2007, 10h38
  4. Réponses: 4
    Dernier message: 23/08/2006, 14h15
  5. Une boîte de messages en PHP ?
    Par TheRedLed dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/05/2006, 15h10

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