]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/filectrlcmn.cpp
Fix assert when editing an item in multi-selection wxTreeCtrl.
[wxWidgets.git] / src / common / filectrlcmn.cpp
index d6b4adb044c4d3030d79df8de0855d3c1e99cefe..b8d3ec1830d9bcffc45f534efab6fa23d7d44c88 100644 (file)
 #    include "wx/debug.h"
 #endif
 
-const wxChar wxFileCtrlNameStr[] = wxT( "wxfilectrl" );
+const char wxFileCtrlNameStr[] = "wxfilectrl";
 
-DEFINE_EVENT_TYPE( wxEVT_FILECTRL_SELECTIONCHANGED );
-DEFINE_EVENT_TYPE( wxEVT_FILECTRL_FILEACTIVATED );
-DEFINE_EVENT_TYPE( wxEVT_FILECTRL_FOLDERCHANGED );
+wxDEFINE_EVENT( wxEVT_FILECTRL_SELECTIONCHANGED, wxFileCtrlEvent );
+wxDEFINE_EVENT( wxEVT_FILECTRL_FILEACTIVATED, wxFileCtrlEvent );
+wxDEFINE_EVENT( wxEVT_FILECTRL_FOLDERCHANGED, wxFileCtrlEvent );
+wxDEFINE_EVENT( wxEVT_FILECTRL_FILTERCHANGED, wxFileCtrlEvent );
 
 IMPLEMENT_DYNAMIC_CLASS( wxFileCtrlEvent, wxCommandEvent )
 
 // some helper functions
 
+void GenerateFilterChangedEvent( wxFileCtrlBase *fileCtrl, wxWindow *wnd )
+{
+    wxFileCtrlEvent event( wxEVT_FILECTRL_FILTERCHANGED, wnd, wnd->GetId() );
+
+    event.SetFilterIndex( fileCtrl->GetFilterIndex() );
+
+    wnd->GetEventHandler()->ProcessEvent( event );
+}
+
 void GenerateFolderChangedEvent( wxFileCtrlBase *fileCtrl, wxWindow *wnd )
 {
     wxFileCtrlEvent event( wxEVT_FILECTRL_FOLDERCHANGED, wnd, wnd->GetId() );
@@ -84,10 +94,10 @@ wxString wxFileCtrlEvent::GetFile() const
     wxASSERT_MSG( !wxDynamicCast( GetEventObject(), wxFileCtrl )->HasMultipleFileSelection(),
                   wxT( "Please use GetFiles() to get all files instead of this function" ) );
 
-    if ( files.Count() == 0 )
-        return wxEmptyString;
-    else
-        return files[0];
+    wxString string;
+    if (m_files.Count() != 0)
+        string = m_files[0];
+    return string;
 }
 
 #endif // wxUSE_FILECTRL