//----------------------------------------------------------------------- // void DisplayYesNoWindow(char* title, char* line1, char* line2, char* button1, char* button2, int defaultOption, void (*ReturningProcedure)( bool ) ) { YesNoCallback = ReturningProcedure; yesnoWindowShowing = TRUE; YesNoOption = defaultOption; // Store the currently displayed screen area where we're about to put our pop-up window on. YesNoWindowCopy = TAP_Osd_SaveBox(rgn, YESNO_WINDOW_X, YESNO_WINDOW_Y, YESNO_WINDOW_W, YESNO_WINDOW_H); #ifdef WIN32 // If testing on WIN32 platform TAP_Osd_FillBox( rgn,YESNO_WINDOW_X, YESNO_WINDOW_Y, YESNO_WINDOW_W, YESNO_WINDOW_H, FILL_COLOUR ); // clear the screen #endif // Display the pop-up window. TAP_Osd_PutGd( rgn, YESNO_WINDOW_X, YESNO_WINDOW_Y, &_popup360x180Gd, TRUE ); // Display Title and information in pop-up window PrintCenter( rgn, YESNO_WINDOW_X+5, YESNO_WINDOW_Y + 13, YESNO_WINDOW_X+YESNO_WINDOW_W-5, title, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); PrintCenter( rgn, YESNO_WINDOW_X+5, YESNO_WINDOW_Y + 56, YESNO_WINDOW_X+YESNO_WINDOW_W-5, line1, MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); PrintCenter( rgn, YESNO_WINDOW_X+5, YESNO_WINDOW_Y + 89, YESNO_WINDOW_X+YESNO_WINDOW_W-5, line2, MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); strcpy(YesNoButton1,button1); strcpy(YesNoButton2,button2); DisplayYesNoLine(); }
void DisplayMenu( menu_Struct *menu ) { int i; word h1, v1, x1, x2, y1, y2; char str[256]; TAP_Osd_FillBox( rgn, 0, 0, 720, 576, FILL_COLOUR ); // Clear the screen TAP_Osd_PutGd( rgn, (MENU_X - 11), MENU_Y - 8, &_menu_titleGd, TRUE ); // Draw boarders - calculate coords first: h1 = MENU_ROW_W + 16; // horizontal width v1 = ((MAX_NUMBER_OF_MENU_ITEMS+1) * MENU_STEP) + 8; // vertical width - num of items + extended text line x1 = MENU_X - 10; // top right y1 = MENU_Y + MENU_STEP - 12; x2 = x1 + h1; // bottom left y2 = y1 + v1; TAP_Osd_FillBox( rgn, x1, y1, 4, v1, TITLE_COLOUR ); // left boarder line TAP_Osd_FillBox( rgn, x2, y1, 4, v1, TITLE_COLOUR ); // right boarder line TAP_Osd_FillBox( rgn, x1, y2, h1+4, 4, TITLE_COLOUR ); // bottom boarder line TAP_Osd_PutStringAf1926( rgn, MENU_X+20, MENU_Y+2, MENU_X + 100, menu->title, TITLE_COLOUR, 0 ); // Print the title for ( i=1 ; i <= (menu->count) ; i++ ) // for each row on the menu { DisplayMenuLine( menu, i ); // display the text } }
//------------------ // void DisplayMenuLine( menu_Struct *menu, int lineNumber ) { char str[80]; dword width, x_coord, exTextX, exTextY; int i; int currentMenuLine; menuItem_Struct *currentItem; currentMenuLine = menu->currentLine; if ( lineNumber > menu->count ) return; // bounds check if ( lineNumber == 0 ) return; // bounds check if ( currentMenuLine == lineNumber ) // highlight the current cursor line TAP_Osd_PutGd( rgn, MENU_X, (lineNumber * MENU_STEP) + MENU_Y - 8, &_menurow_highlightGd, FALSE ); else TAP_Osd_PutGd( rgn, MENU_X, (lineNumber * MENU_STEP) + MENU_Y - 8, &_menurowGd, FALSE ); currentItem = menu->items[ lineNumber ]; strcpy( str, currentItem->title ); width = TAP_Osd_GetW( str, 0, FNT_Size_1622 ); if ( width <= MENU_ROW_W ) x_coord = MENU_X + ((MENU_ROW_W)/2) - (width/2); // centralise text else x_coord = MENU_X; // too wide - fill width // print the text TAP_Osd_PutStringAf1622( rgn, x_coord, (lineNumber * MENU_STEP) + MENU_Y, (MENU_X + MENU_ROW_W), str, MAIN_TEXT_COLOUR, 0 ); exTextX = MENU_X; exTextY = ((MAX_NUMBER_OF_MENU_ITEMS+1) * MENU_STEP) + MENU_Y; if ( lineNumber == currentMenuLine ) { strcpy( str, currentItem->description ); // blank the extended text area before redrawing TAP_Osd_FillBox( rgn, exTextX, (exTextY-8), MENU_ROW_W, MENU_STEP, FILL_COLOUR ); TAP_Osd_PutStringAf1419( rgn, exTextX, (exTextY+15), (exTextX + MENU_ROW_W), str, INFO_COLOUR, 0 ); } }
//------------------------------------------------------------------ // void DisplayMoveLine(void) { TAP_Osd_PutGd( rgn, MOVE_OPTION_X+(0*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y, &_keyblue82x43Gd, FALSE ); PrintCenter(rgn, MOVE_OPTION_X+(0*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y+9, MOVE_OPTION_X+(0*MOVE_OPTION_X_SPACE)+MOVE_OPTION_W, "Move", MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); TAP_Osd_PutGd( rgn, MOVE_OPTION_X+(1*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y, &_keyblue82x43Gd, FALSE ); PrintCenter(rgn, MOVE_OPTION_X+(1*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y+9, MOVE_OPTION_X+(1*MOVE_OPTION_X_SPACE)+MOVE_OPTION_W, "Cancel", MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); switch ( moveCommandOption ) { case 0 : TAP_Osd_PutGd( rgn, MOVE_OPTION_X+(0*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y, &_keygreen82x43Gd, FALSE ); PrintCenter(rgn, MOVE_OPTION_X+(0*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y+9, MOVE_OPTION_X+(0*MOVE_OPTION_X_SPACE)+MOVE_OPTION_W, "Move", COLOR_Yellow, 0, FNT_Size_1926 ); break; case 1 : TAP_Osd_PutGd( rgn, MOVE_OPTION_X+(1*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y, &_keygreen82x43Gd, FALSE ); PrintCenter(rgn, MOVE_OPTION_X+(1*MOVE_OPTION_X_SPACE), MOVE_OPTION_Y+9, MOVE_OPTION_X+(1*MOVE_OPTION_X_SPACE)+MOVE_OPTION_W, "Cancel", COLOR_Yellow, 0, FNT_Size_1926 ); break; } }
void BitmapPage::OnOpen() { int x = (MAX_SCREEN_X - width) / 2; int y = (MAX_SCREEN_Y - height) / 2; // Store the currently displayed screen area where we're about to put our pop-up window on. windowCopy = TAP_Osd_SaveBox(GetTAPScreenRegion(), x,y, width, height); // Display the pop-up window. if ( gd ) TAP_Osd_PutGd( GetTAPScreenRegion(), x,y, gd, TRUE ); else if ( pixmapData ) TAP_Osd_DrawPixmap( GetTAPScreenRegion(), x,y, width,height, pixmapData, TRUE, OSD_1555 ); }
//------------------------------------------------------------------ // void YesNoBox::DisplayLine() { TAP_Osd_PutGd( GetTAPScreenRegion(), YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_bigkeyblueGd, FALSE ); PrintCenter(GetTAPScreenRegion(), YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, button1, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); TAP_Osd_PutGd( GetTAPScreenRegion(), YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_bigkeyblueGd, FALSE ); PrintCenter(GetTAPScreenRegion(), YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, button2, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); switch ( option ) { case 0 : TAP_Osd_PutGd( GetTAPScreenRegion(), YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_bigkeygreenGd, FALSE ); PrintCenter(GetTAPScreenRegion(), YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, button1, COLOR_Yellow, 0, FNT_Size_1926 ); break; case 1 : TAP_Osd_PutGd( GetTAPScreenRegion(), YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_bigkeygreenGd, FALSE ); PrintCenter(GetTAPScreenRegion(), YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, button2, COLOR_Yellow, 0, FNT_Size_1926 ); break; } }
//------------------------------------------------------------------ // void DisplayYesNoLine(void) { TAP_Osd_PutGd( rgn, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_bigbluebuttonGd, FALSE ); PrintCenter(rgn, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, YesNoButton1, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); TAP_Osd_PutGd( rgn, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_bigbluebuttonGd, FALSE ); PrintCenter(rgn, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, YesNoButton2, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); switch ( YesNoOption ) { case 0 : TAP_Osd_PutGd( rgn, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_biggreenbuttonGd, FALSE ); PrintCenter(rgn, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(0*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, YesNoButton1, COLOR_Yellow, 0, FNT_Size_1926 ); break; case 1 : TAP_Osd_PutGd( rgn, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y, &_biggreenbuttonGd, FALSE ); PrintCenter(rgn, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE), YESNO_OPTION_Y+8, YESNO_OPTION_X+(1*YESNO_OPTION_X_SPACE)+YESNO_OPTION_W, YesNoButton2, COLOR_Yellow, 0, FNT_Size_1926 ); break; } }
void YesNoBox::OnOpen() { // Store the currently displayed screen area where we're about to put our pop-up window on. windowCopy = TAP_Osd_SaveBox(GetTAPScreenRegion(), YESNO_WINDOW_X, YESNO_WINDOW_Y, YESNO_WINDOW_W, YESNO_WINDOW_H); // Display the pop-up window. TAP_Osd_PutGd( GetTAPScreenRegion(), YESNO_WINDOW_X, YESNO_WINDOW_Y, &_popup360x180Gd, TRUE ); // Display Title and information in pop-up window PrintCenter( GetTAPScreenRegion(), YESNO_WINDOW_X+5, YESNO_WINDOW_Y + 13, YESNO_WINDOW_X+YESNO_WINDOW_W-5, title, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); PrintCenter( GetTAPScreenRegion(), YESNO_WINDOW_X+5, YESNO_WINDOW_Y + 56, YESNO_WINDOW_X+YESNO_WINDOW_W-5, line1, MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); PrintCenter( GetTAPScreenRegion(), YESNO_WINDOW_X+5, YESNO_WINDOW_Y + 89, YESNO_WINDOW_X+YESNO_WINDOW_W-5, line2, MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); DisplayLine(); }
//----------------------------------------------------------------------- // void DisplayArchiveMoveWindow() { char title[50]; appendToLogfile("DisplayArchiveMoveWindow: Started.", INFO); // Display the pop-up window - will also clear any old text if we are doing a refresh. TAP_Osd_PutGd( rgn, MOVE_WINDOW_X, MOVE_WINDOW_Y, &_popup476x416Gd, TRUE ); // TAP_Osd_FillBox( moveRgn, 0, 0, 720, 576, POPUP_FILL_COLOUR ); // clear the memory region with FILL COLOUR // Format and display the title for the Move Window. TAP_SPrint(title, "Select Destination Folder"); PrintCenter( rgn, MOVE_WINDOW_X, MOVE_WINDOW_Y + 14, MOVE_WINDOW_X+MOVE_WINDOW_W, title, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); DisplayMoveLine(); appendToLogfile("DisplayArchiveMoveWindow: Finised.", INFO); }
void OSDMenuWaitSpinnerInit(void) { TRACEENTER(); if(InfoBoxOSDRgn && WaitSpinnerRgn == 0) { WaitSpinnerRgn = TAP_Osd_Create(0, 0, _WaitSpinner_All_Gd.width, _WaitSpinner_All_Gd.height, 0, OSD_Flag_MemRgn); if(WaitSpinnerRgn) { TAP_Osd_PutGd(WaitSpinnerRgn, 0, 0, &_WaitSpinner_All_Gd, FALSE); TAP_Osd_Copy(WaitSpinnerRgn, InfoBoxOSDRgn, 0, 0, 50, 50, 15, 130, FALSE); WaitSpinnerIndex = 0; WaitSpinnerTimeout = TAP_GetTick() + 10; TAP_Osd_Sync(); } } TRACEEXIT(); }
//----------------------------------------------------------------------- // void DisplayArchiveMoveFolderList() { int printLine, index, lineHeight; appendToLogfile("DisplayArchiveMoveFolderList: Started.", WARNING); // Vertical spacing for each of the rows to display the list of target folders. lineHeight = 30; // Where in the list should we start the printing from. index = printMoveFolderLine; // Start the printing on the first row. printLine = 1; // Build the folder list in a memory screen region. TAP_Osd_PutGd( moveRgn, MOVE_WINDOW_X, MOVE_WINDOW_Y, &_popup476x416Gd, TRUE ); // Redisplay blank popup window to clear out old list. while ((index<=numberOfDestinationFolders) && (printLine<=MAX_MOVE_FOLDERS_SHOWN)) { if (index == chosenFolderLine) // If we're about to print the selected folder, print it with a different background. PrintLeft (moveRgn, MOVE_WINDOW_X+20, MOVE_WINDOW_Y+ 50 + (printLine * lineHeight), MOVE_WINDOW_X+MOVE_WINDOW_W-8, moveFiles[index]->name, MAIN_TEXT_COLOUR, HEADING_TEXT_COLOUR, FNT_Size_1926 ); else // If we're about to print a normal folder, print it with a normal background PrintLeft (moveRgn, MOVE_WINDOW_X+20, MOVE_WINDOW_Y+ 50 + (printLine * lineHeight), MOVE_WINDOW_X+MOVE_WINDOW_W-8, moveFiles[index]->name, MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); index++; // Increment the counter for the list. printLine++; // Increment the row counter. } // Print "+" indicators and top and/or bottom of the list to indicate if there are more files above/below in the list. // Check if there are some folders not shown at TOP of the list. if (printMoveFolderLine > 1) PrintLeft (moveRgn, MOVE_WINDOW_X+MOVE_WINDOW_W-30, MOVE_WINDOW_Y+ 50 + ((1) * lineHeight), MOVE_WINDOW_X+MOVE_WINDOW_W-8, "+", MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); // Check if there are some folders not shown at BOTTOM of the list. if (index <= numberOfDestinationFolders) // We've have't printed all of our list entries. PrintLeft (moveRgn, MOVE_WINDOW_X+MOVE_WINDOW_W-30, MOVE_WINDOW_Y+ 50 + ((printLine-1) * lineHeight), MOVE_WINDOW_X+MOVE_WINDOW_W-8, "+", MAIN_TEXT_COLOUR, 0, FNT_Size_1926 ); // Copy the screen region from memory to the real screen. This reduces any flicker when moving between rows. TAP_Osd_Copy( moveRgn, rgn, MOVE_WINDOW_X+20, MOVE_WINDOW_Y+50+(1*lineHeight), MOVE_WINDOW_W-20-8, (MAX_MOVE_FOLDERS_SHOWN*lineHeight), MOVE_WINDOW_X+20, MOVE_WINDOW_Y+50+(1*lineHeight), FALSE ); appendToLogfile("DisplayArchiveMoveFolderList: Finised.", WARNING); }
void ShowMessageBox( word msgRgn, char* msg1, char* msg2, char* msg3) { word width, msgY; int msgScrWidth; msgScrWidth = MSG_SCREEN_W-10; msgY = MSG_SCREEN_Y+12; // Calculate width of message window width = TAP_Osd_GetW( msg1, 0, FNT_Size_1926 ); if ( TAP_Osd_GetW( msg2, 0, FNT_Size_1622 ) + 10 > width ) width = TAP_Osd_GetW( msg2, 0, FNT_Size_1622 ); if ( TAP_Osd_GetW( msg3, 0, FNT_Size_1622 ) + 10 > width ) width = TAP_Osd_GetW( msg3, 0, FNT_Size_1622 ); if ( width > msgScrWidth ) width = msgScrWidth; #ifdef WIN32 // If testing on WIN32 platform TAP_Osd_FillBox( msgRgn,MSG_SCREEN_X, MSG_SCREEN_Y, MSG_SCREEN_W, MSG_SCREEN_H, FILL_COLOUR ); // clear the screen #endif // Display the pop-up window. TAP_Osd_PutGd( msgRgn, MSG_SCREEN_X, MSG_SCREEN_Y, &_msgpopup360x130Gd, TRUE ); TAP_Osd_PutS(msgRgn, MSG_SCREEN_X+(msgScrWidth-width)/2, msgY, MSG_SCREEN_X+(msgScrWidth+width)/2, msg1, MSG_TITLE_COLOUR, 0, 0, FNT_Size_1926, FALSE, ALIGN_CENTER); // show 1. message TAP_Osd_PutS(msgRgn, MSG_SCREEN_X+(msgScrWidth-width)/2, msgY+50, MSG_SCREEN_X+(msgScrWidth+width)/2, msg2, MSG_TEXT_COLOUR, 0, 0, FNT_Size_1622, FALSE, ALIGN_CENTER); // show 2. message TAP_Osd_PutS(msgRgn, MSG_SCREEN_X+(msgScrWidth-width)/2, msgY+80, MSG_SCREEN_X+(msgScrWidth+width)/2, msg3, MSG_TEXT_COLOUR, 0, 0, FNT_Size_1622, FALSE, ALIGN_CENTER); // show 3. message }
void OSDDrawList(void) { TRACEENTER(); int i; dword XStart, XEnd, Y; tMenu *pMenu; tItem *pItem; dword ItemColor; char s[4]; dword MaxNameIconWidth, MaxValueIconWidth; pMenu = &Menu[CurrentMenuLevel]; //Get maximum width of icons MaxNameIconWidth = 0; MaxValueIconWidth = 0; for(i = 0; i < pMenu->NrItems; i++) { if(pMenu->Item[i].pNameIconGd && (pMenu->Item[i].pNameIconGd->width > MaxNameIconWidth)) MaxNameIconWidth = pMenu->Item[i].pNameIconGd->width; if(pMenu->Item[i].pValueIconGd && (pMenu->Item[i].pValueIconGd->width > MaxValueIconWidth)) MaxValueIconWidth = pMenu->Item[i].pValueIconGd->width; if(pMenu->Item[i].ColorPatch && (MaxValueIconWidth < 50)) MaxValueIconWidth = 50; } if(MaxNameIconWidth) MaxNameIconWidth += 8; if(MaxValueIconWidth) MaxValueIconWidth += 8; //The background TAP_Osd_Draw3dBoxFill(OSDRgn, 60, 96, 600, 367, RGB(30, 30, 30), RGB(30, 30, 30), RGB(30, 30, 30)); for(i = 0; i < 10; i++) { pItem = &pMenu->Item[i + pMenu->CurrentTopIndex]; //Draw the background or selection bar and the optional value arrows if((i + pMenu->CurrentTopIndex) == pMenu->CurrentSelection) { OSDMenuDrawCursor(60, 95 + (i * 37), 600); if(pMenu->HasValueColumn && pItem->ValueArrows) { TAP_Osd_PutGd(OSDRgn, pMenu->ValueXPos + 20 , 95 + 10 +(i * 37), (MenuCursorType == CT_Standard ? &_pfeil_l_Gd : &_pfeil_l_bright_Gd), TRUE); TAP_Osd_PutGd(OSDRgn, 640 , 95 + 10 +(i * 37), (MenuCursorType == CT_Standard ? &_pfeil_r_Gd : &_pfeil_r_bright_Gd), TRUE); } } else { TAP_Osd_DrawRectangle(OSDRgn, 60, 130 + (i * 37), 600, 2, 1, RGB(16, 16, 16)); } XEnd = (pMenu->HasValueColumn ? pMenu->ValueXPos : 645); Y = 99 + (i * 37); if(pItem->Selectable) ItemColor = pItem->TextColor; else ItemColor = RGB(128, 128, 140); //Line numbers if(pMenu->NumberedItems) { int MaxX = 100; XStart = 101; if(pItem->CustomIndex >= 0) { TAP_SPrint(s, "%2.2d", pItem->CustomIndex); if(pItem->CustomIndex > 99) { XStart += 10; MaxX += 10; } if(pItem->CustomIndex > 999) { XStart += 10; MaxX += 10; } } else { TAP_SPrint(s, "%2.2d", i + pMenu->CurrentTopIndex + 1); if(i + pMenu->CurrentTopIndex + 1 > 99) { XStart += 10; MaxX += 10; } if(i + pMenu->CurrentTopIndex + 1 > 999) { XStart += 10; MaxX += 10; } } FMUC_PutStringAA(OSDRgn, 71, Y + 5 + FONTYOFFSET, MaxX, s, ItemColor, COLOR_None, pMenu->FontListLineNumber, FALSE, ALIGN_LEFT, 1); } else { XStart = 76; } //Icons on the left column if(pItem->pNameIconGd) TAP_Osd_PutGd(OSDRgn, XStart, Y + 13 - (pItem->pNameIconGd->height >> 1), pItem->pNameIconGd, TRUE); //The text of the left column FMUC_PutStringAA(OSDRgn, XStart + MaxNameIconWidth, Y + 5 + FONTYOFFSET, XEnd, pItem->Name, ItemColor, COLOR_None, pMenu->FontListNameColumn, TRUE, ALIGN_LEFT, 1); if(pMenu->HasValueColumn) { //The text of the right column FMUC_PutStringAA(OSDRgn, pMenu->ValueXPos + 45 + MaxValueIconWidth, Y + 5 + FONTYOFFSET, 645, pItem->Value, ItemColor, COLOR_None, pMenu->FontListValueColumn, TRUE, ALIGN_LEFT, 1); //The color patch or icon of the right column. The former has priority if(pItem->ColorPatch) { TAP_Osd_FillBox(OSDRgn, pMenu->ValueXPos + 45, Y + 5, 50, 18, (pItem->ColorPatch & 0x00ffffff) | 0xff000000); TAP_Osd_DrawRectangle(OSDRgn, pMenu->ValueXPos + 45, Y + 5, 50, 18, 1, RGB(192,192,192)); } else { if(pItem->pValueIconGd) TAP_Osd_PutGd(OSDRgn, pMenu->ValueXPos + 45 , Y + 13 - (pItem->pValueIconGd->height >> 1), pItem->pValueIconGd, TRUE); } } }
//-------------- // void DisplayConfigLine(char lineNumber) { char str[80], str2[80]; char *text; int optionNumber, page; if (( lineNumber < 1 ) || ( lineNumber > CONFIG_LINES )) return; // bound check optionNumber = lineNumber; page = ((optionNumber-1)/LINES_PER_PAGE)+1; lineNumber = lineNumber % LINES_PER_PAGE; if (lineNumber == 0) lineNumber = 10; // Put the Save/Cancel options always on line 10. if (( chosenConfigLine == optionNumber ) && ( optionNumber != 10 )) // highlight the current cursor line { // save, cancel, delete looks after itself TAP_Osd_PutGd( rgn, 53, lineNumber*CONFIG_Y_STEP+CONFIG_Y_OFFSET-8, &_highlightGd, FALSE ); } else { TAP_Osd_PutGd( rgn, 53, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET - 8, &_rowaGd, FALSE ); } TAP_SPrint(str,"%d.",optionNumber); TAP_Osd_PutStringAf1622(rgn, 75, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), 700, str, MAIN_TEXT_COLOUR, 0 ); switch ( optionNumber ) { case 1 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Model Type", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); if ( currentModelType == TF5800 ) TAP_SPrint(str,"TF5800 (UK)"); else TAP_SPrint(str,"TF5000 (International)"); TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 2 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Language", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); TAP_SPrint(str, "English"); TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, COLOR_DarkGray, 0 ); break; case 3 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Activation Key", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( keyStage ) { case 0 : text = GetButtonText( &localKeyCodes, CurrentActivationKey ); strcpy( str, text ); break; case 1 : TAP_SPrint( str, "Press new key now" ); break; case 2 : TAP_SPrint( str, "Invalid choice" ); break; default : TAP_SPrint( str, "eh?" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 4 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Highlight", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); TAP_SPrint(str,"%d", currentHighlight ); TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 5 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Selection Style", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( displayOption ) { case 0 : TAP_SPrint( str, "Carousel" ); break; case 1 : TAP_SPrint( str, "Linear" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 6 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Now/Next Tag", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentNowNextTag ) { case 0 : TAP_SPrint( str, "Off" ); break; case 1 : TAP_SPrint( str, "On" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 7 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Progress Info", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentProgressInfo ) { case 0 : TAP_SPrint( str, "Off" ); break; case 1 : TAP_SPrint( str, "Text" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 8 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Recall/PiP-Swap Key", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentRecallKey ) { case 0 : TAP_SPrint( str, "First Channel" ); break; case 1 : TAP_SPrint( str, "Swap Channels" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 9 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Screen Fading", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentScreenFade) { case 0 : TAP_SPrint( str, "Off - no screen fading" ); break; case 1 : TAP_SPrint( str, "Manual - use Blue key" ); break; default : TAP_SPrint( str, "Automatic after %d seconds", currentScreenFade ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 11 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Start Channel", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentStartChannel) { case 0 : TAP_SPrint( str, "Channel Last Highlighted" ); break; case 1 : TAP_SPrint( str, "Current Channel" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 12 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Timer Start Offset", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentStartOffset) { default : TAP_SPrint( str, "%d minutes",currentStartOffset ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 13 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Timer End Offset", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentEndOffset) { default : TAP_SPrint( str, "%d minutes",currentEndOffset ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 14 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Guide At Startup", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentGuideStart ) { case 0 : TAP_SPrint( str, "Start hidden" ); break; case 1 : TAP_SPrint( str, "Start displayed" ); break; case 2 : TAP_SPrint( str, "Start as it was when last exited" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 15 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "TV Screen Ratio", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentTvRatio) { case 0 : TAP_SPrint( str, "4:3 Standard" ); break; case 1 : TAP_SPrint( str, "16:9 Widescreen" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 16 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Main/Guide window", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentGuideWindowOption) { case 0 : TAP_SPrint( str, "Normal size" ); break; case 1 : TAP_SPrint( str, "Shrink to fit" ); break; default : TAP_SPrint( str, "BAD" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 17 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Progress Bars", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentProgressBarOption ) { case 0 : TAP_SPrint( str, "Multi Coloured" ); break; case 1 : sprintf( str, "Single colour, %% filled" ); break; case 2 : TAP_SPrint( str, "Single colour, all filled" ); break; case 3 : sprintf( str, "White colour, %% filled" ); break; default : TAP_SPrint( str, "[Invalid value]" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 18 : PrintCenter(rgn, CONFIG_E0, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E1, "Channel Numbers", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); switch ( currentChannelNumberOption ) { case 0 : TAP_SPrint( str, "LCN" ); break; case 1 : sprintf( str, "Topfield" ); break; default : TAP_SPrint( str, "[Invalid value]" ); break; } TAP_Osd_PutStringAf1622(rgn, CONFIG_X2, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), CONFIG_E2, str, MAIN_TEXT_COLOUR, 0 ); break; case 10 : case 20 : TAP_Osd_PutGd( rgn, 53, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET - 8, &_rowaGd, FALSE ); // No highlight for us TAP_SPrint(str,"%d.",optionNumber); TAP_Osd_PutStringAf1622(rgn, 75, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), 700, str, MAIN_TEXT_COLOUR, 0 ); if (( configOption == 0 ) && ( chosenConfigLine%10 == 0 )) { TAP_Osd_PutGd( rgn, 116, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET - 8, &_smallgreenbarGd, FALSE ); PrintCenter(rgn, 144, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET, 244, "Save", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); } else PrintCenter(rgn, 144, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET, 244, "Save", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); if (( configOption == 1 ) && ( chosenConfigLine%10 == 0 )) { TAP_Osd_PutGd( rgn, 278, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET - 8, &_smallgreenbarGd, FALSE ); PrintCenter(rgn, 306, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET, 406, "Cancel", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); } else PrintCenter(rgn, 306, lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET, 406, "Cancel", MAIN_TEXT_COLOUR, 0, FNT_Size_1622 ); TAP_Osd_FillBox( rgn, 437, lineNumber*CONFIG_Y_STEP+CONFIG_Y_OFFSET-8, 3, CONFIG_Y_STEP, FILL_COLOUR ); // one extra column seperator for us TAP_SPrint(str,"Page %d of %d",page,TOTAL_PAGES); TAP_Osd_PutStringAf1622(rgn, 470, (lineNumber * CONFIG_Y_STEP + CONFIG_Y_OFFSET), 700, str, MAIN_TEXT_COLOUR, 0 ); break; default : break; } TAP_Osd_FillBox( rgn, CONFIG_E0, lineNumber*CONFIG_Y_STEP+CONFIG_Y_OFFSET-8, 3, CONFIG_Y_STEP, FILL_COLOUR ); // draw the column seperators TAP_Osd_FillBox( rgn, CONFIG_E1, lineNumber*CONFIG_Y_STEP+CONFIG_Y_OFFSET-8, 3, CONFIG_Y_STEP, FILL_COLOUR ); }
void DisplayScreenConfigWindow(int window) { dword startX; char str[10]; TAP_Osd_FillBox( rgn, EVENT_X-1, EVENT_Y-1, OSD_MAX_X-EVENT_X+1, OSD_MAX_Y-EVENT_Y+1, 0 ); // clear the bottom portion of the screen TAP_Osd_PutGd( rgn, EVENT_X, EVENT_Y, &_narrowhighlightGd, TRUE ); // draw the green bar startX = EVENT_X+3; // Set the initial x-coord for the Event Name. // // Clear the Event Information box. // TAP_Osd_FillBox( rgn, EVENT_X, EVENT_Y+35, EVENT_W, EVENT_H-35, EVENT_FILL_COLOUR ); // Fill the event window if (window != OVERSCAN_WINDOW) TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+40, MAX_X, "OK - Switches to other windows.", MAIN_TEXT_COLOUR, 0 ); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+62, MAX_X, "Record - Saves window positions.", MAIN_TEXT_COLOUR, 0 ); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+84, MAX_X, "Exit - Quits without saving positions.", MAIN_TEXT_COLOUR, 0 ); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+106, MAX_X, "Recall - Reset to starting positions.", MAIN_TEXT_COLOUR, 0 ); if (window != OVERSCAN_WINDOW) TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+128, MAX_X, "<< / >> - Decrease/Increase Size.", MAIN_TEXT_COLOUR, 0 ); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+150, MAX_X, "Vol -/+ - Move Window Left/Right.", MAIN_TEXT_COLOUR, 0 ); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+172, MAX_X, "Ch -/+ - Move Window Down/Up.", MAIN_TEXT_COLOUR, 0 ); if (window == OVERSCAN_WINDOW) { switch (axis) { case 0: // Top/Bottom TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+40, MAX_X, "OK - Switches to Left/Right setting.", MAIN_TEXT_COLOUR, 0 ); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+128, MAX_X, "<< / >> - Decrease/Increase Top/Bottom Size.", MAIN_TEXT_COLOUR, 0 ); break; case 1: // Left/Right TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+40, MAX_X, "OK - Switches to Top/Bottom setting.", MAIN_TEXT_COLOUR, 0 ); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+128, MAX_X, "<< / >> - Decrease/Increase Left/Right Size.", MAIN_TEXT_COLOUR, 0 ); break; } } switch (window) { case 1: strcpy( str, "Main"); break; case 2: strcpy( str, "PiP"); break; case 3: strcpy( str, "Logo"); break; case 4: strcpy( str, "Event"); break; case 5: strcpy( str, "Clock"); break; case 6: strcpy( str, "Main/Guide"); break; case OVERSCAN_WINDOW: strcpy( str, "Quick"); break; } sprintf(gstr,"%s Window Size & Position Settings.",str); TAP_Osd_PutStringAf1622( rgn, startX, EVENT_Y+7, MAX_X, gstr, MAIN_TEXT_COLOUR, 0 ); }