]> git.saurik.com Git - wxWidgets.git/commitdiff
init member variables properly (patch 1156088)
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 8 Mar 2005 00:29:56 +0000 (00:29 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 8 Mar 2005 00:29:56 +0000 (00:29 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/filedlg.h
include/wx/generic/filedlgg.h
src/common/fldlgcmn.cpp
src/generic/filedlgg.cpp

index 2a1892ecde971dd78f0d4ba1c4bf233c909a2771..52d5aeb6d09769218822cb3d75229ceb5e39d335 100644 (file)
@@ -48,15 +48,27 @@ extern WXDLLEXPORT_DATA(const wxChar*) wxFileSelectorDefaultWildcardStr;
 class WXDLLEXPORT wxFileDialogBase: public wxDialog
 {
 public:
-    wxFileDialogBase () {}
+    wxFileDialogBase () { Init(); }
 
     wxFileDialogBase(wxWindow *parent,
-                 const wxString& message = wxFileSelectorPromptStr,
-                 const wxString& defaultDir = wxEmptyString,
-                 const wxString& defaultFile = wxEmptyString,
-                 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition);
+                     const wxString& message = wxFileSelectorPromptStr,
+                     const wxString& defaultDir = wxEmptyString,
+                     const wxString& defaultFile = wxEmptyString,
+                     const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
+                     long style = 0,
+                     const wxPoint& pos = wxDefaultPosition) : wxDialog()
+    {
+        Init();
+        Create(parent, message, defaultDir, defaultFile, wildCard, style, pos);
+    }
+
+    bool Create(wxWindow *parent,
+                const wxString& message = wxFileSelectorPromptStr,
+                const wxString& defaultDir = wxEmptyString,
+                const wxString& defaultFile = wxEmptyString,
+                const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
+                long style = 0,
+                const wxPoint& pos = wxDefaultPosition);
 
     virtual void SetMessage(const wxString& message) { m_message = message; }
     virtual void SetPath(const wxString& path) { m_path = path; }
@@ -107,6 +119,7 @@ protected:
     int           m_filterIndex;
 
 private:
+    void Init();
     DECLARE_DYNAMIC_CLASS(wxFileDialogBase)
     DECLARE_NO_COPY_CLASS(wxFileDialogBase)
 };
index a8f5ac7c61e1df77a69f531c81b06a0d41f15292..b942af6d6e99bffc001495b305568b7d94fa7b23 100644 (file)
@@ -45,23 +45,26 @@ class WXDLLEXPORT wxTextCtrl;
 class WXDLLEXPORT wxGenericFileDialog: public wxFileDialogBase
 {
 public:
-    wxGenericFileDialog() { }
+    wxGenericFileDialog() : wxFileDialogBase() { Init(); }
 
     wxGenericFileDialog(wxWindow *parent,
-                 const wxString& message = wxFileSelectorPromptStr,
+                        const wxString& message = wxFileSelectorPromptStr,
                         const wxString& defaultDir = wxEmptyString,
                         const wxString& defaultFile = wxEmptyString,
-                 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-                 long style = 0,
-                 const wxPoint& pos = wxDefaultPosition,
-                 bool bypassGenericImpl = false );
+                        const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
+                        long style = 0,
+                        const wxPoint& pos = wxDefaultPosition,
+                        bool bypassGenericImpl = false );
+
     bool Create( wxWindow *parent,
                  const wxString& message = wxFileSelectorPromptStr,
-                        const wxString& defaultDir = wxEmptyString,
-                        const wxString& defaultFile = wxEmptyString,
+                 const wxString& defaultDir = wxEmptyString,
+                 const wxString& defaultFile = wxEmptyString,
                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
                  long style = 0,
-                 const wxPoint& pos = wxDefaultPosition );
+                 const wxPoint& pos = wxDefaultPosition,
+                 bool bypassGenericImpl = false );
+
     virtual ~wxGenericFileDialog();
 
     virtual void SetMessage(const wxString& message) { SetTitle(message); }
@@ -114,6 +117,7 @@ protected:
     wxBitmapButton *m_newDirButton;
 
 private:
+    void Init();
     DECLARE_DYNAMIC_CLASS(wxGenericFileDialog)
     DECLARE_EVENT_TABLE()
 
index fbdc429dbceeba853c55d3cf3abc6950edc23c57..0dbf1be3a9955b35b8cce4a3ee213a1cc8ceb438 100644 (file)
 
 IMPLEMENT_DYNAMIC_CLASS(wxFileDialogBase, wxDialog)
 
-wxFileDialogBase::wxFileDialogBase(wxWindow *parent,
-                                   const wxString& message,
-                                   const wxString& defaultDir,
-                                   const wxString& defaultFile,
-                                   const wxString& wildCard,
-                                   long style,
-                                   const wxPoint& WXUNUSED(pos))
-                : m_message(message),
-                  m_dir(defaultDir),
-                  m_fileName(defaultFile),
-                  m_wildCard(wildCard)
+void wxFileDialogBase::Init()
+{ 
+    m_filterIndex = m_dialogStyle = 0;
+    m_parent = NULL;
+}
+
+bool wxFileDialogBase::Create(wxWindow *parent,
+                              const wxString& message,
+                              const wxString& defaultDir,
+                              const wxString& defaultFile,
+                              const wxString& wildCard,
+                              long style,
+                              const wxPoint& WXUNUSED(pos))
 {
+    m_message = message;
+    m_dir = defaultDir;
+    m_fileName = defaultFile;
+    m_wildCard = wildCard;
+
     m_parent = parent;
     m_dialogStyle = style;
     m_filterIndex = 0;
@@ -78,6 +85,8 @@ wxFileDialogBase::wxFileDialogBase(wxWindow *parent,
                          );
         }
     }
+
+    return true;
 }
 
 #if WXWIN_COMPATIBILITY_2_4
index 334e2370df1e2b40291376d1298e54c96926be69..febc457bfea0c74a089ca2aadc73d646cda1451b 100644 (file)
@@ -878,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;
     }
@@ -1129,8 +1151,13 @@ 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++ )
+    size_t n, old_count = m_choice->GetCount();
+    for ( n = 0; n < count; n++ )
+    {
+        delete (wxString *)m_choice->GetClientData(n);
+    }
+    
+    for ( n = 0; n < count; n++ )
     {
         m_choice->Append( wildDescriptions[n], new wxString( wildFilters[n] ) );
     }