A while back, I made a simple app using wxWidgets 3.1.0 where a wxTextCtrl has wxTE_PROCESS_ENTER property and a wxIntegerValidator, and it worked. Recompiling in 3.1.1, bound function to wxEVT_TEXT_ENTER in the same app never gets called. Is it a regression?
Code: Select all
#include <wx/wx.h>
#include <wx/string.h>
#include <wx/valnum.h>
#include "MyFrame.h"
MyFrame::MyFrame(wxFrame *frame)
: wxPanel(frame, wxID_ANY, wxDefaultPosition, wxSize(MYWIDTH, MYHEIGHT))
{
wxIntegerValidator<unsigned short> valid(&value);
valid.SetRange(0, 10);
tCtrl = new wxTextCtrl(this, ID_MYTEXT, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER, valid);
Bind(wxEVT_CLOSE_WINDOW, &MyFrame::OnCloseWindow, this, -1);
Bind(wxEVT_PAINT, &MyFrame::OnPaint, this, -1);
Bind(wxEVT_TEXT_ENTER, &MyFrame::OnTCtrlEnter, this);
}
void
MyFrame::OnTCtrlEnter(wxCommandEvent &event)
{
// Does NOT get called ****
}
Code: Select all
#define MYWIDTH 400
#define MYHEIGHT 32
#define ID_MYTEXT 1
class MyFrame : public wxPanel
{
public:
MyFrame(wxFrame *);
~MyFrame();
void OnCloseWindow(wxCloseEvent &);
void OnPaint(wxPaintEvent &);
void OnTCtrlEnter(wxCommandEvent &);
protected:
unsigned short value;
wxTextCtrl *tCtrl;
...
};