]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/stream.cpp
removed unused GetScrollbarArrowSize() version
[wxWidgets.git] / src / common / stream.cpp
index 618ae6ed322cf7138a15cbc0ea55247c8de0a695..5407bd206237d9f115f73893a28a9551c37b123d 100644 (file)
@@ -1106,38 +1106,55 @@ wxFilterOutputStream::~wxFilterOutputStream()
 }
 
 // ----------------------------------------------------------------------------
-// wxFilterClassFactory
+// wxFilterClassFactoryBase
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_ABSTRACT_CLASS(wxFilterClassFactory, wxObject)
+IMPLEMENT_ABSTRACT_CLASS(wxFilterClassFactoryBase, wxObject)
 
-wxFilterClassFactory *wxFilterClassFactory::sm_first = NULL;
+wxString wxFilterClassFactoryBase::PopExtension(const wxString& location) const
+{
+    return location.substr(0, FindExtension(location));
+}
 
-bool wxFilterClassFactory::CanHandle(const wxChar *protocol,
-                                     wxStreamProtocolType type) const
+wxString::size_type wxFilterClassFactoryBase::FindExtension(
+        const wxChar *location) const
 {
-    if (type == wxSTREAM_FILEEXTENSION)
-    {
-        size_t len = wxStrlen(protocol);
+    size_t len = wxStrlen(location);
 
-        for (const wxChar * const *p = GetProtocols(type); p && *p; p++)
-        {
-            size_t l = wxStrlen(*p);
+    for (const wxChar *const *p = GetProtocols(wxSTREAM_FILEEXTENSION);
+         p && *p;
+         p++)
+    {
+        size_t l = wxStrlen(*p);
 
-            if (l <= len && wxStrcmp(*p, protocol + len - l) == 0)
-                return true;
-        }
+        if (l <= len && wxStrcmp(*p, location + len - l) == 0)
+            return len - l;
     }
+
+    return wxString::npos;
+}
+
+bool wxFilterClassFactoryBase::CanHandle(const wxChar *protocol,
+                                         wxStreamProtocolType type) const
+{
+    if (type == wxSTREAM_FILEEXTENSION)
+        return FindExtension(protocol) != wxString::npos;
     else
-    {
-        for (const wxChar * const *p = GetProtocols(type); p && *p; p++)
+        for (const wxChar *const *p = GetProtocols(type); p && *p; p++)
             if (wxStrcmp(*p, protocol) == 0)
                 return true;
-    }
 
     return false;
 }
 
+// ----------------------------------------------------------------------------
+// wxFilterClassFactory
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_ABSTRACT_CLASS(wxFilterClassFactory, wxFilterClassFactoryBase)
+
+wxFilterClassFactory *wxFilterClassFactory::sm_first = NULL;
+
 void wxFilterClassFactory::Remove()
 {
     if (m_next != this)