xref: /haiku/src/apps/mediaplayer/playlist/PlaylistWindow.h (revision d6aa728ab53c8cfa338c6b6897c2daa8f369a0f8)
1415ef601SStephan Aßmus /*
2415ef601SStephan Aßmus  * Copyright 2007, Haiku. All rights reserved.
3415ef601SStephan Aßmus  * Distributed under the terms of the MIT License.
4415ef601SStephan Aßmus  *
5415ef601SStephan Aßmus  * Authors:
6415ef601SStephan Aßmus  *		Stephan Aßmus 	<superstippi@gmx.de>
71b7f76bcSStephan Aßmus  *		Fredrik Modéen 	<fredrik@modeen.se>
8415ef601SStephan Aßmus  */
91b7f76bcSStephan Aßmus 
10415ef601SStephan Aßmus #ifndef PLAYLIST_WINDOW_H
11415ef601SStephan Aßmus #define PLAYLIST_WINDOW_H
12415ef601SStephan Aßmus 
13415ef601SStephan Aßmus 
14*d6aa728aSStephan Aßmus #include <Entry.h>
15415ef601SStephan Aßmus #include <Window.h>
16415ef601SStephan Aßmus 
17415ef601SStephan Aßmus #include "ListenerAdapter.h"
18415ef601SStephan Aßmus 
19415ef601SStephan Aßmus class BMenuBar;
20415ef601SStephan Aßmus class BMenuItem;
21415ef601SStephan Aßmus class CommandStack;
22415ef601SStephan Aßmus class Controller;
23415ef601SStephan Aßmus class Notifier;
24415ef601SStephan Aßmus class Playlist;
25415ef601SStephan Aßmus class PlaylistListView;
26415ef601SStephan Aßmus class RWLocker;
271b7f76bcSStephan Aßmus class BButton;
28b9044f36SFrançois Revol class BFilePanel;
29415ef601SStephan Aßmus 
30415ef601SStephan Aßmus class PlaylistWindow : public BWindow {
31415ef601SStephan Aßmus public:
32415ef601SStephan Aßmus 								PlaylistWindow(BRect frame,
33415ef601SStephan Aßmus 									Playlist* playlist,
34415ef601SStephan Aßmus 									Controller* controller);
35415ef601SStephan Aßmus 	virtual						~PlaylistWindow();
36415ef601SStephan Aßmus 
37415ef601SStephan Aßmus 	virtual	bool				QuitRequested();
38415ef601SStephan Aßmus 	virtual	void				MessageReceived(BMessage* message);
39415ef601SStephan Aßmus 
40415ef601SStephan Aßmus private:
41415ef601SStephan Aßmus 			void				_CreateMenu(BRect& frame);
42415ef601SStephan Aßmus 			void				_ObjectChanged(const Notifier* object);
43*d6aa728aSStephan Aßmus 
44*d6aa728aSStephan Aßmus 			void				_SavePlaylist(const BMessage* filePanelMessage);
45*d6aa728aSStephan Aßmus 			void				_SavePlaylist(const entry_ref& ref);
46*d6aa728aSStephan Aßmus 			void				_SavePlaylist(BEntry& origEntry,
47*d6aa728aSStephan Aßmus 									BEntry& tempEntry, const char* finalName);
48415ef601SStephan Aßmus 
49415ef601SStephan Aßmus 			Playlist*			fPlaylist;
50415ef601SStephan Aßmus 			PlaylistListView*	fListView;
51415ef601SStephan Aßmus 
52415ef601SStephan Aßmus 			BView*				fTopView;
53415ef601SStephan Aßmus 			BMenuItem*			fUndoMI;
54415ef601SStephan Aßmus 			BMenuItem*			fRedoMI;
55415ef601SStephan Aßmus 
56415ef601SStephan Aßmus 			RWLocker*			fLocker;
57415ef601SStephan Aßmus 			CommandStack*		fCommandStack;
58415ef601SStephan Aßmus 			ListenerAdapter		fCommandStackListener;
59*d6aa728aSStephan Aßmus 
60*d6aa728aSStephan Aßmus 			entry_ref			fSavedPlaylistRef;
61415ef601SStephan Aßmus };
62415ef601SStephan Aßmus 
63415ef601SStephan Aßmus #endif // PLAYLIST_WINDOW_H
64