[o_outline_view setTarget: self];
[o_outline_view setDelegate: self];
[o_outline_view setDataSource: self];
+ [o_outline_view setAllowsEmptySelection: NO];
vlc_object_release( p_playlist );
[self initStrings];
vlc_object_release( p_playlist );
}
+- (void)outlineViewSelectionDidChange:(NSNotification *)notification
+{
+ // FIXME: unsafe
+ playlist_item_t * p_item = [[o_outline_view itemAtRow:[o_outline_view selectedRow]] pointerValue];
+
+ if( p_item )
+ {
+ /* update our info-panel to reflect the new item */
+ [[[VLCMain sharedInstance] getInfo] updatePanelWithItem:p_item->p_input];
+ }
+}
+
+- (BOOL)isSelectionEmpty
+{
+ return [o_outline_view selectedRow] == -1;
+}
+
- (void)updateRowSelection
{
int i_row;
unsigned int j;
+ // FIXME: unsafe
playlist_t *p_playlist = pl_Yield( VLCIntf );
playlist_item_t *p_item, *p_temp_item;
NSMutableArray *o_array = [NSMutableArray array];
}
+ /* update our info-panel to reflect the new item */
+ [[[VLCMain sharedInstance] getInfo] updatePanelWithItem:p_item->p_input];
+
vlc_object_release( p_playlist );
- /* update our info-panel to reflect the new item */
- [[[VLCMain sharedInstance] getInfo] updatePanel];
}
/* Check if p_item is a child of p_node recursively. We need to check the item
pt = [o_outline_view convertPoint: [o_event locationInWindow]
fromView: nil];
- b_item_sel = ( [o_outline_view rowAtPoint: pt] != -1 &&
- [o_outline_view selectedRow] != -1 );
+ NSInteger row = [o_outline_view rowAtPoint:pt];
+ if( row != -1 )
+ [o_outline_view selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO];
+
+ b_item_sel = ( row != -1 && [o_outline_view selectedRow] != -1 );
b_rows = [o_outline_view numberOfRows] != 0;
[o_mi_play setEnabled: b_item_sel];