// This gets the char index for the _beginning_ of the last line
int charIndex = (int)SendMessage(hWnd, EM_LINEINDEX, (WPARAM)(noLines-1), (LPARAM)0L);
-
+
// Get number of characters in the last line. We'll add this to the character
// index for the last line, 1st position.
int lineLength = (int)SendMessage(hWnd, EM_LINELENGTH, (WPARAM)charIndex, (LPARAM)0L);
HWND hWnd = (HWND) GetHWND();
long fromChar = from;
long toChar = to;
-
+
// Set selection and remove it
#ifdef __WIN32__
SendMessage(hWnd, EM_SETSEL, fromChar, toChar);
HWND hWnd = (HWND) GetHWND();
long fromChar = from;
long toChar = to;
-
+
// Cut all selected text
#ifdef __WIN32__
SendMessage(hWnd, EM_SETSEL, fromChar, toChar);
fromChar = 0;
toChar = -1;
}
-
+
#ifdef __WIN32__
SendMessage(hWnd, EM_SETSEL, (WPARAM)fromChar, (LPARAM)toChar);
SendMessage(hWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0);
* Some of the following functions are yet to be implemented
*
*/
-
+
int wxTextCtrl::GetNumberOfLines() const
{
return (int)SendMessage((HWND) GetHWND(), EM_GETLINECOUNT, (WPARAM)0, (LPARAM)0);
int currentLineLineNo = (int)SendMessage(hWnd, EM_GETFIRSTVISIBLELINE, (WPARAM)0, (LPARAM)0L);
int specifiedLineLineNo = (int)SendMessage(hWnd, EM_LINEFROMCHAR, (WPARAM)pos, (LPARAM)0L);
-
+
int linesToScroll = specifiedLineLineNo - currentLineLineNo;
if (linesToScroll != 0)
/*
* Text item
*/
-
+
void wxTextCtrl::Command(wxCommandEvent & event)
{
SetValue (event.GetString());
// AT&T's "C++ Lanuage System Release 3.0 Library Manual" - Stein Somers
//=========================================================================
-// Called then the buffer is full (gcc 2.6.3)
+// Called then the buffer is full (gcc 2.6.3)
// or when "endl" is output (Borland 4.5)
//=========================================================================
// Class declaration using multiple inheritance doesn't work properly for
return EOF;
}
#endif
-
+
// Verify that there are no characters in get area
if ( gptr() && gptr() < egptr() )
{
{
switch( event.KeyCode() )
{
- // VZ: commented out until somebody explains to me what it does
-#if 0
- // Fix by Marcel Rasche to allow Alt-Ctrl insertion of special characters
- case '{':
- case '}':
- case '[':
- case ']':
- case '|':
- case '~':
- case '\\':
- {
- char c = (char)event.KeyCode();
- WriteText(c);
- }
- break;
-#endif // 0
-
case WXK_RETURN:
- {
- if ( (m_windowStyle & wxTE_MULTILINE) == 0 )
+ if ( !(m_windowStyle & wxTE_MULTILINE) )
{
wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
event.SetEventObject( this );
//else: multiline controls need Enter for themselves
break;
- }
case WXK_TAB:
// only produce navigation event if we don't process TAB ourself or
eventNav.SetDirection(!event.ShiftDown());
eventNav.SetWindowChange(FALSE);
eventNav.SetEventObject(this);
-
+
if ( GetEventHandler()->ProcessEvent(eventNav) )
return;
}
default:
event.Skip();
+ return;
}
-
+
// don't just call event.Skip() because this will cause TABs and ENTERs
// be passed upwards and we don't always want this - instead process it
// right here
lRc |= DLGC_WANTMESSAGE;
if ( m_windowStyle & wxTE_PROCESS_TAB )
lRc |= DLGC_WANTTAB;
-
+
return lRc;
}
long wxWindow::Default()
{
- // Ignore 'fake' events (perhaps generated as a result of a separate real event)
- if (m_lastMsg == 0)
+ // Ignore 'fake' events (perhaps generated as a result of a separate real
+ // event)
+ if ( m_lastMsg == 0 )
return 0;
#ifdef __WXDEBUG__
wxLogTrace(wxTraceMessages, "Forwarding %s to DefWindowProc.",
- wxGetMessageName(m_lastMsg));
+ wxGetMessageName(m_lastMsg));
#endif // __WXDEBUG__
- long ret = this->MSWDefWindowProc(m_lastMsg, m_lastWParam, m_lastLParam);
-
- // The idea here is to prevent MSWDefWindowProc from being called twice,
- // which it can be where OnChar/OnKeyDown are concerned (because OnChar is
- // sometimes called in wxWin where it isn't in MSW)
- m_lastMsg = 0;
- return ret;
+ return MSWDefWindowProc(m_lastMsg, m_lastWParam, m_lastLParam);
}
bool wxWindow::MSWProcessMessage(WXMSG* pMsg)
{
- if ( m_hWnd != 0 && (GetWindowStyleFlag() & wxTAB_TRAVERSAL) ) {
+ if ( m_hWnd != 0 && (GetWindowStyleFlag() & wxTAB_TRAVERSAL) )
+ {
// intercept dialog navigation keys
MSG *msg = (MSG *)pMsg;
bool bProcess = TRUE;
void wxWindow::OnChar(wxKeyEvent& event)
{
- bool isVirtual;
- int id = wxCharCodeWXToMSW((int)event.KeyCode(), &isVirtual);
-
- if ( id == -1 )
- id= m_lastWParam;
-
- if ( !event.ControlDown() ) // Why this test?
- {
- if (m_lastMsg != 0)
- (void) MSWDefWindowProc(m_lastMsg, (WPARAM) id, m_lastLParam);
- }
+ event.Skip();
}
void wxWindow::OnKeyDown(wxKeyEvent& event)