void NewProjectWizard::storeValues() { FXString conffile; FXString path; #ifdef WIN32 path = FXString(((MainWindow*)(getOwner()))->settings->getStringValue("baseDir")) + "\\" + name + "\\"; conffile = path + "project.inde"; #else path = FXString(((MainWindow*)(getOwner()))->settings->getStringValue("baseDir")) + "/" + name + "/"; conffile = path + "project.inde"; #endif ProjectSettings* settings = new ProjectSettings(conffile, name); settings->parse(); settings->setStringValue("GENERAL", "type", type); settings->setStringValue("GENERAL", "name", name); settings->setStringValue("GENERAL", "description", description); settings->setStringValue("GENERAL", "target", target); settings->setStringValue("GENERAL", "version", version); settings->setStringValue("GENERAL", "author", author); settings->setStringValue("GENERAL", "mail", mail); settings->setIntValue ("GENERAL", "license", license); settings->setStringValue("GENERAL", "licenseHeader", licenseHeader); settings->setStringValue("LIBRARY", "includePaths", includePaths); settings->setStringValue("LIBRARY", "libraryPaths", libraryPaths); settings->setStringValue("LIBRARY", "libraries", libraries); settings->setStringValue("DIRECTORY", "sourceDir", srcDir); settings->setStringValue("DIRECTORY", "includeDir", includeDir); settings->setStringValue("DIRECTORY", "buildDir", buildDir); settings->setStringValue("DIRECTORY", "docDir", docDir); settings->setStringValue("DIRECTORY", "ressourceDir", ressourceDir); settings->setStringValue("FILES", "root", ""); // default value settings->setStringValue("COMPILER", "warnings", warnings); settings->setStringValue("COMPILER", "defines", defines); settings->setStringValue("COMPILER", "switches", switches); settings->setIntValue ("COMPILER", "debug", debug); settings->setIntValue ("COMPILER", "pic", pic); settings->write(); ((MainWindow*)(getOwner()))->projects.append(settings); ((MainWindow*)(getOwner()))->projectBrowser->addProject(name); // create directories FXFile::createDirectory(path + srcDir, 0775); FXFile::createDirectory(path + includeDir, 0775); FXFile::createDirectory(path + buildDir, 0775); FXFile::createDirectory(path + docDir, 0775); FXFile::createDirectory(path + ressourceDir, 0775); ((MainWindow*)(getOwner()))->projectBrowser->addDir(name, srcDir, ProjectBrowser::SOURCE); ((MainWindow*)(getOwner()))->projectBrowser->addDir(name, includeDir, ProjectBrowser::INCLUDE); ((MainWindow*)(getOwner()))->projectBrowser->addDir(name, docDir, ProjectBrowser::DOC); ((MainWindow*)(getOwner()))->projectBrowser->addDir(name, ressourceDir, ProjectBrowser::RESSOURCE); }
// Return value of environment variable name FXString FXSystem::getEnvironment(const FXString& name){ if(!name.empty()){ #ifndef WIN32 return FXString(getenv(name.text())); #else FXchar value[1024]; DWORD len=GetEnvironmentVariableA(name.text(),value,1024); return FXString(value,len); #endif } return FXString::null; }
// Return temporary directory. FXString FXSystem::getTempDirectory(){ #ifndef WIN32 const FXchar* dir; if((dir=getenv("TMPDIR"))!=NULL){ return FXString(dir); } return FXString("/tmp"); #else TCHAR buffer[MAXPATHLEN]; DWORD len=GetTempPath(MAXPATHLEN,buffer); if(1<len && ISPATHSEP(buffer[len-1]) && !ISPATHSEP(buffer[len-2])) len--; return FXString(buffer,len); #endif }
FXint ASXParser::begin(const FXchar * element,const FXchar ** attributes){ switch(elem) { case Elem_None: { if (comparecase(element,"asx")==0) { elem=Elem_ASX; return 1; } } break; case Elem_ASX: { if (comparecase(element,"entry")==0) { elem=Elem_ASX_Entry; return 1; } } break; case Elem_ASX_Entry: { if (comparecase(element,"ref")==0) { elem=Elem_ASX_Entry_Ref; for (FXint i=0;attributes[i];i+=2){ if (comparecase(attributes[i],"href")==0) { files.append(FXString(attributes[i+1])); } } return 1; } } break; default: return 0; // skip } return 0; }
// Read symbolic link FXString readlink(const FXString& file) { FXchar lnk[MAXPATHLEN+1]; FXint len=readlink(file.text(),lnk,MAXPATHLEN); if(0<=len) return FXString(lnk,len); else return FXString::null; }
void DirectoryView::change_directory(FXTreeItem* item) { iconlist->clearItems(); for(FXTreeItem* it = item->getFirst(); it != NULL; it = it->getNext()) { DreamfallFileEntry* entry = static_cast<DreamfallFileEntry*>(it->getData()); FXIcon* big; FXIcon* small; int size; const char* typestr = "DIRECTORY"; const char* pak = ""; switch(entry->get_type()) { case DreamfallFileEntry::DIRECTORY_FILE_ENTRY: big = Icon::large_folder; small = Icon::folder_closed; size = it->getNumChildren(); typestr = "Directory"; break; case DreamfallFileEntry::PAK_FILE_ENTRY: big = (entry->get_pak().type == FILETYPE_SHARK3D)?Icon::large_file:Icon::large_shark; small = Icon::unknown_document; size = entry->get_pak().filesize; typestr = filetype2string(entry->get_pak().type); pak = entry->get_pak().pakfile.c_str(); break; break; default: big = Icon::large_file; small = Icon::unknown_document; size = 0; //entry->filesize; break; } iconlist->appendItem(FXString().format("%s\t%s\t%dKB\t%s", entry->get_label().c_str(), typestr, size/1024, pak), big, small, it); } iconlist->setSortFunc(iconlist_sorter); iconlist->sortItems(); }
// Convert file time to string as per strftime format FXString FXSystem::time(const FXchar *format,FXTime filetime){ #ifndef WIN32 #if defined(FOX_THREAD_SAFE) && !defined(__FreeBSD__) && !defined(__OpenBSD__) time_t tmp=(time_t)FXMAX(filetime,0); struct tm tmresult; FXchar buffer[512]; FXint len=strftime(buffer,sizeof(buffer),format,localtime_r(&tmp,&tmresult)); return FXString(buffer,len); #else time_t tmp=(time_t)FXMAX(filetime,0); FXchar buffer[512]; FXint len=strftime(buffer,sizeof(buffer),format,localtime(&tmp)); return FXString(buffer,len); #endif #else time_t tmp=(time_t)FXMAX(filetime,0); FXchar buffer[512]; FXint len=strftime(buffer,sizeof(buffer),format,localtime(&tmp)); return FXString(buffer,len); #endif }
// Read symbolic link FXString FXFile::symlink(const FXString& file){ if(!file.empty()){ #ifndef WIN32 FXchar lnk[MAXPATHLEN+1]; FXint len=::readlink(file.text(),lnk,MAXPATHLEN); if(0<=len){ return FXString(lnk,len); } #endif } return FXString::null; }
static FXString denormalize (int norm, int pow_exp, int& dot_pos) { int nsign = (norm < 0 ? -1 : 1); int p = ipow10 (pow_exp); if (norm < 0) norm = -norm; int int_part = norm / p, frac_part = norm % p; char buf[64]; sprintf (buf, "%s%d", nsign < 0 ? "-" : "", int_part); dot_pos = strlen (buf); if (pow_exp == 0) return FXString(buf); return FXStringFormat("%s.%.*d", buf, pow_exp, frac_part); }
int FOX16_HtmlCtx::getTextHeight(HTML_FONT *fnt, const char *s) { if (s==NULL) { DBG_ERROR(GWEN_LOGDOMAIN, "NULLPOINTER, returning size 0"); return 0; } else { FXFont *xfnt; FXString str; str=FXString(s); xfnt=_getFoxFont(fnt); if (xfnt==NULL) return _font->getTextHeight(str); else return xfnt->getTextHeight(str); } }
GUISUMOAbstractView* GUIApplicationWindow::openNewView(GUISUMOViewParent::ViewType vt) { if (!myRunThread->simulationAvailable()) { myStatusbar->getStatusLine()->setText("No simulation loaded!"); return 0; } std::string caption = "View #" + toString(myViewNumber++); FXuint opts = MDI_TRACKING; GUISUMOViewParent* w = new GUISUMOViewParent(myMDIClient, myMDIMenu, FXString(caption.c_str()), this, GUIIconSubSys::getIcon(ICON_APP), opts, 10, 10, 300, 200); GUISUMOAbstractView* v = w->init(getBuildGLCanvas(), myRunThread->getNet(), vt); w->create(); if (myMDIClient->numChildren() == 1) { w->maximize(); } else { myMDIClient->vertical(true); } myMDIClient->setActiveChild(w); return v; }
FXint fxexecute(FXString link) { #ifdef WIN32 FXString quoted = FXPath::enquote(link); FXint ret = (int)ShellExecute(NULL,"open",quoted.text(),NULL,NULL,SW_SHOW) > 32; return ret; #else FXString ext = FXPath::extension(link); FXString list; if (comparecase(link.section(':',0), "http")==0 || comparecase(link.section(':',0), "ftp")==0 || comparecase(ext, "htm")==0 || comparecase(ext, "html")==0 || comparecase(ext, "php")==0 || comparecase(ext, "asp")==0) list = "mozilla-firefox\tmozilla\tnetscape\tkonqueror\tdillo\tlynx"; else if (comparecase(ext, "pdf")==0) list = "acroread\tkghostview\tgpdf\txpdf"; if (list.length()) { FXString software; FXint index=0; FXString path = FXSystem::getExecPath(); software = list.section("\t",index); while (!software.empty()) { software = FXPath::search(path, software); if (software.length()) return system(FXString().format("%s \"%s\" >/dev/null 2>&1 & ", software.text(),link.text()).text())>0?0:1; index++; software = list.section("\t",index); } } else if (FXStat::isExecutable(link)) return system((link + " >/dev/null 2>&1 & ").text()) > 0 ? 0:1; return 0; #endif }
FXbool GMStreamSource::listTracks(GMTrackList * tracklist,const FXIntList &/* albumlist*/,const FXIntList & /*genre*/){ GMQuery q; FXString query; // const FXchar * c_artist; //const FXchar * c_albumname; const FXchar * c_title; const FXchar * c_genre; // FXint time; // FXint no; FXint id; FXint bitrate; FXint queue=1; try { query = "SELECT streams.id, streams.description, streams.bitrate, tags.name " "FROM streams, tags " "WHERE tags.id == streams.genre;"; q = db->compile(query); while(q.row()){ q.get(0,id); c_title = q.get(1); q.get(2,bitrate); c_genre = q.get(3); GMStreamTrackItem * item = new GMStreamTrackItem(id,c_title,c_genre,queue++,bitrate); tracklist->appendItem(item); } GMStreamTrackItem::max_trackno = tracklist->getFont()->getTextWidth(FXString('8',GMDBTrackItem::max_digits(queue))); } catch(GMDatabaseException & e){ tracklist->clearItems(); return false; } return true; }
// Get executable path FXString FXSystem::getExecPath(){ return FXString(getenv("PATH")); }
// Get current drive prefix "a:", if any // This is the same method as used in VC++ CRT. FXString FXSystem::getCurrentDrive(){ #ifdef WIN32 FXchar buffer[MAXPATHLEN]; if(GetCurrentDirectoryA(MAXPATHLEN,buffer) && Ascii::isLetter((FXuchar)buffer[0]) && buffer[1]==':') return FXString(buffer,2); #endif return FXString::null; }