wxWidgets/samples/widgets/itemcontainer.h

59 lines
1.8 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Program: wxWidgets Widgets Sample
// Name: itemcontainer.h
// Purpose: Part of the widgets sample showing wxComboBox
// Created: 20.07.07
// Id: $Id$
// License: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_SAMPLE_WIDGETS_ITEMCONTAINER_H_
#define _WX_SAMPLE_WIDGETS_ITEMCONTAINER_H_
#include "widgets.h"
// define a common base class for sorted and normal string arrays
#if wxUSE_STL
typedef wxBaseArrayStringBase wxMaybeSortedArrayString;
#else
// in non-STL build wxSortedArrayString derives from wxArrayString
typedef wxArrayString wxMaybeSortedArrayString;
#endif
class ItemContainerWidgetsPage : public WidgetsPage
{
public:
ItemContainerWidgetsPage(WidgetsBookCtrl *book,
wxImageList *image_list,
const char *const icon[]);
virtual ~ItemContainerWidgetsPage();
void OnButtonTestItemContainer(wxCommandEvent& event);
virtual wxItemContainer* GetContainer() const = 0;
private:
void StartTest(const wxString& label);
void EndTest(const wxMaybeSortedArrayString& result);
// Track client data in wxItemContainer instances
wxClientData* CreateClientData(int value);
void StartTrackingData();
void StopTrackingData();
friend class TrackedClientData;
bool VerifyAllClientDataDestroyed();
bool VerifyClientData(wxUIntPtr i, const wxString& str);
wxString DumpContainerData(const wxMaybeSortedArrayString& expected) const;
wxArrayString m_items;
wxSortedArrayString m_itemsSorted;
int m_trackedDataObjects;
// holds pointer to the widget being tested
wxItemContainer *m_container;
};
#endif // _WX_SAMPLE_WIDGETS_ITEMCONTAINER_H_