modules/gui/kde/interface.cpp: made the kde interface look for the rc
[vlc.git] / modules / gui / kde / interface.h
1 /***************************************************************************
2                           interface.h  -  description
3                              -------------------
4     begin                : Sun Mar 25 2001
5     copyright            : (C) 2001 by andres
6     email                : dae@chez.com
7  ***************************************************************************/
8
9 #ifndef _KDE_INTERFACE_H_
10 #define _KDE_INTERFACE_H_
11
12 #include "common.h"
13
14 #include <kmainwindow.h>
15 #include <kapplication.h>
16 #include <kurl.h>
17 #include <qdragobject.h>
18 #include <qstring.h>
19 #include <qwidget.h>
20
21 class KThread;
22
23 class KDiskDialog;
24 class KNetDialog;
25 class KRecentFilesAction;
26 class KTitleMenu;
27 class KToggleAction;
28 class KVLCSlider;
29
30 /**Main Window for the KDE vlc interface
31   *@author andres
32   */
33
34 class KInterface : public KMainWindow
35 {
36     Q_OBJECT
37     public:
38         KInterface(intf_thread_t *p_intf, QWidget *parent=0,
39                    const char *name=0);
40         ~KInterface();
41
42     public slots:
43         /** open a file and load it into the document*/
44         void slotFileOpen();
45         /** opens a file from the recent files menu */
46         void slotFileOpenRecent(const KURL& url);
47         /** asks for saving if the file is modified, then closes the
48          * actual file and window*/
49         void slotFileClose();
50         /** closes all open windows by calling close() on each
51          * memberList item until the list is empty, then quits the
52          * application.  If queryClose() returns false because the
53          * user canceled the saveModified() dialog, the closing
54          * breaks.
55          */
56         void slotFileQuit();
57         void slotShowPreferences();
58
59         /** toggles the toolbar
60          */
61         void slotViewToolBar();
62         /** toggles the statusbar
63          */
64         void slotViewStatusBar();
65         /** changes the statusbar contents for the standard label
66          * permanently, used to indicate current actions.
67          * @param text the text that is displayed in the statusbar
68          */
69         void slotStatusMsg( const QString &text );
70
71     protected:
72         /** initializes the KActions of the application */
73         void initActions();
74         /** sets up the statusbar for the main window by initialzing a statuslabel.
75          */
76         void initStatusBar();
77
78         virtual void dragEnterEvent( QDragEnterEvent *event );
79         virtual void dropEvent( QDropEvent *event );
80
81     private slots:
82         /** we use this to manage the communication with the vlc core */
83         void slotManage();
84
85         /** this slot is called when we drag the position seek bar */
86         void slotSliderMoved( int position );
87
88         /** called every time the slider changes values */
89         void slotSliderChanged( int position );
90
91         void slotOpenDisk();
92         void slotOpenStream();
93
94         void slotBackward();
95         void slotStop();
96         void slotPlay();
97         void slotPause();
98         void slotSlow();
99         void slotFast();
100         void slotPrev();
101         void slotNext();
102
103   private:
104
105         intf_thread_t    *p_intf;
106
107         /** to call p_intf->pf_manage every now and then */
108         QTimer            *fTimer;
109
110         /** slider which works well with user movement */
111         KVLCSlider    *fSlider;
112
113         /** open dvd/vcd */
114         KDiskDialog    *fDiskDialog;
115
116         /** open net stream */
117         KNetDialog        *fNetDialog;
118
119         KTitleMenu        *fTitleMenu;
120
121         // KAction pointers to enable/disable actions
122         KAction             *fileOpen;
123         KAction             *diskOpen;
124         KAction             *streamOpen;
125         KRecentFilesAction  *fileOpenRecent;
126         KAction             *fileClose;
127         KAction             *fileQuit;
128         KToggleAction       *viewToolBar;
129         KToggleAction       *viewStatusBar;
130         KAction             *backward;
131         KAction             *stop;
132         KAction             *play;
133         KAction             *pause;
134         KAction             *slow;
135         KAction             *fast;
136         KAction             *prev;
137         KAction             *next;
138         KAction             *preferences;
139 };
140
141 /*****************************************************************************
142  * intf_sys_t: description and status of KDE interface
143  *****************************************************************************/
144 struct intf_sys_t
145 {
146     KApplication *p_app;
147     KInterface   *p_window;
148     KAboutData   *p_about;
149
150     input_thread_t *p_input;
151 };
152
153 #endif /* _KDE_INTERFACE_H_ */