]> git.sesse.net Git - vlc/commitdiff
* Use the playlist info panel instead of the old one everywhere
authorBenjamin Pracht <bigben@videolan.org>
Fri, 30 Apr 2004 15:44:06 +0000 (15:44 +0000)
committerBenjamin Pracht <bigben@videolan.org>
Fri, 30 Apr 2004 15:44:06 +0000 (15:44 +0000)
- old VLCInfo and InfoPanel have been removed from nib file
- VLCPlaylistInfo and PlaylistInfoPanel have been renamed
- old info.c and info.h are still in repository, but not compiled, should I remove them ?

extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
modules/gui/macosx/Modules.am
modules/gui/macosx/intf.h
modules/gui/macosx/intf.m
modules/gui/macosx/playlistinfo.h
modules/gui/macosx/playlistinfo.m

index df00e3c76afff066ec23480bb0215295b2f610da..c6b412863f7d1455a1b118708910ccbe1ae3ad70 100644 (file)
             SUPERCLASS = NSObject; 
         }, 
         {
-            ACTIONS = {showCategory = id; toggleInfoPanel = id; }; 
+            ACTIONS = {
+                createOutlineGroup = id; 
+                deleteOutlineGroup = id; 
+                handleGroup = id; 
+                infoCancel = id; 
+                infoOk = id; 
+                toggleInfoPanel = id; 
+                togglePlaylistInfoPanel = id; 
+            }; 
             CLASS = VLCInfo; 
             LANGUAGE = ObjC; 
-            OUTLETS = {"o_selector" = id; "o_view" = id; "o_window" = id; }; 
+            OUTLETS = {
+                "o_author_lbl" = id; 
+                "o_author_txt" = id; 
+                "o_btn_add_group" = id; 
+                "o_btn_cancel" = id; 
+                "o_btn_delete_group" = id; 
+                "o_btn_ok" = id; 
+                "o_group_cbx" = id; 
+                "o_group_color" = id; 
+                "o_group_lbl" = id; 
+                "o_info_window" = id; 
+                "o_outline_view" = id; 
+                "o_title_lbl" = id; 
+                "o_title_txt" = id; 
+                "o_uri_lbl" = id; 
+                "o_uri_txt" = id; 
+            }; 
             SUPERCLASS = NSObject; 
         }, 
         {
                 "o_err_msg" = id; 
                 "o_error" = id; 
                 "o_info" = id; 
-                "o_info_window" = id; 
                 "o_messages" = id; 
                 "o_mi_about" = id; 
                 "o_mi_add_intf" = id; 
                 "o_mi_audiotrack" = id; 
                 "o_mi_bring_atf" = id; 
                 "o_mi_bwd" = id; 
-                "o_mi_bwd1m" = id; 
-                "o_mi_bwd5m" = id; 
                 "o_mi_channels" = id; 
                 "o_mi_chapter" = id; 
                 "o_mi_clear" = id; 
                 "o_mi_floatontop" = id; 
                 "o_mi_fullscreen" = id; 
                 "o_mi_fwd" = id; 
-                "o_mi_fwd1m" = id; 
-                "o_mi_fwd5m" = id; 
                 "o_mi_half_window" = id; 
                 "o_mi_hide" = id; 
                 "o_mi_hide_others" = id; 
             }; 
             SUPERCLASS = NSObject; 
         }, 
-        {
-            ACTIONS = {
-                createOutlineGroup = id; 
-                deleteOutlineGroup = id; 
-                handleGroup = id; 
-                infoCancel = id; 
-                infoOk = id; 
-                togglePlaylistInfoPanel = id; 
-            }; 
-            CLASS = VLCPlaylistInfo; 
-            LANGUAGE = ObjC; 
-            OUTLETS = {
-                "o_author_lbl" = id; 
-                "o_author_txt" = id; 
-                "o_btn_add_group" = id; 
-                "o_btn_cancel" = id; 
-                "o_btn_delete_group" = id; 
-                "o_btn_ok" = id; 
-                "o_group_cbx" = id; 
-                "o_group_color" = id; 
-                "o_group_lbl" = id; 
-                "o_info_window" = id; 
-                "o_outline_view" = id; 
-                "o_title_lbl" = id; 
-                "o_title_txt" = id; 
-                "o_uri_lbl" = id; 
-                "o_uri_txt" = id; 
-                "o_vlc_playlist" = id; 
-            }; 
-            SUPERCLASS = NSObject; 
-        }, 
         {CLASS = VLCPlaylistView; LANGUAGE = ObjC; SUPERCLASS = NSTableView; }, 
         {
             ACTIONS = {advancedToggle = id; closePrefs = id; resetAll = id; savePrefs = id; }; 
index 4727507eb29e012e0b7197211b003fbfc63525e7..2f0140cd33024ccd7b9a900e603786e2e9c1b4cd 100644 (file)
@@ -3,18 +3,18 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>219 45 505 517 0 0 800 578 </string>
+       <string>457 229 505 517 0 0 1024 746 </string>
        <key>IBEditorPositions</key>
        <dict>
                <key>1617</key>
                <string>542 480 104 149 0 0 1024 746 </string>
                <key>29</key>
-               <string>117 522 419 44 0 0 800 578 </string>
+               <string>186 686 419 44 0 0 1024 746 </string>
                <key>915</key>
-               <string>54 452 118 149 0 0 1024 746 </string>
+               <string>54 452 185 199 0 0 1024 746 </string>
        </dict>
        <key>IBFramework Version</key>
-       <string>364.0</string>
+       <string>362.0</string>
        <key>IBLockedObjects</key>
        <array>
                <integer>1789</integer>
@@ -22,8 +22,6 @@
        <key>IBOpenObjects</key>
        <array>
                <integer>21</integer>
-               <integer>29</integer>
-               <integer>1789</integer>
        </array>
        <key>IBSystem Version</key>
        <string>7F44</string>
index dc25345b9c97132e3eb30ce7fa6781a4a6abc5ae..0b962c903a358d742c887dd495535124f8a2b984 100644 (file)
Binary files a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib and b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib differ
index af54873621cc22ee2d55f8d73b94df515e50c41d..86d3f3b232faf27d8f74a0139b963813caca4a6a 100644 (file)
@@ -7,8 +7,6 @@ SOURCES_macosx = \
        controls.m \
        intf.m \
        intf.h \
-       info.h \
-       info.m \
        macosx.m \
        misc.m \
        misc.h \
index 6eb88e062c52d1df31ebcf08775b6df9cfe2e198..eff1ed332876ad91ec2fa1c8664562a0d15a0db0 100644 (file)
@@ -239,6 +239,7 @@ struct intf_sys_t
 
 - (id)getControls;
 - (id)getPlaylist;
+- (id)getInfo;
 - (void)terminate;
 
 - (void)initStrings;
index 80f1daf202e82b013f7af5ef07f794ac23d2dc90..2078921c08ba0e1fa0eb9c048b51dc1d74484cb1 100644 (file)
@@ -687,6 +687,15 @@ unsigned int VLCModifiersToCocoa( unsigned int i_key )
     return nil;
 }
 
+- (id)getInfo
+{
+    if ( o_info )
+    {
+        return o_info;
+    }
+    return  nil;
+}
+
 - (void)manage
 {
     NSDate * o_sleep_date;
@@ -811,7 +820,7 @@ unsigned int VLCModifiersToCocoa( unsigned int i_key )
             vlc_object_release( (vlc_object_t *)p_vout );
         }
         [o_playlist updateRowSelection];
-        [o_info updateInfo];
+//        [o_info updateInfo];
 
         p_intf->p_sys->b_current_title_update = FALSE;
     }
index b845ff3b3f7bb8caab718149c14d66e103d8ddc1..db71dc40297b83346c247db15c48fe2c85bb7682 100644 (file)
@@ -2,7 +2,7 @@
  * playlistinfo.h: MacOS X interface module
  *****************************************************************************
  * Copyright (C) 2002-2004 VideoLAN
- * $Id: playlist.h 7015 2004-03-08 15:22:58Z bigben $
+ * $Id$
  *
  * Authors: Benjamin Pracht <bigben at videolan dot org> 
  *
@@ -26,7 +26,7 @@
  *****************************************************************************/
 
 
-@interface VLCPlaylistInfo : NSObject
+@interface VLCInfo : NSObject
 {
     IBOutlet id o_info_window;
     IBOutlet id o_uri_lbl;
     IBOutlet id o_btn_delete_group;
     IBOutlet id o_btn_add_group;
     IBOutlet id o_outline_view;
-    IBOutlet id o_vlc_playlist;
     IBOutlet id o_group_lbl;
     IBOutlet id o_group_cbx;
     IBOutlet id o_group_color;
+
+    int i_item;
+    NSMutableArray * o_selected;
 }
 
 - (IBAction)togglePlaylistInfoPanel:(id)sender;
+- (IBAction)toggleInfoPanel:(id)sender;
+- (void)initPanel:(id)sender;
 - (IBAction)infoCancel:(id)sender;
 - (IBAction)infoOk:(id)sender;
 - (IBAction)handleGroup:(id)sender;
 - (IBAction)deleteOutlineGroup:(id)sender;
 - (IBAction)createOutlineGroup:(id)sender;
 - (void)createComboBox;
+- (int)getItem;
 
 @end
 
index ea9238de006502af45d91eef3f6de01cf717c637..95c3fe59ce6b6614072a100da30e722df72b0d04 100644 (file)
@@ -2,15 +2,15 @@
  r playlistinfo.m: MacOS X interface module
  *****************************************************************************
  * Copyright (C) 2002-2004 VideoLAN
- * $Id: playlistinfo.m 7015 2004-03-08 15:22:58Z bigben $
+ * $Id$
  *
- * Authors: Benjmaib Pracht <bigben at videolan dot org>
+ * Authors: Benjamin Pracht <bigben at videolan dot org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * VLCPlaylistInfo Implementation
  *****************************************************************************/
 
-@implementation VLCPlaylistInfo
+@implementation VLCInfo
+
+- (id)init
+{
+    self = [super init];
+
+    if( self != nil )
+    {
+        i_item = -1;
+        o_selected = NULL;
+    }
+    return( self );
+}
+
+- (void)dealloc
+{
+    [o_selected release];
+    [super dealloc];
+}
 
 - (void)awakeFromNib
 {
 
 - (IBAction)togglePlaylistInfoPanel:(id)sender
 {
-    intf_thread_t * p_intf = [NSApp getIntf];
-    playlist_t * p_playlist;
+    if( [o_info_window isVisible] )
+    {
+        [o_info_window orderOut: sender];
+    }
+    else
+    {
+        i_item = [[[NSApp delegate] getPlaylist] selectedPlaylistItem];
+        o_selected = [[[NSApp delegate] getPlaylist] selectedPlaylistItemsList];
+        [o_selected retain];
+        [self initPanel:sender];
+    }
+}
 
+- (IBAction)toggleInfoPanel:(id)sender
+{
     if( [o_info_window isVisible] )
     {
         [o_info_window orderOut: sender];
     }
     else
     {
-        p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+        intf_thread_t * p_intf = [NSApp getIntf];
+        playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
                                           FIND_ANYWHERE );
 
         if (p_playlist)
         {
-            /*fill uri / title / author info */
-            int i_item = [o_vlc_playlist selectedPlaylistItem];
-            [o_uri_txt setStringValue:
-                ([NSString stringWithUTF8String:p_playlist->
-                    pp_items[i_item]->input.psz_uri] == nil ) ?
-                [NSString stringWithCString:p_playlist->
-                    pp_items[i_item]->input.psz_uri] :
-                [NSString stringWithUTF8String:p_playlist->
-                    pp_items[i_item]->input.psz_uri]];
-
-            [o_title_txt setStringValue:
-                ([NSString stringWithUTF8String:p_playlist->
-                    pp_items[i_item]->input.psz_name] == nil ) ?
-                [NSString stringWithCString:p_playlist->
-                    pp_items[i_item]->input.psz_name] :
-                [NSString stringWithUTF8String:p_playlist->
-                    pp_items[i_item]->input.psz_name]];
-
-            [o_author_txt setStringValue:
-                [NSString stringWithUTF8String:playlist_GetInfo
-                (p_playlist, i_item ,_("General"),_("Author") )]];
-
-            [[VLCInfoTreeItem rootItem] refresh];
-            [o_outline_view reloadData];
+            i_item = p_playlist->i_index;
+            o_selected = [NSMutableArray arrayWithObject:
+                            [NSNumber numberWithInt:i_item]];
+            [o_selected retain];
+            vlc_object_release(p_playlist);
+        }
+        [self initPanel:sender];
+    }
+}
 
-            [self createComboBox];
-            [self handleGroup:self];
+- (void)initPanel:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist;
 
-            vlc_object_release( p_playlist );
-        }
-        [o_info_window makeKeyAndOrderFront: sender];
+    p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                          FIND_ANYWHERE );
+
+
+    if (p_playlist)
+    {
+        /*fill uri / title / author info */
+        [o_uri_txt setStringValue:
+            ([NSString stringWithUTF8String:p_playlist->
+               pp_items[i_item]->input.psz_uri] == nil ) ?
+            [NSString stringWithCString:p_playlist->
+                pp_items[i_item]->input.psz_uri] :
+            [NSString stringWithUTF8String:p_playlist->
+                pp_items[i_item]->input.psz_uri]];
+
+        [o_title_txt setStringValue:
+            ([NSString stringWithUTF8String:p_playlist->
+                pp_items[i_item]->input.psz_name] == nil ) ?
+            [NSString stringWithCString:p_playlist->
+                pp_items[i_item]->input.psz_name] :
+            [NSString stringWithUTF8String:p_playlist->
+                pp_items[i_item]->input.psz_name]];
+
+        [o_author_txt setStringValue:
+            [NSString stringWithUTF8String:playlist_GetInfo
+            (p_playlist, i_item ,_("General"),_("Author") )]];
+
+        [[VLCInfoTreeItem rootItem] refresh];
+        [o_outline_view reloadData];
+
+        [self createComboBox];
+        [self handleGroup:self];
+
+        vlc_object_release( p_playlist );
     }
+    [o_info_window makeKeyAndOrderFront: sender];
 }
 
 - (IBAction)infoCancel:(id)sender
 {
-    [self togglePlaylistInfoPanel:self];
+    [o_info_window orderOut: self];
 }
 
 
 - (IBAction)infoOk:(id)sender
 {
     int i,i_row,c;
-    int i_item = [o_vlc_playlist selectedPlaylistItem];
     intf_thread_t * p_intf = [NSApp getIntf];
     playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
                                           FIND_ANYWHERE );
     vlc_value_t val;
-    NSMutableArray * o_selected = [o_vlc_playlist selectedPlaylistItemsList];
     NSNumber * o_number;
 
 
         var_Set( p_playlist,"intf-change",val );
         vlc_object_release ( p_playlist );
     }
-    [self togglePlaylistInfoPanel:self];
+    [o_info_window orderOut: self];
 }
 
 - (IBAction)handleGroup:(id)sender
 
     if (p_playlist)
     {
-        if ([[o_group_cbx stringValue] isEqual: 
+        if ([[o_group_cbx stringValue] isEqual:
                     [o_group_cbx objectValueOfSelectedItem]])
         {
-            [o_group_color setBackgroundColor:[o_vlc_playlist 
+            [o_group_color setBackgroundColor:[[[NSApp delegate] getPlaylist]
                 getColor: p_playlist->pp_groups[
                 [o_group_cbx indexOfSelectedItem]]->i_id]];
         }
         else
         {
-            [o_group_color setBackgroundColor:[o_vlc_playlist 
+            [o_group_color setBackgroundColor:[[[NSApp delegate] getPlaylist]
                 getColor:p_playlist->pp_groups[
                 [o_group_cbx numberOfItems] - 1]->i_id + 1]];
         }
         if ([[o_group_cbx stringValue] isEqual:
                     [o_group_cbx objectValueOfSelectedItem]])
         {
-            [o_vlc_playlist deleteGroup:p_playlist->pp_groups[
+            [[[NSApp delegate] getPlaylist] deleteGroup:p_playlist->pp_groups[
                     [o_group_cbx indexOfSelectedItem]]->i_id];
             [self createComboBox];
             [self handleGroup:self];
         else
         {
             msg_Warn(p_playlist,"Group doesn't exist, cannot delete");
-        } 
+        }
     vlc_object_release(p_playlist);
     }
 }
 
-- (IBAction)createOutlineGroup:(id)sender; 
+- (IBAction)createOutlineGroup:(id)sender;
 {
     intf_thread_t * p_intf = [NSApp getIntf];
     playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
                     strdup([[o_group_cbx stringValue] cString]));
         [self createComboBox];
         [o_group_cbx reloadData];
-        [o_vlc_playlist playlistUpdated];
+        [[[NSApp delegate] getPlaylist] playlistUpdated];
         vlc_object_release(p_playlist);
     }
 }
     playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
                                           FIND_ANYWHERE );
     int i;
-    int i_item = [o_vlc_playlist selectedPlaylistItem];
 
     [o_group_cbx removeAllItems];
 
         }
     vlc_object_release(p_playlist);
     }
-}      
+}
+
+- (int)getItem
+{
+    return i_item;
+}
 
 @end
 
+@implementation VLCInfo (NSMenuValidation)
+
+- (BOOL)validateMenuItem:(NSMenuItem *)o_mi
+{
+    BOOL bEnabled = TRUE;
+
+    intf_thread_t * p_intf = [NSApp getIntf];
+    input_thread_t * p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT,
+                                                       FIND_ANYWHERE );
+
+    if( [[o_mi title] isEqualToString: _NS("Info")] )
+    {
+        if( p_input == NULL )
+        {
+            bEnabled = FALSE;
+        }
+    }
+    if( p_input ) vlc_object_release( p_input );
+
+    return( bEnabled );
+}
+
+@end
 
-@implementation VLCPlaylistInfo (NSTableDataSource)
+@implementation VLCInfo (NSTableDataSource)
 
-- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item  
+- (int)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item
 {
     return (item == nil) ? [[VLCInfoTreeItem rootItem] numberOfChildren] : [item numberOfChildren];
 }
     return ([item numberOfChildren] > 0);
 }
 
-- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item  
+- (id)outlineView:(NSOutlineView *)outlineView child:(int)index ofItem:(id)item
 {
     return (item == nil) ? [[VLCInfoTreeItem rootItem] childAtIndex:index] : [item childAtIndex:index];
 }
     }
 }
 
+
 @end
 
 @implementation VLCInfoTreeItem
@@ -302,15 +378,14 @@ static VLCInfoTreeItem *o_root_item = nil;
 - (id)initWithName: (NSString *)o_item_name value: (NSString *)o_item_value ID: (int)i_id parent:(VLCInfoTreeItem *)o_parent_item
 {
     self = [super init];
+
     if( self != nil )
     {
-
-        i_item = [[[NSApp delegate] getPlaylist] selectedPlaylistItem];
         o_name = [o_item_name copy];
         o_value = [o_item_value copy];
         i_object_id = i_id;
         o_parent = o_parent_item;
+        i_item = [[[NSApp delegate] getInfo] getItem];
     }
     return( self );
 }
@@ -347,12 +422,12 @@ static VLCInfoTreeItem *o_root_item = nil;
                     o_children = [[NSMutableArray alloc] initWithCapacity:p_playlist->pp_items[i_item]->input.i_categories];
                     for (i = 0 ; i<p_playlist->pp_items[i_item]->input.i_categories ; i++)
                     {
-                        [o_children addObject:[[VLCInfoTreeItem alloc] 
+                        [o_children addObject:[[VLCInfoTreeItem alloc]
                             initWithName: [NSString stringWithUTF8String:
                                 p_playlist->pp_items[i_item]->input.
                                 pp_categories[i]->psz_name]
                             value: @""
-                            ID: i 
+                            ID: i
                             parent: self]];
                     }
                 }
@@ -407,19 +482,19 @@ static VLCInfoTreeItem *o_root_item = nil;
     return (i_tmp == IsALeafNode) ? (-1) : (int)[i_tmp count];
 }
 
-- (int)selectedPlaylistItem
+/*- (int)selectedPlaylistItem
 {
-    return i_item; 
+    return i_item;
 }
-
+*/
 - (void)refresh
 {
+    i_item = [[[NSApp delegate] getInfo] getItem];
     if (o_children != NULL)
     {
         [o_children release];
         o_children = NULL;
     }
-    i_item = [[[NSApp delegate] getPlaylist] selectedPlaylistItem];
 }
 
 @end