]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/filedlgg.cpp
Removed checklistbox test
[wxWidgets.git] / src / generic / filedlgg.cpp
index 6eeb171d42b3a34f3938905a5667a0d11a532005..638c1173f1367343d0816817f763e74069939be7 100644 (file)
@@ -157,6 +157,7 @@ extern size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, w
 
 wxFileData::wxFileData( const wxString &filePath, const wxString &fileName, fileType type, int image_id )
 {
+    Init();
     m_fileName = fileName;
     m_filePath = filePath;
     m_type = type;
@@ -165,6 +166,13 @@ wxFileData::wxFileData( const wxString &filePath, const wxString &fileName, file
     ReadData();
 }
 
+void wxFileData::Init()
+{
+    m_size = 0;
+    m_type = wxFileData::is_file;
+    m_image = wxFileIconsTable::file;
+}
+
 void wxFileData::Copy( const wxFileData& fileData )
 {
     m_fileName = fileData.GetFileName();
@@ -173,7 +181,7 @@ void wxFileData::Copy( const wxFileData& fileData )
     m_dateTime = fileData.GetDateTime();
     m_permissions = fileData.GetPermissions();
     m_type = fileData.GetType();
-    m_image = GetImageId();
+    m_image = fileData.GetImageId();
 }
 
 void wxFileData::ReadData()
@@ -870,32 +878,54 @@ END_EVENT_TABLE()
 long wxGenericFileDialog::ms_lastViewStyle = wxLC_LIST;
 bool wxGenericFileDialog::ms_lastShowHidden = false;
 
+void wxGenericFileDialog::Init()
+{
+    m_bypassGenericImpl = false;
+
+    m_choice = NULL;
+    m_text   = NULL;
+    m_list   = NULL;
+    m_check  = NULL;
+    m_static = NULL;
+    m_upDirButton  = NULL;
+    m_newDirButton = NULL;
+}
+
 wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent,
                            const wxString& message,
                            const wxString& defaultDir,
                            const wxString& defaultFile,
                            const wxString& wildCard,
-                           long style,
+                           long  style,
                            const wxPoint& pos,
-                           bool bypassGenericImpl )
-                    :wxFileDialogBase(parent, message, defaultDir, defaultFile, wildCard, style, pos)
+                           bool  bypassGenericImpl ) : wxFileDialogBase()
 {
-    m_bypassGenericImpl = bypassGenericImpl;
-
-    if (!m_bypassGenericImpl)
-        Create( parent, message, defaultDir, defaultFile, wildCard, style, pos );
+    Init();
+    Create( parent, message, defaultDir, defaultFile, wildCard, style, pos, bypassGenericImpl );
 }
 
 bool wxGenericFileDialog::Create( wxWindow *parent,
                                   const wxString& message,
-                                  const wxString& WXUNUSED(defaultDir),
+                                  const wxString& defaultDir,
                                   const wxString& defaultFile,
                                   const wxString& wildCard,
-                                  long WXUNUSED(style),
-                                  const wxPoint& pos )
+                                  long  style,
+                                  const wxPoint& pos,
+                                  bool  bypassGenericImpl )
 {
+    m_bypassGenericImpl = bypassGenericImpl;
+
+    if (!wxFileDialogBase::Create(parent, message, defaultDir, defaultFile,
+                                  wildCard, style, pos))
+    {
+        return false;
+    }
+
+    if (m_bypassGenericImpl)
+        return true;
+
     if (!wxDialog::Create( parent, wxID_ANY, message, pos, wxDefaultSize,
-                      wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ))
+                           wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ))
     {
         return false;
     }
@@ -1121,8 +1151,14 @@ void wxGenericFileDialog::SetWildcard(const wxString& wildCard)
                                                     wildFilters);
     wxCHECK_RET( count, wxT("wxFileDialog: bad wildcard string") );
 
-    m_choice->Clear();
-    for ( size_t n = 0; n < count; n++ )
+    const size_t countOld = m_choice->GetCount();
+    size_t n;
+    for ( n = 0; n < countOld; n++ )
+    {
+        delete (wxString *)m_choice->GetClientData(n);
+    }
+
+    for ( n = 0; n < count; n++ )
     {
         m_choice->Append( wildDescriptions[n], new wxString( wildFilters[n] ) );
     }