wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 5
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Navigation avec les touches du clavier
Conversation : Navigation avec les touches du clavier
10-02-2017 20:33:05  Navigation avec les touches du clavier #1
Alfred83 (Membre)
Lieu: Toulon 83
Inscrit le : 28-12-2007
Messages: 40
Snippets: 0
Tutoriels: 0
Hors ligne
J'ai fais un pgm qui traduit en braille les formules de math de Libre Office et qui fonctionne correctement avec la souris et les bouttons. Je n'arrive pas à mettre en place une navigation avec les touches du clavier, indispensable pour mes utilisateurs qui sont non voyants.
Pas moyen d'appeler OnChar, l'événement est mal programmé, de même que la ligne après le premier else. (Je souhaite propager l'événement RETURN).

Code Cpp:

 
#include "FormulesLo.h"
BEGIN_EVENT_TABLE(FormulesLo,wxDialog)
    EVT_BUTTON(ID_BTSAUVEGARDER,FormulesLo::OnButtonSauvegarderClicked)
    EVT_BUTTON(ID_BTTRANSCRIRE,FormulesLo::OnButtonTranscrireClicked)
    EVT_BUTTON(ID_BTQUITTER,FormulesLo::OnButtonQuitterClicked)
    EVT_BUTTON(ID_BTCHARGER,FormulesLo::OnButtonChargerClicked)
    EVT_CHAR( FormulesLo::OnChar)
END_EVENT_TABLE()
 
FormulesLo::FormulesLo(wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style): wxDialog(parent, id, title, position, size, style)
{ createGUIControls(); }
 
FormulesLo::~FormulesLo()
{ }
 
void FormulesLo::CreateGUIControls()
{
    création d'une wxDialog FormulesLo...
    création de trois wxRichTextControl: wxNoir, wxResultat, wxBraille...
    création de quatre boutons: Charger, Transcrire, Sauvegarder, Quitter...
}
 
void FormulesLo::OnClose(wxCloseEvent& event)
{   Sauvegarde(); Destroy();}
 
void FormulesLo::OnButtonChargerClicked(wxCommandEvent &event)
{   Charge(); }
 
void FormulesLo::OnButtonTranscrireClicked(wxCommandEvent &event)
{   Transcrit(); }
 
void FormulesLo::OnButtonSauvegarderClicked(wxCommandEvent &event)
{   Sauvegarde(); }
 
void FormulesLo::OnButtonQuitterClicked(wxCommandEvent &event)
{   Quitte(); }
 
  Les méthodes de FormulesLo: Charge(), Transcrire(), Sauvegarder(), Quitter(). sont ok
 
void FormulesLo::OnChar( wxKeyEvent & event )
{
    wxString Msg = _T ( "Touche enfoncée" ); AffiMsg ( Msg );
    int flags = 0;
    if ( event.GetKeyCode() == WXK_F1 || event.GetKeyCode() == WXK_F2 || event.GetKeyCode() ==    WXK_F3 || event.GetKeyCode() == WXK_F4 )
       { navigate(event.GetKeyCode(), flags); }
    else if (event.GetKeyCode() == WXK_RETURN)
       {
         wxFormulesLoEvent cmdEvent( wxEVT_COMMAND_FORMULESLO_RETURN, GetId());
         cmdEvent.SetEventObject(this);
         cmdEvent.SetFlags(flags);
         GetEventHandler()->ProcessEvent(cmdEvent);
       }
    else event.Skip();
}
 
void FormulesLo::navigate ( int Touche, int & flags )
{
    if ( Touche == WXK_F1 ) Charge();   
    if ( Touche == WXK_F2 ) Transcrit();
    if ( Touche == WXK_F3 ) Sauvegarde();
    if ( Touche == WXK_F4 ) Quitte();
}

Informaticien bénévole du "Groupement des Intellectuels Aveugles ou Amblyopes" à Toulon, qui publie les trois quarts des livres en braille en France.
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Navigation avec les touches du clavier