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); } }
void OpSpeedDialView::OnSpeedDialAdded(const DesktopSpeedDial& entry) { CloseAddDialog(); CloseExtensionPrefsDialog(); OpStatus::Ignore(CreateThumbnail(entry, true)); UpdateButtonVisibility(); NotifyContentChanged(); }
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; }
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; }
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; }