From 1f0117c7983f5ee8b13ef3e1035f5318d2a5951b Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Fri, 20 Jan 2006 11:44:30 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=9273 --- checkin_notes | 17 +++ client/mac/GR-icon_MAC.icns | Bin 0 -> 57602 bytes clientgui/mac/mac_saver_module.cpp | 160 +++++++++++++++++----- mac_build/English.lproj/InfoPlist.strings | 4 +- mac_build/GR_Info.plist | 24 ++++ mac_build/Info.plist | 4 +- mac_build/Installer-info.plist | 2 +- mac_build/ScreenSaver-Info.plist | 2 +- mac_build/SystemMenu-Info.plist | 2 +- mac_build/boinc.xcodeproj/project.pbxproj | 24 ++-- 10 files changed, 185 insertions(+), 54 deletions(-) create mode 100644 client/mac/GR-icon_MAC.icns create mode 100644 mac_build/GR_Info.plist 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 0000000000000000000000000000000000000000..044ec4ce66cbaf061d0f8ed48cb4b51bf216ccd9 GIT binary patch literal 57602 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 mx=e_~Ex3?= (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 */,