if( nib_main_loaded ) return;
[self initStrings];
- [o_window setExcludedFromWindowsMenu: TRUE];
- [o_msgs_panel setExcludedFromWindowsMenu: TRUE];
+
+ [o_window setExcludedFromWindowsMenu: YES];
+ [o_msgs_panel setExcludedFromWindowsMenu: YES];
[o_msgs_panel setDelegate: self];
i_key = config_GetInt( p_intf, "key-quit" );
nib_main_loaded = TRUE;
}
+#pragma mark Toolbar delegate
+/* Our item identifiers */
+static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl";
+
+- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar
+{
+ NSLog(@"toolbarAllowedItemIdentifiers %s", __func__);
+
+ return [NSArray arrayWithObjects:
+// NSToolbarCustomizeToolbarItemIdentifier,
+// NSToolbarFlexibleSpaceItemIdentifier,
+// NSToolbarSpaceItemIdentifier,
+// NSToolbarSeparatorItemIdentifier,
+ VLCToolbarMediaControl,
+ nil ];
+}
+
+- (NSArray *) toolbarDefaultItemIdentifiers: (NSToolbar *) toolbar
+{
+ NSLog(@"toolbarAllowedItemIdentifiers %s", __func__);
+
+ return [NSArray arrayWithObjects:
+ VLCToolbarMediaControl,
+ nil ];
+}
+
+- (NSToolbarItem *) toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag
+{
+ NSLog(@"toolbarAllowedItemIdentifiers %s", __func__);
+ NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier] autorelease];
+
+
+ if( [itemIdentifier isEqual: VLCToolbarMediaControl] )
+ {
+ [toolbarItem setLabel:@"Media Controls"];
+ [toolbarItem setPaletteLabel:@"Media Controls"];
+
+ NSSize size = toolbarMediaControl.frame.size;
+ [toolbarItem setView:toolbarMediaControl];
+ [toolbarItem setMinSize:size];
+ size.width += 1000.;
+ [toolbarItem setMaxSize:size];
+
+ // Hack: For some reason we need to make sure
+ // that the those element are on top
+ // Add them again will put them frontmost
+ [toolbarMediaControl addSubview:o_scrollfield];
+ [toolbarMediaControl addSubview:o_timeslider];
+ [toolbarMediaControl addSubview:o_timefield];
+ [toolbarMediaControl addSubview:o_main_pgbar];
+
+ /* TODO: setup a menu */
+ }
+ else
+ {
+ /* itemIdentifier referred to a toolbar item that is not
+ * provided or supported by us or Cocoa
+ * Returning nil will inform the toolbar
+ * that this kind of item is not supported */
+ toolbarItem = nil;
+ }
+ return toolbarItem;
+}
+
+#pragma mark -
+
- (void)controlTintChanged
{
BOOL b_playing = NO;
- (void)initStrings
{
- [o_window setTitle: _NS("VLC - Controller")];
+ [o_window setTitle: _NS("VLC")];
[self setScrollField:_NS("VLC media player") stopAfter:-1];
/* button controls */
/* TODO: fix i_size use */
b_plmul = p_playlist->items.i_size > 1;
- p_input = vlc_object_find( p_playlist, VLC_OBJECT_INPUT,
- FIND_CHILD );
-
+ p_input = playlist_CurrentInput( p_playlist );
+ bool b_buffering = NO;
+
if( ( b_input = ( p_input != NULL ) ) )
{
+ /* seekable streams */
+ int state = input_GetState( p_input );
+ if ( state == INIT_S ||
+ state == OPENING_S ||
+ state == BUFFERING_S )
+ {
+ b_buffering = YES;
+ }
+
/* seekable streams */
b_seekable = var_GetBool( p_input, "seekable" );
}
pl_Release( p_intf );
+ if( b_buffering )
+ {
+ [o_main_pgbar startAnimation:self];
+ [o_main_pgbar setIndeterminate:YES];
+ [o_main_pgbar setHidden:NO];
+ }
+ else
+ {
+ [o_main_pgbar stopAnimation:self];
+ [o_main_pgbar setHidden:YES];
+ }
+
[o_btn_stop setEnabled: b_input];
[o_btn_ff setEnabled: b_seekable];
[o_btn_rewind setEnabled: b_seekable];
[o_btn_prev setEnabled: (b_plmul || b_chapters)];
[o_btn_next setEnabled: (b_plmul || b_chapters)];
+ NSLog(@"seekable %d", b_seekable);
[o_timeslider setFloatValue: 0.0];
[o_timeslider setEnabled: b_seekable];
[o_timefield setStringValue: @"00:00"];
{
static char mail[] =
"From: vlcuser <vlcuser@videolan.org>\n"
- "To: videolan <apple-bugreport@videolan.org>\n"
- "Subject: Crash Report (Type Ctrl-shift-D and hit send)\n"
+ "To: VideoLAN Crash Report <apple-bugreport@videolan.org>\n"
+ "Subject: %@\n"
"Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n"
"Content-Transfer-Encoding: 7bit\n"
"\n"
- "(Type Ctrl-shift-D and hit send)\n\n"
+ "%@\n\n"
"User Comment:\n%@\n--------------\n"
"\n"
"Crash log:\n%@\n--------------\n"
"\n"
"\n";
NSString * mailPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"vlc_crash_mail.eml"];
- NSString * mailContent = [NSString stringWithFormat:[NSString stringWithUTF8String:mail], userComment, crashLog];
+ NSString * mailContent = [NSString stringWithFormat:[NSString stringWithUTF8String:mail],
+ _NS("Crash Report (Type Ctrl-shift-D and hit send)"),
+ _NS("(Type Command-shift-D (Menu 'Message'>'Send Again' and hit send)"),
+ userComment, crashLog];
BOOL ret = [mailContent writeToFile:mailPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
if( !ret )
{
_NS("Send"), _NS("Don't Send"), nil, nil);
if( ret == NSAlertDefaultReturn )
{
- [self mailCrashLog:crashLog withUserComment:@"<Explain here what you were doing when VLC crashed>"];
+ [self mailCrashLog:crashLog withUserComment:_NS("<Explain here what you were doing when VLC crashed, with possibly a link to the failing video>")];
}
}