Add IM and full wxEVT_CHAR support to wxTextCtrl and wxComboBox in wxGTK.

Generate wxEVT_CHAR events for non-ASCII characters entered in these controls
by intercepting their insert-text signal.

Also try to use GtkEntry/GtkTextView internal IM objects but unsuccessfully so
far.

Closes #3158.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-03-21 22:37:09 +00:00
parent c77ef57e6e
commit b2c357747d
7 changed files with 154 additions and 50 deletions

View File

@@ -297,6 +297,18 @@ public:
// methods for accessing it such gtk_entry_im_context_filter_keypress().
virtual int GTKIMFilterKeypress(GdkEventKey* event) const;
// This method must be called from the derived classes "insert-text" signal
// handlers to check if the text is not being inserted by the IM and, if
// this is the case, generate appropriate wxEVT_CHAR events for it.
//
// Returns true if we did generate and process events corresponding to this
// text or false if we didn't handle it.
bool GTKOnInsertText(const char* text);
// This is just a helper of GTKOnInsertText() which is also used by GTK+
// "commit" signal handler.
bool GTKDoInsertTextFromIM(const char* text);
// indices for the arrays below
enum ScrollDir { ScrollDir_Horz, ScrollDir_Vert, ScrollDir_Max };