Added wxEVT_RICHTEXT_CONSUMING_CHARACTER event to allow interception of character events

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75055 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2013-10-21 16:01:17 +00:00
parent 6539f8630e
commit 4068836657
3 changed files with 31 additions and 0 deletions

View File

@@ -2374,6 +2374,11 @@ protected:
@event{EVT_RICHTEXT_CHARACTER(id, func)} @event{EVT_RICHTEXT_CHARACTER(id, func)}
Process a @c wxEVT_RICHTEXT_CHARACTER event, generated when the user Process a @c wxEVT_RICHTEXT_CHARACTER event, generated when the user
presses a character key. Valid event functions: GetFlags, GetPosition, GetCharacter. presses a character key. Valid event functions: GetFlags, GetPosition, GetCharacter.
@event{EVT_RICHTEXT_CONSUMING_CHARACTER(id, func)}
Process a @c wxEVT_RICHTEXT_CONSUMING_CHARACTER event, generated when the user
presses a character key but before it is processed and inserted into the control.
Call Veto to prevent normal processing. Valid event functions: GetFlags, GetPosition,
GetCharacter, Veto.
@event{EVT_RICHTEXT_DELETE(id, func)} @event{EVT_RICHTEXT_DELETE(id, func)}
Process a @c wxEVT_RICHTEXT_DELETE event, generated when the user Process a @c wxEVT_RICHTEXT_DELETE event, generated when the user
presses the backspace or delete key. Valid event functions: GetFlags, GetPosition. presses the backspace or delete key. Valid event functions: GetFlags, GetPosition.
@@ -2563,6 +2568,7 @@ wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_MIDDLE_CLICK, wxR
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_LEFT_DCLICK, wxRichTextEvent ); wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_LEFT_DCLICK, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_RETURN, wxRichTextEvent ); wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_RETURN, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_CHARACTER, wxRichTextEvent ); wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_CHARACTER, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_CONSUMING_CHARACTER, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_DELETE, wxRichTextEvent ); wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_DELETE, wxRichTextEvent );
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_STYLESHEET_CHANGING, wxRichTextEvent ); wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_STYLESHEET_CHANGING, wxRichTextEvent );
@@ -2589,6 +2595,7 @@ typedef void (wxEvtHandler::*wxRichTextEventFunction)(wxRichTextEvent&);
#define EVT_RICHTEXT_LEFT_DCLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_LEFT_DCLICK, id, -1, wxRichTextEventHandler( fn ), NULL ), #define EVT_RICHTEXT_LEFT_DCLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_LEFT_DCLICK, id, -1, wxRichTextEventHandler( fn ), NULL ),
#define EVT_RICHTEXT_RETURN(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_RETURN, id, -1, wxRichTextEventHandler( fn ), NULL ), #define EVT_RICHTEXT_RETURN(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_RETURN, id, -1, wxRichTextEventHandler( fn ), NULL ),
#define EVT_RICHTEXT_CHARACTER(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_CHARACTER, id, -1, wxRichTextEventHandler( fn ), NULL ), #define EVT_RICHTEXT_CHARACTER(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_CHARACTER, id, -1, wxRichTextEventHandler( fn ), NULL ),
#define EVT_RICHTEXT_CONSUMING_CHARACTER(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_CONSUMING_CHARACTER, id, -1, wxRichTextEventHandler( fn ), NULL ),
#define EVT_RICHTEXT_DELETE(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_DELETE, id, -1, wxRichTextEventHandler( fn ), NULL ), #define EVT_RICHTEXT_DELETE(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_DELETE, id, -1, wxRichTextEventHandler( fn ), NULL ),
#define EVT_RICHTEXT_STYLESHEET_CHANGING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_STYLESHEET_CHANGING, id, -1, wxRichTextEventHandler( fn ), NULL ), #define EVT_RICHTEXT_STYLESHEET_CHANGING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_STYLESHEET_CHANGING, id, -1, wxRichTextEventHandler( fn ), NULL ),

View File

@@ -2234,6 +2234,11 @@ protected:
@event{EVT_RICHTEXT_CHARACTER(id, func)} @event{EVT_RICHTEXT_CHARACTER(id, func)}
Process a @c wxEVT_RICHTEXT_CHARACTER event, generated when the user Process a @c wxEVT_RICHTEXT_CHARACTER event, generated when the user
presses a character key. Valid event functions: GetFlags, GetPosition, GetCharacter. presses a character key. Valid event functions: GetFlags, GetPosition, GetCharacter.
@event{EVT_RICHTEXT_CONSUMING_CHARACTER(id, func)}
Process a @c wxEVT_RICHTEXT_CONSUMING_CHARACTER event, generated when the user
presses a character key but before it is processed and inserted into the control.
Call Veto to prevent normal processing. Valid event functions: GetFlags, GetPosition,
GetCharacter, Veto.
@event{EVT_RICHTEXT_DELETE(id, func)} @event{EVT_RICHTEXT_DELETE(id, func)}
Process a @c wxEVT_RICHTEXT_DELETE event, generated when the user Process a @c wxEVT_RICHTEXT_DELETE event, generated when the user
presses the backspace or delete key. Valid event functions: GetFlags, GetPosition. presses the backspace or delete key. Valid event functions: GetFlags, GetPosition.
@@ -2413,6 +2418,7 @@ wxEventType wxEVT_RICHTEXT_MIDDLE_CLICK;
wxEventType wxEVT_RICHTEXT_LEFT_DCLICK; wxEventType wxEVT_RICHTEXT_LEFT_DCLICK;
wxEventType wxEVT_RICHTEXT_RETURN; wxEventType wxEVT_RICHTEXT_RETURN;
wxEventType wxEVT_RICHTEXT_CHARACTER; wxEventType wxEVT_RICHTEXT_CHARACTER;
wxEventType wxEVT_RICHTEXT_CONSUMING_CHARACTER;
wxEventType wxEVT_RICHTEXT_DELETE; wxEventType wxEVT_RICHTEXT_DELETE;
wxEventType wxEVT_RICHTEXT_STYLESHEET_CHANGING; wxEventType wxEVT_RICHTEXT_STYLESHEET_CHANGING;

View File

@@ -54,6 +54,7 @@ wxDEFINE_EVENT( wxEVT_RICHTEXT_RIGHT_CLICK, wxRichTextEvent );
wxDEFINE_EVENT( wxEVT_RICHTEXT_LEFT_DCLICK, wxRichTextEvent ); wxDEFINE_EVENT( wxEVT_RICHTEXT_LEFT_DCLICK, wxRichTextEvent );
wxDEFINE_EVENT( wxEVT_RICHTEXT_RETURN, wxRichTextEvent ); wxDEFINE_EVENT( wxEVT_RICHTEXT_RETURN, wxRichTextEvent );
wxDEFINE_EVENT( wxEVT_RICHTEXT_CHARACTER, wxRichTextEvent ); wxDEFINE_EVENT( wxEVT_RICHTEXT_CHARACTER, wxRichTextEvent );
wxDEFINE_EVENT( wxEVT_RICHTEXT_CONSUMING_CHARACTER, wxRichTextEvent );
wxDEFINE_EVENT( wxEVT_RICHTEXT_DELETE, wxRichTextEvent ); wxDEFINE_EVENT( wxEVT_RICHTEXT_DELETE, wxRichTextEvent );
wxDEFINE_EVENT( wxEVT_RICHTEXT_STYLESHEET_REPLACING, wxRichTextEvent ); wxDEFINE_EVENT( wxEVT_RICHTEXT_STYLESHEET_REPLACING, wxRichTextEvent );
@@ -1321,6 +1322,23 @@ void wxRichTextCtrl::OnChar(wxKeyEvent& event)
return; return;
} }
wxRichTextEvent cmdEvent1(
wxEVT_RICHTEXT_CONSUMING_CHARACTER,
GetId());
cmdEvent1.SetEventObject(this);
cmdEvent1.SetFlags(flags);
#if wxUSE_UNICODE
cmdEvent1.SetCharacter(event.GetUnicodeKey());
#else
cmdEvent1.SetCharacter((wxChar) keycode);
#endif
cmdEvent1.SetPosition(m_caretPosition+1);
cmdEvent1.SetContainer(GetFocusObject());
if (GetEventHandler()->ProcessEvent(cmdEvent1) && !cmdEvent1.IsAllowed())
{
return;
}
wxRichTextEvent cmdEvent( wxRichTextEvent cmdEvent(
wxEVT_RICHTEXT_CHARACTER, wxEVT_RICHTEXT_CHARACTER,
GetId()); GetId());