]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/filedlgg.cpp
Doc tweaks
[wxWidgets.git] / src / generic / filedlgg.cpp
index 4f6f0d3ec213e6d8fcd85e0d22de31c067583b55..6eeb171d42b3a34f3938905a5667a0d11a532005 100644 (file)
@@ -20,7 +20,7 @@
 #pragma hdrstop
 #endif
 
-#if wxUSE_FILEDLG && !defined(__WXGTK24__)
+#if wxUSE_FILEDLG
 
 // NOTE : it probably also supports MAC, untested
 #if !defined(__UNIX__) && !defined(__DOS__) && !defined(__WIN32__) && !defined(__OS2__)
@@ -140,7 +140,7 @@ int wxCALLBACK wxFileDataTimeCompare( long data1, long data2, long data)
 #endif
 
 #if defined(__DOS__) || defined(__WINDOWS__) || defined (__OS2__)
-#define IsTopMostDir(dir)   (dir.IsEmpty())
+#define IsTopMostDir(dir)   (dir.empty())
 #endif
 
 #if defined(__DOS__) || defined(__WINDOWS__) || defined(__OS2__)
@@ -507,20 +507,20 @@ void wxFileCtrl::UpdateFiles()
 
 #if defined(__WINDOWS__) || defined(__DOS__) || defined(__WXMAC__) || defined(__OS2__)
     if ( IsTopMostDir(m_dirName) )
-        {
+    {
         wxArrayString names, paths;
         wxArrayInt icons;
         size_t n, count = wxGetAvailableDrives(paths, names, icons);
 
         for (n=0; n<count; n++)
-            {
+        {
             wxFileData *fd = new wxFileData(paths[n], names[n], wxFileData::is_drive, icons[n]);
             if (Add(fd, item) != -1)
                 item.m_itemId++;
             else
                 delete fd;
-            }
         }
+    }
     else
 #endif // defined(__DOS__) || defined(__WINDOWS__)
     {
@@ -529,7 +529,7 @@ void wxFileCtrl::UpdateFiles()
         {
             wxString p(wxPathOnly(m_dirName));
 #if defined(__UNIX__) && !defined(__OS2__)
-            if (p.IsEmpty()) p = wxT("/");
+            if (p.empty()) p = wxT("/");
 #endif // __UNIX__
             wxFileData *fd = new wxFileData(p, wxT(".."), wxFileData::is_dir, wxFileIconsTable::folder);
             if (Add(fd, item) != -1)
@@ -660,18 +660,18 @@ void wxFileCtrl::GoToParentDir()
         wxString fname( wxFileNameFromPath(m_dirName) );
         m_dirName = wxPathOnly( m_dirName );
 #if defined(__DOS__) || defined(__WINDOWS__) || defined(__OS2__)
-        if (!m_dirName.IsEmpty())
+        if (!m_dirName.empty())
         {
             if (m_dirName.Last() == wxT('.'))
                 m_dirName = wxEmptyString;
         }
 #elif defined(__UNIX__)
-        if (m_dirName.IsEmpty())
+        if (m_dirName.empty())
             m_dirName = wxT("/");
 #endif
         UpdateFiles();
         long id = FindItem( 0, fname );
-        if (id != -1)
+        if (id != wxNOT_FOUND)
         {
             SetItemState( id, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
             EnsureVisible( id );
@@ -735,7 +735,7 @@ void wxFileCtrl::OnListEndLabelEdit( wxListEvent &event )
     wxFileData *fd = (wxFileData*)event.m_item.m_data;
     wxASSERT( fd );
 
-    if ((event.GetLabel().IsEmpty()) ||
+    if ((event.GetLabel().empty()) ||
         (event.GetLabel() == _(".")) ||
         (event.GetLabel() == _("..")) ||
         (event.GetLabel().First( wxFILE_SEP_PATH ) != wxNOT_FOUND))
@@ -876,11 +876,29 @@ wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent,
                            const wxString& defaultFile,
                            const wxString& wildCard,
                            long style,
-                           const wxPoint& pos )
+                           const wxPoint& pos,
+                           bool bypassGenericImpl )
                     :wxFileDialogBase(parent, message, defaultDir, defaultFile, wildCard, style, pos)
 {
-    wxDialog::Create( parent, wxID_ANY, message, pos, wxDefaultSize,
-                      wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER );
+    m_bypassGenericImpl = bypassGenericImpl;
+
+    if (!m_bypassGenericImpl)
+        Create( parent, message, defaultDir, defaultFile, wildCard, style, pos );
+}
+
+bool wxGenericFileDialog::Create( wxWindow *parent,
+                                  const wxString& message,
+                                  const wxString& WXUNUSED(defaultDir),
+                                  const wxString& defaultFile,
+                                  const wxString& wildCard,
+                                  long WXUNUSED(style),
+                                  const wxPoint& pos )
+{
+    if (!wxDialog::Create( parent, wxID_ANY, message, pos, wxDefaultSize,
+                      wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ))
+    {
+        return false;
+    }
 
     if (wxConfig::Get(false))
     {
@@ -977,7 +995,7 @@ wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent,
         style2 |= wxLC_SINGLE_SEL;
 
     m_list = new wxFileCtrl( this, ID_LIST_CTRL,
-                             _T(""), ms_lastShowHidden,
+                             wxEmptyString, ms_lastShowHidden,
                              wxDefaultPosition, wxSize(540,200),
                              style2);
 
@@ -1031,22 +1049,27 @@ wxGenericFileDialog::wxGenericFileDialog(wxWindow *parent,
     Centre( wxBOTH );
 
     m_text->SetFocus();
+
+    return true;
 }
 
 wxGenericFileDialog::~wxGenericFileDialog()
 {
-    if (wxConfig::Get(false))
+    if (!m_bypassGenericImpl)
     {
-        wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ViewStyle"),
-                               ms_lastViewStyle);
-        wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ShowHidden"),
-                               ms_lastShowHidden);
-    }
+        if (wxConfig::Get(false))
+        {
+            wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ViewStyle"),
+                                   ms_lastViewStyle);
+            wxConfig::Get()->Write(wxT("/wxWindows/wxFileDialog/ShowHidden"),
+                                   ms_lastShowHidden);
+        }
 
-    const int count = m_choice->GetCount();
-    for ( int i = 0; i < count; i++ )
-    {
-        delete (wxString *)m_choice->GetClientData(i);
+        const int count = m_choice->GetCount();
+        for ( int i = 0; i < count; i++ )
+        {
+            delete (wxString *)m_choice->GetClientData(i);
+        }
     }
 }
 
@@ -1177,7 +1200,7 @@ void wxGenericFileDialog::HandleAction( const wxString &fn )
 {
     wxString filename( fn );
     wxString dir = m_list->GetDir();
-    if (filename.IsEmpty()) return;
+    if (filename.empty()) return;
     if (filename == wxT(".")) return;
 
     // "some/place/" means they want to chdir not try to load "place"
@@ -1416,5 +1439,5 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileDialog, wxGenericFileDialog);
 
 #endif // USE_GENERIC_FILEDIALOG
 
-#endif // wxUSE_FILEDLG && !defined(__WXGTK24__)
+#endif // wxUSE_FILEDLG