X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fmacosx%2Fplaylist.h;h=9d39989b88313c9ad7f6f086a20f034d38522594;hb=9288133f5fe69b685dbda98a08dff8b0d59c6793;hp=ad7fec527e5dc165464f4698e337606c61b20f37;hpb=d3d496a7d62e2f184508a464b89e10ee9f3dd952;p=vlc diff --git a/modules/gui/macosx/playlist.h b/modules/gui/macosx/playlist.h index ad7fec527e..9d39989b88 100644 --- a/modules/gui/macosx/playlist.h +++ b/modules/gui/macosx/playlist.h @@ -1,17 +1,18 @@ /***************************************************************************** * playlist.h: MacOS X interface module ***************************************************************************** - * Copyright (C) 2002-2004 VideoLAN + * Copyright (C) 2002-2012 VLC authors and VideoLAN * $Id$ * * Authors: Jon Lech Johansen * Derk-Jan Hartman + * Felix Paul Kühne * * 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 @@ -19,96 +20,136 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ +#import "PXSourceList.h" + +/* playlist column definitions */ +#define TRACKNUM_COLUMN @"tracknumber" +#define TITLE_COLUMN @"name" +#define ARTIST_COLUMN @"artist" +#define DURATION_COLUMN @"duration" +#define GENRE_COLUMN @"genre" +#define ALBUM_COLUMN @"album" +#define DESCRIPTION_COLUMN @"description" +#define DATE_COLUMN @"date" +#define LANGUAGE_COLUMN @"language" +#define URI_COLUMN @"uri" + /***************************************************************************** - * VLCPlaylistView interface + * VLCPlaylistView interface *****************************************************************************/ -@interface VLCPlaylistView : NSTableView +@interface VLCPlaylistView : NSOutlineView { } @end /***************************************************************************** - * VLCPlaylist interface + * VLCPlaylistCommon interface *****************************************************************************/ -@interface VLCPlaylist : NSObject +@interface VLCPlaylistCommon : NSObject { - int i_moveRow; - bool b_isSortDescending; + IBOutlet VLCPlaylistView* o_outline_view; - IBOutlet id o_window; - IBOutlet id o_btn_playlist; - IBOutlet id o_table_view; + IBOutlet id o_tc_name_other; + IBOutlet id o_tc_author_other; + IBOutlet id o_tc_duration_other; + IBOutlet VLCPlaylistView* o_outline_view_other; - IBOutlet id o_status_field; - IBOutlet id o_tc_id; - IBOutlet id o_tc_name; - IBOutlet id o_tc_author; - IBOutlet id o_tc_duration; - IBOutlet id o_tc_sortColumn; + NSMutableDictionary *o_outline_dict; + playlist_item_t * p_current_root_item; +} - IBOutlet id o_ctx_menu; +- (void)setPlaylistRoot: (playlist_item_t *)root_item; +- (playlist_item_t *)currentPlaylistRoot; +- (playlist_item_t *)selectedPlaylistItem; +- (NSOutlineView *)outlineView; +@end + +/***************************************************************************** + * VLCPlaylistWizard interface + *****************************************************************************/ +@interface VLCPlaylistWizard : VLCPlaylistCommon +{ +} + +- (IBAction)reloadOutlineView; + +@end + +/***************************************************************************** + * VLCPlaylist interface + *****************************************************************************/ +@interface VLCPlaylist : VLCPlaylistCommon +{ + IBOutlet id o_controller; + IBOutlet id o_playlist_wizard; + + IBOutlet id o_btn_playlist; + IBOutlet id o_playlist_view; + IBOutlet id o_search_field; + IBOutlet id o_search_field_other; IBOutlet id o_mi_save_playlist; - IBOutlet id o_mi_info; + IBOutlet id o_ctx_menu; + IBOutlet id o_mi_play; IBOutlet id o_mi_delete; + IBOutlet id o_mi_info; + IBOutlet id o_mi_preparse; + IBOutlet id o_mi_revealInFinder; + IBOutlet id o_mm_mi_revealInFinder; + IBOutlet id o_mi_dl_cover_art; IBOutlet id o_mi_selectall; - IBOutlet id o_mi_toggleItemsEnabled; - IBOutlet id o_mi_enableGroup; - IBOutlet id o_mi_disableGroup; - - IBOutlet id o_random_ckb; - - IBOutlet id o_search_keyword; - IBOutlet id o_search_button; - - IBOutlet id o_loop_popup; + IBOutlet id o_mi_sort_name; + IBOutlet id o_mi_sort_author; + IBOutlet id o_mi_recursive_expand; -/*For playlist info window*/ + IBOutlet id o_save_accessory_view; + IBOutlet id o_save_accessory_popup; + IBOutlet id o_save_accessory_text; - IBOutlet id o_info_window; - IBOutlet id o_uri_lbl; - IBOutlet id o_title_lbl; - IBOutlet id o_author_lbl; - IBOutlet id o_uri_txt; - IBOutlet id o_title_txt; - IBOutlet id o_author_txt; - IBOutlet id o_btn_info_ok; - IBOutlet id o_btn_info_cancel; - IBOutlet id o_tbv_info; NSImage *o_descendingSortingImage; NSImage *o_ascendingSortingImage; + + NSMutableArray *o_nodes_array; + NSMutableArray *o_items_array; + + BOOL b_selected_item_met; + BOOL b_isSortDescending; + id o_tc_sortColumn; } -- (void)initStrings; +- (void)searchfieldChanged:(NSNotification *)o_notification; - (NSMenu *)menuForEvent:(NSEvent *)o_event; -- (IBAction)toggleWindow:(id)sender; -- (IBAction)savePlaylist:(id)sender; -- (IBAction)playItem:(id)sender; -- (IBAction)deleteItems:(id)sender; -- (IBAction)toggleItemsEnabled:(id)sender; -- (IBAction)enableGroup:(id)sender; -- (IBAction)disableGroup:(id)sender; -- (IBAction)selectAll:(id)sender; - (IBAction)searchItem:(id)sender; -- (IBAction)handlePopUp:(id)sender; -- (void)appendArray:(NSArray*)o_array atPos:(int)i_position enqueue:(BOOL)b_enqueue; - -- (void)updateRowSelection; - (void)playlistUpdated; +- (void)outlineViewSelectionDidChange:(NSNotification *)notification; +- (void)sortNode:(int)i_mode; +- (void)updateRowSelection; -/*For playlist info window*/ +- (BOOL)isSelectionEmpty; -- (int)selectedPlaylistItem; -- (void)deleteGroup:(int)i_id; -- (NSMutableArray *)selectedPlaylistItemsList; -- (NSColor *)getColor:(int)i_group; +- (IBAction)playItem:(id)sender; +- (IBAction)revealItemInFinder:(id)sender; +- (IBAction)preparseItem:(id)sender; +- (IBAction)downloadCoverArt:(id)sender; +- (IBAction)savePlaylist:(id)sender; +- (IBAction)deleteItem:(id)sender; +- (IBAction)selectAll:(id)sender; +- (IBAction)sortNodeByName:(id)sender; +- (IBAction)sortNodeByAuthor:(id)sender; +- (IBAction)recursiveExpandNode:(id)sender; -@end +- (id)playingItem; +- (NSArray *)draggedItems; +- (void)appendArray:(NSArray*)o_array atPos:(int)i_position enqueue:(BOOL)b_enqueue; +- (void)appendNodeArray:(NSArray*)o_array inNode:(playlist_item_t *)p_node atPos:(int)i_position enqueue:(BOOL)b_enqueue; + +- (void)setColumn: (NSString *)o_column state: (NSInteger)i_state; +@end