xref: /haiku/src/apps/mediaplayer/playlist/PlaylistWindow.h (revision dd09109647c709561a966752f1c2346f4f5a0e20)
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 
14d6aa728aSStephan 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 
30*dd091096SStephan Aßmus enum {
31*dd091096SStephan Aßmus 	M_PLAYLIST_REMOVE_AND_PUT_INTO_TRASH	= 'rmtr'
32*dd091096SStephan Aßmus };
33*dd091096SStephan Aßmus 
34415ef601SStephan Aßmus class PlaylistWindow : public BWindow {
35415ef601SStephan Aßmus public:
36415ef601SStephan Aßmus 								PlaylistWindow(BRect frame,
37415ef601SStephan Aßmus 									Playlist* playlist,
38415ef601SStephan Aßmus 									Controller* controller);
39415ef601SStephan Aßmus 	virtual						~PlaylistWindow();
40415ef601SStephan Aßmus 
41415ef601SStephan Aßmus 	virtual	bool				QuitRequested();
42415ef601SStephan Aßmus 	virtual	void				MessageReceived(BMessage* message);
43415ef601SStephan Aßmus 
44415ef601SStephan Aßmus private:
45415ef601SStephan Aßmus 			void				_CreateMenu(BRect& frame);
46415ef601SStephan Aßmus 			void				_ObjectChanged(const Notifier* object);
47d6aa728aSStephan Aßmus 			void				_SavePlaylist(const BMessage* filePanelMessage);
48d6aa728aSStephan Aßmus 			void				_SavePlaylist(const entry_ref& ref);
49d6aa728aSStephan Aßmus 			void				_SavePlaylist(BEntry& origEntry,
50d6aa728aSStephan Aßmus 									BEntry& tempEntry, const char* finalName);
51415ef601SStephan Aßmus 
52415ef601SStephan Aßmus 			Playlist*			fPlaylist;
53415ef601SStephan Aßmus 			PlaylistListView*	fListView;
54415ef601SStephan Aßmus 
55415ef601SStephan Aßmus 			BView*				fTopView;
56415ef601SStephan Aßmus 			BMenuItem*			fUndoMI;
57415ef601SStephan Aßmus 			BMenuItem*			fRedoMI;
58415ef601SStephan Aßmus 
59415ef601SStephan Aßmus 			RWLocker*			fLocker;
60415ef601SStephan Aßmus 			CommandStack*		fCommandStack;
61415ef601SStephan Aßmus 			ListenerAdapter		fCommandStackListener;
62d6aa728aSStephan Aßmus 
63d6aa728aSStephan Aßmus 			entry_ref			fSavedPlaylistRef;
64415ef601SStephan Aßmus };
65415ef601SStephan Aßmus 
66415ef601SStephan Aßmus #endif // PLAYLIST_WINDOW_H
67