m_isRich = FALSE;
}
-bool wxTextCtrl::Create(wxWindow *parent, const wxWindowID id,
+bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
const wxString& value,
const wxPoint& pos,
- const wxSize& size, const long style,
+ const wxSize& size, long style,
const wxValidator& validator,
const wxString& name)
{
HWND edit = CreateWindowEx(exStyle, windowClass, NULL,
msStyle,
0, 0, 0, 0, (HWND) ((wxWindow*)parent)->GetHWND(), (HMENU)m_windowId,
- m_globalHandle ? (HANDLE) m_globalHandle : wxGetInstance(), NULL);
+ m_globalHandle ? (HINSTANCE) m_globalHandle : wxGetInstance(), NULL);
#if CTL3D
if ( want3D )
SetWindowText((HWND) GetHWND(), (const char *)value);
}
-void wxTextCtrl::SetSize(const int x, const int y, const int width, const int height, const int sizeFlags)
+void wxTextCtrl::SetSize(int x, int y, int width, int height, int sizeFlags)
{
int currentX, currentY;
GetPosition(¤tX, ¤tY);
MoveWindow((HWND) GetHWND(), (int)control_x, (int)control_y,
(int)control_width, (int)control_height, TRUE);
-/*
-#if WXWIN_COMPATIBILITY
- GetEventHandler()->OldOnSize(width, height);
-#else
- wxSizeEvent event(wxSize(width, height), m_windowId);
- event.eventObject = this;
- GetEventHandler()->ProcessEvent(event);
-#endif
-*/
}
// Clipboard operations
SendMessage(hWnd, WM_PASTE, 0, 0L);
}
-void wxTextCtrl::SetEditable(const bool editable)
+void wxTextCtrl::SetEditable(bool editable)
{
HWND hWnd = (HWND) GetHWND();
SendMessage(hWnd, EM_SETREADONLY, (WPARAM)!editable, (LPARAM)0L);
}
-void wxTextCtrl::SetInsertionPoint(const long pos)
+void wxTextCtrl::SetInsertionPoint(long pos)
{
HWND hWnd = (HWND) GetHWND();
#ifdef __WIN32__
return (long)(charIndex + lineLength);
}
-void wxTextCtrl::Replace(const long from, const long to, const wxString& value)
+void wxTextCtrl::Replace(long from, long to, const wxString& value)
{
HWND hWnd = (HWND) GetHWND();
long fromChar = from;
SendMessage(hWnd, WM_PASTE, (WPARAM)0, (LPARAM)0L);
}
-void wxTextCtrl::Remove(const long from, const long to)
+void wxTextCtrl::Remove(long from, long to)
{
HWND hWnd = (HWND) GetHWND();
long fromChar = from;
SendMessage(hWnd, WM_CUT, (WPARAM)0, (LPARAM)0);
}
-void wxTextCtrl::SetSelection(const long from, const long to)
+void wxTextCtrl::SetSelection(long from, long to)
{
HWND hWnd = (HWND) GetHWND();
long fromChar = from;
return (int)SendMessage((HWND) GetHWND(), EM_GETLINECOUNT, (WPARAM)0, (LPARAM)0);
}
-long wxTextCtrl::XYToPosition(const long x, const long y) const
+long wxTextCtrl::XYToPosition(long x, long y) const
{
HWND hWnd = (HWND) GetHWND();
return (long)(x + charIndex);
}
-void wxTextCtrl::PositionToXY(const long pos, long *x, long *y) const
+void wxTextCtrl::PositionToXY(long pos, long *x, long *y) const
{
HWND hWnd = (HWND) GetHWND();
*y = (long)lineNo;
}
-void wxTextCtrl::ShowPosition(const long pos)
+void wxTextCtrl::ShowPosition(long pos)
{
HWND hWnd = (HWND) GetHWND();
(void)SendMessage(hWnd, EM_LINESCROLL, (WPARAM)0, (LPARAM)MAKELPARAM(linesToScroll, 0));
}
-int wxTextCtrl::GetLineLength(const long lineNo) const
+int wxTextCtrl::GetLineLength(long lineNo) const
{
long charIndex = XYToPosition(0, lineNo);
HWND hWnd = (HWND) GetHWND();
return len;
}
-wxString wxTextCtrl::GetLineText(const long lineNo) const
+wxString wxTextCtrl::GetLineText(long lineNo) const
{
HWND hWnd = (HWND) GetHWND();
*(WORD *)wxBuffer = 512;
return *this;
}
-wxTextCtrl& wxTextCtrl::operator<<(const float f)
+wxTextCtrl& wxTextCtrl::operator<<(float f)
{
static char buf[100];
sprintf(buf, "%.2f", f);
return *this;
}
-wxTextCtrl& wxTextCtrl::operator<<(const double d)
+wxTextCtrl& wxTextCtrl::operator<<(double d)
{
static char buf[100];
sprintf(buf, "%.2f", d);
return *this;
}
-wxTextCtrl& wxTextCtrl::operator<<(const int i)
+wxTextCtrl& wxTextCtrl::operator<<(int i)
{
static char buf[100];
sprintf(buf, "%i", i);
return *this;
}
-wxTextCtrl& wxTextCtrl::operator<<(const long i)
+wxTextCtrl& wxTextCtrl::operator<<(long i)
{
static char buf[100];
sprintf(buf, "%ld", i);
}
-WXHBRUSH wxTextCtrl::OnCtlColor(const WXHDC pDC, const WXHWND pWnd, const WXUINT nCtlColor,
+WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
{
#if CTL3D
{
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::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:
{
if (GetWindowStyleFlag() & wxPROCESS_ENTER)
return DLGC_WANTALLKEYS;
break;
}
-*/
-/*
case WM_CHAR: // Always an ASCII character
{
if (wParam == VK_RETURN)
}
break;
}
-*/
default:
break;
}
return wxWindow::MSWWindowProc(nMsg, wParam, lParam);
}
+*/
void wxTextCtrl::OnEraseBackground(wxEraseEvent& event)
{
// wxWindow::OnEraseBackground(event);
}
-bool wxTextCtrl::MSWCommand(const WXUINT param, const WXWORD WXUNUSED(id))
+bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
{
/*
// Debugging
break;
}
*/
- WXTYPE eventTyp = 0;
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;
}
// For Rich Edit controls. Do we need it?
#if 0
#if defined(__WIN95__)
-bool wxTextCtrl::MSWNotify(const WXWPARAM wParam, const WXLPARAM lParam)
+bool wxTextCtrl::MSWNotify(WXWPARAM wParam, WXLPARAM lParam)
{
wxCommandEvent event(0, m_windowId);
int eventType = 0;