1 /*****************************************************************************
\r
2 * mainframe.h: Prototype for main window
\r
3 *****************************************************************************
\r
4 * Copyright (C) 2002 VideoLAN
\r
6 * Authors: Olivier Teuliere <ipkiss@via.ecp.fr>
\r
8 * This program is free software; you can redistribute it and/or modify
\r
9 * it under the terms of the GNU General Public License as published by
\r
10 * the Free Software Foundation; either version 2 of the License, or
\r
11 * (at your option) any later version.
\r
13 * This program is distributed in the hope that it will be useful,
\r
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
16 * GNU General Public License for more details.
\r
18 * You should have received a copy of the GNU General Public License
\r
19 * along with this program; if not, write to the Free Software
\r
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
\r
21 *****************************************************************************/
\r
26 //---------------------------------------------------------------------------
\r
27 #include <Classes.hpp>
\r
28 #include <Controls.hpp>
\r
29 #include <StdCtrls.hpp>
\r
30 #include <Forms.hpp>
\r
31 #include <ComCtrls.hpp>
\r
32 #include <Dialogs.hpp>
\r
33 #include <ImgList.hpp>
\r
34 #include <Menus.hpp>
\r
35 #include <ToolWin.hpp>
\r
36 #include <AppEvnts.hpp>
\r
37 #include <ExtCtrls.hpp>
\r
39 #include <ActnList.hpp>
\r
41 #include <oleidl.h> /* for drag and drop */
\r
43 /*****************************************************************************
\r
44 * This message is sent to the controls registered as drop targets
\r
45 *****************************************************************************/
\r
46 #define WM_OLEDROP WM_USER + 1
\r
48 //---------------------------------------------------------------------------
\r
49 class TMainFrameDlg : public TForm
\r
51 __published: // IDE-managed Components
\r
53 TToolButton *ToolButtonFile;
\r
54 TToolButton *ToolButtonDisc;
\r
55 TToolButton *ToolButtonNet;
\r
56 TToolButton *ToolButtonSep1;
\r
57 TToolButton *ToolButtonStop;
\r
58 TToolButton *ToolButtonPlay;
\r
59 TToolButton *ToolButtonPause;
\r
60 TToolButton *ToolButtonSep2;
\r
61 TToolButton *ToolButtonSlow;
\r
62 TToolButton *ToolButtonFast;
\r
63 TToolButton *ToolButtonSep3;
\r
64 TToolButton *ToolButtonPlaylist;
\r
65 TToolButton *ToolButtonPrev;
\r
66 TToolButton *ToolButtonNext;
\r
67 TMainMenu *MainMenu1;
\r
68 TMenuItem *MenuFile;
\r
69 TMenuItem *MenuOpenFile;
\r
70 TMenuItem *MenuOpenDisc;
\r
71 TMenuItem *MenuNetworkStream;
\r
72 TMenuItem *MenuExit;
\r
73 TMenuItem *MenuView;
\r
74 TMenuItem *MenuHideinterface;
\r
75 TMenuItem *MenuTitle;
\r
76 TMenuItem *MenuChapter;
\r
77 TMenuItem *MenuAngle;
\r
79 TMenuItem *MenuPlaylist;
\r
80 TMenuItem *MenuMessages;
\r
81 TMenuItem *MenuControls;
\r
82 TMenuItem *MenuLanguage;
\r
83 TMenuItem *MenuSubtitles;
\r
84 TMenuItem *MenuPreferences;
\r
85 TMenuItem *MenuHelp;
\r
86 TMenuItem *MenuAbout;
\r
87 TOpenDialog *OpenDialog1;
\r
88 TImageList *ImageListToolbar;
\r
89 TPopupMenu *PopupMenuMain;
\r
90 TMenuItem *PopupPlay;
\r
91 TMenuItem *PopupPause;
\r
92 TMenuItem *PopupStop;
\r
93 TMenuItem *PopupBack;
\r
94 TMenuItem *PopupSlow;
\r
95 TMenuItem *PopupFast;
\r
96 TMenuItem *PopupToggleInterface;
\r
97 TMenuItem *PopupNext;
\r
98 TMenuItem *PopupPrev;
\r
99 TMenuItem *PopupJump;
\r
100 TMenuItem *PopupNavigation;
\r
101 TMenuItem *PopupProgram;
\r
102 TMenuItem *PopupLanguage;
\r
103 TMenuItem *PopupSubtitles;
\r
104 TMenuItem *PopupFile;
\r
105 TMenuItem *PopupPlaylist;
\r
106 TMenuItem *PopupPreferences;
\r
108 TMenuItem *PopupExit;
\r
109 TStatusBar *StatusBar;
\r
110 TGroupBox *GroupBoxFile;
\r
111 TLabel *LabelFileName;
\r
112 TGroupBox *GroupBoxNetwork;
\r
113 TLabel *LabelChannel;
\r
114 TLabel *LabelServer;
\r
115 TGroupBox *GroupBoxDisc;
\r
117 TMenuItem *MenuProgram;
\r
119 TLabel *LabelTitle;
\r
120 TButton *ButtonTitlePrev;
\r
121 TButton *ButtonTitleNext;
\r
122 TButton *ButtonChapterPrev;
\r
123 TButton *ButtonChapterNext;
\r
124 TLabel *LabelChapter;
\r
125 TLabel *LabelTitleCurrent;
\r
126 TLabel *LabelChapterCurrent;
\r
128 TGroupBox *GroupBoxSlider;
\r
129 TTrackBar *TrackBar;
\r
130 TTimer *TimerManage;
\r
131 TMenuItem *PopupOpenFile;
\r
132 TMenuItem *PopupOpenDisc;
\r
133 TMenuItem *PopupNetworkStream;
\r
134 TMenuItem *PopupClose;
\r
136 TCSpinEdit *SpinEditChannel;
\r
137 TActionList *ActionList1;
\r
138 TAction *OpenFileAction;
\r
139 TAction *OpenDiscAction;
\r
140 TAction *NetworkStreamAction;
\r
141 TAction *PlayAction;
\r
142 TAction *PauseAction;
\r
143 TAction *StopAction;
\r
144 TAction *EjectAction;
\r
145 TAction *SlowAction;
\r
146 TAction *FastAction;
\r
147 TAction *PreviousAction;
\r
148 TAction *NextAction;
\r
149 TAction *BackAction;
\r
150 TAction *PlaylistAction;
\r
151 TAction *ExitAction;
\r
152 TAction *FullscreenAction;
\r
153 TAction *PreferencesAction;
\r
154 TAction *MessagesAction;
\r
155 TAction *AboutAction;
\r
156 TAction *PrevTitleAction;
\r
157 TAction *NextTitleAction;
\r
158 TAction *PrevChapterAction;
\r
159 TAction *NextChapterAction;
\r
160 TAction *VolumeUpAction;
\r
161 TAction *VolumeDownAction;
\r
162 TAction *MuteAction;
\r
163 TAction *StreamOutputAction;
\r
164 TAction *AddSubtitlesAction;
\r
165 TMenuItem *Control1;
\r
169 TMenuItem *MenuChannel;
\r
170 TMenuItem *PopupChannel;
\r
171 TMenuItem *MenuVolumeUp;
\r
172 TMenuItem *MenuVolumeDown;
\r
173 TMenuItem *MenuMute;
\r
174 TMenuItem *MenuADevice;
\r
175 TMenuItem *PopupAudioSettings;
\r
176 TMenuItem *PopupADevice;
\r
177 TMenuItem *VolumeDown1;
\r
178 TMenuItem *VolumeUp1;
\r
180 TMenuItem *MenuVDevice;
\r
182 TMenuItem *PopupVDevice;
\r
183 TMenuItem *MenuStreamOuput;
\r
184 TMenuItem *MenuAddSubtitles;
\r
186 TMenuItem *MenuAddInterface;
\r
187 TAction *OnTopAction;
\r
188 TMenuItem *MenuFullscreen;
\r
189 TMenuItem *MenuOnTop;
\r
190 TMenuItem *PopupFullscreen;
\r
191 TMenuItem *Videosettings1;
\r
192 TMenuItem *PopupOnTop;
\r
194 TMenuItem *MenuEjectDisc;
\r
195 void __fastcall TimerManageTimer( TObject *Sender );
\r
196 void __fastcall TrackBarChange( TObject *Sender );
\r
197 void __fastcall FormClose( TObject *Sender, TCloseAction &Action );
\r
198 void __fastcall MenuHideinterfaceClick( TObject *Sender );
\r
199 void __fastcall PopupCloseClick( TObject *Sender );
\r
200 void __fastcall PopupToggleInterfaceClick( TObject *Sender );
\r
201 void __fastcall PopupJumpClick( TObject *Sender );
\r
202 void __fastcall ButtonGoClick( TObject *Sender );
\r
203 void __fastcall OpenFileActionExecute( TObject *Sender );
\r
204 void __fastcall OpenDiscActionExecute( TObject *Sender );
\r
205 void __fastcall NetworkStreamActionExecute( TObject *Sender );
\r
206 void __fastcall StreamOutputActionExecute( TObject *Sender );
\r
207 void __fastcall ExitActionExecute( TObject *Sender );
\r
208 void __fastcall PlaylistActionExecute( TObject *Sender );
\r
209 void __fastcall MessagesActionExecute( TObject *Sender );
\r
210 void __fastcall AboutActionExecute( TObject *Sender );
\r
211 void __fastcall BackActionExecute( TObject *Sender );
\r
212 void __fastcall PlayActionExecute( TObject *Sender );
\r
213 void __fastcall PauseActionExecute( TObject *Sender );
\r
214 void __fastcall StopActionExecute( TObject *Sender );
\r
215 void __fastcall SlowActionExecute( TObject *Sender );
\r
216 void __fastcall FastActionExecute( TObject *Sender );
\r
217 void __fastcall PreviousActionExecute( TObject *Sender );
\r
218 void __fastcall NextActionExecute( TObject *Sender );
\r
219 void __fastcall EjectActionExecute( TObject *Sender );
\r
220 void __fastcall VolumeUpActionExecute( TObject *Sender );
\r
221 void __fastcall VolumeDownActionExecute( TObject *Sender );
\r
222 void __fastcall MuteActionExecute( TObject *Sender );
\r
223 void __fastcall FullscreenActionExecute( TObject *Sender );
\r
224 void __fastcall PreferencesActionExecute( TObject *Sender );
\r
225 void __fastcall PrevTitleActionExecute( TObject *Sender );
\r
226 void __fastcall NextTitleActionExecute( TObject *Sender );
\r
227 void __fastcall PrevChapterActionExecute( TObject *Sender );
\r
228 void __fastcall NextChapterActionExecute( TObject *Sender );
\r
229 void __fastcall AddSubtitlesActionsExecute( TObject *Sender );
\r
230 void __fastcall OnTopActionExecute( TObject *Sender );
\r
231 private: // User declarations
\r
232 intf_thread_t *p_intf;
\r
233 /* drag and drop handling */
\r
234 LPDROPTARGET lpDropTarget;
\r
236 MESSAGE_HANDLER( WM_OLEDROP, TMessage, OnDrop )
\r
237 END_MESSAGE_MAP( TForm )
\r
238 public: // User declarations
\r
239 TStringList *StringListPref; /* stores config dialogs */
\r
240 __fastcall TMainFrameDlg( TComponent* Owner, intf_thread_t *_p_intf );
\r
241 virtual __fastcall ~TMainFrameDlg();
\r
242 void __fastcall DisplayHint( TObject *Sender );
\r
243 void __fastcall ModeManage();
\r
244 void __fastcall CreatePreferences( AnsiString Name );
\r
245 void __fastcall MenuProgramClick( TObject *Sender );
\r
246 void __fastcall MenuAudioClick( TObject *Sender );
\r
247 void __fastcall MenuSubtitleClick( TObject *Sender );
\r
248 void __fastcall MenuTitleClick( TObject *Sender );
\r
249 void __fastcall MenuChapterClick( TObject *Sender );
\r
250 void __fastcall PopupProgramClick( TObject *Sender );
\r
251 void __fastcall PopupAudioClick( TObject *Sender );
\r
252 void __fastcall PopupSubtitleClick( TObject *Sender );
\r
253 void __fastcall PopupNavigationClick( TObject *Sender );
\r
254 void __fastcall OnDrop( TMessage &Msg );
\r
256 //---------------------------------------------------------------------------
\r