Commit 90376941 authored by Benjamin Pracht's avatar Benjamin Pracht

* Use the playlist info panel instead of the old one everywhere

	- 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 ?
parent 4a3df555
......@@ -52,10 +52,34 @@
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;
},
{
......@@ -96,15 +120,12 @@
"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;
......@@ -121,8 +142,6 @@
"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;
......@@ -371,37 +390,6 @@
};
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; };
......
......@@ -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>
......
......@@ -7,8 +7,6 @@ SOURCES_macosx = \
controls.m \
intf.m \
intf.h \
info.h \
info.m \
macosx.m \
misc.m \
misc.h \
......
......@@ -239,6 +239,7 @@ struct intf_sys_t
- (id)getControls;
- (id)getPlaylist;
- (id)getInfo;
- (void)terminate;
- (void)initStrings;
......
......@@ -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;
}
......
......@@ -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;
......@@ -40,19 +40,24 @@
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
......
......@@ -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
......@@ -33,7 +33,25 @@
* 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
{
......@@ -52,69 +70,99 @@
- (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;
......@@ -164,7 +212,7 @@
var_Set( p_playlist,"intf-change",val );
vlc_object_release ( p_playlist );
}
[self togglePlaylistInfoPanel:self];
[o_info_window orderOut: self];
}
- (IBAction)handleGroup:(id)sender
......@@ -175,16 +223,16 @@
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]];
}
......@@ -203,7 +251,7 @@
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];
......@@ -212,12 +260,12 @@
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,
......@@ -228,7 +276,7 @@
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);
}
}
......@@ -239,7 +287,6 @@
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];
......@@ -258,14 +305,42 @@
}
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];
}
......@@ -274,7 +349,7 @@
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];
}
......@@ -291,6 +366,7 @@
}
}
@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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment