Bonjour à tous

Je voudrais faire mon propre validateur en héritant de wxTextValidator, mais j'ai quelques problèmes.

Voici ma classe héritée:
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
#include <wx/valtext.h>
 
// Declaration
class MyValidator : wxTextValidator
{
   MyValidator();
   MyValidator(const MyValidator& val);
   ~MyValidator() {};
 
   wxObject* Clone() const {return new MyValidator(*this);};
   bool Validate(wxWindow* parent);
};
 
// Implementation
MyValidator::MyValidator()
: wxTextValidator(wxFILTER_NONE, NULL)
{
}
 
MyValidator::MyValidator(const MyValidator& val)
{
   Copy(val);
}
 
bool MyValidator::Validate(wxWindow* parent)
{
   // My validation procedure
   // ...
 
   return true; // or false
}
Et voici comment j'associe mon wxTextCtrl et ce MyValidator:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
MyInheritedPanel::MyInheritedPanel(wxWindow* parent)
: MyBasePanel(parent)
{
   // m_myTextCtrl is created in the MyBasePanel class
   m_myTextCtrl->SetValidator(MyValidator());
}
SetValidator() appelle le constructeur par défaut de la classe MyValidator, puis le constructeur par copie est appelé via la méthode Clone(), mais la méthode Validate() n'est jamais appelée lorsque je modifie le contenu de mon wxTextCtrl.

Voyez-vous ce que je fais mal?
Merci d'avance.