void PanelList::Mark( const unicode_t* mask, bool enable ) { int n = listCount; PanelCounter counter; for ( int i = 0; i < n; i++ ) { FSNode* p = list[i]; if ( !p ) { continue; } bool ok = accmask( p->GetUnicodeName(), mask ); if ( ok ) { if ( enable ) { p->SetSelected(); } else { p->ClearSelected(); } } if ( p->IsSelected() ) { counter.AddOne( p->Size() ); } } selectedCn = counter; }
int FSNode::CmpByExt( FSNode& a, bool case_sensitive ) { const unicode_t* s1 = unicode_rchr( GetUnicodeName(), '.' ); const unicode_t* s2 = unicode_rchr( a.GetUnicodeName(), '.' ); if ( s1 ) return ( s2 ) ? ( case_sensitive ? CmpStr<const unicode_t>( s1, s2 ) : CmpNoCase( s1, s2 ) ) : 1; else { return s2 ? -1 : 0; } }