924b207784a0eb568eb2f52eb5f38c0f79203741
[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.15 2002/07/23 12:42:17 tcastley 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 /*****************************************************************************
26  * intf_sys_t: description and status of FB interface
27  *****************************************************************************/
28 class MediaControlView;
29 class PlayListWindow;
30
31 class CDMenu : public BMenu
32 {
33 public:
34         CDMenu(const char *name);
35         ~CDMenu();
36         void AttachedToWindow(void);
37 private:
38         int GetCD(const char *directory);
39 };
40
41 class LanguageMenu : public BMenu
42 {
43 public:
44         LanguageMenu(const char *name, int menu_kind, 
45                      intf_thread_t  *p_interface);
46         ~LanguageMenu();
47         void AttachedToWindow(void);
48 private:
49         intf_thread_t  *p_intf;
50         int kind;
51         int GetChannels();
52 };
53
54 class InterfaceWindow : public BWindow
55 {
56 public:
57     InterfaceWindow( BRect frame, const char *name, 
58                      intf_thread_t  *p_interface );
59     ~InterfaceWindow();
60
61     // standard window member
62     virtual bool    QuitRequested();
63     virtual void    MessageReceived(BMessage *message);
64         void                    updateInterface();
65             
66         MediaControlView *p_mediaControl;
67
68 private:        
69     intf_thread_t  *p_intf;
70     bool            b_empty_playlist;
71     bool            b_mute;
72         BFilePanel *file_panel;
73         PlayListWindow* playlist_window;
74     BMenuItem      *miOnTop;
75     Intf_VLCWrapper *  p_vlc_wrapper;
76 };
77