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);

}
Esempio n. 2
0
// 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;
  }
Esempio n. 3
0
// 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
  }
Esempio n. 4
0
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;
  }
Esempio n. 5
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;
}
Esempio n. 6
0
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();
}
Esempio n. 7
0
// 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
  }
Esempio n. 8
0
// 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;
  }
Esempio n. 9
0
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);
}
Esempio n. 10
0
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;
}
Esempio n. 12
0
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
}
Esempio n. 13
0
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;
  }
Esempio n. 14
0
// Get executable path
FXString FXSystem::getExecPath(){
  return FXString(getenv("PATH"));
  }
Esempio n. 15
0
// 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;
  }