void TChDirDialog::handleEvent( TEvent& event ) { TDialog::handleEvent( event ); switch( event.what ) { case evCommand: { char curDir[PATH_MAX]; switch( event.message.command ) { case cmRevert: getCurDir( curDir ); break; case cmChangeDir: { TDirEntry *p = dirList->list()->at( dirList->focused ); strcpy( curDir, p->dir() ); /* SS: changed */ if( curDir[strlen(curDir)-1] != '/' ) strcat( curDir, "/" ); break; } #ifndef __UNPATCHED //!! Handle directory selection. case cmDirSelection: chDirButton->makeDefault( (Boolean) event.message.infoPtr ); return; // NOTE: THIS IS RETURN NOT BREAK!! #endif default: return; } dirList->newDirectory( curDir ); int len = strlen( curDir ); /* SS: changed */ if( len > 0 && curDir[len-1] == '/' ) curDir[len-1] = EOS; strcpy( dirInput->data, curDir ); dirInput->drawView(); dirList->select(); clearEvent( event ); } default: break; } }
void TDirCollection::writeItem( void *obj, opstream& os ) { TDirEntry *item = (TDirEntry *)obj; os.writeString( item->text() ); os.writeString( item->dir() ); }