allow to test changing combobox selection too

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-04-26 02:10:36 +00:00
parent 46bd197877
commit 90576c50fc

View File

@@ -53,6 +53,7 @@
enum
{
ComboPage_Reset = wxID_HIGHEST,
ComboPage_SetCurrent,
ComboPage_CurText,
ComboPage_InsertionPointText,
ComboPage_Insert,
@@ -104,13 +105,13 @@ protected:
void OnButtonAdd(wxCommandEvent& event);
void OnButtonAddSeveral(wxCommandEvent& event);
void OnButtonAddMany(wxCommandEvent& event);
void OnButtonSetCurrent(wxCommandEvent& event);
void OnComboBox(wxCommandEvent& event);
void OnComboText(wxCommandEvent& event);
void OnCheckOrRadioBox(wxCommandEvent& event);
void OnUpdateUICurText(wxUpdateUIEvent& event);
void OnUpdateUIInsertionPointText(wxUpdateUIEvent& event);
void OnUpdateUIInsert(wxUpdateUIEvent& event);
@@ -119,6 +120,7 @@ protected:
void OnUpdateUIDeleteButton(wxUpdateUIEvent& event);
void OnUpdateUIDeleteSelButton(wxUpdateUIEvent& event);
void OnUpdateUIResetButton(wxUpdateUIEvent& event);
void OnUpdateUISetCurrent(wxUpdateUIEvent& event);
// reset the combobox parameters
void Reset();
@@ -145,7 +147,8 @@ protected:
wxTextCtrl *m_textInsert,
*m_textAdd,
*m_textChange,
*m_textDelete;
*m_textDelete,
*m_textCur;
private:
DECLARE_EVENT_TABLE()
@@ -166,12 +169,12 @@ BEGIN_EVENT_TABLE(ComboboxWidgetsPage, WidgetsPage)
EVT_BUTTON(ComboPage_Add, ComboboxWidgetsPage::OnButtonAdd)
EVT_BUTTON(ComboPage_AddSeveral, ComboboxWidgetsPage::OnButtonAddSeveral)
EVT_BUTTON(ComboPage_AddMany, ComboboxWidgetsPage::OnButtonAddMany)
EVT_BUTTON(ComboPage_SetCurrent, ComboboxWidgetsPage::OnButtonSetCurrent)
EVT_TEXT_ENTER(ComboPage_InsertText, ComboboxWidgetsPage::OnButtonInsert)
EVT_TEXT_ENTER(ComboPage_AddText, ComboboxWidgetsPage::OnButtonAdd)
EVT_TEXT_ENTER(ComboPage_DeleteText, ComboboxWidgetsPage::OnButtonDelete)
EVT_UPDATE_UI(ComboPage_CurText, ComboboxWidgetsPage::OnUpdateUICurText)
EVT_UPDATE_UI(ComboPage_InsertionPointText, ComboboxWidgetsPage::OnUpdateUIInsertionPointText)
EVT_UPDATE_UI(ComboPage_Reset, ComboboxWidgetsPage::OnUpdateUIResetButton)
@@ -183,6 +186,7 @@ BEGIN_EVENT_TABLE(ComboboxWidgetsPage, WidgetsPage)
EVT_UPDATE_UI(ComboPage_Change, ComboboxWidgetsPage::OnUpdateUIDeleteSelButton)
EVT_UPDATE_UI(ComboPage_ChangeText, ComboboxWidgetsPage::OnUpdateUIDeleteSelButton)
EVT_UPDATE_UI(ComboPage_DeleteSel, ComboboxWidgetsPage::OnUpdateUIDeleteSelButton)
EVT_UPDATE_UI(ComboPage_SetCurrent, ComboboxWidgetsPage::OnUpdateUISetCurrent)
EVT_COMBOBOX(ComboPage_Combo, ComboboxWidgetsPage::OnComboBox)
EVT_TEXT(ComboPage_Combo, ComboboxWidgetsPage::OnComboText)
@@ -265,14 +269,14 @@ void ComboboxWidgetsPage::CreateContent()
wxSizer *sizerRow;
wxTextCtrl *text;
sizerRow = CreateSizerWithTextAndLabel(_T("Current selection"),
ComboPage_CurText,
&text);
text->SetEditable(false);
sizerRow = CreateSizerWithTextAndButton(ComboPage_SetCurrent,
_T("Current &selection"),
ComboPage_CurText,
&m_textCur);
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
wxTextCtrl *text;
sizerRow = CreateSizerWithTextAndLabel(_T("Insertion Point"),
ComboPage_InsertionPointText,
&text);
@@ -496,6 +500,15 @@ void ComboboxWidgetsPage::OnButtonAddMany(wxCommandEvent& WXUNUSED(event))
}
}
void ComboboxWidgetsPage::OnButtonSetCurrent(wxCommandEvent& WXUNUSED(event))
{
long n;
if ( !m_textCur->GetValue().ToLong(&n) )
return;
m_combobox->SetSelection(n);
}
void ComboboxWidgetsPage::OnButtonAddSeveral(wxCommandEvent& WXUNUSED(event))
{
m_combobox->Append(_T("First"));
@@ -503,12 +516,6 @@ void ComboboxWidgetsPage::OnButtonAddSeveral(wxCommandEvent& WXUNUSED(event))
m_combobox->Append(_T("and the last (very very very very very very very very very very long) one"));
}
void ComboboxWidgetsPage::OnUpdateUICurText(wxUpdateUIEvent& event)
{
if (m_combobox)
event.SetText( wxString::Format(_T("%d"), m_combobox->GetSelection()) );
}
void ComboboxWidgetsPage::OnUpdateUIInsertionPointText(wxUpdateUIEvent& event)
{
if (m_combobox)
@@ -561,6 +568,14 @@ void ComboboxWidgetsPage::OnUpdateUIAddSeveral(wxUpdateUIEvent& event)
event.Enable(!(m_combobox->GetWindowStyle() & wxCB_SORT));
}
void ComboboxWidgetsPage::OnUpdateUISetCurrent(wxUpdateUIEvent& event)
{
long n;
event.Enable( m_textCur->GetValue().ToLong(&n) &&
(n == wxNOT_FOUND ||
(n >= 0 && (unsigned)n < m_combobox->GetCount())) );
}
void ComboboxWidgetsPage::OnComboText(wxCommandEvent& event)
{
if (!m_combobox)
@@ -580,7 +595,9 @@ void ComboboxWidgetsPage::OnComboText(wxCommandEvent& event)
void ComboboxWidgetsPage::OnComboBox(wxCommandEvent& event)
{
long sel = event.GetInt();
m_textDelete->SetValue(wxString::Format(_T("%ld"), sel));
const wxString selstr = wxString::Format(_T("%ld"), sel);
m_textDelete->SetValue(selstr);
m_textCur->SetValue(selstr);
wxLogMessage(_T("Combobox item %ld selected"), sel);