ComboPage_InsertText,
ComboPage_Add,
ComboPage_AddText,
+ ComboPage_SetFirst,
+ ComboPage_SetFirstText,
ComboPage_AddSeveral,
ComboPage_AddMany,
ComboPage_Clear,
void OnButtonClear(wxCommandEvent& event);
void OnButtonInsert(wxCommandEvent &event);
void OnButtonAdd(wxCommandEvent& event);
+ void OnButtonSetFirst(wxCommandEvent& event);
void OnButtonAddSeveral(wxCommandEvent& event);
void OnButtonAddMany(wxCommandEvent& event);
void OnButtonSetValue(wxCommandEvent& event);
void OnCloseup(wxCommandEvent& event);
void OnComboBox(wxCommandEvent& event);
void OnComboText(wxCommandEvent& event);
+ void OnComboTextPasted(wxClipboardTextEvent& event);
void OnCheckOrRadioBox(wxCommandEvent& event);
// the checkboxes for styles
wxCheckBox *m_chkSort,
*m_chkReadonly,
- *m_chkFilename;
+ *m_chkProcessEnter;
// the combobox itself and the sizer it is in
wxComboBox *m_combobox;
// the text entries for "Add/change string" and "Delete" buttons
wxTextCtrl *m_textInsert,
*m_textAdd,
+ *m_textSetFirst,
*m_textChange,
*m_textSetValue,
*m_textDelete,
EVT_BUTTON(ComboPage_Clear, ComboboxWidgetsPage::OnButtonClear)
EVT_BUTTON(ComboPage_Insert, ComboboxWidgetsPage::OnButtonInsert)
EVT_BUTTON(ComboPage_Add, ComboboxWidgetsPage::OnButtonAdd)
+ EVT_BUTTON(ComboPage_SetFirst, ComboboxWidgetsPage::OnButtonSetFirst)
EVT_BUTTON(ComboPage_AddSeveral, ComboboxWidgetsPage::OnButtonAddSeveral)
EVT_BUTTON(ComboPage_AddMany, ComboboxWidgetsPage::OnButtonAddMany)
EVT_BUTTON(ComboPage_SetValue, ComboboxWidgetsPage::OnButtonSetValue)
EVT_COMBOBOX_CLOSEUP(ComboPage_Combo, ComboboxWidgetsPage::OnCloseup)
EVT_TEXT(ComboPage_Combo, ComboboxWidgetsPage::OnComboText)
EVT_TEXT_ENTER(ComboPage_Combo, ComboboxWidgetsPage::OnComboText)
+ EVT_TEXT_PASTE(ComboPage_Combo, ComboboxWidgetsPage::OnComboTextPasted)
EVT_CHECKBOX(wxID_ANY, ComboboxWidgetsPage::OnCheckOrRadioBox)
EVT_RADIOBOX(wxID_ANY, ComboboxWidgetsPage::OnCheckOrRadioBox)
// init everything
m_chkSort =
m_chkReadonly =
- m_chkFilename = (wxCheckBox *)NULL;
+ m_chkProcessEnter = (wxCheckBox *)NULL;
m_combobox = (wxComboBox *)NULL;
m_sizerCombo = (wxSizer *)NULL;
m_chkSort = CreateCheckBoxAndAddToSizer(sizerLeftTop, wxT("&Sort items"));
m_chkReadonly = CreateCheckBoxAndAddToSizer(sizerLeftTop, wxT("&Read only"));
- m_chkFilename = CreateCheckBoxAndAddToSizer(sizerLeftTop, wxT("&File name"));
- m_chkFilename->Disable(); // not implemented yet
+ m_chkProcessEnter = CreateCheckBoxAndAddToSizer(sizerLeftTop, wxT("Process &Enter"));
sizerLeftTop->Add(5, 5, 0, wxGROW | wxALL, 5); // spacer
sizerLeftTop->Add(m_radioKind, 0, wxGROW | wxALL, 5);
wxSizer *sizerLeft = new wxBoxSizer(wxVERTICAL);
sizerLeft->Add(sizerLeftTop);
sizerLeft->AddSpacer(10);
- sizerLeft->Add(sizerLeftBottom);
+ sizerLeft->Add(sizerLeftBottom, wxSizerFlags().Expand());
// middle pane
wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY,
&m_textAdd);
sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
+ sizerRow = CreateSizerWithTextAndButton(ComboPage_SetFirst,
+ wxT("Change &1st string"),
+ ComboPage_SetFirstText,
+ &m_textSetFirst);
+ sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5);
+
btn = new wxButton(this, ComboPage_AddSeveral, wxT("&Append a few strings"));
sizerMiddle->Add(btn, 0, wxALL | wxGROW, 5);
{
m_chkSort->SetValue(false);
m_chkReadonly->SetValue(false);
- m_chkFilename->SetValue(false);
+ m_chkProcessEnter->SetValue(false);
}
void ComboboxWidgetsPage::CreateCombo()
flags |= wxCB_SORT;
if ( m_chkReadonly->GetValue() )
flags |= wxCB_READONLY;
+ if ( m_chkProcessEnter->GetValue() )
+ flags |= wxTE_PROCESS_ENTER;
+
switch ( m_radioKind->GetSelection() )
{
0, NULL,
flags);
-#if 0
- if ( m_chkFilename->GetValue() )
- ;
-#endif // TODO
-
unsigned int count = items.GetCount();
for ( unsigned int n = 0; n < count; n++ )
{
int sel = m_combobox->GetSelection();
if ( sel != wxNOT_FOUND )
{
-#ifndef __WXGTK__
m_combobox->SetString(sel, m_textChange->GetValue());
-#else
- wxLogMessage(wxT("Not implemented in wxGTK"));
-#endif
}
}
m_combobox->Append(s);
}
+void ComboboxWidgetsPage::OnButtonSetFirst(wxCommandEvent& WXUNUSED(event))
+{
+ if ( m_combobox->IsListEmpty() )
+ {
+ wxLogWarning("No string to change.");
+ return;
+ }
+
+ m_combobox->SetString(0, m_textSetFirst->GetValue());
+}
+
void ComboboxWidgetsPage::OnButtonAddMany(wxCommandEvent& WXUNUSED(event))
{
// "many" means 1000 here
{
event.Enable( m_chkSort->GetValue() ||
m_chkReadonly->GetValue() ||
- m_chkFilename->GetValue() );
+ m_chkProcessEnter->GetValue() );
}
void ComboboxWidgetsPage::OnUpdateUIInsert(wxUpdateUIEvent& event)
wxASSERT_MSG( s == m_combobox->GetValue(),
wxT("event and combobox values should be the same") );
- if (event.GetEventType() == wxEVT_COMMAND_TEXT_ENTER)
+ if (event.GetEventType() == wxEVT_TEXT_ENTER)
{
wxLogMessage(wxT("Combobox enter pressed (now '%s')"), s.c_str());
}
}
}
+void ComboboxWidgetsPage::OnComboTextPasted(wxClipboardTextEvent& event)
+{
+ wxLogMessage("Text pasted from clipboard.");
+ event.Skip();
+}
+
void ComboboxWidgetsPage::OnComboBox(wxCommandEvent& event)
{
long sel = event.GetInt();
wxLogMessage(wxT("Combobox item %ld selected"), sel);
wxLogMessage(wxT("Combobox GetValue(): %s"), m_combobox->GetValue().c_str() );
+
+ if ( event.GetString() != m_combobox->GetValue() )
+ {
+ wxLogMessage("ERROR: Event has different string \"%s\"",
+ event.GetString());
+ }
}
void ComboboxWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event))