Ejemplo n.º 1
0
void RefreshPanel( void )
{
	unsigned int i;

	GUI_Ctrl_ThumbnailPanel_Clean( GUI_ControlByID(ID_THUMBNAIL_PANEL) );

	for( i = 0; i < nNumFiles; i++ )
		GUI_Ctrl_ThumbnailPanel_AddItem( GUI_ControlByID(ID_THUMBNAIL_PANEL), &fileInfo[i] );

	GUI_Render();
}
Ejemplo n.º 2
0
unsigned int GUI_CB_DlgThumb( GUIMenu_t *lpGUIMenu, unsigned int nGUIMsg,
							  unsigned int nCtrlParam, unsigned int nOther )
{
	char szStr[32];
	unsigned int i, nSize = 0, nTotalSize = 0;

	switch( nGUIMsg )
	{
		case GUI_MSG_OPEN:
			for( i = 0; i < nNumFiles; i++ )
				nTotalSize += fileInfo[i].size;

			GUI_Ctrl_Progress_SetBounds( GUI_ControlByID(ID_PROGRESS), 0, nTotalSize );
			GUI_Ctrl_Progress_SetPos( GUI_ControlByID(ID_PROGRESS), 0 );
			GUI_Ctrl_Label_SetText( GUI_ControlByID(ID_PERCENT), "0 %" );

			for( i = 0; i < nNumFiles; i++ )
			{
				CreateThumbnail( &fileInfo[i], szCurDir, NULL );

				nSize = GUI_Ctrl_Progress_GetPos( GUI_ControlByID(ID_PROGRESS) );
				nSize += fileInfo[i].size;

				snprintf( szStr, sizeof(szStr), "%i %%",
					 (int) ((double) nSize / nTotalSize * 100.0) );

				GUI_Ctrl_Progress_SetPos( GUI_ControlByID(ID_PROGRESS), nSize );
				GUI_Ctrl_Label_SetText( GUI_ControlByID(ID_PERCENT), szStr );
				GUI_Render();
			}
			break;

		case GUI_MSG_CONTROL:
			switch( LOWORD(nCtrlParam) )
			{
				case ID_OK_BUTTON:
					GUI_CloseDialog( lpGUIMenu, 0, 0 );
					break;
			}
			break;
	}

	return 0;
}
Ejemplo n.º 3
0
void SetBrowseDir( const char *pDirPath )
{
	int nCount, i;

	strncpy( szCurDir, pDirPath, MAX_PATH );
	szCurDir[MAX_PATH] = 0;

	fileInfo[0].flags	= FLAG_DIRECTORY;
	fileInfo[0].size	= 0;

	strcpy( fileInfo[0].name, ".." );

	nCount		= DirGetContents( szCurDir, "jpg", &fileInfo[1], MAX_DIR_FILES - 1);
	nNumFiles	= nCount + 1;

	GUI_Ctrl_ThumbnailPanel_Clean( GUI_ControlByID(ID_THUMBNAIL_PANEL) );

	for( i = 0; i < nNumFiles; i++ )
		GUI_Ctrl_ThumbnailPanel_AddItem( GUI_ControlByID(ID_THUMBNAIL_PANEL), &fileInfo[i] );

	GUI_Render();
}
Ejemplo n.º 4
0
unsigned int GUI_CB_MyPictures( GUIMenu_t *lpGUIMenu, unsigned int nGUIMsg,
								unsigned int nCtrlParam, unsigned int nOther )
{
	GUIThumbItem_t		*pItem;
	const fileInfo_t	*pFile;
	unsigned int		nRet, nOffset;
	char				szNewPath[MAX_PATH + 1], *pStr;

	switch( nGUIMsg )
	{
		case GUI_MSG_OPEN:
			pErrImage = GUI_MenuGetImage( lpGUIMenu,
				((GUICtrl_Image_t*)GUI_ControlByID(ID_IMAGE_ERROR)->pCtrl)->nTexture );

			pDirImage = GUI_MenuGetImage( lpGUIMenu,
				((GUICtrl_Image_t*)GUI_ControlByID(ID_IMAGE_DIR)->pCtrl)->nTexture );

			if( !szCurDir[0] )
				MyPictures_Init();

			break;

		case GUI_MSG_CLOSE:
			GUI_Ctrl_ThumbnailPanel_VramClean( GUI_ControlByID(ID_THUMBNAIL_PANEL) );
			break;

		case GUI_MSG_CONTROL:
			switch( LOWORD(nCtrlParam) )
			{
				case ID_CACHE_IMAGES:
					GUI_OpenDialog( GUI_MENU_DLGTHUMB, lpGUIMenu, 0 );
					break;

				case ID_SORT_BY_NAME:
					if( nNumFiles )
					{
						qsort( fileInfo, nNumFiles, sizeof(fileInfo_t), SortPanelByName );
						RefreshPanel();
					}
					break;

				case ID_SORT_BY_SIZE:
					if( nNumFiles )
					{
						qsort( fileInfo, nNumFiles, sizeof(fileInfo_t), SortPanelBySize );
						RefreshPanel();
					}
					break;

				case ID_SORT_BY_TYPE:
					break;

				case ID_GO_BACK:
					GUI_OpenMenu( GUI_MENU_MAIN );
					break;

				case ID_THUMBNAIL_PANEL:
					switch( HIWORD(nCtrlParam) )
					{
						case GUI_NOT_NEED_INFO:
							pItem = (GUIThumbItem_t*) nOther;
							pFile = (fileInfo_t*) pItem->pUser;

							pItem->pStr	= pFile->name;

							// device list
							if( !szCurDir[0] )
							{
								if( !strncmp( pFile->name, "pfs", 3 ) )
								{
									pItem->pStr = HDD_GetPartition(pFile->name);
								}
								else if( !strncmp( pFile->name, "smb", 3 ) )
								{
									pItem->pStr = SMB_GetShareNameByPath(pFile->name);
								}
							}

							nRet = CreateThumbnail( pFile, szCurDir, &pItem->pTexture );
							if( nRet == 0 )
								pItem->pTexture = pErrImage->gsTexture;
							break;

						case GUI_NOT_REMOVE:
							pItem = (GUIThumbItem_t*) nOther;

							if( pItem->pTexture )
							{
								if( pItem->pTexture && pItem->pTexture != pErrImage->gsTexture &&
									pItem->pTexture != pDirImage->gsTexture )
									gsLib_texture_free( pItem->pTexture );
							}

							pItem->pTexture = NULL;
							pItem->pStr		= NULL;
							break;

						case GUI_NOT_THUMB:
							pFile = (fileInfo_t*) ((GUIThumbItem_t*)nOther)->pUser;
							pItem = (GUIThumbItem_t*) nOther;

							if( pFile->flags & FLAG_DIRECTORY )
							{
								if( !strcmp( pFile->name, ".." ) )
								{
									if( BrowsingRoot(szCurDir) )
									{
										MyPictures_Init();
										GUI_Render();
										return 0;
									}
									else
									{
										nOffset = strlen(szCurDir) - 1;
										strncpy( szNewPath, szCurDir, nOffset );
										szNewPath[ nOffset ] = 0;

										if( !(pStr = strrchr( szNewPath, '/' )) )
											break;

										nOffset = pStr - szNewPath + 1;
										strncpy( szNewPath, szCurDir, nOffset );
										szNewPath[ nOffset ] = 0;
									}
								}
								else
								{
									snprintf( szNewPath, MAX_PATH, "%s%s", szCurDir,
											  pFile->name );

									if( szNewPath[ strlen(szNewPath) - 1 ] != '/' )
										strncat( szNewPath, "/", MAX_PATH );
								}

								SetBrowseDir( szNewPath );
							}
							else
							{
								// clicked an image thumbnail
								if( pItem->pTexture != pErrImage->gsTexture &&
									pItem->pTexture != pDirImage->gsTexture )
								{
									snprintf( szNewPath, sizeof(szNewPath), "%s%s",
											  szCurDir, pFile->name );

									GUI_OpenViewMenu( szNewPath );
								}
							}
							break;
					}
					break;
			}
			break;
	}

	return 0;
}
Ejemplo n.º 5
0
int GUI_Ctrl_List_Input( GUIControl_t *pCtrl, unsigned int nPadBtns )
{
	GUICtrl_List_t *pList = pCtrl->pCtrl;

	if( !pList->nNumItems )
		return 0;

	if( nPadBtns & PAD_DOWN )
	{
		if( pList->nSelectedItem < (pList->nNumItems - 1) )
		{
			GUI_Ctrl_List_SetCursor( pCtrl, pList->nSelectedItem + 1 );
			GUI_Render();
			return 1;
		}
	}
	else if( nPadBtns & PAD_UP )
	{
		if( pList->nSelectedItem > 0 )
		{
			GUI_Ctrl_List_SetCursor( pCtrl, pList->nSelectedItem - 1 );
			GUI_Render();
			return 1;
		}
	}
	else if( nPadBtns & PAD_L1 )
	{
		GUI_Ctrl_List_SetCursor( pCtrl, 0 );
		GUI_Render();
		return 1;
	}
	else if( nPadBtns & PAD_R1 )
	{
		GUI_Ctrl_List_SetCursor( pCtrl, pList->nNumItems - 1 );
		GUI_Render();
		return 1;
	}
	else if( nPadBtns & PAD_CROSS )
	{
		pCtrl->pParent->pfnCallback(	pCtrl->pParent, GUI_MSG_CONTROL,
										MAKEPARAM( pCtrl->nID, GUI_NOT_LIST_CLICK ),
										pList->nSelectedItem );
	}
	else if( nPadBtns & PAD_SQUARE )
	{
		if( pList->pItems[ pList->nSelectedItem ].nFlags & FLAG_MARKED )
		{
			pList->pItems[ pList->nSelectedItem ].nFlags &= ~FLAG_MARKED;
			
			pCtrl->pParent->pfnCallback(	pCtrl->pParent, GUI_MSG_CONTROL,
											MAKEPARAM( pCtrl->nID, GUI_NOT_LIST_UNMARK ),
											0 );
		}
		else
		{
			pList->pItems[ pList->nSelectedItem ].nFlags |= FLAG_MARKED;

			pCtrl->pParent->pfnCallback(	pCtrl->pParent, GUI_MSG_CONTROL,
											MAKEPARAM( pCtrl->nID, GUI_NOT_LIST_MARK ),
											0 );
		}

		return 1;
	}

	return 0;
}