if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
y1 = currentY;
+ AdjustForParentClientOrigin(x1, y1, sizeFlags);
+
int cx; // button font dimensions
int cy;
SendMessage(hWnd, WM_CUT, (WPARAM)0, (LPARAM)0);
// Now replace with 'value', by pasting.
- wxSetClipboardData(wxCF_TEXT, (wxObject *) (const char *)value, 0, 0);
+ wxSetClipboardData(wxDF_TEXT, (wxObject *) (const char *)value, 0, 0);
// Paste into edit control
SendMessage(hWnd, WM_PASTE, (WPARAM)0, (LPARAM)0L);
{
wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
event.SetEventObject( this );
- if ( !GetEventHandler()->ProcessEvent(event) )
- event.Skip();
+ if ( GetEventHandler()->ProcessEvent(event) )
+ return;
}
- else
- event.Skip();
+ else if ( event.KeyCode() == WXK_TAB ) {
+ wxNavigationKeyEvent event;
+ event.SetDirection(!(::GetKeyState(VK_SHIFT) & 0x100));
+ event.SetWindowChange(FALSE);
+ event.SetEventObject(this);
+
+ if ( GetEventHandler()->ProcessEvent(event) )
+ return;
+ }
+
+ event.Skip();
}
-long wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+long wxTextCtrl::MSWGetDlgCode()
{
+ long lRc = DLGC_WANTCHARS | DLGC_WANTARROWS;
+ if ( m_windowStyle & wxPROCESS_ENTER ) {
+ lRc |= DLGC_WANTMESSAGE;
+ }
+
+ return lRc;
+}
+
/*
+long wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
switch (nMsg)
{
case WM_GETDLGCODE:
default:
break;
}
-*/
return wxWindow::MSWWindowProc(nMsg, wParam, lParam);
}
+*/
void wxTextCtrl::OnEraseBackground(wxEraseEvent& event)
{
break;
}
*/
- wxEventType eventTyp = wxEVT_NULL;
switch (param)
{
case EN_SETFOCUS:
- eventTyp = wxEVENT_TYPE_SET_FOCUS;
- break;
case EN_KILLFOCUS:
- eventTyp = wxEVENT_TYPE_KILL_FOCUS;
+ {
+ wxFocusEvent event(param == EN_KILLFOCUS ? wxEVT_KILL_FOCUS
+ : wxEVT_SET_FOCUS,
+ m_windowId);
+ event.SetEventObject( this );
+ ProcessEvent(event);
+ }
break;
- case EN_UPDATE:
- break;
+
case EN_CHANGE:
- eventTyp = wxEVENT_TYPE_TEXT_COMMAND;
+ {
+ wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, m_windowId);
+ wxString val(GetValue());
+ if ( !val.IsNull() )
+ event.m_commandString = WXSTRINGCAST val;
+ event.SetEventObject( this );
+ ProcessCommand(event);
+ }
break;
+
+ // the other notification messages are not processed
+ case EN_UPDATE:
case EN_ERRSPACE:
- break;
case EN_MAXTEXT:
- break;
case EN_HSCROLL:
- break;
case EN_VSCROLL:
- break;
default:
- break;
+ return FALSE;
}
- if (eventTyp != 0)
- {
- wxCommandEvent event(eventTyp, m_windowId);
- wxString val(GetValue());
- if ( !val.IsNull() )
- event.m_commandString = WXSTRINGCAST val;
- event.SetEventObject( this );
- ProcessCommand(event);
- return TRUE;
- }
- else
- return FALSE;
+ // processed
+ return TRUE;
}