END_EVENT_TABLE()
BEGIN_EVENT_TABLE(wxSearchCtrl, wxSearchCtrlBase)
- EVT_SEARCHCTRL_SEARCH(wxID_ANY, wxSearchCtrl::OnSearchButton)
+ EVT_SEARCHCTRL_SEARCH_BTN(wxID_ANY, wxSearchCtrl::OnSearchButton)
EVT_SET_FOCUS(wxSearchCtrl::OnSetFocus)
+ EVT_SIZE(wxSearchCtrl::OnSize)
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxSearchCtrl, wxSearchCtrlBase)
const wxValidator& validator,
const wxString& name)
{
+#ifdef __WXGTK__
+ if ( !wxTextCtrlBase::Create(parent, id, pos, size, wxSUNKEN_BORDER | style, validator, name) )
+#else
if ( !wxTextCtrlBase::Create(parent, id, pos, size, wxSIMPLE_BORDER | style, validator, name) )
+#endif
{
return false;
}
void wxSearchCtrl::LayoutControls(int x, int y, int width, int height)
{
+ if ( !m_text )
+ return;
+
wxSize sizeText = m_text->GetBestSize();
// make room for the search menu & clear button
int horizontalBorder = 1 + ( sizeText.y - sizeText.y * 14 / 21 ) / 2;
// position the subcontrols inside the client area
m_searchButton->SetSize(x, y + ICON_OFFSET, sizeSearch.x, height);
- m_text->SetSize(x + sizeSearch.x + searchMargin, y + ICON_OFFSET, textWidth, height);
+ m_text->SetSize( x + sizeSearch.x + searchMargin,
+ y + ICON_OFFSET - BORDER,
+ textWidth,
+ height);
m_cancelButton->SetSize(x + sizeSearch.x + searchMargin + textWidth + cancelMargin,
y + ICON_OFFSET, sizeCancel.x, height);
}
}
}
+void wxSearchCtrl::OnSize( wxSizeEvent& WXUNUSED(event) )
+{
+ int width, height;
+ GetSize(&width, &height);
+ LayoutControls(0, 0, width, height);
+}
+
void wxSearchCtrl::PopupSearchMenu()
{
if ( m_menu )