From 21b946da4111a7d238f07636a8e2a97034b13b6c Mon Sep 17 00:00:00 2001 From: Thomas Tempelmann Date: Fri, 6 Aug 2021 12:27:12 +0200 Subject: [PATCH 1/7] * Removes the Copyright part about "MonoGame" because that doesn't apply to this project. * Adds some blank lines to make more strict markdown parsers happy. --- README.md | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) mode change 100644 => 100755 README.md diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 9f24a6d..616aa60 --- a/README.md +++ b/README.md @@ -1,11 +1,16 @@ # DockTile Sample + As Apple has removed any tutorials on how to write **NSDockTilePlugin**s so I Googled for one. This is an updated version of [Janetzko Helmut's](https://github.com/HelmutJ) Objective C [DockTile](https://github.com/HelmutJ/CocoaSampleCode/tree/master/DockTile) sample. + His version is 7 years out of date, so this version updates the code to work in Xcode 11. ## Original Sample's ReadMe -DockTile application demonstrates the use of NSDockTile, and more importantly, the NSDockTilePlugIn protocol introduced in 10.6. The example includes two pieces: The DockTile app, and the plug-in, DockTilePlugIn. Building the target for the app will build and package both together. -You can think of DockTile as a terribly simple game. Your score goes up by 1 just by launching the app! So keep on launching the app over and over to reach new high scores. +DockTile application demonstrates the use of NSDockTile, and more importantly, the NSDockTilePlugIn protocol introduced in 10.6. + +The example includes two pieces: The DockTile app, and the plug-in, DockTilePlugIn. Building the target for the app will build and package both together. + +You can think of DockTile as a terribly simple game. Your score goes up by 1 just by launching the app. So keep on launching the app over and over to reach new high scores. The high score is shown in the dock tile, and the app window, where you can also reset it. The plug-in is useful as a way to show the score even when the application is not running. @@ -14,30 +19,34 @@ The whole application source code is implemented in the DockTileAppDelegate clas The dock tile plug-in shows off your high score even when the app is not running. The plug-in simply reads the high score from the defaults domain of the app, displays it as a badge on the dock tile, then updates it on receipt of a distributed notification that indicates when the high score changed. Some notes and things to watch out for: + * The project has two targets; the DockTileApp target also builds the DockTilePlugIn target, and includes it in the app package. * The plug-in goes inside the Contents/PlugIns folder in the app package. Just the file name goes in the app's Info.plist, as the value of NSDockTilePlugIn. * Remember to build the plug-in 32 and 64 bits. * The plug-in's principal class should be listed in the plug-in's Info.plist. * As of 10.6, SystemUIServer (the server which hosts the plug-ins) does not always notice when the plug-ins are updated. So during development, you may want to restart it after updating the plug-in. Most thorough steps are: Remove your app from the dock. Wait 3-5 seconds. killall Dock.  killall SystemUIServer. * If your app does not draw into the dock tile, the plug-in's updates will be in effect even when the app is running. So you can actually have your dock tile plug-in do all dock tile updating if you wish. In the DockTile example the app actually shows the score itself while it's running. - * Dock tile plug-ins should remember they are "guests" inside SystemUIServer, and take care not to destabilize or hog the process, or do anything that would block the main thread, such as networking, messaging, etc. The DockTile example itself uses two techniques to hear about the high score status: Registers for a distributed notification, and access the high score using CFPreferences out of the app's preferences domain. For instance the latter could have also been achieved using the NSUserDefaults addSuiteNamed: API, but that would have changed the global preferences domain list for the SystemUIServer—not a good idea. + * Dock tile plug-ins should remember they are "guests" inside SystemUIServer, and take care not to destabilize or hog the process, or do anything that would block the main thread, such as networking, messaging, etc. The DockTile example itself uses two techniques to hear about the high score status: Registers for a distributed notification, and access the high score using CFPreferences out of the app's preferences domain. For instance the latter could have also been achieved using the NSUserDefaults addSuiteNamed: API, but that would have changed the global preferences domain list for the SystemUIServer — not a good idea. + +## What the original sample showed + +Each time the app is opened a counter increments and the app's DockTile is updated with the new value. + +## Enhancement over original Sample + +* Added DockMenu support + * When you right click the app's dock tile, while it is running, the popped up menu will display the current counter + * After setting the app to **Keep in Dock**, then shutting it down, when you right click the app's dock tile, now no longer running, the popped up menu will display the current counter -## What the original sample showed -Each time the app is opened a counter increments and the app's DockTile is updated with the new value. - -## Enhancement over original Sample -* Added DockMenu support - * When you right click the app's dock tile, while it is running, the popped up menu will display the current counter - * After setting the app to **Keep in Dock**, then shutting it down, when you right click the app's dock tile, now no longer running, the popped up menu will display the current counter - ## Future -I hope to update this repo with example of how to do DockTile plugins in other languages. + +I hope to update this repo with example of how to do DockTile plugins in other languages. 1st should be a Xamarin/.NET sample. -If you would like to port this sample to another language and would like to add it to this repo, please fork the repo as Pull Requests are always welcome!! :D - -## License - -The DockTile project is under the [Microsoft Public License](https://opensource.org/licenses/MS-PL) except for a few portions of the code. See the [LICENSE.txt](LICENSE.txt) file for more details. Third-party libraries used by MonoGame are under their own licenses. Please refer to those libraries for details on the license they use. \ No newline at end of file +If you would like to port this sample to another language and would like to add it to this repo, please fork the repo as Pull Requests are always welcome!! :D + +## License + +The DockTile project is under the [Microsoft Public License](https://opensource.org/licenses/MS-PL) except for a few portions of the code. See the [LICENSE.txt](LICENSE.txt) file for more details. From 8b72e6532ef5c58f006f6f8e7823e6ec3d10bcc9 Mon Sep 17 00:00:00 2001 From: Thomas Tempelmann Date: Fri, 6 Aug 2021 12:30:15 +0200 Subject: [PATCH 2/7] Removes unneeded exclusions and adds .DS_Store --- .gitignore | 38 ++------------------------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index 89209b5..4984fab 100644 --- a/.gitignore +++ b/.gitignore @@ -30,39 +30,5 @@ DerivedData/ *.dSYM.zip *.dSYM -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ -# -# Add this line if you want to avoid checking in source code from the Xcode workspace -# *.xcworkspace - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build/ - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. -# Instead, use fastlane to re-generate the screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots/**/*.png -fastlane/test_output - -# Code Injection -# -# After new code Injection tools there's a generated folder /iOSInjectionProject -# https://github.com/johnno1962/injectionforxcode - -iOSInjectionProject/ \ No newline at end of file +# macOS nonsense +*.DS_Store From 542995a05ace11bbcf1e8a92b48bf96b4b94b0fa Mon Sep 17 00:00:00 2001 From: Thomas Tempelmann Date: Fri, 6 Aug 2021 12:40:53 +0200 Subject: [PATCH 3/7] Now using #import instead of #include --- ObjC/main.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ObjC/main.m b/ObjC/main.m index 29215fd..cc87e52 100644 --- a/ObjC/main.m +++ b/ObjC/main.m @@ -45,7 +45,7 @@ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF */ -#include +#import int main(int argc, char *argv[]) { From c5d27d9add65cf6267c80addc8b8aeeed4f39afd Mon Sep 17 00:00:00 2001 From: Thomas Tempelmann Date: Fri, 6 Aug 2021 12:41:20 +0200 Subject: [PATCH 4/7] Now using #import instead of #include, and getting rid of a warning due to missing "window" property. --- ObjC/DockTileAppDelegate.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ObjC/DockTileAppDelegate.h b/ObjC/DockTileAppDelegate.h index 85969ad..1ab155c 100644 --- a/ObjC/DockTileAppDelegate.h +++ b/ObjC/DockTileAppDelegate.h @@ -53,10 +53,11 @@ */ -#include +#import @interface DockTileAppDelegate : NSObject{ NSMenu *dockMenu; + NSWindow *window; } @property NSInteger highScore; From a123edd1932f53f4978bcd5e01015996a80ad341 Mon Sep 17 00:00:00 2001 From: Thomas Tempelmann Date: Fri, 6 Aug 2021 12:52:02 +0200 Subject: [PATCH 5/7] Cleans up project settings: * Deployment OS version is now consistently set to 10.8 in the main project, not in the targets. * ARC is enabled. * Adds "DEBUG=1" for preprocessor. * Frameworks are added the regular way instead of using Linker flags. --- ObjC/DockTile.ObjC.xcodeproj/project.pbxproj | 39 ++++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj b/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj index 1ef5727..ff43912 100644 --- a/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj +++ b/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj @@ -16,6 +16,8 @@ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + A42C411A26BD4A260055F67C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A42C411926BD4A260055F67C /* Foundation.framework */; }; + A42C411C26BD4A370055F67C /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A42C411B26BD4A370055F67C /* AppKit.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -60,6 +62,8 @@ 9673543E23A9035700FD6C03 /* Base */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Base; path = Base.lproj/MainMenu.nib; sourceTree = ""; }; 9673543F23A9035D00FD6C03 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; 9673544023A9035D00FD6C03 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + A42C411926BD4A260055F67C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + A42C411B26BD4A370055F67C /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -67,6 +71,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + A42C411C26BD4A370055F67C /* AppKit.framework in Frameworks */, + A42C411A26BD4A260055F67C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -146,6 +152,8 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( + A42C411B26BD4A370055F67C /* AppKit.framework */, + A42C411926BD4A260055F67C /* Foundation.framework */, 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, ); @@ -308,24 +316,15 @@ 53D679D70FD6F0DC001688B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; GCC_DYNAMIC_NO_PIC = NO; - GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; INFOPLIST_FILE = "DockTilePlugIn/DockTile.ObjC.PlugIn-Info.plist"; INSTALL_PATH = "$(LOCAL_DEVELOPER_DIR)/Demos"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); PRODUCT_BUNDLE_IDENTIFIER = com.apple.samplecode.DockTilePlugIn; PRODUCT_NAME = DockTile.ObjC; WRAPPER_EXTENSION = docktileplugin; @@ -335,22 +334,13 @@ 53D679D80FD6F0DC001688B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; INFOPLIST_FILE = "DockTilePlugIn/DockTile.ObjC.PlugIn-Info.plist"; INSTALL_PATH = "$(LOCAL_DEVELOPER_DIR)/Demos"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); PRODUCT_BUNDLE_IDENTIFIER = com.apple.samplecode.DockTilePlugIn; PRODUCT_NAME = DockTile.ObjC; WRAPPER_EXTENSION = docktileplugin; @@ -366,12 +356,10 @@ COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; GCC_DYNAMIC_NO_PIC = NO; - GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREFIX_HEADER = Prefix.pch; INFOPLIST_FILE = "DockTile.ObjC-Info.plist"; INSTALL_PATH = "$(LOCAL_DEVELOPER_DIR)/Demos"; - MACOSX_DEPLOYMENT_TARGET = 10.9; PRODUCT_BUNDLE_IDENTIFIER = com.apple.examples.DockTile.ObjC.App; PRODUCT_NAME = DockTile.ObjC; WRAPPER_EXTENSION = app; @@ -386,11 +374,9 @@ CODE_SIGN_IDENTITY = "-"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = G5; GCC_PREFIX_HEADER = Prefix.pch; INFOPLIST_FILE = "DockTile.ObjC-Info.plist"; INSTALL_PATH = "$(LOCAL_DEVELOPER_DIR)/Demos"; - MACOSX_DEPLOYMENT_TARGET = 10.9; PRODUCT_BUNDLE_IDENTIFIER = com.apple.examples.DockTile.ObjC.App; PRODUCT_NAME = DockTile.ObjC; WRAPPER_EXTENSION = app; @@ -400,7 +386,9 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; @@ -421,13 +409,14 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_NO_COMMON_BLOCKS = YES; + "GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "DEBUG=1"; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.6; + MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; @@ -436,7 +425,9 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_OBJC_ARC = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; @@ -462,7 +453,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.6; + MACOSX_DEPLOYMENT_TARGET = 10.8; SDKROOT = macosx; }; name = Release; From 9f9a37b2e12ec1b8ea0bed41d43a7ea9284fbdb5 Mon Sep 17 00:00:00 2001 From: Thomas Tempelmann Date: Fri, 6 Aug 2021 14:03:37 +0200 Subject: [PATCH 6/7] Removes all .DS_Store files --- .DS_Store | Bin 6148 -> 0 bytes ObjC/.DS_Store | Bin 8196 -> 0 bytes ObjC/Base.lproj/.DS_Store | Bin 6148 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store delete mode 100644 ObjC/.DS_Store delete mode 100644 ObjC/Base.lproj/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index c44dcfb46802943cb3e95979884ce57594f1b6a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJ5Iwu5S;}VmS`fXbnF$v36{jv6uAI0kw7Sx)6l!)Oq96;2jb0#D3LJ|4HD>$ zH2b_W^St&eJRT8A%a_eUWF{gtTv1+i8Jp(SM|KvG3YhdB+sDQFq3?F1%ISb|E4hIyJ?Jk(`cr zj=B;!I67UDos9d$$tfn3WTzvZtz1%ZoxKvaBws_;zkGZM?iIS3Zm+G`~}^sPL&v` zIw5teRI#x3Pw2#7!TW4e?sU13WT-&>EZNVozh{4b=bZC708IU)y$P%Us4@#KFR&Pq zq+fC&&4rfdL_V z#?xWK%qB!A#?4Nib>=XUM=ezWRiLPV#O_Z~$1aZXJ{!MxJDbhDq&ILB^JQ3O*GuBK z)lFLLub#jC{N%^)pD)X8+Y{Rk_OtVU7dL8%d9$#GBfP-@ZyLnk9kh7Yu+7>>_9SSt zHQYetR)9a3(~po{Tkq>dEv#)yKYGdCs%IZ1uZNvMj}OgZznkTlsi5X-YI=eW zUZJ1YZvEMP_F1L2ex2R!g0XXCb(xftQ^6k%RX*{4>CVO6Dt#~5Wc|JRbn)%f@7fV| zch7E|UEVLtDY1wK{pwKD1Ae#m%RLn1an@O1*Ir!T`Z{L(tg@3a^8P!I{4TMq%WjDR zrXJlX%)*_*L_PnhizZdzF)1+bon4Xmzfpew|CpAfzN!MMz?2G@O5BX=B)L<41X)gb s%lwX6lGvpl9fd{ihX6nS{lk!TOH<)Q0aK4`VbY5LCxaHMz&};s2JDve)&Kwi diff --git a/ObjC/Base.lproj/.DS_Store b/ObjC/Base.lproj/.DS_Store deleted file mode 100644 index bc8d1c0a89d9d3406ac27557e8998a88d12f69bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}N6?5T4N@3--{X$6UM$eS=umV^4hnT`O8>-BRd1&mlg9SC77f58$Kt&5zQ> zrJx5vnSsnVNoKN>4>rjV5l^=BG0}*KDl|bBqeo=8cj~~M2SC;}rgTI1w52oXzaf(Q zkfwA+3*@|;|ALz3?Ra+GuGYF0e%$QyUA1-HEZYV?)!XUA(evxe`F{WTxBS<4ySY4R zN}+;*U?3O>27-YfFn~K-q&hYX9Sj5m!N4a2ay}$9!R%NJ_2_`o5&$UAXcgE}OGr#| z%#OtnGZ3~=poOxR7;NDfPwtl;i=l-Rd-1{k<&WZp_3KzasXK8t3>^#v16>9VtvizY z{{p{EZ;{^(iC!=e4E!?&cu>#k2{z?->zD1xU7OG@(L}_rhyj7!c?6&%=g5gp+I$il Ye%Y}Y$|^Fh;lOwZC?TPOfnQ+Y9WLfIEC2ui From f0edca5f501c1201a47cfb38d00c58efac6a67a4 Mon Sep 17 00:00:00 2001 From: Thomas Tempelmann Date: Fri, 6 Aug 2021 14:04:27 +0200 Subject: [PATCH 7/7] =?UTF-8?q?Version=201.2=20=E2=80=93=20adding=20suppor?= =?UTF-8?q?t=20for=20exchanging=20the=20dock=20icon,=20mainly=20useful=20t?= =?UTF-8?q?o=20provide=20a=20different=20icon=20matching=20the=20"squircle?= =?UTF-8?q?"=20icons=20since=20macOS=20Big=20Sur,=20while=20keeping=20to?= =?UTF-8?q?=20use=20a=20classic=20icon=20on=20older=20macOS=20versions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ObjC/DockTile.ObjC-Info.plist | 19 ++- ObjC/DockTile.ObjC.xcodeproj/project.pbxproj | 22 +++- ObjC/DockTileAppDelegate.m | 101 +++++++++----- .../DockTile.ObjC.PlugIn-Info.plist | 4 +- ObjC/DockTilePlugIn/DockTilePlugIn.h | 15 ++- ObjC/DockTilePlugIn/DockTilePlugIn.m | 124 +++++++++++------- ObjC/DockTilePlugIn/SharedDockItem.h | 32 +++++ ObjC/DockTilePlugIn/SharedDockItem.m | 68 ++++++++++ ObjC/icon2.icns | Bin 0 -> 121407 bytes README.md | 11 +- 10 files changed, 299 insertions(+), 97 deletions(-) create mode 100644 ObjC/DockTilePlugIn/SharedDockItem.h create mode 100644 ObjC/DockTilePlugIn/SharedDockItem.m create mode 100755 ObjC/icon2.icns diff --git a/ObjC/DockTile.ObjC-Info.plist b/ObjC/DockTile.ObjC-Info.plist index e1eb138..ea3ea1b 100644 --- a/ObjC/DockTile.ObjC-Info.plist +++ b/ObjC/DockTile.ObjC-Info.plist @@ -16,10 +16,12 @@ ${PRODUCT_NAME} CFBundlePackageType APPL + CFBundleShortVersionString + 1.2 CFBundleSignature ???? CFBundleVersion - 1.0 + 3 LSMinimumSystemVersion 10.6 NSDockTilePlugIn @@ -28,5 +30,20 @@ MainMenu NSPrincipalClass NSApplication + DockIconsToChooseFrom + + + title + Classic Icon + file name + icon.icns + + + title + Squircle Icon + file name + icon2.icns + + diff --git a/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj b/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj index ff43912..a79104b 100644 --- a/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj +++ b/ObjC/DockTile.ObjC.xcodeproj/project.pbxproj @@ -18,6 +18,9 @@ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; A42C411A26BD4A260055F67C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A42C411926BD4A260055F67C /* Foundation.framework */; }; A42C411C26BD4A370055F67C /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A42C411B26BD4A370055F67C /* AppKit.framework */; }; + A42C412326BD4F1D0055F67C /* icon2.icns in Resources */ = {isa = PBXBuildFile; fileRef = A42C412226BD4F1D0055F67C /* icon2.icns */; }; + A42C412626BD4F5A0055F67C /* SharedDockItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A42C412426BD4F5A0055F67C /* SharedDockItem.m */; }; + A42C412726BD4F5A0055F67C /* SharedDockItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A42C412426BD4F5A0055F67C /* SharedDockItem.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -64,6 +67,9 @@ 9673544023A9035D00FD6C03 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; A42C411926BD4A260055F67C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; A42C411B26BD4A370055F67C /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + A42C412226BD4F1D0055F67C /* icon2.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon2.icns; sourceTree = ""; }; + A42C412426BD4F5A0055F67C /* SharedDockItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SharedDockItem.m; path = DockTilePlugIn/SharedDockItem.m; sourceTree = SOURCE_ROOT; }; + A42C412526BD4F5A0055F67C /* SharedDockItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SharedDockItem.h; path = DockTilePlugIn/SharedDockItem.h; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -118,10 +124,11 @@ children = ( 41D5F1550FEE95CE004546AB /* README.rtf */, 29B97315FDCFA39411CA2CEA /* Sources */, + 53D6795A0FD6EF91001688B3 /* DockTilePlugin */, + A42C411D26BD4EFB0055F67C /* Shared */, 29B97317FDCFA39411CA2CEA /* Resources */, 29B97323FDCFA39411CA2CEA /* Frameworks */, 19C28FACFE9D520D11CA2CBB /* Products */, - 53D6795A0FD6EF91001688B3 /* DockTilePlugin */, ); name = TrackIt; sourceTree = ""; @@ -141,6 +148,7 @@ isa = PBXGroup; children = ( 53FE44180FD71991007FBB65 /* icon.icns */, + A42C412226BD4F1D0055F67C /* icon2.icns */, 536F14110D33E1A200B2806D /* Credits.rtf */, 8D1107310486CEB800E47090 /* DockTile.ObjC-Info.plist */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, @@ -170,6 +178,15 @@ name = DockTilePlugin; sourceTree = ""; }; + A42C411D26BD4EFB0055F67C /* Shared */ = { + isa = PBXGroup; + children = ( + A42C412526BD4F5A0055F67C /* SharedDockItem.h */, + A42C412426BD4F5A0055F67C /* SharedDockItem.m */, + ); + path = Shared; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -252,6 +269,7 @@ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 536F14130D33E1A200B2806D /* Credits.rtf in Resources */, 53FE44190FD71991007FBB65 /* icon.icns in Resources */, + A42C412326BD4F1D0055F67C /* icon2.icns in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -262,6 +280,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A42C412726BD4F5A0055F67C /* SharedDockItem.m in Sources */, 53D67A8F0FD6F773001688B3 /* DockTilePlugIn.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -272,6 +291,7 @@ files = ( 8D11072D0486CEB800E47090 /* main.m in Sources */, 53CC47720ABB251700F70973 /* DockTileAppDelegate.m in Sources */, + A42C412626BD4F5A0055F67C /* SharedDockItem.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ObjC/DockTileAppDelegate.m b/ObjC/DockTileAppDelegate.m index c0bd564..fbfc67d 100644 --- a/ObjC/DockTileAppDelegate.m +++ b/ObjC/DockTileAppDelegate.m @@ -1,5 +1,5 @@ /* - File: DockTileAppDelegate.m + File: DockTileAppDelegate.m Abstract: DockTile is a "game" which demonstrates the use of NSDockTile, and more importantly, the NSDockTilePlugIn protocol introduced in 10.6. The game is terribly simple: Your score goes up by 1 just by launching the app! So keep on launching the app over and over to reach new high scores. @@ -9,7 +9,8 @@ The whole game is implemented in the DockTileAppDelegate class, which is the delegate of the application. On applicationDidFinishLaunching: it updates the highScore. The only other thing it does is to implement resetHighScore: to set it back to 0. The dock tile plug-in is useful as a way to show off your high score even when the app is not running. The plug-in simply reads the high score from defaults, displays it as a badge on the dock tile, then updates it on receipt of a distributed notification that indicates when the high score changed. - Version: 1.1 + + Version: 1.2 Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. ("Apple") in consideration of your agreement to the following @@ -53,65 +54,93 @@ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF */ -#include "DockTileAppDelegate.h" +#import "DockTileAppDelegate.h" +#import "SharedDockItem.h" + +// A convenience macro to make the "not" operator more visible: +#define NOT ! @implementation DockTileAppDelegate +-(instancetype)init { + self = [super init]; + if (self) { + // + // We want to update the dock icon as soon as possible, hence we do it here in the init method + // + + // Determine the icon to show + NSString *dockIconName = [[NSUserDefaults standardUserDefaults] objectForKey:PrefsKeyDockIcon]; + NSImage *icon = [NSBundle.mainBundle imageForResource:dockIconName]; + if (dockIconName == nil || icon == nil) { + if (@available(macOS 11.0, *)) { + dockIconName = @"icon2.icns"; // let's default to using the alternative (squircle) icon on Big Sur and later + } else { + dockIconName = DEFAULT_ICON_NAME; + } + [[NSUserDefaults standardUserDefaults] setObject:dockIconName forKey:PrefsKeyDockIcon]; + [NSDistributedNotificationCenter.defaultCenter postNotificationName:DockUpdateNotificationKey object:nil]; + icon = [NSBundle.mainBundle imageForResource:dockIconName]; + } + + // Now change the icon in the Dock (this is the part that needs to be done ASAP) + if (NOT [dockIconName isEqualToString:@"icon.icns"]) { // no need to change it if it's the default app icon + [NSApp setApplicationIconImage:icon]; // required on macOS 11 or the app icon won't update for a few seconds + } + + // Finally, observe changes to the dock, e.g. when the user chose a different icon via our custom Dock Tile menu + [NSDistributedNotificationCenter.defaultCenter addObserverForName:DockUpdateNotificationKey object:nil queue:nil usingBlock:^(NSNotification *notification) { + NSString *dockIconName2 = [[NSUserDefaults standardUserDefaults] objectForKey:PrefsKeyDockIcon]; + NSImage *icon2 = [NSBundle.mainBundle imageForResource:dockIconName2]; + if (icon2) { + [NSApp setApplicationIconImage:icon2]; + } + }]; + } + return self; +} + /* highScore accessors. highScore is declared as a property, but we don't have an instance variable for it, and nor do we use synthesized accessors since we do special things. */ - (NSInteger)highScore { - // We get the value from defaults (preferences), we don't keep a copy of the high score in the app. - return [[NSUserDefaults standardUserDefaults] integerForKey:@"HighScore"]; + // We get the value from defaults (preferences), we don't keep a copy of the high score in the app. + return [[NSUserDefaults standardUserDefaults] integerForKey:PrefsKeyHighScore]; } - (void)setHighScore:(NSInteger)newScore { - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - // We just save the value out, we don't keep a copy of the high score in the app. - [defaults setInteger:newScore forKey:@"HighScore"]; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + + // We just save the value out, we don't keep a copy of the high score in the app. + [defaults setInteger:newScore forKey:PrefsKeyHighScore]; - // Save the value out to defaults now. We often don't explicit synchronize, since it's best to let the system take care of it automatically. However, in this case since we're asking the plug-in to update the score, synchronizing before the notification ensures that the plug-in sees the latest value. Always make sure the value is updated and synchronized before sending out the distributed notification to other processes. - [defaults synchronize]; + // Save the value out to defaults now. We often don't explicit synchronize, since it's best to let the system take care of it automatically. However, in this case since we're asking the plug-in to update the score, synchronizing before the notification ensures that the plug-in sees the latest value. Always make sure the value is updated and synchronized before sending out the distributed notification to other processes. + [defaults synchronize]; - // And post a notification so the plug-in sees the change. - [[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"com.apple.DockTile.ObjC.HighScoreChanged" object:nil]; + // And post a notification so the plug-in sees the change. + [[NSDistributedNotificationCenter defaultCenter] postNotificationName:DockUpdateNotificationKey object:nil]; - // Now update the dock tile. Note that a more general way to do this would be to observe the highScore property, but we're just keeping things short and sweet here, trying to demo how to write a plug-in. + // Now update the dock tile's badge. + // Note that a more general way to do this would be to observe the highScore property, but we're just keeping things short and sweet here, trying to demo how to write a plug-in. [[[NSApplication sharedApplication] dockTile] setBadgeLabel:[NSString stringWithFormat:@"%ld", (long)newScore]]; } /* On launch, get the previous score, increment by one, and save it. By definition all updated scores are high scores. */ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - [self setHighScore:[self highScore] + 1]; + [self setHighScore:[self highScore] + 1]; } /* Reset the high score. Simple... */ - (void)resetHighScore:(id)sender { - [self setHighScore:0]; + [self setHighScore:0]; } -// This menu will ONLY appear when the app is running. We need NSDockPlugin for it to appear when the app isn't running. -- (NSMenu *)applicationDockMenu:(NSApplication *)sender { - // Create the menu - if (dockMenu == nil) - dockMenu = [[NSMenu alloc] init]; - else - [dockMenu removeAllItems]; - - // Let's Find the HighScore - CFPreferencesAppSynchronize(CFSTR("com.apple.examples.DockTile.ObjC.App")); - NSInteger highScore = CFPreferencesGetAppIntegerValue(CFSTR("HighScore"), CFSTR("com.apple.examples.DockTile.ObjC.App"), NULL); - - // Convert it into a string - NSString *highScoreAsString = [NSString stringWithFormat:@"%ld", (long)highScore]; - NSMenuItem *highScoreMenu = [[NSMenuItem alloc] initWithTitle:highScoreAsString action:NULL keyEquivalent:@""]; - - [dockMenu addItem: highScoreMenu]; - [highScoreMenu release]; - - return dockMenu; +/* This menu will ONLY appear when the app is running. We need NSDockPlugin for it to appear when the app isn't running. +*/ +- (NSMenu *)applicationDockMenu:(NSApplication *)sender +{ + return [SharedDockItem dockMenuForPrefs:[NSUserDefaults standardUserDefaults] bundle:[NSBundle mainBundle]]; } @end diff --git a/ObjC/DockTilePlugIn/DockTile.ObjC.PlugIn-Info.plist b/ObjC/DockTilePlugIn/DockTile.ObjC.PlugIn-Info.plist index 7c8e5c4..2cc3f1b 100644 --- a/ObjC/DockTilePlugIn/DockTile.ObjC.PlugIn-Info.plist +++ b/ObjC/DockTilePlugIn/DockTile.ObjC.PlugIn-Info.plist @@ -13,11 +13,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.0 + 1.2 CFBundleSignature ???? CFBundleVersion - 1 + 3 NSPrincipalClass DockTilePlugIn diff --git a/ObjC/DockTilePlugIn/DockTilePlugIn.h b/ObjC/DockTilePlugIn/DockTilePlugIn.h index a272e53..3cd285e 100644 --- a/ObjC/DockTilePlugIn/DockTilePlugIn.h +++ b/ObjC/DockTilePlugIn/DockTilePlugIn.h @@ -53,12 +53,15 @@ */ -#include +#import -@interface DockTilePlugIn : NSObject { - id highScoreObserver; - NSMenu *dockMenu; -} +@interface DockTilePlugIn : NSObject + +@property(strong) id updateObserver; +@property(strong) NSBundle *mainBundle; +@property(strong) NSUserDefaults *mainPrefs; +@property(strong) NSString *currentIconName; + +- (NSMenu*)dockMenu; // conforms to NSDockTilePlugIn protocol -@property(retain) id highScoreObserver; @end diff --git a/ObjC/DockTilePlugIn/DockTilePlugIn.m b/ObjC/DockTilePlugIn/DockTilePlugIn.m index d73e416..102dcc8 100644 --- a/ObjC/DockTilePlugIn/DockTilePlugIn.m +++ b/ObjC/DockTilePlugIn/DockTilePlugIn.m @@ -1,5 +1,6 @@ /* - File: DockTilePlugIn.m + File: DockTilePlugIn.m + Abstract: DockTile is a "game" which demonstrates the use of NSDockTile, and more importantly, the NSDockTilePlugIn protocol introduced in 10.6. The game is terribly simple: Your score goes up by 1 just by launching the app! So keep on launching the app over and over to reach new high scores. @@ -9,7 +10,8 @@ When the plug-in is loaded, an instance of DockTilePlugIn is instantiated, and setDockTile: called with an instance of NSDockTile. The implementation of setDockTile: in DockTilePlugIn sets the plug-in as an observer of high score changes (using NSDistributedNotification), causing the badge on the dock tile to update everytime the score is updated. The NSDistributedNotificationCenter registry happens with the 10.6 method addObserverForName:object:queue:block:. The body of the block has no references to the DockTilePlugIn instance, which means the notification does not cause it to be retained. In this case that does not matter (since setDockTile:nil is called, which removes the observer), but in some cases this is important to watch for. - Version: 1.1 + + Version: 1.2 Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. ("Apple") in consideration of your agreement to the following @@ -50,66 +52,88 @@ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF POSSIBILITY OF SUCH DAMAGE. Copyright (C) 2011 Apple Inc. All Rights Reserved. - + */ -#include "DockTilePlugIn.h" +#import "DockTilePlugIn.h" +#import "SharedDockItem.h" @implementation DockTilePlugIn -@synthesize highScoreObserver; +- (void) updateDockTile:(NSDockTile*)dockTile +{ + [self.mainPrefs synchronize]; -/* To update the score, we first make sure we are looking at the latest state of the defaults database, then we fetch the score and set it as the badge label. -*/ -static void updateScore(NSDockTile *tile) { - CFPreferencesAppSynchronize(CFSTR("com.apple.examples.DockTile.ObjC.App")); - NSInteger highScore = CFPreferencesGetAppIntegerValue(CFSTR("HighScore"), CFSTR("com.apple.examples.DockTile.ObjC.App"), NULL); - [tile setBadgeLabel:[NSString stringWithFormat:@"%ld", (long)highScore]]; + // update icon + NSString *iconName = [self.mainPrefs objectForKey:PrefsKeyDockIcon]; + if ([iconName isEqualToString:self.currentIconName]) { + // no change necessary + } else { + self.currentIconName = iconName; + NSImage *icon = [self.mainBundle imageForResource:iconName]; + if (icon.isValid) { + NSView *view = [NSView.alloc initWithFrame:NSMakeRect(0, 0, dockTile.size.width, dockTile.size.height)]; + NSImageView *iconView = [NSImageView.alloc initWithFrame:view.frame]; + iconView.image = icon; + iconView.imageScaling = NSImageScaleProportionallyDown; + [iconView setFrameSize:dockTile.size]; + [view addSubview:iconView]; + [dockTile setContentView:view]; + [dockTile display]; + } + } + + // update badge + NSInteger highScore = [self.mainPrefs integerForKey:PrefsKeyHighScore]; + [dockTile setBadgeLabel:[NSString stringWithFormat:@"%ld", (long)highScore]]; } -- (void)setDockTile:(NSDockTile *)dockTile { - if (dockTile) { - // Attach an observer that will update the high score in the dock tile whenever it changes - self.highScoreObserver = [[NSDistributedNotificationCenter defaultCenter] addObserverForName:@"com.apple.DockTile.ObjC.HighScoreChanged" object:nil queue:nil usingBlock:^(NSNotification *notification) { - updateScore(dockTile); // Note that this block captures (and retains) dockTile for use later. Also note that it does not capture self, which means -dealloc may be called even while the notification is active. Although it's not clear this needs to be supported, this does eliminate a potential source of leaks. - }]; - updateScore(dockTile); // Make sure score is updated from the get-go as well - } else { - // Strictly speaking this may not be necessary (since the plug-in may be terminated when it's removed from the dock), but it's good practice - [[NSDistributedNotificationCenter defaultCenter] removeObserver:self.highScoreObserver]; - self.highScoreObserver = nil; - } +- (void) setDockTile:(NSDockTile *)dockTile +{ + // Determine the app bundle that includes this plugin inside its "Contents/PlugIn" folder + if (dockTile != nil && (self.mainBundle == nil || self.mainPrefs == nil)) { + NSBundle *bundle = [NSBundle bundleForClass:DockTilePlugIn.class]; + bundle = [NSBundle bundleWithURL:bundle.bundleURL.URLByDeletingLastPathComponent.URLByDeletingLastPathComponent.URLByDeletingLastPathComponent]; + NSString *prefsID = [bundle objectForInfoDictionaryKey:@"CFBundleIdentifier"]; + if (prefsID.length == 0 || bundle == nil) { + NSLog(@"%s: Can't determine app bundle ID", __func__); + return; + } + NSUserDefaults *prefs = [NSUserDefaults.alloc initWithSuiteName:prefsID]; + if (prefs == nil) { + NSLog(@"%s: Can't get app prefs for %@", __func__, prefsID); + return; + } + self.mainBundle = bundle; + self.mainPrefs = prefs; + } + + if (dockTile) { + if (self.updateObserver == nil) { + // Attach an observer that will update the high score or icon in the dock tile whenever it changes + self.updateObserver = [NSDistributedNotificationCenter.defaultCenter addObserverForName:DockUpdateNotificationKey object:nil queue:nil usingBlock:^(NSNotification *notification) { + [self updateDockTile:dockTile]; + }]; + } + [self updateDockTile:dockTile]; + } else if (self.updateObserver) { + // clean up observer + [[NSDistributedNotificationCenter defaultCenter] removeObserver:self.updateObserver]; + self.updateObserver = nil; + } } -- (NSMenu *)dockMenu { - - // Create the menu - if (dockMenu == nil) - dockMenu = [[NSMenu alloc] init]; - else - [dockMenu removeAllItems]; - - // Let's Find the HighScore - CFPreferencesAppSynchronize(CFSTR("com.apple.examples.DockTile.ObjC.App")); - NSInteger highScore = CFPreferencesGetAppIntegerValue(CFSTR("HighScore"), CFSTR("com.apple.examples.DockTile.ObjC.App"), NULL); - - // Convert it into a string - NSString *highScoreAsString = [NSString stringWithFormat:@"%ld", (long)highScore]; - NSMenuItem *highScoreMenu = [[NSMenuItem alloc] initWithTitle:highScoreAsString action:NULL keyEquivalent:@""]; - - [dockMenu addItem: highScoreMenu]; - [highScoreMenu release]; - - return dockMenu; +- (NSMenu*) dockMenu { // gets ONLY called when app is not running and icon is in the Dock (see: `applicationDockMenu:`) + // Let the user choose an icon via the dock menu (#826) + return [SharedDockItem dockMenuForPrefs:self.mainPrefs bundle:self.mainBundle]; } -- (void)dealloc { - if (self.highScoreObserver) { - [[NSDistributedNotificationCenter defaultCenter] removeObserver:self.highScoreObserver]; - self.highScoreObserver = nil; - } - [dockMenu release]; - [super dealloc]; + +- (void) dealloc { + if (self.updateObserver) { + [[NSDistributedNotificationCenter defaultCenter] removeObserver:self.updateObserver]; + self.updateObserver = nil; + } } @end diff --git a/ObjC/DockTilePlugIn/SharedDockItem.h b/ObjC/DockTilePlugIn/SharedDockItem.h new file mode 100644 index 0000000..3111ca2 --- /dev/null +++ b/ObjC/DockTilePlugIn/SharedDockItem.h @@ -0,0 +1,32 @@ +// +// SharedDockItem.h +// FAFv2 +// +// Created by Thomas Tempelmann on 05.08.21. +// Copyright © 2021 Thomas Tempelmann. All rights reserved. +// + +#import + +// The name of the default icon the app, as set in the Info.plist (`CFBundleIconFile`) +#define DEFAULT_ICON_NAME @"icon.icns" + +// The Info.plist key that lists the available icons the user can choose from +#define InfoKeyDockIconsToChooseFrom @"DockIconsToChooseFrom" + +// The userdefaults key specifying the dock's icon file +#define PrefsKeyDockIcon @"DockIcon" + +// The userdefaults key specifying the highscore that'll appear in the dock tile's badge +#define PrefsKeyHighScore @"HighScore" + +// The message we send to ask the DockTile plugin to refresh its icon and/or badge +static NSString *DockUpdateNotificationKey = @"com.apple.DockTile.RefreshDock"; + +@interface SharedDockItem : NSObject + +// A function that creates the dock's custom menu, +// used by both the main app and by the plugin when the app is not running ++ (NSMenu*) dockMenuForPrefs:(NSUserDefaults*)prefs bundle:(NSBundle*)bundle; + +@end diff --git a/ObjC/DockTilePlugIn/SharedDockItem.m b/ObjC/DockTilePlugIn/SharedDockItem.m new file mode 100644 index 0000000..1db8e81 --- /dev/null +++ b/ObjC/DockTilePlugIn/SharedDockItem.m @@ -0,0 +1,68 @@ +// +// SharedDockItem.m +// + +#import "SharedDockItem.h" + +static NSMenu *myDockMenu = nil; +static NSUserDefaults *mainPrefs = nil; + +@implementation SharedDockItem + ++ (NSMenu*) dockMenuForPrefs:(NSUserDefaults*)prefs bundle:(NSBundle*)bundle +{ + /* + * This method performs two things: + * 1. Add the current high score as a disabled menu item + * 2. Add a list of icon names, from which the user can then choose one. + * Note that the DockTile menu does not appear to support submenus - a submenu's contents will be flattened out to the top level. + */ + + [prefs synchronize]; + + // Create or empty the our menu + if (myDockMenu == nil) { + myDockMenu = [[NSMenu alloc] init]; + } else { + [myDockMenu removeAllItems]; + } + + // + // Add the HighScore to the menu + // + NSInteger highScore = [prefs integerForKey:PrefsKeyHighScore]; + NSString *highScoreAsString = [NSString stringWithFormat:@"High Score: %ld", (long)highScore]; + NSMenuItem *highScoreMenu = [[NSMenuItem alloc] initWithTitle:highScoreAsString action:NULL keyEquivalent:@""]; + [myDockMenu addItem: highScoreMenu]; + + // + // Add the icon choices to the menu + // + NSString *iconName = [prefs objectForKey:PrefsKeyDockIcon]; + NSArray *iconChoices = bundle.infoDictionary[InfoKeyDockIconsToChooseFrom]; + NSMenuItem *subMenu = [myDockMenu addItemWithTitle:@"Choose Dock Icon" action:nil keyEquivalent:@""]; + subMenu.enabled = YES; // while we use a submenu here, it won't show as a sub menu, unfortunately. + for (NSDictionary *d in iconChoices) { + NSString *key = d[@"title"]; + NSString *name = d[@"file name"]; + NSString *title = NSLocalizedString(key, @"DockIcon title"); // In case you'd want to localize the titles + NSMenuItem *menuItem = [subMenu.menu addItemWithTitle:title action:@selector(chooseIcon:) keyEquivalent:@""]; + menuItem.target = self; + menuItem.representedObject = name; + if ([name isEqualToString:iconName]) { + menuItem.state = NSControlStateValueOn; // checkmark the currently chosen icon + } + menuItem.enabled = YES; + } + mainPrefs = prefs; // needed in `chooseIcon:`, though we could have also put it into a dictionary assigned to `menuItem.representedObject` + + return myDockMenu; +} + ++ (void)chooseIcon:(NSMenuItem*)menuItem +{ + [mainPrefs setObject:menuItem.representedObject forKey:PrefsKeyDockIcon]; + [NSDistributedNotificationCenter.defaultCenter postNotificationName:DockUpdateNotificationKey object:nil]; +} + +@end diff --git a/ObjC/icon2.icns b/ObjC/icon2.icns new file mode 100755 index 0000000000000000000000000000000000000000..7bb3b9744ea2df9c4d2942d66498267fda706c02 GIT binary patch literal 121407 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