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 *ToolButtonBack;
\r
58 TToolButton *ToolButtonStop;
\r
59 TToolButton *ToolButtonEject;
\r
60 TToolButton *ToolButtonPlay;
\r
61 TToolButton *ToolButtonPause;
\r
62 TToolButton *ToolButtonSlow;
\r
63 TToolButton *ToolButtonFast;
\r
64 TToolButton *ToolButtonSep2;
\r
65 TToolButton *ToolButtonPlaylist;
\r
66 TToolButton *ToolButtonPrev;
\r
67 TToolButton *ToolButtonNext;
\r
68 TMainMenu *MainMenu1;
\r
69 TMenuItem *MenuFile;
\r
70 TMenuItem *MenuOpenFile;
\r
71 TMenuItem *MenuOpenDisc;
\r
72 TMenuItem *MenuNetworkStream;
\r
74 TMenuItem *MenuExit;
\r
75 TMenuItem *MenuView;
\r
76 TMenuItem *MenuHideinterface;
\r
77 TMenuItem *MenuFullscreen;
\r
79 TMenuItem *MenuTitle;
\r
80 TMenuItem *MenuChapter;
\r
81 TMenuItem *MenuAngle;
\r
83 TMenuItem *MenuPlaylist;
\r
84 TMenuItem *MenuMessages;
\r
85 TMenuItem *MenuSettings;
\r
86 TMenuItem *MenuAudio;
\r
87 TMenuItem *MenuSubtitles;
\r
89 TMenuItem *MenuPreferences;
\r
90 TMenuItem *MenuHelp;
\r
91 TMenuItem *MenuAbout;
\r
92 TOpenDialog *OpenDialog1;
\r
93 TImageList *ImageListToolbar;
\r
94 TPopupMenu *PopupMenuMain;
\r
95 TMenuItem *PopupPlay;
\r
96 TMenuItem *PopupPause;
\r
97 TMenuItem *PopupStop;
\r
98 TMenuItem *PopupBack;
\r
99 TMenuItem *PopupSlow;
\r
100 TMenuItem *PopupFast;
\r
101 TMenuItem *PopupToggleInterface;
\r
102 TMenuItem *PopupFullscreen;
\r
103 TMenuItem *PopupNext;
\r
104 TMenuItem *PopupPrev;
\r
105 TMenuItem *PopupJump;
\r
106 TMenuItem *PopupNavigation;
\r
107 TMenuItem *PopupProgram;
\r
108 TMenuItem *PopupAudio;
\r
109 TMenuItem *PopupSubtitles;
\r
110 TMenuItem *PopupFile;
\r
111 TMenuItem *PopupPlaylist;
\r
112 TMenuItem *PopupPreferences;
\r
114 TMenuItem *PopupExit;
\r
115 TStatusBar *StatusBar;
\r
116 TGroupBox *GroupBoxFile;
\r
117 TLabel *LabelFileName;
\r
118 TGroupBox *GroupBoxNetwork;
\r
119 TLabel *LabelChannel;
\r
120 TLabel *LabelServer;
\r
121 TGroupBox *GroupBoxDisc;
\r
123 TMenuItem *MenuEjectDisc;
\r
124 TMenuItem *MenuProgram;
\r
126 TLabel *LabelTitle;
\r
127 TButton *ButtonTitlePrev;
\r
128 TButton *ButtonTitleNext;
\r
129 TButton *ButtonChapterPrev;
\r
130 TButton *ButtonChapterNext;
\r
131 TLabel *LabelChapter;
\r
132 TLabel *LabelTitleCurrent;
\r
133 TLabel *LabelChapterCurrent;
\r
135 TGroupBox *GroupBoxSlider;
\r
136 TTrackBar *TrackBar;
\r
137 TTimer *TimerManage;
\r
138 TMenuItem *PopupOpenFile;
\r
139 TMenuItem *PopupOpenDisc;
\r
140 TMenuItem *PopupNetworkStream;
\r
141 TMenuItem *PopupClose;
\r
143 TCSpinEdit *SpinEditChannel;
\r
144 TToolButton *ToolButton1;
\r
145 TActionList *ActionList1;
\r
146 TAction *OpenFileAction;
\r
147 TAction *OpenDiscAction;
\r
148 TAction *NetworkStreamAction;
\r
149 TAction *PlayAction;
\r
150 TAction *PauseAction;
\r
151 TAction *StopAction;
\r
152 TAction *EjectAction;
\r
153 TAction *SlowAction;
\r
154 TAction *FastAction;
\r
155 TAction *PreviousAction;
\r
156 TAction *NextAction;
\r
157 TAction *BackAction;
\r
158 TAction *PlaylistAction;
\r
159 TAction *ExitAction;
\r
160 TAction *FullscreenAction;
\r
161 TAction *PreferencesAction;
\r
162 TAction *MessagesAction;
\r
163 TAction *AboutAction;
\r
164 TMenuItem *Control1;
\r
168 TAction *PrevTitleAction;
\r
169 TAction *NextTitleAction;
\r
170 TAction *PrevChapterAction;
\r
171 TAction *NextChapterAction;
\r
172 void __fastcall TimerManageTimer( TObject *Sender );
\r
173 void __fastcall TrackBarChange( TObject *Sender );
\r
174 void __fastcall FormClose( TObject *Sender, TCloseAction &Action );
\r
175 void __fastcall MenuHideinterfaceClick( TObject *Sender );
\r
176 void __fastcall PopupCloseClick( TObject *Sender );
\r
177 void __fastcall PopupToggleInterfaceClick( TObject *Sender );
\r
178 void __fastcall PopupJumpClick( TObject *Sender );
\r
179 void __fastcall ButtonGoClick( TObject *Sender );
\r
180 void __fastcall OpenFileActionExecute( TObject *Sender );
\r
181 void __fastcall OpenDiscActionExecute( TObject *Sender );
\r
182 void __fastcall NetworkStreamActionExecute( TObject *Sender );
\r
183 void __fastcall BackActionExecute( TObject *Sender );
\r
184 void __fastcall PlayActionExecute( TObject *Sender );
\r
185 void __fastcall PauseActionExecute( TObject *Sender );
\r
186 void __fastcall StopActionExecute( TObject *Sender );
\r
187 void __fastcall SlowActionExecute( TObject *Sender );
\r
188 void __fastcall FastActionExecute( TObject *Sender );
\r
189 void __fastcall EjectActionExecute( TObject *Sender );
\r
190 void __fastcall PlaylistActionExecute( TObject *Sender );
\r
191 void __fastcall PreviousActionExecute( TObject *Sender );
\r
192 void __fastcall NextActionExecute( TObject *Sender );
\r
193 void __fastcall FullscreenActionExecute( TObject *Sender );
\r
194 void __fastcall PreferencesActionExecute( TObject *Sender );
\r
195 void __fastcall MessagesActionExecute( TObject *Sender );
\r
196 void __fastcall AboutActionExecute( TObject *Sender );
\r
197 void __fastcall ExitActionExecute( TObject *Sender );
\r
198 void __fastcall PrevTitleActionExecute( TObject *Sender );
\r
199 void __fastcall NextTitleActionExecute( TObject *Sender );
\r
200 void __fastcall PrevChapterActionExecute( TObject *Sender );
\r
201 void __fastcall NextChapterActionExecute( TObject *Sender );
\r
202 private: // User declarations
\r
203 intf_thread_t *p_intf;
\r
204 /* drag and drop handling */
\r
205 LPDROPTARGET lpDropTarget;
\r
207 MESSAGE_HANDLER( WM_OLEDROP, TMessage, OnDrop )
\r
208 END_MESSAGE_MAP( TForm )
\r
209 public: // User declarations
\r
210 TStringList *StringListPref; /* stores config dialogs */
\r
211 __fastcall TMainFrameDlg( TComponent* Owner, intf_thread_t *_p_intf );
\r
212 virtual __fastcall ~TMainFrameDlg();
\r
213 void __fastcall DisplayHint( TObject *Sender );
\r
214 void __fastcall ModeManage();
\r
215 void __fastcall CreatePreferences( AnsiString Name );
\r
216 void __fastcall MenuProgramClick( TObject *Sender );
\r
217 void __fastcall MenuAudioClick( TObject *Sender );
\r
218 void __fastcall MenuSubtitleClick( TObject *Sender );
\r
219 void __fastcall MenuTitleClick( TObject *Sender );
\r
220 void __fastcall MenuChapterClick( TObject *Sender );
\r
221 void __fastcall PopupProgramClick( TObject *Sender );
\r
222 void __fastcall PopupAudioClick( TObject *Sender );
\r
223 void __fastcall PopupSubtitleClick( TObject *Sender );
\r
224 void __fastcall PopupNavigationClick( TObject *Sender );
\r
225 void __fastcall OnDrop( TMessage &Msg );
\r
227 //---------------------------------------------------------------------------
\r