#import "ControlsBar.h"
#import "ExtensionsManager.h"
#import "ConvertAndSave.h"
+#import "DebugMessageVisualizer.h"
@implementation VLCMainMenu
static VLCMainMenu *_o_sharedInstance = nil;
/* check whether the user runs OSX with a RTL language */
NSArray* languages = [NSLocale preferredLanguages];
- NSString* preferredLanguage = languages[0];
+ NSString* preferredLanguage = [languages objectAtIndex:0];
if ([NSLocale characterDirectionForLanguage:preferredLanguage] == NSLocaleLanguageDirectionRightToLeft) {
msg_Dbg(VLCIntf, "adapting interface since '%s' is a RTL language", [preferredLanguage UTF8String]);
[mi setTarget:self];
[mi setAction:selector];
[mi setTag:p_item->list.i[i]];
- [mi setRepresentedObject:@(psz_name)];
+ [mi setRepresentedObject:[NSString stringWithUTF8String:psz_name]];
[menu addItem: [mi autorelease]];
if (p_item->value.i == p_item->list.i[i])
[mi setState:NSOnState];
[o_mi_open_net setTitle: _NS("Open Network...")];
[o_mi_open_capture setTitle: _NS("Open Capture Device...")];
[o_mi_open_recent setTitle: _NS("Open Recent")];
+ [o_mi_close_window setTitle: _NS("Close Window")];
[o_mi_open_wizard setTitle: _NS("Streaming/Exporting Wizard...")];
[o_mi_convertandsave setTitle: _NS("Convert / Stream...")];
+ [o_mi_save_playlist setTitle: _NS("Save Playlist...")];
[o_mu_edit setTitle: _NS("Edit")];
[o_mi_cut setTitle: _NS("Cut")];
[o_mi_toggleSidebar setTitle: _NS("Show Sidebar")];
[o_mi_toggleSidebar setState: config_GetInt(VLCIntf, "macosx-show-sidebar")];
[o_mu_playlistTableColumns setTitle: _NS("Playlist Table Columns")];
+ [o_mi_playlistTableColumns setTitle: _NS("Playlist Table Columns")];
[o_mu_controls setTitle: _NS("Playback")];
[o_mi_play setTitle: _NS("Play")];
[o_mi_mute setTitle: _NS("Mute")];
[o_mi_audiotrack setTitle: _NS("Audio Track")];
[o_mu_audiotrack setTitle: _NS("Audio Track")];
- [o_mi_channels setTitle: _NS("Audio Channels")];
- [o_mu_channels setTitle: _NS("Audio Channels")];
+ [o_mi_channels setTitle: _NS("Stereo audio mode")];
+ [o_mu_channels setTitle: _NS("Stereo audio mode")];
[o_mi_device setTitle: _NS("Audio Device")];
[o_mu_device setTitle: _NS("Audio Device")];
[o_mi_visual setTitle: _NS("Visualizations")];
[o_mi_teletext_blue setTitle: _NS("Blue")];
[o_mu_window setTitle: _NS("Window")];
- [o_mi_minimize setTitle: _NS("Minimize Window")];
- [o_mi_close_window setTitle: _NS("Close Window")];
+ [o_mi_minimize setTitle: _NS("Minimize")];
+ [o_mi_zoom_window setTitle: _NS("Zoom")];
[o_mi_player setTitle: _NS("Player...")];
[o_mi_controller setTitle: _NS("Main Window...")];
[o_mi_audioeffects setTitle: _NS("Audio Effects...")];
NSMenuItem *o_mi_tmp;
NSUInteger count = [o_ptc_menuorder count];
for (NSUInteger i = 0; i < count; i++) {
- NSString *o_title = [o_ptc_translation_dict objectForKey:o_ptc_menuorder[i]];
+ NSString *o_title = [o_ptc_translation_dict objectForKey:[o_ptc_menuorder objectAtIndex:i]];
o_mi_tmp = [o_mu_playlistTableColumns addItemWithTitle:o_title
action:@selector(togglePlaylistColumnTable:)
keyEquivalent:@""];
/* don't set a valid target for the title column selector, since we want it to be disabled */
- if (![o_ptc_menuorder[i] isEqualToString: TITLE_COLUMN])
+ if (![[o_ptc_menuorder objectAtIndex:i] isEqualToString: TITLE_COLUMN])
[o_mi_tmp setTarget:self];
[o_mi_tmp setTag:i];
action:@selector(togglePlaylistColumnTable:)
keyEquivalent:@""];
/* don't set a valid target for the title column selector, since we want it to be disabled */
- if (![o_ptc_menuorder[i] isEqualToString: TITLE_COLUMN])
+ if (![[o_ptc_menuorder objectAtIndex:i] isEqualToString: TITLE_COLUMN])
[o_mi_tmp setTarget:self];
[o_mi_tmp setTag:i];
}
NSArray *menuitems_array = [the_menu itemArray];
NSUInteger menuItemCount = [menuitems_array count];
for (NSUInteger i=0; i < menuItemCount; i++) {
- NSMenuItem *one_item = menuitems_array[i];
+ NSMenuItem *one_item = [menuitems_array objectAtIndex:i];
if ([one_item hasSubmenu])
[self releaseRepresentedObjects: [one_item submenu]];
[self setupVarMenuItem: o_mi_deinterlace_mode target: (vlc_object_t *)p_vout
var: "deinterlace-mode" selector: @selector(toggleVar:)];
-#if 1
- [self setupVarMenuItem: o_mi_ffmpeg_pp target:
- (vlc_object_t *)p_vout var:"postprocess" selector:
- @selector(toggleVar:)];
-#endif
+ [self setupVarMenuItem: o_mi_ffmpeg_pp target: (vlc_object_t *)p_vout
+ var:"postprocess" selector: @selector(toggleVar:)];
+
vlc_object_release(p_vout);
[self refreshVoutDeviceMenu:nil];
[o_mitem setTarget: self];
NSRect s_rect;
for (NSUInteger i = 0; i < count; i++) {
- s_rect = [o_screens[i] frame];
+ s_rect = [[o_screens objectAtIndex:i] frame];
[o_submenu addItemWithTitle: [NSString stringWithFormat: @"%@ %li (%ix%i)", _NS("Screen"), i+1,
(int)s_rect.size.width, (int)s_rect.size.height] action:@selector(toggleFullscreenDevice:) keyEquivalent:@""];
o_mitem = [o_submenu itemAtIndex:i+1];
- [o_mitem setTag: (int)[o_screens[i] displayID]];
+ [o_mitem setTag: (int)[[o_screens objectAtIndex:i] displayID]];
[o_mitem setEnabled: YES];
[o_mitem setTarget: self];
}
{
BOOL b_value = !config_GetInt(VLCIntf, "macosx-show-playback-buttons");
config_PutInt(VLCIntf, "macosx-show-playback-buttons", b_value);
+
[[[[VLCMain sharedInstance] mainWindow] controlsBar] toggleJumpButtons];
+ [[[VLCMain sharedInstance] voutController] updateWindowsUsingBlock:^(VLCVideoWindowCommon *o_window) {
+ [[o_window controlsBar] toggleForwardBackwardMode: b_value];
+ }];
+
[o_mi_toggleJumpButtons setState: b_value];
}
[[o_mu_playlistTableColumns itemWithTag: i_tag] setState: i_new_state];
[[o_mu_playlistTableColumnsContextMenu itemWithTag: i_tag] setState: i_new_state];
- NSString *o_column = o_ptc_menuorder[i_tag];
+ NSString *o_column = [o_ptc_menuorder objectAtIndex:i_tag];
[[[VLCMain sharedInstance] playlist] setColumn: o_column state: i_new_state translationDict: o_ptc_translation_dict];
}
NSMenuItem * o_mi_tmp;
for (NSUInteger x = 0; x < n; x++) {
- o_mi_tmp = [o_mu_device addItemWithTitle:[NSString stringWithFormat:@"%s", names[x]] action:@selector(toggleAudioDevice:) keyEquivalent:@""];
+ o_mi_tmp = [o_mu_device addItemWithTitle:toNSStr(names[x]) action:@selector(toggleAudioDevice:) keyEquivalent:@""];
[o_mi_tmp setTarget:self];
[o_mi_tmp setTag:[[NSString stringWithFormat:@"%s", ids[x]] intValue]];
}
}
char *path = input_item_GetURI(p_item);
+
if (!path)
path = strdup("");
[openPanel setCanChooseFiles: YES];
[openPanel setCanChooseDirectories: NO];
[openPanel setAllowsMultipleSelection: YES];
- [openPanel setAllowedFileTypes: @[@"cdg",@"@idx",@"srt",@"sub",@"utf",@"ass",@"ssa",@"aqt",@"jss",@"psb",@"rt",@"smi",@"txt",@"smil"]];
- [openPanel setDirectoryURL:[NSURL fileURLWithPath:[@(path) stringByExpandingTildeInPath]]];
- i_returnValue = [openPanel runModal];
+
+ [openPanel setAllowedFileTypes: [NSArray arrayWithObjects:@"cdg",@"idx",@"srt",@"sub",@"utf",@"ass",@"ssa",@"aqt",@"jss",@"psb",@"rt",@"smi",@"txt",@"smil",nil]];
+
+ NSURL *o_url = [NSURL URLWithString:[[NSString stringWithUTF8String:path] stringByExpandingTildeInPath]];
+ o_url = [o_url URLByDeletingLastPathComponent];
+ [openPanel setDirectoryURL: o_url];
free(path);
+ i_returnValue = [openPanel runModal];
+
if (i_returnValue == NSOKButton) {
NSUInteger c = 0;
if (!p_input)
c = [[openPanel URLs] count];
for (int i = 0; i < c ; i++) {
- msg_Dbg(VLCIntf, "loading subs from %s", [[[openPanel URLs][i] path] UTF8String]);
- if (input_AddSubtitle(p_input, [[[openPanel URLs][i] path] UTF8String], TRUE))
+ msg_Dbg(VLCIntf, "loading subs from %s", [[[[openPanel URLs] objectAtIndex:i] path] UTF8String]);
+ if (input_AddSubtitle(p_input, [[[[openPanel URLs] objectAtIndex:i] path] UTF8String], TRUE))
msg_Warn(VLCIntf, "unable to load subtitles from '%s'",
- [[[openPanel URLs][i] path] UTF8String]);
+ [[[[openPanel URLs] objectAtIndex:i] path] UTF8String]);
}
}
vlc_object_release(p_input);
- (IBAction)switchSubtitleOption:(id)sender
{
- vlc_object_t *p_freetype;
- p_freetype = (vlc_object_t *) vlc_object_find_name(pl_Get(VLCIntf), "freetype");
int intValue = [sender tag];
NSString *representedObject = [sender representedObject];
- if (p_freetype) {
- var_SetInteger(p_freetype, [representedObject UTF8String], intValue);
- NSMenu *menu = [sender menu];
- NSUInteger count = [menu numberOfItems];
- for (NSUInteger x = 0; x < count; x++)
- [[menu itemAtIndex:x] setState:NSOffState];
- [[menu itemWithTag:intValue] setState:NSOnState];
- vlc_object_release(p_freetype);
- }
- config_PutInt(p_freetype, [representedObject UTF8String], intValue);
+ config_PutInt(p_intf, [representedObject UTF8String], intValue);
+
+ NSMenu *menu = [sender menu];
+ NSUInteger count = [menu numberOfItems];
+ for (NSUInteger x = 0; x < count; x++)
+ [[menu itemAtIndex:x] setState:NSOffState];
+ [[menu itemWithTag:intValue] setState:NSOnState];
}
- (IBAction)switchSubtitleBackgroundOpacity:(id)sender
{
- vlc_object_t *p_freetype;
- p_freetype = (vlc_object_t *) vlc_object_find_name(pl_Get(VLCIntf), "freetype");
- int intValue = [sender intValue];
-
- if (p_freetype) {
- var_SetInteger(p_freetype, "freetype-background-opacity", intValue);
- vlc_object_release(p_freetype);
- }
- config_PutInt(p_freetype, "freetype-background-opacity", intValue);
+ config_PutInt(p_intf, "freetype-background-opacity", [sender intValue]);
}
- (IBAction)telxTransparent:(id)sender
[[[VLCMain sharedInstance] wizard] showWizard];
}
+- (IBAction)savePlaylist:(id)sender
+{
+ [[[VLCMain sharedInstance] playlist] savePlaylist:sender];
+}
+
- (IBAction)showConvertAndSave:(id)sender
{
if (o_convertandsave == nil)
[[[VLCMain sharedInstance] simplePreferences] showSimplePrefsWithLevel:i_level];
}
+- (IBAction)showMessagesPanel:(id)showMessagesPanel
+{
+ [[VLCDebugMessageVisualizer sharedInstance] showPanel];
+}
+
+- (IBAction)showMainWindow:(id)sender
+{
+ [[VLCMainWindow sharedInstance] makeKeyAndOrderFront:sender];
+}
+
+- (IBAction)showPlaylist:(id)sender
+{
+ [[VLCMainWindow sharedInstance] changePlaylistState: psUserMenuEvent];
+}
+
#pragma mark -
#pragma mark Help and Docs
break;
default:
/* Variable doesn't exist or isn't handled */
+ msg_Warn(p_object, "variable %s doesn't exist or isn't handled", psz_variable);
return;
}
return;
}
- if (var_Get(p_object, psz_variable, &val) < 0) {
+ if (var_Get(p_object, psz_variable, &val) < 0)
return;
- }
VLCAutoGeneratedMenuContent *o_data;
switch(i_type & VLC_VAR_TYPE) {