void CImageMgr::OnImportImage() { if( fontGen->GetStatus() != 0 ) return; CFileDialog dlg; dlg.AddFilter("All files (*.*)", "*.*"); dlg.AddFilter("Supported image files (*.bmp;*.jpg;*.tga;*.dds;*.png)", "*.bmp;*.jpg;*.tga;*.dds;*.png", true); if( dlg.AskForOpenFileName(this) ) { CIconImageDlg iconDlg; iconDlg.fileName = dlg.GetFileName(); iconDlg.id = 0; iconDlg.xoffset = 0; iconDlg.yoffset = 0; iconDlg.advance = 0; if( iconDlg.DoModal(this) == IDOK ) { // Create the icon image int r = fontGen->AddIconImage(iconDlg.fileName.c_str(), iconDlg.id, iconDlg.xoffset, iconDlg.yoffset, iconDlg.advance); if( r < 0 ) { MessageBox(hWnd, "Failed to load image file", "File error", MB_OK); return; } RefreshList(); } } }
void CCharWin::OnLoadFontConfiguration() { CFileDialog dlg; dlg.AddFilter("All files (*.*)", "*.*"); dlg.AddFilter("BMFont Font config (*.csv)", "*.csv", true); dlg.AddFilter("Text (*.txt)", "*.txt"); if (dlg.AskForOpenFileName(this)) LoadFontConfig(dlg.GetFileName()); }
void CCharWin::OnSelectCharsFromFile() { if( isGenerating ) return; CFileDialog dlg; dlg.AddFilter("All files (*.*)", "*.*", true); if( dlg.AskForOpenFileName(this) ) { fontGen->SelectCharsFromFile(dlg.GetFileName().c_str()); int countMissing = fontGen->GetNumFailedChars(); if( countMissing ) { stringstream s; s << countMissing << " characters from the file are not available in the font"; TCHAR buf[1024]; ConvertAnsiToTChar(s.str(), buf, 1024); MessageBox(hWnd, buf, __TEXT("Warning"), MB_OK); } UpdateSubsetsSelection(); Invalidate(FALSE); } }
void CCharWin::OnSaveFontConfiguration() { CFileDialog dlg; dlg.AddFilter("All files (*.*)", "*.*"); dlg.AddFilter("BMFont Font config (*.csv)", "*.csv", true); dlg.AddFilter("Text (*.txt)", "*.txt"); // Open a SaveAs dialog to get a filename from the user if (dlg.AskForSaveFileName(this)) { FILE *file = NULL; string path = dlg.GetFileName(); file = fopen(path.c_str(), "w+"); if (NULL != file) { // write the column definitions string definitions = "character,image_path,x_offset,y_offset,x_advance,x,y,width,height\n"; fwrite(definitions.c_str(), 1, definitions.size(), file); const map<int, SIconImage *> &IconImages = fontGen->GetIconImageInfo(); for (map<int, SIconImage *>::const_iterator itr = IconImages.begin(); IconImages.end() != itr; ++itr) { TCHAR characterT[4] = { 0 }; characterT[0] = itr->first; string character; ConvertTCharToAnsi(characterT, character); char info[1024] = { 0 }; int length = sprintf(info, "%s,%s,%d,%d,%d,%d,%d,%d,%d\n", \ character.c_str(), \ itr->second->fileName.c_str(), \ itr->second->xoffset, \ itr->second->yoffset, \ itr->second->advance, \ itr->second->x, \ itr->second->y, \ itr->second->width, \ itr->second->height); fwrite(info, 1, length, file); } fclose(file); } } }
void CCharWin::OnLoadConfiguration() { if( isGenerating ) return; CFileDialog dlg; dlg.AddFilter("All files (*.*)", "*.*"); dlg.AddFilter("BMFont config (*.bmfc)", "*.bmfc", true); dlg.AddFilter("Text (*.txt)", "*.txt"); string dir = fontGen->GetLastConfigFile(); if( dir != GetDefaultConfig() ) { // cut off the filename and last / dir = dir.substr(0, dir.find_last_of("/\\")); dlg.SetInitialDir(dir.c_str()); } if( dlg.AskForOpenFileName(this) ) LoadConfig(dlg.GetFileName()); }
void CCharWin::OnSaveConfiguration() { CFileDialog dlg; dlg.AddFilter("All files (*.*)", "*.*"); dlg.AddFilter("BMFont config (*.bmfc)", "*.bmfc", true); dlg.AddFilter("Text (*.txt)", "*.txt"); string dir = fontGen->GetLastConfigFile(); if( dir != GetDefaultConfig() ) { // cut off the filename and last / dir = dir.substr(0, dir.find_last_of("/\\")); dlg.SetInitialDir(dir.c_str()); } // Open a SaveAs dialog to get a filename from the user if( dlg.AskForSaveFileName(this) ) { fontGen->SaveConfiguration(dlg.GetFileName().c_str()); } }
void CChooseFont::OnBrowseFont() { CFileDialog dlg; dlg.AddFilter("Windows font files", "*.fon;*.fnt;*.ttf;*.ttc;*.fot;*.otf;", true); if( dlg.AskForOpenFileName(this) ) { TCHAR buf[1024]; ConvertAnsiToTChar(dlg.GetFileName(), buf, 1024); SetDlgItemText(hWnd, IDC_FONTFILE, buf); EnumFonts(); } }
void CCharWin::OnSaveAs() { if( isGenerating ) return; CFileDialog dlg; dlg.AddFilter("All files (*.*)", "*.*"); dlg.AddFilter("Bitmap font (*.fnt)", "*.fnt", true); // Open a SaveAs dialog to get a filename from the user if( dlg.AskForSaveFileName(this) ) { saveFontName = dlg.GetFileName(); // First start the generation fontGen->GeneratePages(); // Let the time know what to do when the generation is finished whenGenerateIsFinished = 2; isGenerating = true; SetCursor(LoadCursor(0, IDC_WAIT)); } }