]>
Commit | Line | Data |
---|---|---|
4ad7af2b RN |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: wx/msw/moviectrl.h | |
3 | // Purpose: DirectX7+ wxMovieCtrl MSW | |
4 | // Author: Ryan Norton <wxprojects@comcast.net> | |
5 | // Modified by: | |
6 | // Created: 11/07/04 | |
7 | // RCS-ID: $Id$ | |
8 | // Copyright: (c) Ryan Norton | |
9 | // Licence: wxWindows licence | |
10 | ///////////////////////////////////////////////////////////////////////////// | |
11 | ||
12 | #include "wx/defs.h" | |
13 | ||
14 | #if wxUSE_MOVIECTRL | |
15 | ||
16 | #include "wx/datetime.h" | |
0568fd59 | 17 | #include "wx/control.h" |
4ad7af2b RN |
18 | |
19 | enum wxMovieCtrlState | |
20 | { | |
21 | wxMOVIECTRL_STOPPED, | |
22 | wxMOVIECTRL_PAUSED, | |
23 | wxMOVIECTRL_PLAYING | |
24 | }; | |
25 | ||
26 | class wxMovieCtrl : public wxControl | |
27 | { | |
28 | public: | |
3a774635 | 29 | wxMovieCtrl() : m_bLoaded(false) |
4ad7af2b RN |
30 | { } |
31 | ||
32 | wxMovieCtrl(wxWindow* parent, wxWindowID id, const wxString& fileName, const wxString& label = wxT(""), | |
33 | const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, | |
3a774635 | 34 | long style = 0, const wxString& name = wxPanelNameStr) : m_bLoaded(false) |
4ad7af2b RN |
35 | { Create(parent, id, fileName, label, pos, size, style, name); } |
36 | ||
37 | ~wxMovieCtrl(); | |
38 | ||
39 | bool Create(wxWindow* parent, wxWindowID id, const wxString& fileName, const wxString& label = wxT(""), | |
40 | const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, | |
41 | long style = 0, const wxString& name = wxPanelNameStr); | |
42 | ||
43 | bool Play(); | |
44 | bool Pause(); | |
45 | bool Stop(); | |
46 | ||
47 | wxMovieCtrlState GetState(); | |
48 | ||
0568fd59 RN |
49 | double GetPlaybackRate(); |
50 | bool SetPlaybackRate(double dRate); | |
51 | ||
3a774635 RN |
52 | bool Load(const wxString& fileName); |
53 | ||
4ad7af2b RN |
54 | #if wxUSE_DATETIME |
55 | bool Seek(const wxTimeSpan& where); | |
0568fd59 RN |
56 | wxTimeSpan Tell(); |
57 | wxTimeSpan Length(); | |
4ad7af2b RN |
58 | #endif |
59 | ||
4ad7af2b RN |
60 | protected: |
61 | void OnSize(wxSizeEvent& evt); | |
62 | wxSize DoGetBestSize() const; | |
63 | bool InitQT(); | |
3a774635 RN |
64 | void Cleanup(); |
65 | ||
66 | bool m_bLoaded; | |
4ad7af2b RN |
67 | |
68 | struct MovieRecord* m_movie; | |
69 | wxSize m_bestSize; | |
70 | class _wxQTTimer* m_timer; | |
0568fd59 RN |
71 | |
72 | friend class _wxQTTimer; | |
4ad7af2b RN |
73 | |
74 | DECLARE_DYNAMIC_CLASS(wxMovieCtrl); | |
4ad7af2b RN |
75 | }; |
76 | ||
0568fd59 RN |
77 | //Event stuff |
78 | class WXDLLEXPORT wxMovieEvent : public wxNotifyEvent | |
79 | { | |
80 | public: | |
81 | wxMovieEvent(wxEventType commandType = wxEVT_NULL, int id = 0) | |
82 | : wxNotifyEvent(commandType, id) | |
83 | { } | |
84 | ||
85 | wxMovieEvent(const wxMovieEvent &clone) | |
86 | : wxNotifyEvent(clone.GetEventType(), clone.GetId()) | |
87 | { } | |
88 | ||
89 | wxEvent *Clone() { return new wxMovieEvent(*this); } | |
90 | ||
91 | DECLARE_DYNAMIC_CLASS(wxMovieEvent) | |
92 | }; | |
93 | ||
94 | #define wxMOVIE_FINISHED_ID 13000 | |
95 | DECLARE_EVENT_TYPE(wxEVT_MOVIE_FINISHED, wxMOVIE_FINISHED_ID) | |
96 | typedef void (wxEvtHandler::*wxMovieEventFunction)(wxMovieEvent&); | |
97 | #define EVT_MOVIE_FINISHED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MOVIE_FINISHED, winid, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxMovieEventFunction) & fn, (wxObject *) NULL ), | |
98 | ||
4ad7af2b | 99 | #endif // wxUSE_MOVIECTRL |