// Purpose: Part of the widgets sample showing wxComboBox
// Created: 20.07.07
// Id: $Id$
-// License: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
ItemContainerWidgetsPage *m_tracker;
int m_value;
- DECLARE_NO_COPY_CLASS(TrackedClientData)
+ wxDECLARE_NO_COPY_CLASS(TrackedClientData);
};
// ============================================================================
ItemContainerWidgetsPage::ItemContainerWidgetsPage(WidgetsBookCtrl *book,
wxImageList *image_list,
- char* icon[])
+ const char *const icon[])
: WidgetsPage(book, image_list, icon), m_trackedDataObjects(0)
{
- m_items.Add(_T("This"));
- m_items.Add(_T("is"));
- m_items.Add(_T("a"));
- m_items.Add(_T("List"));
- m_items.Add(_T("of"));
- m_items.Add(_T("strings"));
+ m_items.Add(wxT("This"));
+ m_items.Add(wxT("is"));
+ m_items.Add(wxT("a"));
+ m_items.Add(wxT("List"));
+ m_items.Add(wxT("of"));
+ m_items.Add(wxT("strings"));
m_itemsSorted = m_items;
}
{
if ( m_trackedDataObjects )
{
- wxString message = _T("Bug in managing wxClientData: ");
+ wxString message = wxT("Bug in managing wxClientData: ");
if ( m_trackedDataObjects > 0 )
- message << m_trackedDataObjects << _T(" lost objects");
+ message << m_trackedDataObjects << wxT(" lost objects");
else
- message << (-m_trackedDataObjects) << _T(" extra deletes");
+ message << (-m_trackedDataObjects) << wxT(" extra deletes");
wxFAIL_MSG(message);
return false;
}
void ItemContainerWidgetsPage::StartTest(const wxString& label)
{
m_container->Clear();
- wxLogMessage(_T("Test - %s:"), label.c_str());
+ wxLogMessage(wxT("Test - %s:"), label.c_str());
}
-void ItemContainerWidgetsPage::EndTest(const wxMaybeSortedArrayString& items)
+void ItemContainerWidgetsPage::EndTest(const wxArrayString& items)
{
const unsigned count = m_container->GetCount();
bool ok = count == items.GetCount();
if ( !ok )
{
- wxFAIL_MSG(_T("Item count does not match."));
+ wxFAIL_MSG(wxT("Item count does not match."));
}
else
{
if ( str != items[i] )
{
wxFAIL_MSG(wxString::Format(
- _T("Wrong string \"%s\" at position %d (expected \"%s\")"),
+ wxT("Wrong string \"%s\" at position %d (expected \"%s\")"),
str.c_str(), i, items[i].c_str()));
ok = false;
break;
m_container->Clear();
ok &= VerifyAllClientDataDestroyed();
- wxLogMessage(_T("...%s"), ok ? _T("passed") : _T("failed"));
+ wxLogMessage(wxT("...%s"), ok ? wxT("passed") : wxT("failed"));
}
wxString
-ItemContainerWidgetsPage::DumpContainerData(const wxMaybeSortedArrayString& expected) const
+ItemContainerWidgetsPage::DumpContainerData(const wxArrayString& expected) const
{
wxString str;
- str << _T("Current content:\n");
+ str << wxT("Current content:\n");
unsigned i;
for ( i = 0; i < m_container->GetCount(); ++i )
{
- str << _T(" - ") << m_container->GetString(i) << _T(" [");
+ str << wxT(" - ") << m_container->GetString(i) << wxT(" [");
if ( m_container->HasClientObjectData() )
{
TrackedClientData *
if ( data )
str << (wxUIntPtr)data;
}
- str << _T("]\n");
+ str << wxT("]\n");
}
- str << _T("Expected content:\n");
+ str << wxT("Expected content:\n");
for ( i = 0; i < expected.GetCount(); ++i )
{
const wxString& item = expected[i];
- str << _T(" - ") << item << _T("[");
+ str << wxT(" - ") << item << wxT("[");
for( unsigned j = 0; j < m_items.GetCount(); ++j )
{
if ( m_items[j] == item )
str << j;
}
- str << _T("]\n");
+ str << wxT("]\n");
}
return str;
{
if ( i > m_items.GetCount() || m_items[i] != str )
{
- wxLogMessage(_T("Client data for '%s' does not match."), str.c_str());
+ wxLogMessage(wxT("Client data for '%s' does not match."), str.c_str());
return false;
}
return true;
}
+/* static */
+wxArrayString
+ItemContainerWidgetsPage::MakeArray(const wxSortedArrayString& sorted)
+{
+ wxArrayString a;
+
+ const size_t count = sorted.size();
+ a.reserve(count);
+ for ( size_t n = 0; n < count; n++ )
+ a.push_back(sorted[n]);
+
+ return a;
+}
+
void ItemContainerWidgetsPage::OnButtonTestItemContainer(wxCommandEvent&)
{
m_container = GetContainer();
- wxASSERT_MSG(m_container, _T("Widget must have a test widget"));
+ wxASSERT_MSG(m_container, wxT("Widget must have a test widget"));
- wxLogMessage(_T("wxItemContainer test for %s, %s:"),
+ wxLogMessage(wxT("wxItemContainer test for %s, %s:"),
GetWidget()->GetClassInfo()->GetClassName(),
(m_container->IsSorted() ? "Sorted" : "Unsorted"));
- const wxMaybeSortedArrayString&
- expected_result = m_container->IsSorted() ? m_itemsSorted
- : m_items;
+ const wxArrayString
+ expected_result = m_container->IsSorted() ? MakeArray(m_itemsSorted)
+ : m_items;
- StartTest(_T("Append one item"));
+ StartTest(wxT("Append one item"));
wxString item = m_items[0];
m_container->Append(item);
EndTest(wxArrayString(1, &item));
- StartTest(_T("Append some items"));
+ StartTest(wxT("Append some items"));
m_container->Append(m_items);
EndTest(expected_result);
- StartTest(_T("Append some items with data objects"));
+ StartTest(wxT("Append some items with data objects"));
wxClientData **objects = new wxClientData *[m_items.GetCount()];
- for ( unsigned i = 0; i < m_items.GetCount(); ++i )
+ unsigned i;
+ for ( i = 0; i < m_items.GetCount(); ++i )
objects[i] = CreateClientData(i);
m_container->Append(m_items, objects);
EndTest(expected_result);
delete[] objects;
- StartTest(_T("Append some items with data"));
+ StartTest(wxT("Append some items with data"));
void **data = new void *[m_items.GetCount()];
- for ( unsigned i = 0; i < m_items.GetCount(); ++i )
- data[i] = (void*)i;
+ for ( i = 0; i < m_items.GetCount(); ++i )
+ data[i] = wxUIntToPtr(i);
m_container->Append(m_items, data);
EndTest(expected_result);
delete[] data;
- StartTest(_T("Append some items with data, one by one"));
- for ( unsigned i = 0; i < m_items.GetCount(); ++i )
- m_container->Append(m_items[i], (void*)i);
+ StartTest(wxT("Append some items with data, one by one"));
+ for ( i = 0; i < m_items.GetCount(); ++i )
+ m_container->Append(m_items[i], wxUIntToPtr(i));
EndTest(expected_result);
- StartTest(_T("Append some items with data objects, one by one"));
- for ( unsigned i = 0; i < m_items.GetCount(); ++i )
+ StartTest(wxT("Append some items with data objects, one by one"));
+ for ( i = 0; i < m_items.GetCount(); ++i )
m_container->Append(m_items[i], CreateClientData(i));
EndTest(expected_result);
if ( !m_container->IsSorted() )
{
- StartTest(_T("Insert in reverse order with data, one by one"));
+ StartTest(wxT("Insert in reverse order with data, one by one"));
for ( unsigned i = m_items.GetCount(); i; --i )
- m_container->Insert(m_items[i - 1], 0, (void*)(i - 1));
+ m_container->Insert(m_items[i - 1], 0, wxUIntToPtr(i - 1));
EndTest(expected_result);
}
}