bool wxMediaCtrl::Create(wxWindow* parent, wxWindowID id, const wxURI& location, const wxPoint& pos, const wxSize& size, long style, const wxString& szBackend, const wxValidator& validator, const wxString& name) { if(!szBackend.empty()) { wxClassInfo* pClassInfo = wxClassInfo::FindClass(szBackend); if(!pClassInfo || !DoCreate(pClassInfo, parent, id, pos, size, style, validator, name)) { m_imp = NULL; return false; } if (!Load(location)) { delete m_imp; m_imp = NULL; return false; } SetInitialSize(size); return true; } else { wxClassInfo::const_iterator it = wxClassInfo::begin_classinfo(); const wxClassInfo* classInfo; while((classInfo = NextBackend(&it)) != NULL) { if(!DoCreate(classInfo, parent, id, pos, size, style, validator, name)) continue; if (Load(location)) { SetInitialSize(size); return true; } else delete m_imp; } m_imp = NULL; return false; } }
//--------------------------------------------------------------------------- // wxMediaCtrl::Create (file version) // wxMediaCtrl::Create (URL version) // // Searches for a backend that is installed on the system (backends // starting with lower characters in the alphabet are given priority), // and creates the control from it // // This searches by searching the global RTTI hashtable, class by class, // attempting to call CreateControl on each one found that is a derivative // of wxMediaBackend - if it succeeded Create returns true, otherwise // it keeps iterating through the hashmap. //--------------------------------------------------------------------------- bool wxMediaCtrl::Create(wxWindow* parent, wxWindowID id, const wxString& fileName, const wxPoint& pos, const wxSize& size, long style, const wxString& szBackend, const wxValidator& validator, const wxString& name) { if(!szBackend.empty()) { wxClassInfo* pClassInfo = wxClassInfo::FindClass(szBackend); if(!pClassInfo || !DoCreate(pClassInfo, parent, id, pos, size, style, validator, name)) { m_imp = NULL; return false; } if (!fileName.empty()) { if (!Load(fileName)) { delete m_imp; m_imp = NULL; return false; } } SetBestFittingSize(size); return true; } else { wxClassInfo::sm_classTable->BeginFind(); wxClassInfo* classInfo; while((classInfo = NextBackend()) != NULL) { if(!DoCreate(classInfo, parent, id, pos, size, style, validator, name)) continue; if (!fileName.empty()) { if (Load(fileName)) { SetBestFittingSize(size); return true; } else delete m_imp; } else { SetBestFittingSize(size); return true; } } m_imp = NULL; return false; } }
//--------------------------------------------------------------------------- // wxMediaCtrl::Create (file version) // wxMediaCtrl::Create (URL version) // // Searches for a backend that is installed on the system (backends // starting with lower characters in the alphabet are given priority), // and creates the control from it // // This searches by searching the global RTTI hashtable, class by class, // attempting to call CreateControl on each one found that is a derivative // of wxMediaBackend - if it succeeded Create returns true, otherwise // it keeps iterating through the hashmap. //--------------------------------------------------------------------------- bool wxMediaCtrl::Create(wxWindow* parent, wxWindowID id, const wxString& fileName, const wxPoint& pos, const wxSize& size, long style, const wxString& szBackend, const wxValidator& validator, const wxString& name) { if(!szBackend.empty()) { wxClassInfo* pClassInfo = wxClassInfo::FindClass(szBackend); if(!pClassInfo || !DoCreate(pClassInfo, parent, id, pos, size, style, validator, name)) { m_imp = NULL; return false; } if (!fileName.empty()) { if (!Load(fileName)) { wxDELETE(m_imp); return false; } } SetInitialSize(size); return true; } else { wxClassInfo::const_iterator it = wxClassInfo::begin_classinfo(); const wxClassInfo* classInfo; #if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */ # pragma ivdep # pragma swp # pragma unroll # pragma prefetch # if 0 # pragma simd noassert # endif #endif /* VDM auto patch */ while((classInfo = NextBackend(&it)) != NULL) { if(!DoCreate(classInfo, parent, id, pos, size, style, validator, name)) continue; if (!fileName.empty()) { if (Load(fileName)) { SetInitialSize(size); return true; } else delete m_imp; } else { SetInitialSize(size); return true; } } m_imp = NULL; return false; } }