#import "PreferencesController.h"
-#import "NewMainController.h"
+#import "MainController.h"
#import "HotKeyCenter.h"
#import <ITKit/ITWindowPositioning.h>
[self setupMenuItems]; // Setup the arrays of menu items
[self setupUI]; // Sets up additional UI
[window setDelegate:self];
+ [menuTableView reloadData];
+
+ //Change the launch player checkbox to the proper name
+ [launchPlayerAtLaunchCheckbox setTitle:[NSString stringWithFormat:@"Launch %@ when MenuTunes launches", [[controller currentRemote] playerSimpleName]]]; //This isn't localized...
}
[window setLevel:NSStatusWindowLevel];
- (IBAction)changeHotKey:(id)sender
{
+ [controller clearHotKeys];
switch ([sender tag])
{
case 4010:
id anItem;
[df setObject:[NSArray arrayWithObjects:
- @"Play/Pause",
- @"Next Track",
- @"Previous Track",
- @"Fast Forward",
- @"Rewind",
- @"Show Player",
- @"<separator>",
- @"Upcoming Songs",
- @"Playlists",
- @"Song Rating",
- @"<separator>",
- @"Preferences",
- @"Quit",
- @"<separator>",
- @"Current Track Info",
+ @"playPause",
+ @"prevTrack",
+ @"nextTrack",
+ @"fastForward",
+ @"rewind",
+ @"showPlayer",
+ @"separator",
+ @"songRating",
+ @"eqPresets",
+ @"playlists",
+ @"upcomingSongs",
+ @"separator",
+ @"preferences",
+ @"quit",
+ @"separator",
+ @"trackInfo",
nil] forKey:@"menu"];
[df setInteger:5 forKey:@"SongsInAdvance"];
// This is teh sux
// We must fix it so it is no longer suxy
if (!found) {
- if (NSRunInformationalAlertPanel(@"Auto-launch MenuTunes", @"Would you like MenuTunes to automatically launch at login?", @"Yes", @"No", nil) == NSOKButton) {
+ if (NSRunInformationalAlertPanel(NSLocalizedString(@"autolaunch", @"Auto-launch MenuTunes"), NSLocalizedString(@"autolaunch_msg", @"Would you like MenuTunes to automatically launch at login?"), @"Yes", @"No", nil) == NSOKButton) {
AEDesc scriptDesc, resultDesc;
NSString *script = [NSString stringWithFormat:@"tell application \"System Events\"\nmake new login item at end of login items with properties {path:\"%@\", kind:\"APPLICATION\"}\nend tell", [[NSBundle mainBundle] bundlePath]];
ComponentInstance asComponent = OpenDefaultComponent(kOSAComponentType, kAppleScriptSubtype);
if (![combo isEqual:[KeyCombo clearKeyCombo]] &&
[combo isEqual:[hotKeysDictionary objectForKey:enumKey]]) {
[window setLevel:NSNormalWindowLevel];
- if ( NSRunAlertPanel(@"Duplicate Key Combo", @"The specified key combo is already in use...", @"Replace", @"Cancel", nil) ) {
+ if ( NSRunAlertPanel(NSLocalizedString(@"duplicateCombo", @"Duplicate Key Combo") , NSLocalizedString(@"duplicateCombo_msg", @"The specified key combo is already in use..."), NSLocalizedString(@"replace", @"Replace"), NSLocalizedString(@"cancel", @"Cancel"), nil) ) {
[hotKeysDictionary setObject:[KeyCombo clearKeyCombo] forKey:currentHotKey];
if ([enumKey isEqualToString:@"PlayPause"]) {
[playPauseButton setTitle:@""];
if ([currentHotKey isEqualToString:@"PlayPause"]) {
[playPauseButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"PlayPause" combo:combo target:[MainController sharedController] action:@selector(playPause)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"PlayPause" combo:combo target:[MainController sharedController] action:@selector(playPause)];
} else if ([currentHotKey isEqualToString:@"NextTrack"]) {
[nextTrackButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"NextTrack" combo:combo target:[MainController sharedController] action:@selector(nextSong)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"NextTrack" combo:combo target:[MainController sharedController] action:@selector(nextSong)];
} else if ([currentHotKey isEqualToString:@"PrevTrack"]) {
[previousTrackButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"PrevTrack" combo:combo target:[MainController sharedController] action:@selector(prevSong)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"PrevTrack" combo:combo target:[MainController sharedController] action:@selector(prevSong)];
} else if ([currentHotKey isEqualToString:@"ShowPlayer"]) {
[showPlayerButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"ShowPlayer" combo:combo target:[MainController sharedController] action:@selector(showPlayer)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"ShowPlayer" combo:combo target:[MainController sharedController] action:@selector(showPlayer)];
} else if ([currentHotKey isEqualToString:@"TrackInfo"]) {
[trackInfoButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"TrackInfo" combo:combo target:[MainController sharedController] action:@selector(showCurrentTrackInfo)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"TrackInfo" combo:combo target:[MainController sharedController] action:@selector(showCurrentTrackInfo)];
} else if ([currentHotKey isEqualToString:@"UpcomingSongs"]) {
[upcomingSongsButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"UpcomingSongs" combo:combo target:[MainController sharedController] action:@selector(showUpcomingSongs)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"UpcomingSongs" combo:combo target:[MainController sharedController] action:@selector(showUpcomingSongs)];
} else if ([currentHotKey isEqualToString:@"IncrementVolume"]) {
[volumeIncrementButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"IncrementVolume" combo:combo target:[MainController sharedController] action:@selector(incrementVolume)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"IncrementVolume" combo:combo target:[MainController sharedController] action:@selector(incrementVolume)];
} else if ([currentHotKey isEqualToString:@"DecrementVolume"]) {
[volumeDecrementButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"DecrementVolume" combo:combo target:[MainController sharedController] action:@selector(decrementVolume)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"DecrementVolume" combo:combo target:[MainController sharedController] action:@selector(decrementVolume)];
} else if ([currentHotKey isEqualToString:@"IncrementRating"]) {
[ratingIncrementButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"IncrementRating" combo:combo target:[MainController sharedController] action:@selector(incrementRating)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"IncrementRating" combo:combo target:[MainController sharedController] action:@selector(incrementRating)];
} else if ([currentHotKey isEqualToString:@"DecrementRating"]) {
[ratingDecrementButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"DecrementRating" combo:combo target:[MainController sharedController] action:@selector(decrementRating)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"DecrementRating" combo:combo target:[MainController sharedController] action:@selector(decrementRating)];
} else if ([currentHotKey isEqualToString:@"ToggleShuffle"]) {
[toggleShuffleButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"ToggleShuffle" combo:combo target:[MainController sharedController] action:@selector(toggleShuffle)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"ToggleShuffle" combo:combo target:[MainController sharedController] action:@selector(toggleShuffle)];
} else if ([currentHotKey isEqualToString:@"ToggleLoop"]) {
[toggleLoopButton setTitle:string];
- [[HotKeyCenter sharedCenter] addHotKey:@"ToggleLoop" combo:combo target:[MainController sharedController] action:@selector(toggleLoop)];
+ //[[HotKeyCenter sharedCenter] addHotKey:@"ToggleLoop" combo:combo target:[MainController sharedController] action:@selector(toggleLoop)];
}
+ [controller setupHotKeys];
[self cancelHotKey:sender];
}
- (void)setupWindow
{
- if ( ! [NSBundle loadNibNamed:@"Preferences" owner:self] ) {
- NSLog( @"Failed to load Preferences.nib" );
+ if (![NSBundle loadNibNamed:@"Preferences" owner:self]) {
+ NSLog(@"MenuTunes: Failed to load Preferences.nib");
NSBeep();
return;
}
id anItem;
// Set the list of items you can have.
availableItems = [[NSMutableArray alloc] initWithObjects:
- @"Current Track Info",
- @"Upcoming Songs",
- @"Playlists",
- @"EQ Presets",
- @"Song Rating",
- @"Play/Pause",
- @"Next Track",
- @"Previous Track",
- @"Fast Forward",
- @"Rewind",
- @"Show Player",
- @"<separator>",
+ @"trackInfo",
+ @"upcomingSongs",
+ @"playlists",
+ @"eqPresets",
+ @"songRating",
+ @"playPause",
+ @"nextTrack",
+ @"prevTrack",
+ @"fastForward",
+ @"rewind",
+ @"showPlayer",
+ @"separator",
nil];
// Get our preferred menu
// Delete items in the availableItems array that are already part of the menu
itemEnum = [myItems objectEnumerator];
while ( (anItem = [itemEnum nextObject]) ) {
- if ( ! [anItem isEqualToString:@"<separator>"] ) {
+ if (![anItem isEqualToString:@"separator"]) {
[availableItems removeObject:anItem];
}
}
// Items that show should a submenu image
submenuItems = [[NSArray alloc] initWithObjects:
- @"Upcoming Songs",
- @"Playlists",
- @"EQ Presets",
- @"Song Rating",
+ @"upcomingSongs",
+ @"playlists",
+ @"eqPresets",
+ @"songRating",
nil];
}
[songsInAdvance setIntValue:[df integerForKey:@"SongsInAdvance"]];
// Fill in hot key buttons
- if ([df objectForKey:@"PlayPause"]){
+ if ([df objectForKey:@"PlayPause"]) {
anItem = [df keyComboForKey:@"PlayPause"];
[hotKeysDictionary setObject:anItem forKey:@"PlayPause"];
[playPauseButton setTitle:[anItem userDisplayRep]];
if ( flag ) {
NSMutableDictionary *loginwindow;
NSMutableArray *loginarray;
- ComponentInstance temp = OpenDefaultComponent(kOSAComponentType, kAppleScriptSubtype);;
+ ComponentInstance temp = OpenDefaultComponent(kOSAComponentType, kAppleScriptSubtype);
int i;
BOOL skip = NO;
if ([[aTableColumn identifier] isEqualToString:@"name"]) {
NSString *object = [myItems objectAtIndex:rowIndex];
if ([object isEqualToString:@"Show Player"]) {
- return [NSString stringWithFormat:@"Show %@", [[controller currentRemote] playerSimpleName]];
+ return [NSString stringWithFormat:@"%@ %@", NSLocalizedString(@"show", @"Show"), [[controller currentRemote] playerSimpleName]];
}
- return object;
+ return NSLocalizedString(object, @"ERROR");
} else {
if ([submenuItems containsObject:[myItems objectAtIndex:rowIndex]])
{
}
} else {
if ([[aTableColumn identifier] isEqualToString:@"name"]) {
- return [availableItems objectAtIndex:rowIndex];
+ return NSLocalizedString([availableItems objectAtIndex:rowIndex], @"ERROR");
} else {
if ([submenuItems containsObject:[availableItems objectAtIndex:rowIndex]]) {
return [NSImage imageNamed:@"submenu"];
dragData = [pb stringForType:@"MenuTableViewPboardType"];
dragRow = [dragData intValue];
temp = [myItems objectAtIndex:dragRow];
- [myItems removeObjectAtIndex:dragRow];
if (tableView == menuTableView) {
+ [myItems insertObject:temp atIndex:row];
if (row > dragRow) {
- [myItems insertObject:temp atIndex:row - 1];
+ [myItems removeObjectAtIndex:dragRow];
} else {
- [myItems insertObject:temp atIndex:row];
+ [myItems removeObjectAtIndex:dragRow + 1];
}
} else {
- if (![temp isEqualToString:@"<separator>"]) {
+ if (![temp isEqualToString:@"separator"]) {
[availableItems addObject:temp];
}
+ [myItems removeObjectAtIndex:dragRow];
}
} else if ([[pb types] containsObject:@"AllTableViewPboardType"]) {
dragData = [pb stringForType:@"AllTableViewPboardType"];
dragRow = [dragData intValue];
temp = [availableItems objectAtIndex:dragRow];
- if (![temp isEqualToString:@"<separator>"]) {
+ [myItems insertObject:temp atIndex:row];
+
+ if (![temp isEqualToString:@"separator"]) {
[availableItems removeObjectAtIndex:dragRow];
}
- [myItems insertObject:temp atIndex:row];
}
[menuTableView reloadData];