From b91b804f9b1b94ef3a55997e11176d60205ecd09 Mon Sep 17 00:00:00 2001 From: Ryan Lue Date: Thu, 19 Jan 2017 00:28:36 +0800 Subject: [PATCH 1/2] Migrate entire UI to status bar widget --- Noisy.xcodeproj/project.pbxproj | 4 + .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 12763 bytes .../xcschemes/Create Zip.xcscheme | 91 ++ .../rlue.xcuserdatad/xcschemes/Noisy.xcscheme | 91 ++ .../xcschemes/xcschememanagement.plist | 32 + Resources/English.lproj/MainMenu.xib | 1395 +---------------- Resources/Info.plist | 2 + Source/NoisyApp.h | 6 +- Source/NoisyApp.m | 164 +- statusbar_icon.png | Bin 0 -> 18782 bytes 11 files changed, 337 insertions(+), 1455 deletions(-) create mode 100644 Noisy.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Noisy.xcodeproj/project.xcworkspace/xcuserdata/rlue.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Create Zip.xcscheme create mode 100644 Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Noisy.xcscheme create mode 100644 Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 statusbar_icon.png diff --git a/Noisy.xcodeproj/project.pbxproj b/Noisy.xcodeproj/project.pbxproj index 3ba6410..9a3494b 100644 --- a/Noisy.xcodeproj/project.pbxproj +++ b/Noisy.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 0408DF68185E843C00F402CF /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0408DF67185E843C00F402CF /* AudioToolbox.framework */; }; + 229995991E2FCE4B00B59E9D /* statusbar_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 229995981E2FCE4B00B59E9D /* statusbar_icon.png */; }; 552C29520E04A2CC0048FF6B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 552C294C0E04A2CC0048FF6B /* main.m */; }; 552C29530E04A2CC0048FF6B /* NoiseGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 552C294E0E04A2CC0048FF6B /* NoiseGenerator.m */; }; 552C29540E04A2CC0048FF6B /* NoisyApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 552C29510E04A2CC0048FF6B /* NoisyApp.m */; }; @@ -35,6 +36,7 @@ 089C165DFE840E0CC02AAC07 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = Resources/English.lproj/InfoPlist.strings; sourceTree = ""; }; 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + 229995981E2FCE4B00B59E9D /* statusbar_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = statusbar_icon.png; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; 550C200D1171C44E0098F573 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; @@ -128,6 +130,7 @@ 552C29640E04A3090048FF6B /* Noisy.sdef */, 8D1107310486CEB800E47090 /* Info.plist */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + 229995981E2FCE4B00B59E9D /* statusbar_icon.png */, ); name = Resources; sourceTree = ""; @@ -218,6 +221,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 229995991E2FCE4B00B59E9D /* statusbar_icon.png in Resources */, 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 552C29650E04A3090048FF6B /* Noisy.sdef in Resources */, 552C29A30E04A4900048FF6B /* Credits.rtf in Resources */, diff --git a/Noisy.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Noisy.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Noisy.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Noisy.xcodeproj/project.xcworkspace/xcuserdata/rlue.xcuserdatad/UserInterfaceState.xcuserstate b/Noisy.xcodeproj/project.xcworkspace/xcuserdata/rlue.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..0b08bdc3d0a645344691ac5d04112dc4d990e83c GIT binary patch literal 12763 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 TKWk5HNyKk%TtsMz`lbIrzBc#p literal 0 HcmV?d00001 diff --git a/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Create Zip.xcscheme b/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Create Zip.xcscheme new file mode 100644 index 0000000..a917e52 --- /dev/null +++ b/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Create Zip.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Noisy.xcscheme b/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Noisy.xcscheme new file mode 100644 index 0000000..481a927 --- /dev/null +++ b/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/Noisy.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/xcschememanagement.plist b/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..ebc3fc1 --- /dev/null +++ b/Noisy.xcodeproj/xcuserdata/rlue.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + Create Zip.xcscheme + + orderHint + 1 + + Noisy.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 556725530E57EBB300327D19 + + primary + + + 8D1107260486CEB800E47090 + + primary + + + + + diff --git a/Resources/English.lproj/MainMenu.xib b/Resources/English.lproj/MainMenu.xib index b82fdf1..f4f3783 100644 --- a/Resources/English.lproj/MainMenu.xib +++ b/Resources/English.lproj/MainMenu.xib @@ -1,1378 +1,17 @@ - - - - 1050 - 10F569 - 783 - 1038.29 - 461.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 783 - - - YES - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES - - NoisyApp - - - FirstResponder - - - NSApplication - - - MainMenu - - YES - - - Noisy - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - Noisy - - YES - - - About Noisy - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide Noisy - h - 1048576 - 2147483647 - - - - - - Hide Others - - 1048576 - 2147483647 - - - - - - Show All - 1 - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit Noisy - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - - Window - - - YES - - - Close Window - w - 1048576 - 2147483647 - - - - - - Minimize - m - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 1048576 - 2147483647 - - - submenuAction: - - - Help - - - YES - - - About the “Colors” of Noise - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Noisy Website - - 1048576 - 2147483647 - - - - - - - - _NSMainMenu - - - 263 - 2 - {{570, 471}, {230, 60}} - 611844096 - - NSWindow - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - {{10, 30}, {210, 25}} - - YES - - -2080244224 - 0 - - LucidaGrande - 13 - 16 - - - - YES - - Off - 0 - - - White - 1 - 0 - - - Pink - 2 - 0 - - - Brown - 3 - YES - 0 - - - 3 - 2 - - - - - 268 - {{8, 5}, {214, 21}} - - YES - - -2079981824 - 0 - - - Helvetica - 12 - 16 - - - 1 - 0.0 - 1 - 0.0 - 0 - 1 - NO - NO - - - - {230, 60} - - {{0, 0}, {1280, 778}} - {3.40282e+38, 3.40282e+38} - NoisyWindow - - - NoisyApp - - - - - YES - - - openNoisyWebsite: - - - - 271 - - - - selectedTag: noiseType - - - - - - selectedTag: noiseType - selectedTag - noiseType - 2 - - - 292 - - - - value: volume - - - - - - value: volume - value - volume - 2 - - - 293 - - - - oWindow - - - - 295 - - - - hide: - - - - 299 - - - - terminate: - - - - 300 - - - - miniaturizeAll: - - - - 301 - - - - hideOtherApplications: - - - - 302 - - - - orderFrontStandardAboutPanel: - - - - 303 - - - - delegate - - - - 305 - - - - orderOut: - - - - 309 - - - - makeKeyAndOrderFront: - - - - 310 - - - - delegate - - - - 312 - - - - openAboutNoiseColors: - - - - 313 - - - - - YES - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - MainMenu - - - 19 - - - YES - - - - - - 24 - - - YES - - - - - - - - - 5 - - - - - 23 - - - - - 92 - - - - - 56 - - - YES - - - - - - 57 - - - YES - - - - - - - - - - - - 58 - - - - - 134 - - - - - 136 - - - - - 145 - - - - - 149 - - - - - 150 - - - - - 231 - - - - - 103 - - - YES - - - - - - 106 - - - YES - - - - - - - - 270 - - - - - 276 - - - - - 278 - - - - - 240 - - - YES - - - - Window - - - 241 - - - YES - - - - - - - 242 - - - YES - - - - - - 244 - - - YES - - - - - - 283 - - - - - 284 - - - - - 291 - - - NoisyApp - - - 307 - - - - - - - YES - - YES - -3.IBPluginDependency - -3.ImportedFromIB2 - 103.IBPluginDependency - 103.ImportedFromIB2 - 106.IBEditorWindowLastContentRect - 106.IBPluginDependency - 106.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 231.IBPluginDependency - 231.ImportedFromIB2 - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 240.IBEditorWindowLastContentRect - 240.IBPluginDependency - 240.IBWindowTemplateEditedContentRect - 240.ImportedFromIB2 - 240.NSWindowTemplate.visibleAtLaunch - 241.IBPluginDependency - 241.ImportedFromIB2 - 242.IBPluginDependency - 242.ImportedFromIB2 - 244.IBPluginDependency - 244.ImportedFromIB2 - 270.IBPluginDependency - 270.ImportedFromIB2 - 276.IBPluginDependency - 276.ImportedFromIB2 - 278.IBPluginDependency - 278.ImportedFromIB2 - 283.IBPluginDependency - 283.IBSegmentedControlInspectorSelectedSegmentMetadataKey - 284.IBPluginDependency - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 307.IBPluginDependency - 5.IBPluginDependency - 5.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 58.IBPluginDependency - 58.ImportedFromIB2 - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{976, 783}, {253, 53}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{905, 763}, {194, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{381, 534}, {230, 60}} - com.apple.InterfaceBuilder.CocoaPlugin - {{381, 534}, {230, 60}} - - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{834, 836}, {203, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{846, 713}, {159, 123}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - - YES - - - - - YES - - - YES - - - - 313 - - - - YES - - FirstResponder - NSObject - - IBUserSource - - - - - NoisyApp - NSApplication - - YES - - YES - openAboutNoiseColors: - openNoisyWebsite: - - - YES - id - id - - - - YES - - YES - openAboutNoiseColors: - openNoisyWebsite: - - - YES - - openAboutNoiseColors: - id - - - openNoisyWebsite: - id - - - - - oWindow - NSWindow - - - oWindow - - oWindow - NSWindow - - - - IBProjectSource - Source/NoisyApp.h - - - - NoisyApp - NSApplication - - IBUserSource - - - - - - YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSSegmentedCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSegmentedCell.h - - - - NSSegmentedControl - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSegmentedControl.h - - - - NSSlider - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSlider.h - - - - NSSliderCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSliderCell.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../../Noisy.xcodeproj - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - - - YES - {9, 8} - {7, 2} - - - - + + + + + + + + + + + + + + + + + diff --git a/Resources/Info.plist b/Resources/Info.plist index f6a9904..ecad3d4 100644 --- a/Resources/Info.plist +++ b/Resources/Info.plist @@ -24,6 +24,8 @@ YES NSMainNibFile MainMenu + LSUIElement + NSPrincipalClass NoisyApp diff --git a/Source/NoisyApp.h b/Source/NoisyApp.h index feb9885..0229497 100644 --- a/Source/NoisyApp.h +++ b/Source/NoisyApp.h @@ -38,14 +38,12 @@ int previousNoiseType; // Saves the noise type during 'mute' } -- (IBAction)openAboutNoiseColors:(id)sender; -- (IBAction)openNoisyWebsite:(id)sender; +@property (strong, nonatomic) NSStatusItem *statusItem; +@property (assign, nonatomic) BOOL darkModeOn; - (double)volume; - (void)setVolume:(double)newVolume; - (int)noiseType; - (void)setNoiseType:(int)newNoiseType; -- (void)toggleMute; - @end diff --git a/Source/NoisyApp.m b/Source/NoisyApp.m index a3290ad..e855ccc 100644 --- a/Source/NoisyApp.m +++ b/Source/NoisyApp.m @@ -39,11 +39,11 @@ @implementation NoisyApp + (void)initialize { NSMutableDictionary *defaults = [NSMutableDictionary dictionary]; - + [defaults setObject:[NSNumber numberWithInteger:BrownNoiseType] forKey:sNoiseTypeKeyPath]; [defaults setObject:[NSNumber numberWithInteger:BrownNoiseType] forKey:sNoiseTypeKeyPath]; [defaults setObject:[NSNumber numberWithDouble:0.2] forKey:sNoiseVolumeKeyPath]; - + [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; } @@ -64,9 +64,9 @@ - (void)awakeFromNib - (void)dealloc { [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self]; - + [_generator release]; - + [super dealloc]; } @@ -101,93 +101,111 @@ - (void)setNoiseType:(int)newNoiseType { [_generator setType:newNoiseType]; } -- (void)toggleMute { - if ([self noiseType] != NoNoiseType) { - [self setNoiseType:NoNoiseType]; - } - else { - [self setNoiseType:previousNoiseType]; - } -} - - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - [oWindow setReleasedWhenClosed:NO]; + [self setupStatusMenu]; } -- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag +- (id)setupStatusMenu { - [oWindow makeKeyAndOrderFront:self]; - return YES; + self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; + _statusItem.image = [NSImage imageNamed:@"statusbar_icon.png"]; + [_statusItem.image setTemplate:YES]; // Set blue bg when clicked & enable inverted colors in Dark Mode + + NSMenu *menu = [[NSMenu alloc] init]; + NSArray *menuItems = [self menuItems]; + + for(int i = 0; i < [menuItems count]; i++) { + [menu addItem:[menuItems objectAtIndex:i]]; + } + _statusItem.menu = menu; + return _statusItem; } -- (void)handleWorkspaceWillSleepNotification:(NSNotification *)notification +- (id)menuItems { - [[NSUserDefaults standardUserDefaults] setInteger:NoNoiseType forKey:sNoiseTypeKeyPath]; + NSMutableArray *menuItems = [NSMutableArray array]; + + [menuItems addObject:[[NSMenuItem alloc] initWithTitle:@"About Noisy" // About + action:@selector(orderFrontStandardAboutPanel:) + keyEquivalent:@""]]; + [menuItems addObject:[NSMenuItem separatorItem]]; // Divider + [menuItems addObject:[self menuTypesSubmenu]]; // Noise Color + [menuItems addObject:[[NSMenuItem alloc] initWithTitle:@"Volume" // Volume Label + action:nil + keyEquivalent:@""]]; + [menuItems addObject:[self menuVolumeSlider]]; // Volume Slider + [menuItems addObject:[NSMenuItem separatorItem]]; // Divider + [menuItems addObject:[[NSMenuItem alloc] initWithTitle:@"Quit Noisy" // Quit + action:@selector(terminate:) + keyEquivalent:@""]]; + + return menuItems; } -// Intercept events that correspond to keyboard commands -- (void)sendEvent:(NSEvent *)anEvent +- (id)menuTypesSubmenu { - if ([anEvent type] == NSKeyDown) { - NSString *theKeys = [anEvent charactersIgnoringModifiers]; - unichar keyChar = 0; - if ([theKeys length] == 0) { - return; // reject dead keys - } - - if ([theKeys length] == 1) { - keyChar = [theKeys characterAtIndex:0]; - - // CommandanEventshift arrow will set the volume to max or min - if ([anEvent modifierFlags] & NSCommandKeyMask && [anEvent modifierFlags] & NSShiftKeyMask) { - if (keyChar == NSLeftArrowFunctionKey || keyChar == NSDownArrowFunctionKey) { - [self setVolume:sNoiseMinVolume]; - return; - } - if (keyChar == NSRightArrowFunctionKey || keyChar == NSUpArrowFunctionKey) { - [self setVolume:sNoiseMaxVolume]; - return; - } - } - - // Anything else with an arrow will nudge the volume up or down - if (keyChar == NSLeftArrowFunctionKey || keyChar == NSDownArrowFunctionKey) { - [self setVolume:[self volume] - sNoiseVolumeStepSize]; - return; - } - if (keyChar == NSRightArrowFunctionKey || keyChar == NSUpArrowFunctionKey) { - [self setVolume:[self volume] + sNoiseVolumeStepSize]; - return; - } - - //Spacebar toggles mute. - if ([anEvent keyCode] == 49) { - [self toggleMute]; - return; - } - } + NSMenuItem *menuTypes = [[NSMenuItem alloc] init]; + NSMenu *menuTypesSubmenu = [[NSMenu alloc] init]; + + NSMutableArray *submenuItems = [NSMutableArray array]; + NSArray *submenuLabels = @[@"White", @"Pink", @"Brown"]; + NSInteger *submenuTags[3] = {WhiteNoiseType, PinkNoiseType, BrownNoiseType}; + + for(int i = 0; i < [submenuLabels count]; i++) { + [submenuItems addObject:[[NSMenuItem alloc] initWithTitle:[submenuLabels objectAtIndex:i] + action:@selector(setTypeAction:) + keyEquivalent:@""]]; + [[submenuItems objectAtIndex:i] setTag:submenuTags[i]]; + [menuTypesSubmenu addItem:[submenuItems objectAtIndex:i]]; } - [super sendEvent:anEvent]; + menuTypes.title = @"Noise Color"; + menuTypes.submenu = menuTypesSubmenu; + return menuTypes; } -#pragma mark - -#pragma mark IBActions +- (id)menuVolumeSlider +{ + NSMenuItem *menuVol = [[NSMenuItem alloc] init]; + NSSlider *slider = [[NSSlider alloc] init]; + + slider.frame = NSMakeRect ( 0, 0, 180, 20 ); // FIX ME – slider is not centered! + slider.action = @selector(setVolumeAction:); + slider.doubleValue = 0.2; + slider.minValue = 0.0; + slider.maxValue = 1.0; + + menuVol.view = slider; + return menuVol; +} -- (IBAction)openAboutNoiseColors:(id)sender +- (BOOL)validateMenuItem:(NSMenuItem*)menuItem { - NSURL *url = [NSURL URLWithString:@"http://en.wikipedia.org/wiki/Colors_of_noise"]; - [[NSWorkspace sharedWorkspace] openURL:url]; + if ([menuItem action] == @selector(setTypeAction:)) + [menuItem setState:([menuItem tag] == [self noiseType]) ? NSOnState : NSOffState]; + return YES; } +- (void)setTypeAction:(id)sender { + [self setNoiseType:[sender tag]]; + [self validateMenuItem:sender]; +} -- (IBAction)openNoisyWebsite:(id)sender +- (void)setVolumeAction:(id)sender { + [_generator setVolume:[sender doubleValue]]; +} + +- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag { - NSURL *url = [NSURL URLWithString:@"http://github.com/jonshea/Noisy"]; - [[NSWorkspace sharedWorkspace] openURL:url]; + [oWindow makeKeyAndOrderFront:self]; + return YES; } +- (void)handleWorkspaceWillSleepNotification:(NSNotification *)notification +{ + [[NSUserDefaults standardUserDefaults] setInteger:NoNoiseType forKey:sNoiseTypeKeyPath]; +} #pragma mark - #pragma mark AppleScript @@ -196,7 +214,7 @@ - (id) scriptNoiseType { NoiseType type = [[NSUserDefaults standardUserDefaults] integerForKey:sNoiseTypeKeyPath]; OSType scriptType; - + if (type == WhiteNoiseType) { scriptType = 'Nwht'; } else if (type == PinkNoiseType) { @@ -204,7 +222,7 @@ - (id) scriptNoiseType } else { scriptType = 'Nnon'; } - + return [[[NSNumber alloc] initWithUnsignedInteger:scriptType] autorelease]; } @@ -223,7 +241,7 @@ - (void)setScriptNoiseType:(id)scriptTypeAsNumber } else { type = NoNoiseType; } - + [[NSUserDefaults standardUserDefaults] setInteger:type forKey:sNoiseTypeKeyPath]; } @@ -239,11 +257,11 @@ - (id)scriptVolume - (void)setScriptVolume:(id)volumeAsNumber { double volume = [volumeAsNumber doubleValue]; - + volume /= 100.0; if (volume > 100.0) volume = 100.0; if (volume < 0.0) volume = 0.0; - + [[NSUserDefaults standardUserDefaults] setDouble:volume forKey:sNoiseVolumeKeyPath]; } diff --git a/statusbar_icon.png b/statusbar_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0c784787132536ef7dd2c55ecd79ae7ea7cd00d2 GIT binary patch literal 18782 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 A_y7O^ literal 0 HcmV?d00001 From 0956a65eaf1b45b2e3d14ab507c048bf70e861aa Mon Sep 17 00:00:00 2001 From: Ryan Lue Date: Thu, 19 Jan 2017 00:39:03 +0800 Subject: [PATCH 2/2] Fixed various compile errors --- Noisy.xcodeproj/project.pbxproj | 17 +++++++++-------- .../UserInterfaceState.xcuserstate | Bin 12763 -> 13912 bytes Resources/Info.plist | 6 +++--- Source/NoiseGenerator.m | 6 +++--- Source/NoisyApp.h | 1 - Source/NoisyApp.m | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Noisy.xcodeproj/project.pbxproj b/Noisy.xcodeproj/project.pbxproj index 9a3494b..55f3656 100644 --- a/Noisy.xcodeproj/project.pbxproj +++ b/Noisy.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ @@ -189,6 +189,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { + LastUpgradeCheck = 0700; TargetAttributes = { 8D1107260486CEB800E47090 = { SystemCapabilities = { @@ -200,7 +201,7 @@ }; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Noisy" */; - compatibilityVersion = "Xcode 3.0"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( @@ -352,9 +353,9 @@ C01FCF4B08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; CODE_SIGN_ENTITLEMENTS = Noisy.entitlements; CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; @@ -365,6 +366,7 @@ INFOPLIST_FILE = Resources/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.rathertremendous.noisy; PRODUCT_NAME = Noisy; SDKROOT = macosx; VALID_ARCHS = "ppc i386 x86_64"; @@ -376,15 +378,16 @@ C01FCF4C08A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; CODE_SIGN_ENTITLEMENTS = Noisy.entitlements; CODE_SIGN_IDENTITY = "-"; + COMBINE_HIDPI_IMAGES = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Source/Noisy.pch; INFOPLIST_FILE = Resources/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_BUNDLE_IDENTIFIER = com.rathertremendous.noisy; PRODUCT_NAME = Noisy; SDKROOT = macosx; VALID_ARCHS = "ppc i386 x86_64"; @@ -395,8 +398,10 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ENABLE_TESTABILITY = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; PREBINDING = NO; SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; }; @@ -405,10 +410,6 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - ppc, - i386, - ); GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; PREBINDING = NO; diff --git a/Noisy.xcodeproj/project.xcworkspace/xcuserdata/rlue.xcuserdatad/UserInterfaceState.xcuserstate b/Noisy.xcodeproj/project.xcworkspace/xcuserdata/rlue.xcuserdatad/UserInterfaceState.xcuserstate index 0b08bdc3d0a645344691ac5d04112dc4d990e83c..bd51fc81acb9061b159c36c8cfba92a93667246b 100644 GIT binary patch delta 7968 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 delta 6997 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 Noisy CFBundleIdentifier - com.rathertremendous.noisy + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -20,12 +20,12 @@ ???? CFBundleVersion 1.3 + LSUIElement + NSAppleScriptEnabled YES NSMainNibFile MainMenu - LSUIElement - NSPrincipalClass NoisyApp diff --git a/Source/NoiseGenerator.m b/Source/NoiseGenerator.m index 1a835e0..f721cec 100644 --- a/Source/NoiseGenerator.m +++ b/Source/NoiseGenerator.m @@ -130,18 +130,18 @@ - (void) startAudio _isPlaying = YES; OSStatus err = AudioQueueNewOutput(&description, sAudioQueueOutputCallback, self, CFRunLoopGetCurrent(), kCFRunLoopCommonModes, 0, &_queue); - if (err) { NSLog(@"AudioQueueNewOutput returned %d", err); return; } + if (err) { NSLog(@"AudioQueueNewOutput returned %d", (int)err); return; } NSUInteger i; for (i = 0; i < kNumberOfBuffers; i++) { err = AudioQueueAllocateBuffer(_queue, kBytesPerBuffer, &_buffer[i]); - if (err) { NSLog(@"AudioQueueAllocateBuffer returned %d", err); return; } + if (err) { NSLog(@"AudioQueueAllocateBuffer returned %d", (int)err); return; } [self _processBuffer:_buffer[i]]; } err = AudioQueueStart(_queue, NULL); - if (err) { NSLog(@"AudioQueueStart returned %d", err); return; } + if (err) { NSLog(@"AudioQueueStart returned %d", (int)err); return; } } } diff --git a/Source/NoisyApp.h b/Source/NoisyApp.h index 0229497..98c8fbe 100644 --- a/Source/NoisyApp.h +++ b/Source/NoisyApp.h @@ -39,7 +39,6 @@ } @property (strong, nonatomic) NSStatusItem *statusItem; -@property (assign, nonatomic) BOOL darkModeOn; - (double)volume; - (void)setVolume:(double)newVolume; diff --git a/Source/NoisyApp.m b/Source/NoisyApp.m index e855ccc..e342c94 100644 --- a/Source/NoisyApp.m +++ b/Source/NoisyApp.m @@ -108,7 +108,7 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification - (id)setupStatusMenu { - self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; + self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; _statusItem.image = [NSImage imageNamed:@"statusbar_icon.png"]; [_statusItem.image setTemplate:YES]; // Set blue bg when clicked & enable inverted colors in Dark Mode