8e9b0db5a0967b7a54a2adaf8452864db134e5a2
[vlc.git] / plugins / beos / InterfaceWindow.h
1 /*****************************************************************************
2  * InterfaceWindow.h: BeOS interface window class prototype
3  *****************************************************************************
4  * Copyright (C) 1999, 2000, 2001 VideoLAN
5  * $Id: InterfaceWindow.h,v 1.14 2002/07/23 00:39:16 sam Exp $
6  *
7  * Authors: Jean-Marc Dressler <polux@via.ecp.fr>
8  *          Tony Castley <tcastley@mail.powerup.com.au>
9  *          Richard Shepherd <richard@rshepherd.demon.co.uk>
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  * 
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
24  *****************************************************************************/
25 class MediaControlView;
26 class PlayListWindow;
27
28 class CDMenu : public BMenu
29 {
30 public:
31         CDMenu(const char *name);
32         ~CDMenu();
33         void AttachedToWindow(void);
34 private:
35         int GetCD(const char *directory);
36 };
37
38 class LanguageMenu : public BMenu
39 {
40 public:
41         LanguageMenu(const char *name, int menu_kind, 
42                      intf_thread_t  *p_interface);
43         ~LanguageMenu();
44         void AttachedToWindow(void);
45 private:
46         intf_thread_t  *p_intf;
47         int kind;
48         int GetChannels();
49 };
50
51 class InterfaceWindow : public BWindow
52 {
53 public:
54     InterfaceWindow( BRect frame, const char *name, 
55                      intf_thread_t  *p_interface );
56     ~InterfaceWindow();
57
58     // standard window member
59     virtual bool    QuitRequested();
60     virtual void    MessageReceived(BMessage *message);
61         void                    updateInterface();
62             
63         MediaControlView *p_mediaControl;
64
65 private:        
66     intf_thread_t  *p_intf;
67     bool            b_empty_playlist;
68         BFilePanel *file_panel;
69         PlayListWindow* playlist_window;
70     BMenuItem      *miOnTop;
71 };
72