Applied patch #876800: "Alphabetical order of tabs in widgets sample".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Dimitri Schoolwerth
2004-01-19 13:27:24 +00:00
parent f101c18df6
commit 2673bcb00d
2 changed files with 50 additions and 2 deletions

View File

@@ -354,8 +354,54 @@ WidgetsPageInfo::WidgetsPageInfo(Constructor ctor, const wxChar *label)
{
m_ctor = ctor;
m_next = WidgetsPage::ms_widgetPages;
WidgetsPage::ms_widgetPages = this;
m_next = NULL;
// dummy sorting: add and immediately sort on list according to label
if(WidgetsPage::ms_widgetPages)
{
WidgetsPageInfo *node_prev = WidgetsPage::ms_widgetPages;
if(wxStrcmp(label,node_prev->GetLabel().c_str())<0)
{
// add as first
m_next = node_prev;
WidgetsPage::ms_widgetPages = this;
}
else
{
WidgetsPageInfo *node_next;
do
{
node_next = node_prev->GetNext();
if(node_next)
{
// add if between two
if(wxStrcmp(label,node_next->GetLabel().c_str())<0)
{
node_prev->SetNext(this);
m_next = node_next;
// force to break loop
node_next = NULL;
}
}
else
{
// add as last
node_prev->SetNext(this);
m_next = node_next;
}
node_prev = node_next;
}while(node_next);
}
}
else
{
// add when first
WidgetsPage::ms_widgetPages = this;
}
}
// ----------------------------------------------------------------------------

View File

@@ -82,6 +82,8 @@ public:
Constructor GetCtor() const { return m_ctor; }
WidgetsPageInfo *GetNext() const { return m_next; }
void SetNext(WidgetsPageInfo *next) { m_next = next; }
private:
// the label of the page
wxString m_label;