// for wxEVT_COMMAND_TEXT_ENTER
#include "wx/textctrl.h"
#include "wx/app.h"
+ #include "wx/brush.h"
#endif
-#include "wx/brush.h"
#include "wx/clipbrd.h"
#include "wx/msw/private.h"
+// include <commctrl.h> "properly"
+#include "wx/msw/wrapcctl.h"
+
#if wxUSE_TOOLTIPS
- #if !defined(__GNUWIN32_OLD__) || defined(__CYGWIN10__)
- #include <commctrl.h>
- #endif
#include "wx/tooltip.h"
#endif // wxUSE_TOOLTIPS
}
}
break;
+
+ case WM_CUT:
+ case WM_COPY:
+ case WM_PASTE:
+ if( win->HandleClipboardEvent( message ) )
+ return 0;
+ break;
}
return ::CallWindowProc(CASTWNDPROC gs_wndprocEdit, hWnd, message, wParam, lParam);
if ( wParam == VK_RETURN )
{
wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
- InitCommandEvent(event);
+
+ const int sel = GetSelection();
+ event.SetInt(sel);
event.SetString(GetValue());
- event.SetInt(GetSelection());
+ InitCommandEventWithItems(event, sel);
+
if ( ProcessCommand(event) )
{
// don't let the event through to the native control
// CBN_EDITCHANGE below
sel = GetSelection();
value = GetStringSelection();
+
+ // this string is going to become the new combobox value soon but
+ // we need it to be done right now, otherwise the event handler
+ // could get a wrong value when it calls our GetValue()
+ ::SetWindowText(GetHwnd(), value);
+
{
wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, GetId());
- event.SetEventObject(this);
event.SetInt(sel);
event.SetString(value);
+ InitCommandEventWithItems(event, sel);
+
ProcessCommand(event);
}
case CBN_EDITCHANGE:
{
wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, GetId());
- event.SetEventObject(this);
// if sel != -1, value was already initialized above
if ( sel == -1 )
}
event.SetString(value);
+ InitCommandEventWithItems(event, sel);
+
ProcessCommand(event);
}
break;
// edit control, we must subclass it as well
if ( !(style & wxCB_READONLY) )
{
- gs_wndprocEdit = wxSetWindowProc((HWND)GetEditHWND(),
- wxComboEditWndProc);
+ gs_wndprocEdit = wxSetWindowProc((HWND)GetEditHWND(), wxComboEditWndProc);
}
// and finally, show the control