]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/mediactrl.cpp
fix for crash when using wxEXEC_NODISABLE
[wxWidgets.git] / src / msw / mediactrl.cpp
index 3de8356a08e9cbf82049cbb176e5f0214c5eb70d..6d38693a0fce5c3c1c585f3b9211757c1b05edf8 100644 (file)
@@ -43,9 +43,9 @@
 //---------------------------------------------------------------------------
 extern "C" WXDLLIMPEXP_BASE HINSTANCE wxGetInstance(void);
 #ifdef __WXWINCE__
-extern       wxChar *wxCanvasClassName;
+extern WXDLLIMPEXP_CORE       wxChar *wxCanvasClassName;
 #else
-extern const wxChar *wxCanvasClassName;
+extern WXDLLIMPEXP_CORE const wxChar *wxCanvasClassName;
 #endif
 
 //===========================================================================
@@ -186,7 +186,7 @@ public:
     HWND m_hNotifyWnd;      //Window to use for MCI events
     bool m_bVideo;          //Whether or not we have video
 
-    DECLARE_DYNAMIC_CLASS(wxMCIMediaBackend);
+    DECLARE_DYNAMIC_CLASS(wxMCIMediaBackend)
 };
 
 //---------------------------------------------------------------------------
@@ -336,7 +336,7 @@ wxAMMediaBackend::~wxAMMediaBackend()
 // wxAMMediaBackend::CreateControl
 //
 // ActiveMovie does not really have any native control to speak of,
-// so we just create a normal control with a black background.
+// so we just create a normal control.
 //
 // We also check to see if ActiveMovie is installed
 //---------------------------------------------------------------------------
@@ -368,15 +368,10 @@ bool wxAMMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent,
     // is a child window, it refereshes properly
     //
     if ( !ctrl->wxControl::Create(parent, id, pos, size,
-                            (style | wxNO_BORDER) | wxCLIP_CHILDREN,
+                            (style & ~wxBORDER_MASK) | wxBORDER_NONE | wxCLIP_CHILDREN,
                             validator, name) )
         return false;
 
-    //
-    //Set our background color to black by default
-    //
-    ctrl->SetBackgroundColour(*wxBLACK);
-
     m_ctrl = ctrl;
     return true;
 }
@@ -882,15 +877,10 @@ bool wxMCIMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent,
     // is a child window, it refereshes properly
     //
     if ( !ctrl->wxControl::Create(parent, id, pos, size,
-                            (style & ~wxBORDER_MASK) | wxCLIP_CHILDREN,
+                            (style & ~wxBORDER_MASK) | wxBORDER_NONE | wxCLIP_CHILDREN,
                             validator, name) )
         return false;
 
-    //
-    //Set our background color to black by default
-    //
-    ctrl->SetBackgroundColour(*wxBLACK);
-
     m_ctrl = ctrl;
     return true;
 }
@@ -982,6 +972,8 @@ bool wxMCIMediaBackend::Load(const wxString& fileName)
     ::SetWindowLong(m_hNotifyWnd, GWL_USERDATA,
                        (LONG) this);
 
+    m_ctrl->Show(false);
+
     //
     //Here, if the parent of the control has a sizer - we
     //tell it to recalculate the size of this control since
@@ -1022,8 +1014,13 @@ bool wxMCIMediaBackend::Play()
     MCI_PLAY_PARMS playParms;
     playParms.dwCallback = (DWORD)m_hNotifyWnd;
 
-    return ( mciSendCommand(m_hDev, MCI_PLAY, MCI_NOTIFY,
+    bool bOK = ( mciSendCommand(m_hDev, MCI_PLAY, MCI_NOTIFY,
                             (DWORD)(LPVOID)&playParms) == 0 );
+
+    if(bOK)
+        m_ctrl->Show(m_bVideo);
+
+    return bOK;
 }
 
 //---------------------------------------------------------------------------
@@ -1083,7 +1080,13 @@ bool wxMCIMediaBackend::SetPosition(wxLongLong where)
 {
     MCI_SEEK_PARMS seekParms;
     seekParms.dwCallback = 0;
+#if wxUSE_LONGLONG_NATIVE && !wxUSE_LONGLONG_WX
     seekParms.dwTo = (DWORD)where.GetValue();
+#else /* wxUSE_LONGLONG_WX */
+    /* no way to return it in one piece */
+    wxASSERT( where.GetHi()==0 );
+    seekParms.dwTo = (DWORD)where.GetLo();
+#endif /* wxUSE_LONGLONG_* */
 
     //device was playing?
     bool bReplay = GetState() == wxMEDIASTATE_PLAYING;
@@ -1384,15 +1387,10 @@ bool wxQTMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent,
     // backends, we don't need wxCLIP_CHILDREN
     //
     if ( !ctrl->wxControl::Create(parent, id, pos, size,
-                            (style & ~wxBORDER_MASK),
+                            (style & ~wxBORDER_MASK) | wxBORDER_NONE,
                             validator, name) )
         return false;
 
-    //
-    //Set our background color to black by default
-    //
-    ctrl->SetBackgroundColour(*wxBLACK);
-
     m_ctrl = ctrl;
     return true;
 }
@@ -1618,9 +1616,10 @@ bool wxQTMediaBackend::SetPosition(wxLongLong where)
 }
 
 //---------------------------------------------------------------------------
-// wxQTMediaBackend::Move
+// wxQTMediaBackend::GetPosition
 //
-// TODO
+// 1) Calls GetMovieTime to get the position we are in in the movie
+// in milliseconds (we called
 //---------------------------------------------------------------------------
 wxLongLong wxQTMediaBackend::GetPosition()
 {