diff --git a/checkin_notes b/checkin_notes index 51256e66e9..b29f5aa94b 100755 --- a/checkin_notes +++ b/checkin_notes @@ -674,3 +674,20 @@ David 20 Jan 2006 client/ http_curl.C + +Charlie 20 Jan 2006 + -Mac: Changes for Grid Republic: remove BOINCManager from Dock; + different plist file for GR; new application icon for GR; + screensaver changes for GR. + Remove obsolete files from XCode project (net_xfer.C,h, http.C,h, + proxy.C,h) + + mac_build/ + Info.plist + GR_Info.plist (new) + client/ + mac/ + GR-icon_MAC.icns (new) + clientgui/ + mac/ + mac_saver_module.cpp diff --git a/client/mac/GR-icon_MAC.icns b/client/mac/GR-icon_MAC.icns new file mode 100644 index 0000000000..044ec4ce66 Binary files /dev/null and b/client/mac/GR-icon_MAC.icns differ diff --git a/clientgui/mac/mac_saver_module.cpp b/clientgui/mac/mac_saver_module.cpp index 794938e3b8..150ca129c6 100755 --- a/clientgui/mac/mac_saver_module.cpp +++ b/clientgui/mac/mac_saver_module.cpp @@ -46,9 +46,10 @@ OSStatus initBOINCApp(void); int drawGraphics(GrafPtr aPort); void drawPreview(GrafPtr aPort); void closeBOINCSaver(void); -void setBannerText(ConstStringPtr msg, GrafPtr aPort); -void updateBannerText(ConstStringPtr msg, GrafPtr aPort); +void setBannerText(const char *msg, GrafPtr aPort); +void updateBannerText(char *msg, GrafPtr aPort); void drawBanner(GrafPtr aPort); +int GetBrandID(void); void FlashIcon(void); OSErr FindBOINCApplication(FSSpecPtr applicationFSSpecPtr); pid_t FindProcessPID(char* name, pid_t thePID); @@ -60,6 +61,18 @@ OSErr KillScreenSaver(); } // extern "C" #endif +// The science application can't display its graphics if, due to Fast User Switching, +// Switching, the active user is not the one who launched BOINC. If we always display +// the progress information as scrolled text whenever a science application is running, +// then the progress text would appear in this case. The text would be covered up by +// the graphics if they are displayed. +// But displaying the scrolled progress info takes up too much CPU time. We need to +// find a way to determine when Fast User Switching prevents graphics display and +// display scrolled progress text only in that case. +// Of course, we also display scrolled progress text when the science application does +// not support graphics). +#define ALWAYS_DISPLAY_PROGRESS_TEXT 0 + // Flags for testing & debugging #define SIMULATE_NO_GRAPHICS 0 #define CREATE_LOG 1 @@ -98,7 +111,7 @@ extern int gBlankingTime; // Delay in minutes before blanking the screen static Boolean wasAlreadyRunning = false; static pid_t CoreClientPID = nil; -static unsigned char msgBuf[2048], bannerText[2048]; +static char msgBuf[2048], bannerText[2048]; static int bannerWidth; static SaverState saverState = SaverState_Idle; static StringPtr CurrentBannerMessage = 0; @@ -109,21 +122,29 @@ MPTaskID gRPC_thread_id; // IDs of the thread we create int gClientSaverStatus = 0; // status returned by get_screensaver_mode RPC Boolean gQuitRPCThread = false; // Flag to tell RPC thread to exit gracefully int gQuitCounter = 0; +long gBrandId = 0; +char * gBrandText = "BOINC"; +RGBColor gBrandColor = {0xFFFF, 0xFFFF, 0xFFFF}; +RGBColor gTextColor = {0xFFFF, 0xFFFF, 0xFFFF}; +RGBColor gWhiteTextColor = {0xFFFF, 0xFFFF, 0xFFFF}; +RGBColor gOrangeTextColor = {0xFFFF, 0x6262, 0x0000}; +RGBColor gGrayTextColor = {0x9999, 0x9999, 0x9999}; + // Display first status update after 5 seconds static int statusUpdateCounter = ((STATUSUPDATEINTERVAL-5) * BANNERFREQUENCY); Boolean gStatusMessageUpdated = false; -const ConstStringPtr CantLaunchCCMsg = "\pUnable to launch BOINC application."; -const ConstStringPtr LaunchingCCMsg = "\pLaunching BOINC application."; -const ConstStringPtr ConnectingCCMsg = "\pConnecting to BOINC application."; -const ConstStringPtr BOINCSuspendedMsg = "\pBOINC is currently suspended."; -const ConstStringPtr BOINCNoAppsExecutingMsg = "\pBOINC is currently idle."; -const ConstStringPtr BOINCNoProjectsDetectedMsg = "\pBOINC is not attached to any projects. Please attach to projects using the BOINC Manager."; -const ConstStringPtr BOINCNoGraphicAppsExecutingMsg = "\pBOINC is currently not executing any applications with graphics"; -const ConstStringPtr BOINCUnrecoverableErrorMsg = "\pSorry, an unrecoverable error occurred"; -const ConstStringPtr BOINCTestmodeMg = "\pThis BOINC screensaver does not support Test mode"; -//const ConstStringPtr BOINCExitedSaverMode = "\pBOINC is no longer in screensaver mode."; +const char * CantLaunchCCMsg = "Unable to launch BOINC application."; +const char * LaunchingCCMsg = "Launching BOINC application."; +const char * ConnectingCCMsg = "Connecting to BOINC application."; +const char * BOINCSuspendedMsg = "BOINC is currently suspended."; +const char * BOINCNoAppsExecutingMsg = "BOINC is currently idle."; +const char * BOINCNoProjectsDetectedMsg = "BOINC is not attached to any projects. Please attach to projects using the BOINC Manager."; +const char * BOINCNoGraphicAppsExecutingMsg = "BOINC "; +const char * BOINCUnrecoverableErrorMsg = "Sorry, an unrecoverable error occurred"; +const char * BOINCTestmodeMg = "This BOINC screensaver does not support Test mode"; +//const char * BOINCExitedSaverMode = "BOINC is no longer in screensaver mode."; // Returns desired Animation Frequency (per second) or 0 for no change @@ -155,6 +176,20 @@ int initBOINCSaver(Boolean ispreview) { saverState = SaverState_ControlPanelTestMode; } + gBrandId = GetBrandID(); + switch(gBrandId) { + case 1: + gBrandText = "GridRepublic"; + gBrandColor = gOrangeTextColor; // Orange + gTextColor = gGrayTextColor; // Gray + break; + default: + gBrandText = "BOINC"; + gBrandColor = gWhiteTextColor; // White + gTextColor = gWhiteTextColor; // White + break; + } + // If there are multiple displays, initBOINCSaver may get called // multiple times (once for each display), so we need to guard // against launching multiple instances of the core client @@ -289,12 +324,8 @@ int drawGraphics(GrafPtr aPort) { switch (gClientSaverStatus) { case 0: break; // No status response yet from get_screensaver_mode RPC - case SS_STATUS_ENABLED: - default: - setBannerText(0, aPort); // No text message - // Let the science app draw over our window - break; case SS_STATUS_BLANKED: + default: setBannerText(0, aPort); // No text message break; case SS_STATUS_BOINCSUSPENDED: @@ -306,9 +337,15 @@ int drawGraphics(GrafPtr aPort) { case SS_STATUS_NOPROJECTSDETECTED: setBannerText(BOINCNoProjectsDetectedMsg, aPort); break; + case SS_STATUS_ENABLED: +#if ! ALWAYS_DISPLAY_PROGRESS_TEXT + setBannerText(0, aPort); // No text message + // Let the science app draw over our window + break; +#endif case SS_STATUS_NOGRAPHICSAPPSEXECUTING: if (msgBuf[0] == 0) { - PLstrcpy(msgBuf, BOINCNoGraphicAppsExecutingMsg); + strcpy(msgBuf, BOINCNoGraphicAppsExecutingMsg); setBannerText(msgBuf, aPort); } if (gStatusMessageUpdated) { @@ -359,7 +396,7 @@ int drawGraphics(GrafPtr aPort) { void drawPreview(GrafPtr aPort) { SetPort(aPort); - setBannerText("\p BOINC", aPort); + setBannerText(" BOINC", aPort); drawBanner(aPort); } @@ -458,12 +495,17 @@ OSStatus RPCThread(void* param) { #if SIMULATE_NO_GRAPHICS /* FOR TESTING */ gClientSaverStatus = SS_STATUS_NOGRAPHICSAPPSEXECUTING; #endif - if (gClientSaverStatus == SS_STATUS_NOGRAPHICSAPPSEXECUTING) { + if ((gClientSaverStatus == SS_STATUS_NOGRAPHICSAPPSEXECUTING) +#if ALWAYS_DISPLAY_PROGRESS_TEXT + || (gClientSaverStatus == SS_STATUS_ENABLED) +#endif + ) + { if (statusUpdateCounter >= (STATUSUPDATEINTERVAL * BANNERFREQUENCY) ) { statusUpdateCounter = 0; if (! gStatusMessageUpdated) { - PLstrcpy(msgBuf, BOINCNoGraphicAppsExecutingMsg); + strcpy(msgBuf, BOINCNoGraphicAppsExecutingMsg); MPYield(); val = rpc->get_state(state); @@ -487,11 +529,7 @@ OSStatus RPCThread(void* param) { results.results.at(iIndex)->fraction_done * 100 ); - // Append C string to Pascal string - if ((len + msgBuf[0] + 1) < sizeof(msgBuf)) { - BlockMove(statusBuf, msgBuf+msgBuf[0]+1, len); - msgBuf[0] += len; - } + strlcat(msgBuf, statusBuf, sizeof(msgBuf)); } // end if (pProject != NULL) } // end for() loop gStatusMessageUpdated = true; @@ -514,19 +552,20 @@ OSStatus RPCThread(void* param) { } -void setBannerText(ConstStringPtr msg, GrafPtr aPort) { +void setBannerText(const char * msg, GrafPtr aPort) { if (msg == 0) bannerText[0] = 0; - if ((ConstStringPtr)CurrentBannerMessage != msg) - updateBannerText(msg, aPort); + if ((char *)CurrentBannerMessage != msg) + updateBannerText((char *)msg, aPort); } -void updateBannerText(ConstStringPtr msg, GrafPtr aPort) { +void updateBannerText(char *msg, GrafPtr aPort) { CGrafPtr savePort; RGBColor saveBackColor; Rect wRect; + char *p, *s; CurrentBannerMessage = (StringPtr)msg; @@ -544,10 +583,22 @@ void updateBannerText(ConstStringPtr msg, GrafPtr aPort) { RGBBackColor(&saveBackColor); if (msg) { - BlockMove(msg, bannerText, msg[0]+1); TextSize(24); TextFace(bold); - bannerWidth = StringWidth(bannerText) + BANNER_GAP; + s = msg; + bannerText[0] = '\0'; + do { + p = strstr(s, "BOINC"); + if (p == NULL) { + strcat(bannerText, s); + } else { + strncat(bannerText, s, p - s); + strcat(bannerText, gBrandText); + s = p + 5; // s = p + strlen("BOINC"); + } + } while (p); + + bannerWidth = TextWidth(bannerText, 0, strlen(bannerText)) + BANNER_GAP; // Round up bannerWidth to an integral multiple of BANNERDELTA bannerWidth = ((bannerWidth + BANNERDELTA - 1) / BANNERDELTA) * BANNERDELTA; } @@ -564,6 +615,7 @@ void drawBanner(GrafPtr aPort) { Rect wRect; FontInfo fInfo; static short bannerPos; + char *p, *s; if (aPort == NULL) return; @@ -573,7 +625,7 @@ void drawBanner(GrafPtr aPort) { GetForeColor(&saveForeColor); GetBackColor(&saveBackColor); - ForeColor(whiteColor); + RGBForeColor(&gTextColor); BackColor(blackColor); GetPortBounds(aPort, &wRect); if ( (bannerPos + bannerWidth) <= (wRect.left + BANNERDELTA) ) @@ -591,7 +643,20 @@ void drawBanner(GrafPtr aPort) { do { MoveTo(x, y); - DrawString(bannerText); + s = bannerText; + do { + p = strstr(s, gBrandText); + if (p == NULL) { + DrawText(s, 0, strlen(s)); + } else { + DrawText(s, 0, p - s); + RGBForeColor(&gBrandColor); + DrawText(gBrandText, 0, strlen(gBrandText)); + s = p + strlen(gBrandText); + RGBForeColor(&gTextColor); + } + } while (p); + x+= bannerWidth; } while (x < wRect.right); @@ -602,6 +667,31 @@ void drawBanner(GrafPtr aPort) { } +int GetBrandID() +{ + char buf[1024]; + long iBrandId; + OSErr err; + + iBrandId = 0; // Default value + + err = GetpathToBOINCManagerApp(buf, sizeof(buf)); + if (err) // If we couldn't find BOINCManager.app, try default path + strcpy(buf, "/Applications/BOINCManager.app"); // + + if (err == noErr) { + strcat(buf, "/Contents/Resources/Branding"); + FILE *f = fopen(buf, "r"); + if (f) { + fscanf(f, "BrandId=%ld\n", &iBrandId); + fclose(f); + } + } + + return iBrandId; +} + + static char * PersistentFGets(char *buf, size_t buflen, FILE *f) { char *p = buf; size_t len = buflen; diff --git a/mac_build/English.lproj/InfoPlist.strings b/mac_build/English.lproj/InfoPlist.strings index 4826267bcf..8527d6bfbc 100755 --- a/mac_build/English.lproj/InfoPlist.strings +++ b/mac_build/English.lproj/InfoPlist.strings @@ -1,5 +1,5 @@ /* Localized versions of Info.plist keys */ CFBundleName = "BOINC"; -CFBundleShortVersionString = "BOINC version 5.3.9"; -CFBundleGetInfoString = "BOINC version 5.3.9, Copyright 2005 University of California."; +CFBundleShortVersionString = "BOINC version 5.3.13"; +CFBundleGetInfoString = "BOINC version 5.3.13, Copyright 2005 University of California."; diff --git a/mac_build/GR_Info.plist b/mac_build/GR_Info.plist new file mode 100644 index 0000000000..4cb7e93838 --- /dev/null +++ b/mac_build/GR_Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + GridRepublic + CFBundleIconFile + GridRepublic.icns + CFBundleIdentifier + edu.berkeley.boinc + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + BNC! + CFBundleVersion + 5.3.9 + NSUIElement + 1 + + diff --git a/mac_build/Info.plist b/mac_build/Info.plist index 553a058408..1837e7bf9f 100644 --- a/mac_build/Info.plist +++ b/mac_build/Info.plist @@ -17,6 +17,8 @@ CFBundleSignature BNC! CFBundleVersion - 5.3.9 + 5.3.13 + NSUIElement + 1 diff --git a/mac_build/Installer-info.plist b/mac_build/Installer-info.plist index c804622af3..cc2e758f32 100644 --- a/mac_build/Installer-info.plist +++ b/mac_build/Installer-info.plist @@ -15,6 +15,6 @@ CFBundleSignature ???? CFBundleVersion - 5.3.9 + 5.3.13 diff --git a/mac_build/ScreenSaver-Info.plist b/mac_build/ScreenSaver-Info.plist index f71b45615c..64c42db100 100644 --- a/mac_build/ScreenSaver-Info.plist +++ b/mac_build/ScreenSaver-Info.plist @@ -17,7 +17,7 @@ CFBundleSignature ???? CFBundleVersion - 5.3.9 + 5.3.13 NSPrincipalClass BOINC_Saver_ModuleView diff --git a/mac_build/SystemMenu-Info.plist b/mac_build/SystemMenu-Info.plist index 2632eac424..3b9aefd1e4 100644 --- a/mac_build/SystemMenu-Info.plist +++ b/mac_build/SystemMenu-Info.plist @@ -15,6 +15,6 @@ CFBundleSignature ???? CFBundleVersion - 5.3.9 + 5.3.13 diff --git a/mac_build/boinc.xcodeproj/project.pbxproj b/mac_build/boinc.xcodeproj/project.pbxproj index a0d138d0e3..a4d4fe6084 100755 --- a/mac_build/boinc.xcodeproj/project.pbxproj +++ b/mac_build/boinc.xcodeproj/project.pbxproj @@ -201,7 +201,6 @@ DDD74DA607CF49030065AC9D /* main.C in Sources */ = {isa = PBXBuildFile; fileRef = DD344BCE07C5B0B80043025C /* main.C */; }; DDD74DA707CF49040065AC9D /* net_stats.C in Sources */ = {isa = PBXBuildFile; fileRef = F54B8FDA02AC0A0C01FB7237 /* net_stats.C */; }; DDD74DA907CF49090065AC9D /* pers_file_xfer.C in Sources */ = {isa = PBXBuildFile; fileRef = F51CCF1F02EFD37D018DB99A /* pers_file_xfer.C */; }; - DDD74DAA07CF490B0065AC9D /* proxy.C in Sources */ = {isa = PBXBuildFile; fileRef = DD344BFA07C5B1A80043025C /* proxy.C */; }; DDD74DAB07CF490C0065AC9D /* scheduler_op.C in Sources */ = {isa = PBXBuildFile; fileRef = F519F98D02C44A7501BDB3CA /* scheduler_op.C */; }; DDD74DAC07CF490D0065AC9D /* ss_logic.C in Sources */ = {isa = PBXBuildFile; fileRef = AA8B6B23046C366200A80164 /* ss_logic.C */; }; DDD74DAD07CF490E0065AC9D /* time_stats.C in Sources */ = {isa = PBXBuildFile; fileRef = F54B8FE402AC0A0C01FB7237 /* time_stats.C */; }; @@ -226,6 +225,8 @@ DDD7EF4707F0526E00BA3B90 /* SystemMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = DD40CDFE07F038990096C645 /* SystemMenu.m */; }; DDD7F08007F0686100BA3B90 /* SystemMenu.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = DD40CDF907F0386A0096C645 /* SystemMenu.bundle */; }; DDDC35260909212D006076EC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F51BDF4903086C46012012A7 /* InfoPlist.strings */; }; + DDEB3AD50980CD180087E200 /* GR_Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DDEB3AD40980CD180087E200 /* GR_Info.plist */; }; + DDEB3AE60980CF890087E200 /* GR-icon_MAC.icns in Resources */ = {isa = PBXBuildFile; fileRef = DDEB3AE50980CF890087E200 /* GR-icon_MAC.icns */; }; DDEF38900802B73500E87552 /* ViewStatistics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDEF388E0802B73500E87552 /* ViewStatistics.cpp */; }; DDF166AB08DF898A00C8C4A5 /* mac_backtrace.C in Sources */ = {isa = PBXBuildFile; fileRef = DDF166A908DF898A00C8C4A5 /* mac_backtrace.C */; }; DDF166C308DF8AEE00C8C4A5 /* mac_backtrace.C in Sources */ = {isa = PBXBuildFile; fileRef = DDF166A908DF898A00C8C4A5 /* mac_backtrace.C */; }; @@ -866,6 +867,8 @@ DDB8D5A5081FC8C700A5A1E8 /* postinstall */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.csh; name = postinstall; path = ../mac_installer/postinstall; sourceTree = SOURCE_ROOT; }; DDD74D8707CF482E0065AC9D /* boinc */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = boinc; sourceTree = BUILT_PRODUCTS_DIR; }; DDE2552B07C62F3E008E7D6E /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; + DDEB3AD40980CD180087E200 /* GR_Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = GR_Info.plist; sourceTree = ""; }; + DDEB3AE50980CF890087E200 /* GR-icon_MAC.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = "GR-icon_MAC.icns"; path = "../client/mac/GR-icon_MAC.icns"; sourceTree = SOURCE_ROOT; }; DDEF388E0802B73500E87552 /* ViewStatistics.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ViewStatistics.cpp; path = ../clientgui/ViewStatistics.cpp; sourceTree = SOURCE_ROOT; }; DDEF388F0802B73500E87552 /* ViewStatistics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ViewStatistics.h; path = ../clientgui/ViewStatistics.h; sourceTree = SOURCE_ROOT; }; DDF166A908DF898A00C8C4A5 /* mac_backtrace.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = mac_backtrace.C; path = ../lib/mac_backtrace.C; sourceTree = SOURCE_ROOT; }; @@ -898,14 +901,10 @@ F54B8FCD02AC0A0C01FB7237 /* file_xfer.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = file_xfer.C; path = ../client/file_xfer.C; sourceTree = SOURCE_ROOT; }; F54B8FCE02AC0A0C01FB7237 /* file_xfer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = file_xfer.h; path = ../client/file_xfer.h; sourceTree = SOURCE_ROOT; }; F54B8FD302AC0A0C01FB7237 /* hostinfo_unix.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = hostinfo_unix.C; path = ../client/hostinfo_unix.C; sourceTree = SOURCE_ROOT; }; - F54B8FD402AC0A0C01FB7237 /* http.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = http.C; path = ../client/http.C; sourceTree = SOURCE_ROOT; }; - F54B8FD502AC0A0C01FB7237 /* http.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = http.h; path = ../client/http.h; sourceTree = SOURCE_ROOT; }; F54B8FD602AC0A0C01FB7237 /* log_flags.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = log_flags.C; path = ../client/log_flags.C; sourceTree = SOURCE_ROOT; }; F54B8FD702AC0A0C01FB7237 /* log_flags.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = log_flags.h; path = ../client/log_flags.h; sourceTree = SOURCE_ROOT; }; F54B8FDA02AC0A0C01FB7237 /* net_stats.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = net_stats.C; path = ../client/net_stats.C; sourceTree = SOURCE_ROOT; }; F54B8FDB02AC0A0C01FB7237 /* net_stats.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = net_stats.h; path = ../client/net_stats.h; sourceTree = SOURCE_ROOT; }; - F54B8FDC02AC0A0C01FB7237 /* net_xfer.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = net_xfer.C; path = ../client/net_xfer.C; sourceTree = SOURCE_ROOT; }; - F54B8FDD02AC0A0C01FB7237 /* net_xfer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = net_xfer.h; path = ../client/net_xfer.h; sourceTree = SOURCE_ROOT; }; F54B8FE402AC0A0C01FB7237 /* time_stats.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = time_stats.C; path = ../client/time_stats.C; sourceTree = SOURCE_ROOT; }; F54B8FE502AC0A0C01FB7237 /* time_stats.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = time_stats.h; path = ../client/time_stats.h; sourceTree = SOURCE_ROOT; }; F54B901502AC0A2201FB7237 /* parse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = parse.h; path = ../lib/parse.h; sourceTree = SOURCE_ROOT; }; @@ -1055,6 +1054,8 @@ DD0C5A8A0816711400CEC5D7 /* boinc.tiff */, DD48091E081A66F100A174AA /* BOINCSaver.nib */, DD64E7D507D89DB800B176C8 /* Info.plist */, + DDEB3AD40980CD180087E200 /* GR_Info.plist */, + DDEB3AE50980CF890087E200 /* GR-icon_MAC.icns */, DDF3028907CCCE2C00701169 /* BOINCMgr.icns */, F51BDF4903086C46012012A7 /* InfoPlist.strings */, ); @@ -1318,8 +1319,6 @@ DD344BC007C5AF280043025C /* hostinfo_network.C */, DD344BC107C5AF280043025C /* hostinfo_network.h */, F54B8FD302AC0A0C01FB7237 /* hostinfo_unix.C */, - F54B8FD402AC0A0C01FB7237 /* http.C */, - F54B8FD502AC0A0C01FB7237 /* http.h */, DD33C70208B5BEDE00768630 /* http_curl.C */, DD33C70308B5BEDE00768630 /* http_curl.h */, F54B8FD602AC0A0C01FB7237 /* log_flags.C */, @@ -1330,8 +1329,6 @@ F54B8FDB02AC0A0C01FB7237 /* net_stats.h */, DD33C6FB08B5BC2600768630 /* net_xfer_curl.h */, DD33C6FC08B5BC2600768630 /* net_xfer_curl.C */, - F54B8FDC02AC0A0C01FB7237 /* net_xfer.C */, - F54B8FDD02AC0A0C01FB7237 /* net_xfer.h */, F51CCF1F02EFD37D018DB99A /* pers_file_xfer.C */, F51CCF1E02EFD37D018DB99A /* pers_file_xfer.h */, DD344BFA07C5B1A80043025C /* proxy.C */, @@ -2056,6 +2053,8 @@ DD095EF407D87B1600362260 /* boinc in Resources */, DD095F5A07D883E500362260 /* BOINCMgr.icns in Resources */, DD095F5B07D883E600362260 /* InfoPlist.strings in Resources */, + DDEB3AD50980CD180087E200 /* GR_Info.plist in Resources */, + DDEB3AE60980CF890087E200 /* GR-icon_MAC.icns in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2138,14 +2137,14 @@ files = ( ); inputPaths = ( - $BUILD_DIR/../../clientgui/mac/BOINCSaver.nib.sit, + "${BUILD_DIR}/../../clientgui/mac/BOINCSaver.nib.sit", ); outputPaths = ( - $BUILD_DIR/../../clientgui/mac/BOINCSaver.nib, + "${BUILD_DIR}/../../clientgui/mac/BOINCSaver.nib", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "rm -dfR \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib\"\nopen \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib.sit\"\nsleep 6\ntouch \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib\""; + shellScript = "if [ ! \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib\" -nt \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib.sit\" ]; then\nrm -dfR \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib\"\nopen \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib.sit\"\nsleep 6\ntouch \"$BUILD_DIR/../../clientgui/mac/BOINCSaver.nib\"\nfi\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -2377,7 +2376,6 @@ DDD74DA607CF49030065AC9D /* main.C in Sources */, DDD74DA707CF49040065AC9D /* net_stats.C in Sources */, DDD74DA907CF49090065AC9D /* pers_file_xfer.C in Sources */, - DDD74DAA07CF490B0065AC9D /* proxy.C in Sources */, DDD74DAB07CF490C0065AC9D /* scheduler_op.C in Sources */, DDD74DAC07CF490D0065AC9D /* ss_logic.C in Sources */, DDD74DAD07CF490E0065AC9D /* time_stats.C in Sources */,