示例#1
0
void gen_thumbnail(const WCHAR *wsDir, const WCHAR *wsFile, const WCHAR *thumb_name){
	HBITMAP pThumbnail;
	HRESULT hr = CreateThumbnail(wsDir,wsFile,100,100,&pThumbnail);
	if( SUCCEEDED( hr ) ){
			save_bmp(thumb_name, pThumbnail);
	}
}
示例#2
0
void OpSpeedDialView::OnSpeedDialAdded(const DesktopSpeedDial& entry)
{
	CloseAddDialog();
	CloseExtensionPrefsDialog();
	OpStatus::Ignore(CreateThumbnail(entry, true));
	UpdateButtonVisibility();
	NotifyContentChanged();
}
示例#3
0
OP_STATUS OpSpeedDialView::CreateThumbnails()
{
	for (UINT32 i = 0; i < g_speeddial_manager->GetTotalCount(); i++)
	{
		const DesktopSpeedDial& entry = *g_speeddial_manager->GetSpeedDial(i);
		RETURN_IF_ERROR(CreateThumbnail(entry, false));
	}
	return OpStatus::OK;
}
示例#4
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;
}
示例#5
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;
}