]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dirctrlg.cpp
don't use deprecated toolbar API
[wxWidgets.git] / src / generic / dirctrlg.cpp
index c4bd8118b1d2953c826d22228afd6b18851c316b..f75a5979885bd8bc3deec8a168b58e3b1ad989ef 100644 (file)
@@ -52,7 +52,7 @@
 #endif
 
 #if defined(__WXMAC__)
 #endif
 
 #if defined(__WXMAC__)
-    #include  "wx/mac/private.h"  // includes mac headers
+    #include  "wx/osx/private.h"  // includes mac headers
 #endif
 
 #ifdef __WXMSW__
 #endif
 
 #ifdef __WXMSW__
 #endif // __OS2__
 
 #if defined(__WXMAC__)
 #endif // __OS2__
 
 #if defined(__WXMAC__)
-    #include "MoreFilesX.h"
+//    #include "MoreFilesX.h"
 #endif
 
 #ifdef __BORLANDC__
     #include "dos.h"
 #endif
 
 #endif
 
 #ifdef __BORLANDC__
     #include "dos.h"
 #endif
 
-extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorDefaultWildcardStr[];
+extern WXDLLEXPORT_DATA(const char) wxFileSelectorDefaultWildcardStr[];
 
 // If compiled under Windows, this macro can cause problems
 #ifdef GetFirstChild
 
 // If compiled under Windows, this macro can cause problems
 #ifdef GetFirstChild
@@ -219,7 +219,7 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI
     }
 #endif // __WIN32__/!__WIN32__
 
     }
 #endif // __WIN32__/!__WIN32__
 
-#elif defined(__WXMAC__)
+#elif defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON
 
     ItemCount volumeIndex = 1;
     OSErr err = noErr ;
 
     ItemCount volumeIndex = 1;
     OSErr err = noErr ;
@@ -251,7 +251,7 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI
         }
     }
 
         }
     }
 
-#elif defined(__UNIX__)
+#elif defined(__UNIX__) || defined(__WXPALMOS__)
     paths.Add(wxT("/"));
     names.Add(wxT("/"));
     icon_ids.Add(wxFileIconsTable::computer);
     paths.Add(wxT("/"));
     names.Add(wxT("/"));
     icon_ids.Add(wxFileIconsTable::computer);
@@ -562,8 +562,6 @@ bool wxGenericDirCtrl::Create(wxWindow *parent,
 
     if ((style & wxDIRCTRL_3D_INTERNAL) == 0)
         treeStyle |= wxNO_BORDER;
 
     if ((style & wxDIRCTRL_3D_INTERNAL) == 0)
         treeStyle |= wxNO_BORDER;
-    else
-        treeStyle |= wxBORDER_SUNKEN;
 
     m_treeCtrl = CreateTreeCtrl(this, wxID_TREECTRL,
                                 wxPoint(0,0), GetClientSize(), treeStyle);
 
     m_treeCtrl = CreateTreeCtrl(this, wxID_TREECTRL,
                                 wxPoint(0,0), GetClientSize(), treeStyle);
@@ -666,6 +664,14 @@ void wxGenericDirCtrl::SetupSections()
         AddSection(paths[n], names[n], icons[n]);
 }
 
         AddSection(paths[n], names[n], icons[n]);
 }
 
+void wxGenericDirCtrl::SetFocus()
+{
+    // we don't need focus ourselves, give it to the tree so that the user
+    // could navigate it
+    if (m_treeCtrl)
+        m_treeCtrl->SetFocus();
+}
+
 void wxGenericDirCtrl::OnBeginEditItem(wxTreeEvent &event)
 {
     // don't rename the main entry "Sections"
 void wxGenericDirCtrl::OnBeginEditItem(wxTreeEvent &event)
 {
     // don't rename the main entry "Sections"
@@ -742,6 +748,10 @@ void wxGenericDirCtrl::OnExpandItem(wxTreeEvent &event)
         m_rootId = m_treeCtrl->GetRootItem();
 
     ExpandDir(parentId);
         m_rootId = m_treeCtrl->GetRootItem();
 
     ExpandDir(parentId);
+    if ( m_treeCtrl->GetChildrenCount(parentId, false) == 0 )
+    {
+        m_treeCtrl->SetItemHasChildren(parentId, false);
+    }
 }
 
 void wxGenericDirCtrl::OnCollapseItem(wxTreeEvent &event )
 }
 
 void wxGenericDirCtrl::OnCollapseItem(wxTreeEvent &event )
@@ -841,7 +851,7 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
     dirs.Sort(wxDirCtrlStringCompareFunction);
 
     // Now do the filenames -- but only if we're allowed to
     dirs.Sort(wxDirCtrlStringCompareFunction);
 
     // Now do the filenames -- but only if we're allowed to
-    if ((GetWindowStyle() & wxDIRCTRL_DIR_ONLY) == 0)
+    if (!HasFlag(wxDIRCTRL_DIR_ONLY))
     {
         d.Open(dirName);
 
     {
         d.Open(dirName);
 
@@ -888,20 +898,16 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
         m_treeCtrl->SetItemImage( id, wxFileIconsTable::folder_open,
                                   wxTreeItemIcon_Expanded );
 
         m_treeCtrl->SetItemImage( id, wxFileIconsTable::folder_open,
                                   wxTreeItemIcon_Expanded );
 
-        // Has this got any children? If so, make it expandable.
-        // (There are two situations when a dir has children: either it
-        // has subdirectories or it contains files that weren't filtered
-        // out. The latter only applies to dirctrl with files.)
-        if ( dir_item->HasSubDirs() ||
-             (((GetWindowStyle() & wxDIRCTRL_DIR_ONLY) == 0) &&
-               dir_item->HasFiles(m_currentFilterStr)) )
-        {
-            m_treeCtrl->SetItemHasChildren(id);
-        }
+        // assume that it does have children by default as it can take a long
+        // time to really check for this (think remote drives...)
+        //
+        // and if we're wrong, we'll correct it later in OnExpandItem() if
+        // the user really tries to open this item
+        m_treeCtrl->SetItemHasChildren(id);
     }
 
     // Add the sorted filenames
     }
 
     // Add the sorted filenames
-    if ((GetWindowStyle() & wxDIRCTRL_DIR_ONLY) == 0)
+    if (!HasFlag(wxDIRCTRL_DIR_ONLY))
     {
         for (i = 0; i < filenames.GetCount(); i++)
         {
     {
         for (i = 0; i < filenames.GetCount(); i++)
         {
@@ -1016,7 +1022,7 @@ bool wxGenericDirCtrl::ExpandPath(const wxString& path)
     {
         m_treeCtrl->Expand(lastId);
     }
     {
         m_treeCtrl->Expand(lastId);
     }
-    if ((GetWindowStyle() & wxDIRCTRL_SELECT_FIRST) && data->m_isDir)
+    if (HasFlag(wxDIRCTRL_SELECT_FIRST) && data->m_isDir)
     {
         // Find the first file in this directory
         wxTreeItemIdValue cookie;
     {
         // Find the first file in this directory
         wxTreeItemIdValue cookie;