void DrawFileBrowserButton(int x1, int y1, int x2, int y2, char *message, file_handle *file, int mode, u32 color) { char file_name[1024]; int borderSize = 4; color = (color == -1) ? BUTTON_COLOUR_INNER : color; //never used memset(file_name, 0, 1024); strcpy(&file_name[0], message); // Hide extension when rendering ISO/GCM files if(file->fileAttrib == IS_FILE) { if(endsWith(file_name,".gcm") || endsWith(file_name,".GCM") || endsWith(file_name,".iso")|| endsWith(file_name,".ISO") || endsWith(file_name,".dol")|| endsWith(file_name,".DOL")) { if(strlen(file_name) > 4) { file_name[strlen(file_name)-4] = '\0'; } } } float scale = GetTextScaleToFitInWidth(file_name, (x2-x1-96-35)-(borderSize*2)); GXColor selectColor = (GXColor) {46,57,104,GUI_MSGBOX_ALPHA}; //bluish GXColor noColor = (GXColor) {0,0,0,0}; //black GXColor borderColor = (GXColor) {200,200,200,GUI_MSGBOX_ALPHA}; //silver //Draw Text and backfill (if selected) if(mode==B_SELECTED) { DrawSimpleBox( x1, y1, x2-x1, y2-y1, 0, selectColor, borderColor); } else { DrawSimpleBox( x1, y1, x2-x1, y2-y1, 0, noColor, borderColor); } // Draw banner if there is one if(file->meta && file->meta->banner) { DrawTexObj(&file->meta->bannerTexObj, x1+7, y1+4, 96, 32, 0, 0.0f, 1.0f, 0.0f, 1.0f, 0); } if(file->meta && file->meta->regionTexId != -1 && file->meta->regionTexId != 0) { DrawImage(file->meta->regionTexId, x2 - 37, y1+borderSize+2, 30,20, 0, 0.0f, 1.0f, 0.0f, 1.0f, 0); } WriteFontStyled(x1 + borderSize+5+96, y1+borderSize, file_name, scale, false, defaultColor); // Print specific stats if(file->fileAttrib==IS_FILE) { if(curDevice == WODE) { ISOInfo_t* isoInfo = (ISOInfo_t*)&file->other; sprintf(txtbuffer,"Partition: %i, ISO: %i", isoInfo->iso_partition,isoInfo->iso_number); } else if(curDevice == MEMCARD) { sprintf(txtbuffer,"%.2fKB (%i blocks)", (float)file->size/1024, file->size/8192); } else if(curDevice == QOOB_FLASH) { sprintf(txtbuffer,"%.2fKB (%i blocks)", (float)file->size/1024, file->size/0x10000); } else { sprintf(txtbuffer,"%.2f %s",file->size > (1024*1024) ? (float)file->size/(1024*1024):(float)file->size/1024,file->size > (1024*1024) ? "MB":"KB"); } WriteFontStyled(x2 - ((borderSize+3) + (GetTextSizeInPixels(txtbuffer)*0.45)), y1+borderSize+24, txtbuffer, 0.45f, false, defaultColor); } }
void DrawFileBrowserButton(int x1, int y1, int x2, int y2, char *message, file_handle *file, int mode, u32 color) { char file_name[1024]; int borderSize; color = (color == -1) ? BUTTON_COLOUR_INNER : color; //never used memset(file_name, 0, 1024); strcpy(&file_name[0], message); borderSize = (mode==B_SELECTED) ? 6 : 4; // Hide extension when rendering ISO/GCM files if(file->fileAttrib == IS_FILE) { if(endsWith(file_name,".gcm") || endsWith(file_name,".GCM") || endsWith(file_name,".iso")|| endsWith(file_name,".ISO") || endsWith(file_name,".dol")|| endsWith(file_name,".DOL")) { if(strlen(file_name) > 4) { file_name[strlen(file_name)-4] = '\0'; } } } float scale = GetTextScaleToFitInWidth(file_name, (x2-x1-96)-(borderSize*2)); GXColor selectColor = (GXColor) {46,57,104,GUI_MSGBOX_ALPHA}; //bluish GXColor noColor = (GXColor) {0,0,0,0}; //black GXColor borderColor = (GXColor) {200,200,200,GUI_MSGBOX_ALPHA}; //silver //Draw Text and backfill (if selected) if(mode==B_SELECTED) { DrawSimpleBox( x1, y1, x2-x1, y2-y1, 0, selectColor, borderColor); } else { DrawSimpleBox( x1, y1, x2-x1, y2-y1, 0, noColor, borderColor); } // Draw banner if there is one if(file->meta && file->meta->banner) { DrawTexObj(&file->meta->bannerTexObj, x1+7, y1+4, 96, 32, 0, 0.0f, 1.0f, 0.0f, 1.0f, 0); } WriteFontStyled(x1 + borderSize+5+96, y1+borderSize, file_name, scale, false, defaultColor); // Print specific stats if(file->fileAttrib==IS_FILE) { if(curDevice == WODE) { sprintf(txtbuffer,"Partition: %i, ISO: %i", (int)(file->fileBase>>24)&0xFF,(int)(file->fileBase&0xFFFFFF)); } else if(curDevice == MEMCARD) {