/** The list_init function initializes a blank linked list with a head and * tail pointer both to null, and it also clears a blank list member */ void list_init(void) { unsigned int i; head=(list_element*) malloc(sizeof(list_element)); head->next=NULL; head->prev=NULL; for(i=0;i<=MAX_NODE_CHARS;i++) { head->node_data[i]='\0'; } head->node_number = 0; tail=head; tail->next=NULL; tail->prev=NULL; for(i=0;i<=MAX_NODE_CHARS;i++) { tail->node_data[i]='\0'; } tail->node_number = 0; list_size=0; pLb=LbCreate(LISTBOX_ID, 10,10,150,200, LB_DRAW, NULL, NULL); }
void CreateListBox(void) { LISTBOX *pLb; DelayMs(50); if ( CreateListBoxScheme() ) { GFX_DRIVER_CreateLayer( GFX_PIP_LAYER, 0, LB_ORIGIN_START_X, LB_ORIGIN_START_Y, LB_ORIGIN_END_X, LB_ORIGIN_END_Y ); GFX_DRIVER_ShowLayer(GFX_PIP_LAYER); GFX_DRIVER_ShowLayer( GFX_CURSOR_LAYER ); GFX_DRIVER_ActivateLayer( GFX_PIP_LAYER ); pLb = LbCreate ( ID_LBS_LISTBOX1, // ID 0, // Start X 0, // Start Y LB_WIDTH-30, // End X LB_HEIGHT, // End Y dimension LB_DRAW /*| LB_FOCUSED*/, // will be dislayed after creation (XCHAR*)ListboxLstStr, //pMyItemList, altScheme // use alternate scheme ); SHORT count = LbGetCount(pLb); SldCreate ( ID_LBS_SLIDER1, // ID LB_WIDTH-30, // Start X 32, // Start Y LB_WIDTH, // End X 110, // End Y dimension SLD_DRAW | SLD_SCROLLBAR | SLD_VERTICAL, // vertical, will be dislayed after creation count - 1, // range 1, // page count - 1, // pos altScheme // use alternate scheme ); BtnCreate ( ID_LBS_BUTTON1, // ID LB_WIDTH-30, // Start X 0, // Start Y LB_WIDTH, // End X 32, // End Y 0, // dimension (no radius) BTN_DRAW, // will be dislayed after creation NULL, // no bitmap (XCHAR *)UpArrowStr, // Up Arrow altScheme // use alternate scheme ); BtnCreate ( ID_LBS_BUTTON2, // ID LB_WIDTH-30, // Start X 110, // Start Y LB_WIDTH, // End X 142, // End Y 0, // dimension (no radius) BTN_DRAW, // will be dislayed after creation NULL, // no bitmap (XCHAR *)DownArrowStr, // Down Arrow altScheme // use alternate scheme ); WORD y = GetTextHeight((void *) altScheme->pFont)/2; GFX_DRIVER_MoveLayer( GFX_CURSOR_LAYER, LB_ORIGIN_START_X + 180, LB_ORIGIN_START_Y + y/2 ); } }
/************************************************************************ Function: WORD CreateJPEGDemo(void) Overview: Creates the JPEG demo screen. Input: none Output: Return 0 when memory is not enough for objects of the demo. ************************************************************************/ WORD CreateJPEGDemo(void) { BYTE TextHeight; WORD TextX; // Free memory for the objects in the previous linked list and start new list to display // the files seen on the media GOLFree(); // initialize the image decoder ImageDecoderInit(); // initialize the screen SetColor(WHITE); ClearDevice(); SetFont((void *) &GOLFontDefault); TextHeight = GetTextHeight((void *) &GOLFontDefault); SetColor(BRIGHTRED); TextX = (IMG_SCREEN_WIDTH - GetTextWidth((XCHAR *)ImageDisplayStr, (void *) &GOLFontDefault)) / 2; WAIT_UNTIL_FINISH(OutTextXY(TextX, 1 * TextHeight, (XCHAR *)ImageDisplayStr)); SetColor(BLACK); TextX = (IMG_SCREEN_WIDTH - GetTextWidth((XCHAR *)DetectingStr, (void *) &GOLFontDefault)) / 2; WAIT_UNTIL_FINISH(OutTextXY(TextX, 3 * TextHeight, (XCHAR *)DetectingStr)); TextX = (IMG_SCREEN_WIDTH - GetTextWidth((XCHAR *)ThumbDriveStr, (void *) &GOLFontDefault)) / 2; WAIT_UNTIL_FINISH(OutTextXY(TextX, 4 * TextHeight, (XCHAR *)ThumbDriveStr)); TextX = (IMG_SCREEN_WIDTH - GetTextWidth((XCHAR *)PleaseWaitStr, (void *) &GOLFontDefault)) / 2; WAIT_UNTIL_FINISH(OutTextXY(TextX, 6 * TextHeight, (XCHAR *)PleaseWaitStr)); #if defined(ENABLE_SD_MSD_DEMO) MDD_SDSPI_InitIO(); #endif MonitorDriveMedia(); if(mediaPresent == 0) { // erase the last line SetColor(WHITE); TextX = (IMG_SCREEN_WIDTH - GetTextWidth((XCHAR *)PleaseWaitStr, (void *) &GOLFontDefault)) / 2; WAIT_UNTIL_FINISH(OutTextXY(TextX, 6 * TextHeight, (XCHAR *)PleaseWaitStr)); // replace it with these SetColor(BRIGHTRED); TextX = (IMG_SCREEN_WIDTH - GetTextWidth((XCHAR *)Exiting1Str, (void *) &GOLFontDefault)) / 2; WAIT_UNTIL_FINISH(OutTextXY(TextX, 6 * TextHeight, (XCHAR *)Exiting1Str)); TextX = (IMG_SCREEN_WIDTH - GetTextWidth((XCHAR *)Exiting2Str, (void *) &GOLFontDefault)) / 2; WAIT_UNTIL_FINISH(OutTextXY(TextX, 7 * TextHeight, (XCHAR *)Exiting2Str)); DelayMs(1000); return (0); } blImageOnScreen = 0; blTextOnScreen = 0; pSave = NULL; blSlideShowOn = 0; NextSlide = 0xFF; // create the listbox, slider and buttons that will emulate a // list box with controls. pListBox = LbCreate ( ID_JPGLISTBOX, LBJPGXPOS, LBJPGYPOS, LBJPGXPOS + LBJPGWIDTH, LBJPGYPOS + LBJPGHEIGHT, LB_DRAW | LB_SINGLE_SEL, pJPGItemList, NULL ); if(pListBox == NULL) return (0); pSlider = SldCreate ( ID_SLD4LB, SLD4LBXPOS, SLD4LBYPOS, SLD4LBXPOS + SLD4LBWIDTH, SLD4LBYPOS + SLD4LBHEIGHT, SLD_DRAW | SLD_VERTICAL | SLD_SCROLLBAR, 2, 1, 1, // these are temporary fill items will set to proper values NULL ); if(pSlider == NULL) return (0); pBtnUp = BtnCreate ( ID_BTNUP4LB, BTNUP4LBXPOS, BTNUP4LBYPOS, BTNUP4LBXPOS + BTNUP4LBWIDTH, BTNUP4LBYPOS + BTNUP4LBHEIGHT, 0, BTN_DRAW, NULL, (XCHAR *)JpegUpArrowStr, NULL ); if(pBtnUp == NULL) return (0); pBtnDn = BtnCreate ( ID_BTNDN4LB, BTNDN4LBXPOS, BTNDN4LBYPOS, BTNDN4LBXPOS + BTNDN4LBWIDTH, BTNDN4LBYPOS + BTNDN4LBHEIGHT, 0, BTN_DRAW, NULL, (XCHAR *)JpegDownArrowStr, NULL ); if(pBtnUp == NULL) return (0); // create the control buttons at the bottom of the screen CreateCtrlButtons(ExitStr, NULL, NULL, RightArrowStr); // fill the list box with the file names of images in the media FillNewElements(); // set the first item to be focused LbSetFocusedItem(pListBox, 0); // successful creation of the JPEG demo screen return (1); }
/*************************************************** * Function : CreatelistTracesScreen * Parameters : none * Return : none * Description : Creates GOL widgets used in screen - listTracesScreen ***************************************************/ void CreatelistTracesScreen(void) { GOLFree(); SetColor(50712); ClearDevice(); if(defscheme != NULL) free(defscheme); defscheme = GOLCreateScheme(); defscheme->Color0 = RGBConvert(72, 140, 248); defscheme->Color1 = RGBConvert(248, 184, 72); defscheme->TextColor0 = RGBConvert(248, 184, 72); defscheme->TextColor1 = RGBConvert(0, 0, 248); defscheme->EmbossDkColor = RGBConvert(24, 0, 224); defscheme->EmbossLtColor = RGBConvert(168, 216, 232); defscheme->TextColorDisabled = RGBConvert(184, 184, 184); defscheme->ColorDisabled = RGBConvert(208, 224, 240); defscheme->CommonBkColor = RGBConvert(208, 236, 240); defscheme->pFont = (void*)&Gentium_Plain_0_0_22; if(cardSpyScheme != NULL) free(cardSpyScheme); cardSpyScheme = GOLCreateScheme(); cardSpyScheme->Color0 = RGBConvert(48, 48, 48); cardSpyScheme->Color1 = RGBConvert(152, 152, 152); cardSpyScheme->TextColor0 = RGBConvert(200, 204, 200); cardSpyScheme->TextColor1 = RGBConvert(96, 100, 96); cardSpyScheme->EmbossDkColor = RGBConvert(200, 204, 200); cardSpyScheme->EmbossLtColor = RGBConvert(200, 204, 200); cardSpyScheme->TextColorDisabled = RGBConvert(184, 184, 184); cardSpyScheme->ColorDisabled = RGBConvert(200, 204, 248); cardSpyScheme->CommonBkColor = RGBConvert(248, 252, 248); cardSpyScheme->pFont = (void*)&Ubuntu_Bold_0_0_18; WINDOW *plistTracesScreen_listTracesScreen; plistTracesScreen_listTracesScreen=WndCreate(listTracesScreen_listTracesScreen,0,0,319,239,24576,NULL, (XCHAR*)listTracesScreen_listTracesScreentext,cardSpyScheme); if(plistTracesScreen_listTracesScreen==NULL) { CreateError(0); while(1); //Fatal Error, Check for memory leak or heap size } LISTBOX *plistTracesScreen_tracesList; plistTracesScreen_tracesList=LbCreate(listTracesScreen_tracesList,147,54,302,174,16392,(XCHAR*)listTracesScreen_tracesListtext,cardSpyScheme); if(plistTracesScreen_tracesList==NULL) { CreateError(0); while(1); //Fatal Error, Check for memory leak or heap size } BUTTON *plistTracesScreen_replaceWithBackToHomeButton; plistTracesScreen_replaceWithBackToHomeButton=BtnCreate(recordScreen_backToHomeButton ,207,197,319,239,0,16384 , NULL , (XCHAR*)recordScreen_backToHomeButtontext,cardSpyScheme); if(plistTracesScreen_replaceWithBackToHomeButton==NULL) { CreateError(0); while(1); //Fatal Error, Check for memory leak or heap size } BUTTON *plistTracesScreen_viewTraceNumberButton; plistTracesScreen_viewTraceNumberButton=BtnCreate(listTracesScreen_viewTraceNumberButton,0,197,112,239,0,16384 , NULL , (XCHAR*)listTracesScreen_viewTraceNumberButtontext,cardSpyScheme); if(plistTracesScreen_viewTraceNumberButton==NULL) { CreateError(0); while(1); //Fatal Error, Check for memory leak or heap size } }