Source/StringListResource.cp

/*
 * StringListResource.cp
 */
 
#include "StringListResource.h"
 
StringListResource::StringListResource(short id) : fStrings(NULL), fCount(0)
{
    fStrings = ::GetResource('STR#', id);
    if (fStrings != NULL) {
        HLockHi(fStrings);
        StringList* strings = *(StringList**)fStrings;
        fCount = strings->count;
        pText = strings->strings;
    }
}
 
StringListResource::~StringListResource()
{
    if (fStrings != NULL) ::ReleaseResource(fStrings);
}
 
StringPtr StringListResource::First()
{
    if (fStrings != NULL) {
        StringList* strings = *(StringList**)fStrings;
        fCount = strings->count;
        pText = strings->strings;
    }
    return Next();
}
 
StringPtr StringListResource::Next()
{
    StringPtr result = NULL;
    
    if (fCount > 0) {
        result = pText;
        pText += (1 + *pText);
        --fCount;
    }
    
    return result;
}