#include "wx/univ/inphand.h"
#include "wx/univ/theme.h"
+// ----------------------------------------------------------------------------
+// wxStdComboBoxInputHandler: allows the user to open/close the combo from kbd
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxStdComboBoxInputHandler : public wxStdInputHandler
+{
+public:
+ wxStdComboBoxInputHandler(wxInputHandler *inphand);
+
+ virtual bool HandleKey(wxInputConsumer *consumer,
+ const wxKeyEvent& event,
+ bool pressed);
+};
// ----------------------------------------------------------------------------
// wxComboListBox is a listbox modified to be used as a popup window in a
{
if ( !value.empty() )
{
- if (FindString(value) != wxNOT_FOUND)
- wxListBox::SetStringSelection(value);
- }
+ if (FindString(value) != wxNOT_FOUND)
+ wxListBox::SetStringSelection(value);
+ }
else
wxListBox::SetSelection(-1);
}
void wxComboBox::SetSelection(int n)
{
- wxCHECK_RET( IsValid(n), _T("invalid index in wxComboBox::Select") );
+ wxCHECK_RET( (n == wxNOT_FOUND || IsValid(n)), _T("invalid index in wxComboBox::Select") );
GetLBox()->SetSelection(n);
- if ( GetTextCtrl() ) GetTextCtrl()->SetValue(GetLBox()->GetString(n));
+ if ( GetTextCtrl() )
+ GetTextCtrl()->SetValue(GetLBox()->GetString(n));
}
int wxComboBox::GetSelection() const
return wxStdInputHandler::HandleKey(consumer, event, pressed);
}
+/* static */
+wxInputHandler *wxComboBox::GetStdInputHandler(wxInputHandler *handlerDef)
+{
+ static wxStdComboBoxInputHandler s_handler(handlerDef);
+
+ return &s_handler;
+}
#endif // wxUSE_COMBOBOX