summaryrefslogtreecommitdiffstats
path: root/beos/MainWindow.h
blob: e40c2587a39a0059123f4e438ef26f317f264c77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/* $Id: MainWindow.h,v 1.9 2003/09/30 14:38:15 titer Exp $

   This file is part of the HandBrake source code.
   Homepage: <http://beos.titer.org/handbrake/>.
   It may be used under the terms of the GNU General Public License. */


#ifndef HB_MAIN_WINDOW_H
#define HB_MAIN_WINDOW_H

/* BeOS headers */
#include <Box.h>
#include <MenuItem.h>
#include <Window.h>
class BButton;
class BMenuField;
class BPopUpMenu;
class BSlider;
class BStatusBar;
class BStringView;
class BTextControl;

/* libhb headers */
#include "Manager.h"

class HBVolumeItem : public BMenuItem
{
    public:
                   HBVolumeItem( HBVolume * volume );

        HBVolume * fVolume;
};

class HBTitleItem : public BMenuItem
{
    public:
                  HBTitleItem( HBTitle * title );

        HBTitle * fTitle;
};

class HBAudioItem : public BMenuItem
{
    public:
                  HBAudioItem( HBAudio * audio );

        HBAudio * fAudio;
};

class HBBox : public BBox
{
    public:
             HBBox( BRect );
        void Draw( BRect );
};

class HBWindow : public BWindow
{
    public:
                        HBWindow( bool debug );
        virtual bool    QuitRequested();
        virtual void    MessageReceived( BMessage * message );

        void            ScanVolumes();

    private:
        static void     UpdateInterface( HBWindow * _this );
        void            _UpdateInterface();
        void            EnableInterface( HBMode mode );

        HBManager     * fManager;

        /* GUI */
        HBBox         * fBox;
        BButton       * fAdvancedButton;
        BButton       * fFileButton;
        BButton       * fPictureButton;
        BButton       * fStartButton;
        BButton       * fSuspendButton;
        BMenuField    * fAudio1Field;
        BMenuField    * fAudio2Field;
        BMenuField    * fTitleField;
        BMenuField    * fVolumeField;
        BPopUpMenu    * fAudio1PopUp;
        BPopUpMenu    * fAudio2PopUp;
        BPopUpMenu    * fTitlePopUp;
        BPopUpMenu    * fVolumePopUp;
        BSlider       * fAudioSlider;
        BSlider       * fVideoSlider;
        BStatusBar    * fStatusBar;
        BStringView   * fFileString;
        BTextControl  * fFileControl;

        int             fUpdateThread;

        /* Used to SetEnabled() GUI items only if needed */
        HBMode          fOldMode;
};

#endif