Adding new MenuController class. Nowhere near being finished... It's not
authorJoseph Spiros <joseph.spiros@ithinksw.com>
Wed, 30 Apr 2003 11:22:27 +0000 (11:22 +0000)
committerJoseph Spiros <joseph.spiros@ithinksw.com>
Wed, 30 Apr 2003 11:22:27 +0000 (11:22 +0000)
even integrated into the main controller yet. Just committing it into CVS
so that everyone else can see what I'm up to :)

MenuController.h [new file with mode: 0755]
MenuController.m [new file with mode: 0755]

diff --git a/MenuController.h b/MenuController.h
new file mode 100755 (executable)
index 0000000..8a5091f
--- /dev/null
@@ -0,0 +1,49 @@
+//
+//  MenuController.h
+//  MenuTunes
+//
+//  Created by Joseph Spiros on Wed Apr 30 2003.
+//  Copyright (c) 2003 iThink Software. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+// Internal: To be used with NSMenuItems as their tag, for use with the NSMenuValidation stuff.
+// Also will be used in supplying the controller with the layout to use for the MenuItems, unless
+// we have the controller read the prefs itself.
+typedef enum {
+    MTMenuSeperator = -1,
+    MTMenuTrackInfoHeader,
+    MTMenuTrackInfoTitle,
+    MTMenuTrackInfoAlbum,
+    MTMenuTrackInfoArtist,
+    MTMenuTrackInfoTrackTime,
+    MTMenuTrackInfoTrackNumber,
+    MTMenuTrackInfoRating,
+    MTMenuRatingMenu,
+    MTMenuPlaylistMenu,
+    MTMenuEqualizerMenu,
+    MTMenuUpcomingSongsMenu,
+    // MTMenuBrowseMenu,
+    // MTMenuVolumeMenu,
+    // MTMenuSourceMenu,
+    MTMenuPlayPauseItem,
+    MTMenuFastForwardItem,
+    MTMenuRewindItem,
+    MTMenuPreviousTrackItem,
+    MTMenuNextTrackItem,
+    MTMenuPreferencesItem,
+    MTMenuQuitItem
+} MTMenuItemTag;
+
+@interface MenuController : NSObject
+{
+    NSMutableArray *_menuLayout;
+}
+
+- (NSMenu *)menu;
+
+// - (NSArray *)menuLayout;
+// - (void)setMenuLayout:(NSArray *)newLayoutArray;
+
+@end
diff --git a/MenuController.m b/MenuController.m
new file mode 100755 (executable)
index 0000000..86d74c9
--- /dev/null
@@ -0,0 +1,77 @@
+//
+//  MenuController.m
+//  MenuTunes
+//
+//  Created by Joseph Spiros on Wed Apr 30 2003.
+//  Copyright (c) 2003 iThink Software. All rights reserved.
+//
+
+#import "MenuController.h"
+
+
+@implementation MenuController
+
+- (NSMenu *)menu
+{
+    // dynamically create menu from supplied data and layout information.
+    // ...
+    // right before returning the menu, set the created menu to instance variable _currentMenu.
+}
+
+- (void)performMainMenuAction:(id)sender
+{
+    switch ( [sender tag] )
+    {
+        case MTMenuPlayPauseItem:
+            NSLog(@"MenuController: Play/Pause");
+            break;
+        case MTMenuFastForwardItem:
+            NSLog(@"MenuController: Fast Forward");
+            break;
+        case MTMenuRewindItem:
+            NSLog(@"MenuController: Rewind");
+            break;
+        case MTMenuPreviousTrackItem:
+            NSLog(@"MenuController: Previous Track");
+            break;
+        case MTMenuNextTrackItem:
+            NSLog(@"MenuController: Next Track");
+            break;
+        case MTMenuPreferencesItem:
+            NSLog(@"MenuController: Preferences...");
+            break;
+        case MTMenuQuitItem:
+            NSLog(@"MenuController: Quit");
+            break;
+        default:
+            NSLog(@"MenuController: Unimplemented Menu Item OR Child-bearing Menu Item");
+            break;
+    }
+}
+
+- (void)performRatingMenuAction
+{
+}
+
+- (void)performPlaylistMenuAction
+{
+}
+
+- (void)performEqualizerMenuAction
+{
+}
+
+- (void)performUpcomingSongsMenuAction
+{
+}
+
+- (void)updateMenu
+{
+    [_currentMenu update];
+}
+
+- (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem
+{
+}
+
+@end