Beispiel #1
0
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) {