Insert() patch from John Labenski
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -54,6 +54,8 @@ enum
|
||||
{
|
||||
ComboPage_Reset = 100,
|
||||
ComboPage_CurText,
|
||||
ComboPage_Insert,
|
||||
ComboPage_InsertText,
|
||||
ComboPage_Add,
|
||||
ComboPage_AddText,
|
||||
ComboPage_AddSeveral,
|
||||
@@ -91,6 +93,7 @@ protected:
|
||||
void OnButtonDelete(wxCommandEvent& event);
|
||||
void OnButtonDeleteSel(wxCommandEvent& event);
|
||||
void OnButtonClear(wxCommandEvent& event);
|
||||
void OnButtonInsert(wxCommandEvent &event);
|
||||
void OnButtonAdd(wxCommandEvent& event);
|
||||
void OnButtonAddSeveral(wxCommandEvent& event);
|
||||
void OnButtonAddMany(wxCommandEvent& event);
|
||||
@@ -102,6 +105,7 @@ protected:
|
||||
|
||||
void OnUpdateUICurText(wxUpdateUIEvent& event);
|
||||
|
||||
void OnUpdateUIInsert(wxUpdateUIEvent& event);
|
||||
void OnUpdateUIAddSeveral(wxUpdateUIEvent& event);
|
||||
void OnUpdateUIClearButton(wxUpdateUIEvent& event);
|
||||
void OnUpdateUIDeleteButton(wxUpdateUIEvent& event);
|
||||
@@ -129,7 +133,8 @@ protected:
|
||||
wxSizer *m_sizerCombo;
|
||||
|
||||
// the text entries for "Add/change string" and "Delete" buttons
|
||||
wxTextCtrl *m_textAdd,
|
||||
wxTextCtrl *m_textInsert,
|
||||
*m_textAdd,
|
||||
*m_textChange,
|
||||
*m_textDelete;
|
||||
|
||||
@@ -148,16 +153,19 @@ BEGIN_EVENT_TABLE(ComboboxWidgetsPage, WidgetsPage)
|
||||
EVT_BUTTON(ComboPage_Delete, ComboboxWidgetsPage::OnButtonDelete)
|
||||
EVT_BUTTON(ComboPage_DeleteSel, ComboboxWidgetsPage::OnButtonDeleteSel)
|
||||
EVT_BUTTON(ComboPage_Clear, ComboboxWidgetsPage::OnButtonClear)
|
||||
EVT_BUTTON(ComboPage_Insert, ComboboxWidgetsPage::OnButtonInsert)
|
||||
EVT_BUTTON(ComboPage_Add, ComboboxWidgetsPage::OnButtonAdd)
|
||||
EVT_BUTTON(ComboPage_AddSeveral, ComboboxWidgetsPage::OnButtonAddSeveral)
|
||||
EVT_BUTTON(ComboPage_AddMany, ComboboxWidgetsPage::OnButtonAddMany)
|
||||
|
||||
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_Reset, ComboboxWidgetsPage::OnUpdateUIResetButton)
|
||||
EVT_UPDATE_UI(ComboPage_Insert, ComboboxWidgetsPage::OnUpdateUIInsert)
|
||||
EVT_UPDATE_UI(ComboPage_AddSeveral, ComboboxWidgetsPage::OnUpdateUIAddSeveral)
|
||||
EVT_UPDATE_UI(ComboPage_Clear, ComboboxWidgetsPage::OnUpdateUIClearButton)
|
||||
EVT_UPDATE_UI(ComboPage_DeleteText, ComboboxWidgetsPage::OnUpdateUIClearButton)
|
||||
@@ -168,6 +176,7 @@ BEGIN_EVENT_TABLE(ComboboxWidgetsPage, WidgetsPage)
|
||||
|
||||
EVT_COMBOBOX(ComboPage_Combo, ComboboxWidgetsPage::OnComboBox)
|
||||
EVT_TEXT(ComboPage_Combo, ComboboxWidgetsPage::OnComboText)
|
||||
EVT_TEXT_ENTER(ComboPage_Combo, ComboboxWidgetsPage::OnComboText)
|
||||
|
||||
EVT_CHECKBOX(-1, ComboboxWidgetsPage::OnCheckOrRadioBox)
|
||||
EVT_RADIOBOX(-1, ComboboxWidgetsPage::OnCheckOrRadioBox)
|
||||
@@ -241,16 +250,22 @@ ComboboxWidgetsPage::ComboboxWidgetsPage(wxNotebook *notebook,
|
||||
|
||||
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
|
||||
|
||||
sizerRow = CreateSizerWithTextAndButton(ComboPage_Insert,
|
||||
_T("&Insert this string"),
|
||||
ComboPage_InsertText,
|
||||
&m_textInsert);
|
||||
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
|
||||
|
||||
sizerRow = CreateSizerWithTextAndButton(ComboPage_Add,
|
||||
_T("&Add this string"),
|
||||
ComboPage_AddText,
|
||||
&m_textAdd);
|
||||
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
|
||||
|
||||
btn = new wxButton(this, ComboPage_AddSeveral, _T("&Insert a few strings"));
|
||||
btn = new wxButton(this, ComboPage_AddSeveral, _T("&Append a few strings"));
|
||||
sizerMiddle->Add(btn, 0, wxALL | wxGROW, 5);
|
||||
|
||||
btn = new wxButton(this, ComboPage_AddMany, _T("Add &many strings"));
|
||||
btn = new wxButton(this, ComboPage_AddMany, _T("Append &many strings"));
|
||||
sizerMiddle->Add(btn, 0, wxALL | wxGROW, 5);
|
||||
|
||||
sizerRow = CreateSizerWithTextAndButton(ComboPage_Change,
|
||||
@@ -410,6 +425,21 @@ void ComboboxWidgetsPage::OnButtonClear(wxCommandEvent& event)
|
||||
m_combobox->Clear();
|
||||
}
|
||||
|
||||
void ComboboxWidgetsPage::OnButtonInsert(wxCommandEvent& event)
|
||||
{
|
||||
static unsigned int s_item = 0;
|
||||
|
||||
wxString s = m_textInsert->GetValue();
|
||||
if ( !m_textInsert->IsModified() )
|
||||
{
|
||||
// update the default string
|
||||
m_textInsert->SetValue(wxString::Format(_T("test item %u"), ++s_item));
|
||||
}
|
||||
|
||||
if (m_combobox->GetSelection() >= 0)
|
||||
m_combobox->Insert(s, m_combobox->GetSelection());
|
||||
}
|
||||
|
||||
void ComboboxWidgetsPage::OnButtonAdd(wxCommandEvent& event)
|
||||
{
|
||||
static unsigned int s_item = 0;
|
||||
@@ -452,6 +482,17 @@ void ComboboxWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event)
|
||||
event.Enable( m_chkSort->GetValue() || m_chkReadonly->GetValue() );
|
||||
}
|
||||
|
||||
void ComboboxWidgetsPage::OnUpdateUIInsert(wxUpdateUIEvent& event)
|
||||
{
|
||||
if (m_combobox)
|
||||
{
|
||||
bool enable = !(m_combobox->GetWindowStyle() & wxCB_SORT) &&
|
||||
(m_combobox->GetSelection() >= 0);
|
||||
|
||||
event.Enable(enable);
|
||||
}
|
||||
}
|
||||
|
||||
void ComboboxWidgetsPage::OnUpdateUIDeleteButton(wxUpdateUIEvent& event)
|
||||
{
|
||||
if (m_combobox)
|
||||
@@ -490,6 +531,9 @@ void ComboboxWidgetsPage::OnComboText(wxCommandEvent& event)
|
||||
wxASSERT_MSG( s == m_combobox->GetValue(),
|
||||
_T("event and combobox values should be the same") );
|
||||
|
||||
if (event.GetEventType() == wxEVT_COMMAND_TEXT_ENTER)
|
||||
wxLogMessage(_T("Combobox enter pressed (now '%s')"), s.c_str());
|
||||
else
|
||||
wxLogMessage(_T("Combobox text changed (now '%s')"), s.c_str());
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user