added HasHandlerForPath() (modified patch 1514524)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40281 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2006-07-24 17:37:39 +00:00
parent 9e34f56be8
commit b8b37cedd3
3 changed files with 23 additions and 0 deletions

View File

@ -54,6 +54,14 @@ are deleted in wxFileSystem's destructor so that you don't have to
care about it. care about it.
\membersection{wxFileSystem::HasHandlerForPath}\label{wxfilesystemhashandlerforpath}
\func{static bool}{HasHandlerForPath}{\param{const wxString \&}{ location}}
This static function returns \true if there is a registered handler which can open the given
location.
\membersection{wxFileSystem::ChangePathTo}\label{wxfilesystemchangepathto} \membersection{wxFileSystem::ChangePathTo}\label{wxfilesystemchangepathto}
\func{void}{ChangePathTo}{\param{const wxString\& }{location}, \param{bool }{is\_dir = false}} \func{void}{ChangePathTo}{\param{const wxString\& }{location}, \param{bool }{is\_dir = false}}

View File

@ -188,6 +188,9 @@ public:
// In fact, this class is only front-end to the FS handlers :-) // In fact, this class is only front-end to the FS handlers :-)
static void AddHandler(wxFileSystemHandler *handler); static void AddHandler(wxFileSystemHandler *handler);
// Returns true if there is a handler which can open the given location.
static bool HasHandlerForPath(const wxString& location);
// remove all items from the m_Handlers list // remove all items from the m_Handlers list
static void CleanUpHandlers(); static void CleanUpHandlers();

View File

@ -485,6 +485,18 @@ void wxFileSystem::AddHandler(wxFileSystemHandler *handler)
m_Handlers.Append(handler); m_Handlers.Append(handler);
} }
bool wxFileSystem::HasHandlerForPath(const wxString &location)
{
for ( wxList::compatibility_iterator node = m_Handlers.GetFirst();
node; node = node->GetNext() )
{
wxFileSystemHandler *h = (wxFileSystemHandler*) node->GetData();
if (h->CanOpen(location))
return true;
}
return false;
}
void wxFileSystem::CleanUpHandlers() void wxFileSystem::CleanUpHandlers()
{ {