From: Joseph Spiros Date: Wed, 30 Apr 2003 11:22:27 +0000 (+0000) Subject: Adding new MenuController class. Nowhere near being finished... It's not X-Git-Tag: v1.0~116 X-Git-Url: http://git.ithinksw.org/MenuTunes.git/commitdiff_plain/7cd79252cc4ede9035cf21ce21dd3044fd5ec8a1?hp=b81329efb2d0f65e9314c35ff491e6f9a9709dc2 Adding new MenuController class. Nowhere near being finished... It's not even integrated into the main controller yet. Just committing it into CVS so that everyone else can see what I'm up to :) --- diff --git a/MenuController.h b/MenuController.h new file mode 100755 index 0000000..8a5091f --- /dev/null +++ b/MenuController.h @@ -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 + +// 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 index 0000000..86d74c9 --- /dev/null +++ b/MenuController.m @@ -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 )menuItem +{ +} + +@end