]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/mediactrlcmn.cpp
Sun CC doesn't allow calling static function from template instantiations so rename...
[wxWidgets.git] / src / common / mediactrlcmn.cpp
index b0d93db7af568972e499f9115b370fb8bc05686d..6120cada491a7cebc59b3a9affa3c072d0d0838e 100644 (file)
 // TODO: Platform specific backend defaults?
 
 //===========================================================================
-// Definitions
+// Declarations
 //===========================================================================
 
 //---------------------------------------------------------------------------
-// Pre-compiled header stuff
+// Includes
 //---------------------------------------------------------------------------
 
 #include "wx/wxprec.h"
 
 #ifndef WX_PRECOMP
     #include "wx/hash.h"
+    #include "wx/log.h"
 #endif
 
-//---------------------------------------------------------------------------
-// Includes
-//---------------------------------------------------------------------------
 #include "wx/mediactrl.h"
 
 //===========================================================================
@@ -120,12 +118,13 @@ bool wxMediaCtrl::Create(wxWindow* parent, wxWindowID id,
     }
     else
     {
-        wxClassInfo::sm_classTable->BeginFind();
+        wxClassInfo::const_iterator it = wxClassInfo::begin_classinfo();
 
-        wxClassInfo* classInfo;
+        const wxClassInfo* classInfo;
 
-        while((classInfo = NextBackend()) != NULL)
+        while((classInfo = NextBackend(&it)) != NULL)
         {
+            wxLogMessage( classInfo->GetClassName() );
             if(!DoCreate(classInfo, parent, id,
                          pos, size, style, validator, name))
                 continue;
@@ -183,11 +182,11 @@ bool wxMediaCtrl::Create(wxWindow* parent, wxWindowID id,
     }
     else
     {
-        wxClassInfo::sm_classTable->BeginFind();
+        wxClassInfo::const_iterator it  = wxClassInfo::begin_classinfo();
 
-        wxClassInfo* classInfo;
+        const wxClassInfo* classInfo;
 
-        while((classInfo = NextBackend()) != NULL)
+        while((classInfo = NextBackend(&it)) != NULL)
         {
             if(!DoCreate(classInfo, parent, id,
                          pos, size, style, validator, name))
@@ -212,7 +211,7 @@ bool wxMediaCtrl::Create(wxWindow* parent, wxWindowID id,
 //
 // Attempts to create the control from a backend
 //---------------------------------------------------------------------------
-bool wxMediaCtrl::DoCreate(wxClassInfo* classInfo,
+bool wxMediaCtrl::DoCreate(const wxClassInfo* classInfo,
                             wxWindow* parent, wxWindowID id,
                             const wxPoint& pos,
                             const wxSize& size,
@@ -246,19 +245,18 @@ bool wxMediaCtrl::DoCreate(wxClassInfo* classInfo,
 // incompatible with the old 2.4 stable version - but since
 // we're in 2.5+ only we don't need to worry about the new version
 //---------------------------------------------------------------------------
-wxClassInfo* wxMediaCtrl::NextBackend()
+const wxClassInfo* wxMediaCtrl::NextBackend(wxClassInfo::const_iterator* it)
 {
-    wxHashTable::compatibility_iterator
-            node = wxClassInfo::sm_classTable->Next();
-    while (node)
+    for ( wxClassInfo::const_iterator end = wxClassInfo::end_classinfo();
+          *it != end; ++(*it) )
     {
-        wxClassInfo* classInfo = (wxClassInfo *)node->GetData();
+        const wxClassInfo* classInfo = **it;
         if ( classInfo->IsKindOf(CLASSINFO(wxMediaBackend)) &&
              classInfo != CLASSINFO(wxMediaBackend) )
         {
+            ++(*it);
             return classInfo;
         }
-        node = wxClassInfo::sm_classTable->Next();
     }
 
     //