Historique des modifications - Message

Message #9801

Sujet: EditBox/evenements


Type Date Auteur Contenu
Dernière modification 17-02-2011 19:12:34 thesus
Ok, j'ai compris, et trouvé une solution :

Je me sert de l’évènement focused et focus_lost pour gérer le focus.

virtual bool OnEvent(const SEvent& event)
{

    //test sur la gui
    if(event.EventType==EET_GUI_EVENT)
    {

        //Ce test va s'appliquer à tout les éléments de la gui.
        //Faire un autre test sur l'editbox si c'est le seul élément qui doit bloquer les touches du clavier

        if(event.GUIEvent.EventType==EGET_ELEMENT_FOCUSED)
        {
            //variable à déclarer dans la classe
            focus=true;
        }

        if(event.GUIEvent.EventType==EGET_ELEMENT_FOCUS_LOST)
        {
            focus=false;
        }
    }


    //test sur les touches
    if(event.EventType==EET_KEY_INPUT_EVENT)
    {

        //gérer les touches si la gui na pas le focus
        if(!focus)
        {
            if(event.KeyInput.Key==KEY_KEY_A && event.KeyInput.PressedDown)
            {
                std::cout<<"toucheA"<<std::endl;
                return true;
            }
        }
    }
    return false;
}
Création du message 17-02-2011 19:11:13 thesus
Ok, j'ai compris, et trouvé une solution :

Je me sert de l’évènement focused et focus_lost pour gérer le focus.

virtual bool OnEvent(const SEvent& event)
{

    //test sur la gui
    if(event.EventType==EET_GUI_EVENT)
    {

        //Ce test va s'appliquer à tout les éléments de la gui.
        //Faire un autre test sur l'editbox si c'est le seul élément qui doit bloquer les touches du clavier

        if(event.GUIEvent.EventType==EGET_ELEMENT_FOCUSED)
        {
            //variable à déclarer dans la classe
            focus=true;
        }

        if(event.GUIEvent.EventType==EGET_ELEMENT_FOCUS_LOST)
        {
            focus=false;
        }
    }


    //test sur les touches
    if(event.EventType==EET_KEY_INPUT_EVENT)
    {

        //gérer les touches si la gui na pas le focus
        if(!focus)
        {
            if(event.KeyInput.Key==KEY_KEY_A && event.KeyInput.PressedDown)
            {
                std::cout<<"toucheA"<<std::endl;
                return true;
            }
        }
    }
    return false;
}

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
116 invités en ligne
membre en ligne: -
RSS Feed