void CReportCtrl::SortItems(int nColumn, BOOL bAscending) { EndEdit(TRUE); if (nColumn < 0 || nColumn >= GetColumnCount() || !IsSortable()) return; // do the sorting m_nSortCol = nColumn; m_bSortAscending = bAscending; BOOL bEnd = FALSE; int nSep1 = -1; int nSep2 = _FindSeparator(-1, nColumn); do { if (nSep2 < 0) { nSep2 = GetItemCount(); bEnd = TRUE; } _PartialSort(nSep1 + 1, nSep2 - 1); nSep1 = _FindSeparator(nSep2 - 1, nColumn); nSep2 = _FindSeparator(nSep1, nColumn); } while (!bEnd && nSep1 >= 0); GetParent()->SendMessage(WM_ITEM_SORTED, (WPARAM)m_nSortCol, (LPARAM)m_bSortAscending); }
void TreeAddKline(struct ServerBan *kptr) { char **hostv; char hostname[HOSTLEN + 1]; int hostpieces; assert(kptr != NULL); /* * So we don't destroy kptr->hostname, use another buffer */ memset(hostname, 0, sizeof(hostname)); strncpy_irc(hostname, kptr->hostname, HOSTLEN); hostpieces = BreakupHost(hostname, &hostv); if (IsSortable(hostpieces, hostv)) CreateSubTree(&KlineTree, NULL, kptr, hostpieces, hostv); else { fprintf(stderr, "HOSTNAME [%s] IS NOT SORTABLE\n", kptr->hostname); AddUnsortableKline(kptr); } MyFree(hostv); } /* TreeAddKline() */
int wxHeaderColumn::GetFromIndividualFlags() const { int flags = 0; if ( IsResizeable() ) flags |= wxCOL_RESIZABLE; if ( IsSortable() ) flags |= wxCOL_SORTABLE; if ( IsReorderable() ) flags |= wxCOL_REORDERABLE; if ( IsHidden() ) flags |= wxCOL_HIDDEN; return flags; }