]> git.sesse.net Git - vlc/blob - plugins/beos/InterfaceWindow.h
* Header cleaning: filled all empty authors fields, added CVS $Id stuff.
[vlc] / 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.8 2001/03/21 13:42:33 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
26 class SeekSlider;
27 class MediaSlider;
28
29 class CDMenu : public BMenu
30 {
31 public:
32         CDMenu(const char *name);
33         ~CDMenu();
34         void AttachedToWindow(void);
35 private:
36         int GetCD(const char *directory);
37 };
38
39 class InterfaceWindow : public BWindow
40 {
41 public:
42     InterfaceWindow( BRect frame, const char *name, intf_thread_t  *p_intf );
43     ~InterfaceWindow();
44
45     // standard window member
46     virtual bool    QuitRequested();
47     virtual void    MessageReceived(BMessage *message);
48     
49         
50     intf_thread_t  *p_intf;
51         MediaSlider * p_vol;
52         SeekSlider * p_seek;
53         BCheckBox * p_mute;
54         sem_id  fScrubSem;
55         bool    fSeeking;
56         BFilePanel *file_panel;
57
58 };
59
60 class InterfaceView : public BView
61 {
62 public:
63     InterfaceView();
64     ~InterfaceView();
65
66     virtual void    MessageReceived(BMessage *message);
67 };
68
69
70 class MediaSlider : public BSlider
71 {
72 public:
73         MediaSlider(BRect frame,
74                                 BMessage *message,
75                                 int32 minValue,
76                                 int32 maxValue);
77         ~MediaSlider();
78         virtual void DrawThumb(void);
79 };
80                                 
81
82 class SeekSlider : public MediaSlider
83 {
84 public:
85         SeekSlider(BRect frame,
86                                 InterfaceWindow *owner,
87                                 int32 minValue,
88                                 int32 maxValue,
89                                 thumb_style thumbType = B_TRIANGLE_THUMB);
90
91         ~SeekSlider();
92         
93         virtual void MouseDown(BPoint);
94         virtual void MouseUp(BPoint pt);
95         virtual void MouseMoved(BPoint pt, uint32 c, const BMessage *m);
96 private:
97         InterfaceWindow*        fOwner; 
98         bool fMouseDown;
99 };