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:
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user