ProjectSettings_struct*ProjLoad_loadProjectSettingsFromNSDictionary(void*dict) { if(dict==NULL) { return NULL; } ProjectSettings_struct* projSettingsStruct = ProjectSettings_createInstance(); ProjectSettings&projSettings = *((ProjectSettings*)ProjectSettings_getData(projSettingsStruct)); void* sdk = NSDictionary_objectForKey(dict, "SDK"); if(sdk!=NULL) { projSettings.setSDK(NSString_UTF8String(sdk)); } void* assemblerFlags = NSDictionary_objectForKey(dict, "AssemblerFlags"); if(assemblerFlags!=NULL) { for(unsigned int i=0; i<NSArray_count(assemblerFlags); i++) { void*flag = NSArray_objectAtIndex(assemblerFlags, i); if(flag!=NULL) { projSettings.addAssemblerFlag(NSString_UTF8String(flag)); } } } void* compilerFlags = NSDictionary_objectForKey(dict, "CompilerFlags"); if(compilerFlags!=NULL) { for(unsigned int i=0; i<NSArray_count(compilerFlags); i++) { void*flag = NSArray_objectAtIndex(compilerFlags, i); if(flag!=NULL) { projSettings.addCompilerFlag(NSString_UTF8String(flag)); } } } void* disabledWarnings = NSDictionary_objectForKey(dict, "DisabledWarnings"); if(disabledWarnings!=NULL) { for(unsigned int i=0; i<NSArray_count(disabledWarnings); i++) { void*warning = NSArray_objectAtIndex(disabledWarnings, i); if(warning!=NULL) { projSettings.addDisabledWarning(NSString_UTF8String(warning)); } } } return projSettingsStruct; }
ProjectBuildInfo_struct*ProjLoad_loadProjectBuildInfoFromNSDictionary(void*dict) { if(dict==NULL) { return NULL; } ProjectBuildInfo_struct* projBuildInfoStruct = ProjectBuildInfo_createInstance(); ProjectBuildInfo& projBuildInfo = *((ProjectBuildInfo*)ProjectBuildInfo_getData(projBuildInfoStruct)); void* editedFiles = NSDictionary_objectForKey(dict, "EditedFiles"); if(editedFiles!=NULL) { for(unsigned int i=0; i<NSArray_count(editedFiles); i++) { void* file = NSArray_objectAtIndex(editedFiles, i); if(file!=NULL) { projBuildInfo.addEditedFile(NSString_UTF8String(file)); } } } return projBuildInfoStruct; }
bool GlobalPreferences_load() { String settingsPath = (String)getenv("HOME") + "/Library/Preferences/" + bundleID + ".plist"; void*dict = ProjLoad_loadAllocatedPlist(settingsPath); if(dict!=NULL) { void* sdk = NSDictionary_objectForKey(dict, "DefaultSDK"); if(sdk!=NULL) { defaultSDK = NSString_UTF8String(sdk); //make sure sdk is valid if(!Global_checkSDKFolderValid(defaultSDK)) { defaultSDK = ""; } } void* editorFont = NSDictionary_objectForKey(dict, "EditorFont"); if(editorFont!=NULL) { codeEditorFont = NSString_UTF8String(editorFont); //TODO check and make sure font is valid } void* editorFontSize = NSDictionary_objectForKey(dict, "EditorFontSize"); if(editorFontSize!=NULL) { codeEditorFontSize = NSNumber_intValue(editorFontSize); if(codeEditorFontSize < CODEEDITOR_MINFONTSIZE) { codeEditorFontSize = CODEEDITOR_MINFONTSIZE; } else if(codeEditorFontSize > CODEEDITOR_MAXFONTSIZE) { codeEditorFontSize = CODEEDITOR_MAXFONTSIZE; } } void* installedAppsArray = NSDictionary_objectForKey(dict, "InstalledApps"); if(installedAppsArray!=NULL) { installedApps.clear(); for(unsigned int i=0; i<NSArray_count(installedAppsArray); i++) { void*appName = NSArray_objectAtIndex(installedAppsArray, i); installedApps.add(NSString_UTF8String(appName)); } } bool resave = false; void* latestVersion = NSDictionary_objectForKey(dict, "LatestVersion"); if(latestVersion!=NULL) { double version = NSNumber_doubleValue(latestVersion); if(version!=currentVersion) { resave = true; showSimpleMessageBox("miniCode", versionMessage); } } else { resave = true; showSimpleMessageBox("miniCode", versionMessage); } id_release(dict); if(resave) { return GlobalPreferences_save(); } return true; } else { showSimpleMessageBox("miniCode", versionMessage); return GlobalPreferences_save(); } return false; }
ProjectData_struct*ProjLoad_loadProjectDataFromNSDictionary(void*dict) { if(dict==NULL) { return NULL; } const char*name = NSString_UTF8String(NSDictionary_objectForKey(dict,"name")); const char*author = NSString_UTF8String(NSDictionary_objectForKey(dict,"author")); if(name==NULL || author==NULL || strlen(name)==0 || strlen(author)==0) { showSimpleMessageBox("Error loading ProjectData", "name or author field in project.plist is empty or not available"); return NULL; } ProjectData_struct*projDataStruct = ProjectData_createInstance(name, author); ProjectData&projData = *((ProjectData*)ProjectData_getData(projDataStruct)); const char*bundleID = NSString_UTF8String(NSDictionary_objectForKey(dict,"bundleIdentifier")); if(bundleID!=NULL && strlen(bundleID)!=0) { projData.setBundleIdentifier(bundleID); } const char*executable = NSString_UTF8String(NSDictionary_objectForKey(dict,"executable")); if(executable!=NULL && strlen(executable)!=0) { projData.setExecutableName(executable); } const char*product = NSString_UTF8String(NSDictionary_objectForKey(dict,"product")); if(product!=NULL && strlen(product)!=0) { projData.setProductName(product); } const char*projectType = NSString_UTF8String(NSDictionary_objectForKey(dict,"projectType")); if(projectType!=NULL && strlen(projectType)!=0) { ProjectType projType = ProjectType_convertFromString(projectType); if(projType!=PROJECTTYPE_UNKNOWN) { projData.setProjectType(projType); } } const char*projectDevice = NSString_UTF8String(NSDictionary_objectForKey(dict,"projectDevice")); if(projectDevice!=NULL && strlen(projectDevice)!=0) { ProjectDevice projDevice = ProjectDevice_convertFromString(projectDevice); if(projDevice!=DEVICE_UNKNOWN) { projData.setProjectDevice(projDevice); } } void*frameworks = NSDictionary_objectForKey(dict,"frameworks"); if(frameworks!=NULL) { for(unsigned int i=0; i<NSArray_count(frameworks); i++) { const char*framework = NSString_UTF8String(NSArray_objectAtIndex(frameworks, i)); projData.addFramework(framework); } } void*sourceFiles = NSDictionary_objectForKey(dict,"sourceFiles"); if(sourceFiles!=NULL) { StringTree_struct*sourceTree = StringTree_convertNSArrayToFileTree(sourceFiles); projData.getSourceFiles() = *((StringTree*)StringTree_getData(sourceTree)); StringTree_destroyInstance(sourceTree); } void*resources = NSDictionary_objectForKey(dict, "resources"); if(resources!=NULL) { StringTree_struct*resourceTree = StringTree_convertNSArrayToFileTree(resources); projData.getResourceFiles() = *((StringTree*)StringTree_getData(resourceTree)); StringTree_destroyInstance(resourceTree); } void*external = NSDictionary_objectForKey(dict, "external"); if(external!=NULL) { void*includeArray = NSDictionary_objectForKey(external, "include"); for(unsigned int i=0; i<NSArray_count(includeArray); i++) { const char* includePath = NSString_UTF8String(NSArray_objectAtIndex(includeArray, i)); if(includePath!=NULL && strlen(includePath)!=0) { projData.getIncludeDirs().add(includePath); } } void*libArray = NSDictionary_objectForKey(external, "lib"); for(unsigned int i=0; i<NSArray_count(libArray); i++) { const char* libPath = NSString_UTF8String(NSArray_objectAtIndex(libArray, i)); if(libPath!=NULL && strlen(libPath)!=0) { projData.getLibDirs().add(libPath); } } } return projDataStruct; }