Ejemplo n.º 1
0
/*********************************************************************
* Function: void GOLFree()
*
* PreCondition: none
*
* Input: none
*
* Output: none
*
* Side Effects: none
*
* Overview: frees memory of all objects in the current linked list
*           and starts a new linked list
*
* Note: drawing and messaging must be suspended
*
********************************************************************/
void GOLFree(){
OBJ_HEADER * pNextObj;
OBJ_HEADER * pCurrentObj;


    pCurrentObj = _pGolObjects;
    while(pCurrentObj != NULL){
        pNextObj = pCurrentObj->pNxtObj;
#ifdef USE_LISTBOX
        if(pCurrentObj->type == OBJ_LISTBOX)
            LbDelItemsList((LISTBOX*)pCurrentObj);
#endif
#ifdef USE_GRID
        if(pCurrentObj->type == OBJ_GRID)
            GridFreeItems((GRID*)pCurrentObj);
#endif
        free(pCurrentObj);
        pCurrentObj = pNextObj;
    }

    GOLNewList();
}
Ejemplo n.º 2
0
/************************************************************************
 Function: void FillNewElements(void)
                                                                       
 Overview: Fill the list box with the image and directory elements 
 		   found in the thumb drive.
 		                                         
 Input: none
                                                                       
 Output: none
************************************************************************/
void FillNewElements(void)
{
    SearchRec   searchRecord;
    BYTE        bCounter;
    BYTE        bFound;
    void        *pBitmap;

    NextSlide = 0;
    bNumElementsInFolder = 0;

    bFound = FindFirst("*", ATTR_DIRECTORY, &searchRecord);
    for(bCounter = 0; bCounter < MAX_ELEMENTS; bCounter++)
    {
        if(bFound == 0)
        {
            BYTE    i;
            if(searchRecord.filename[0] == '.' && searchRecord.filename[1] == '\0')
            {
                bFound = FindNext(&searchRecord);
                continue;
            }

            aFolderElement[bNumElementsInFolder].blFolder = 1;
            aFolderElement[bNumElementsInFolder].blText = 0;
            for(i = 0; i < 13; i++)
            {
                aFolderElement[bNumElementsInFolder].Name[i] = searchRecord.filename[i];
                aFolderElement[bNumElementsInFolder].XName[i] = searchRecord.filename[i];
            }

            bNumElementsInFolder++;
        }
        else
        {
            break;
        }

        bFound = FindNext(&searchRecord);
    }

    bFound = FindFirst("*.jpg", ATTR_MASK ^ ATTR_DIRECTORY, &searchRecord);
    for(bCounter = 0; bCounter < MAX_ELEMENTS && bNumElementsInFolder < MAX_ELEMENTS; bCounter++)
    {
        if(bFound == 0)
        {
            BYTE    i;
            aFolderElement[bNumElementsInFolder].blFolder = 0;
            aFolderElement[bNumElementsInFolder].blText = 0;
            aFolderElement[bNumElementsInFolder].ImgType = IMG_JPEG;
            for(i = 0; i < 13; i++)
            {
                aFolderElement[bNumElementsInFolder].Name[i] = searchRecord.filename[i];
                aFolderElement[bNumElementsInFolder].XName[i] = searchRecord.filename[i];
            }

            bNumElementsInFolder++;
        }
        else
        {
            break;
        }

        bFound = FindNext(&searchRecord);
    }

    bFound = FindFirst("*.bmp", ATTR_MASK ^ ATTR_DIRECTORY, &searchRecord);
    for(bCounter = 0; bCounter < MAX_ELEMENTS && bNumElementsInFolder < MAX_ELEMENTS; bCounter++)
    {
        if(bFound == 0)
        {
            BYTE    i;
            aFolderElement[bNumElementsInFolder].blFolder = 0;
            aFolderElement[bNumElementsInFolder].blText = 0;
            aFolderElement[bNumElementsInFolder].ImgType = IMG_BMP;
            for(i = 0; i < 13; i++)
            {
                aFolderElement[bNumElementsInFolder].Name[i] = searchRecord.filename[i];
                aFolderElement[bNumElementsInFolder].XName[i] = searchRecord.filename[i];
            }

            bNumElementsInFolder++;
        }
        else
        {
            break;
        }

        bFound = FindNext(&searchRecord);
    }

    // fill the list box items
    bStartingElement = 0;

    // clear the list first
    LbDelItemsList(pListBox);

    for(bCounter = 0; (bStartingElement + bCounter) < bNumElementsInFolder; bCounter++)
    {

        // set the proper bitmap icon
        if(aFolderElement[bStartingElement + bCounter].blFolder == 1)
        {
            pBitmap = (void *) &FolderIcon;
        }
        else if(aFolderElement[bStartingElement + bCounter].ImgType == IMG_JPEG)
        {
            pBitmap = (void *) &JpegIcon;
        }
        else if(aFolderElement[bStartingElement + bCounter].ImgType == IMG_BMP)
        {
            pBitmap = (void *) &BitmapIcon;
        }
        else
        {
            pBitmap = NULL;
        }

        // assign the item to the list
        if(NULL == LbAddItem(pListBox, NULL, aFolderElement[bStartingElement + bCounter].XName, pBitmap, 0, bCounter))
            break;
        else
        {

            // adjust the slider page and range
            SldSetRange(pSlider, bNumElementsInFolder);
            SldSetPage(pSlider, bNumElementsInFolder >> 1);

            // to completely redraw the object when GOLDraw() is executed.
            SetState(pSlider, DRAW);
            SetState(pListBox, DRAW);
        }
    }
}