X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/66e23ad2081689dad6e829b9667cdbc93ac45154..3f4902f50b632326615ee949f590b17dfd3751f5:/src/generic/dirctrlg.cpp diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp index a37f39da70..b5559d65b4 100644 --- a/src/generic/dirctrlg.cpp +++ b/src/generic/dirctrlg.cpp @@ -360,6 +360,16 @@ static bool wxIsDriveAvailable(const wxString dirName) } #endif +// Function which is called by quick sort. We want to override the default wxArrayString behaviour, +// and sort regardless of case. +static int LINKAGEMODE wxDirCtrlStringCompareFunction(const void *first, const void *second) +{ + wxString *strFirst = (wxString *)first; + wxString *strSecond = (wxString *)second; + + return strFirst->CmpNoCase(*strSecond); +} + //----------------------------------------------------------------------------- // wxDirItemDataEx //----------------------------------------------------------------------------- @@ -743,7 +753,7 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId) while (d.GetNext(& eachFilename)) ; } } - dirs.Sort(); + dirs.Sort((wxArrayString::CompareFunction) wxDirCtrlStringCompareFunction); // Now do the filenames -- but only if we're allowed to if ((GetWindowStyle() & wxDIRCTRL_DIR_ONLY) == 0) @@ -766,7 +776,7 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId) while (d.GetNext(& eachFilename)) ; } } - filenames.Sort(); + filenames.Sort((wxArrayString::CompareFunction) wxDirCtrlStringCompareFunction); } // Add the sorted dirs