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_ctor = ctor;
|
||||||
|
|
||||||
m_next = WidgetsPage::ms_widgetPages;
|
m_next = NULL;
|
||||||
WidgetsPage::ms_widgetPages = this;
|
|
||||||
|
// 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; }
|
Constructor GetCtor() const { return m_ctor; }
|
||||||
WidgetsPageInfo *GetNext() const { return m_next; }
|
WidgetsPageInfo *GetNext() const { return m_next; }
|
||||||
|
|
||||||
|
void SetNext(WidgetsPageInfo *next) { m_next = next; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// the label of the page
|
// the label of the page
|
||||||
wxString m_label;
|
wxString m_label;
|
||||||
|
Reference in New Issue
Block a user