]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dirctrlg.cpp
Only do this Show on wxGTK as it is needed there but can cause display
[wxWidgets.git] / src / generic / dirctrlg.cpp
index 34c0dfe6a9918b2713400b773f3eaf248a1f1f34..e11a269bf61686d74d06345a49e73e906af953e2 100644 (file)
@@ -375,10 +375,6 @@ wxDirItemData::wxDirItemData(const wxString& path, const wxString& name,
     m_isDir = isDir;
 }
 
-wxDirItemData::~wxDirItemData()
-{
-}
-
 void wxDirItemData::SetNewDirName(const wxString& path)
 {
     m_path = path;
@@ -523,7 +519,7 @@ bool wxGenericDirCtrl::Create(wxWindow *parent,
     else
         filterStyle |= wxBORDER_SUNKEN;
 
-    m_treeCtrl = new wxTreeCtrl(this, wxID_TREECTRL,
+    m_treeCtrl = CreateTreeCtrl(this, wxID_TREECTRL,
                                 wxPoint(0,0), GetClientSize(), treeStyle);
 
     if (!filter.IsEmpty() && (style & wxDIRCTRL_SHOW_FILTERS))
@@ -555,8 +551,19 @@ bool wxGenericDirCtrl::Create(wxWindow *parent,
     ExpandDir(m_rootId); // automatically expand first level
 
     // Expand and select the default path
-    if (!m_defaultPath.IsEmpty())
+    if (!m_defaultPath.empty())
+    {
         ExpandPath(m_defaultPath);
+    }
+#ifdef __UNIX__
+    else
+    {
+        // On Unix, there's only one node under the (hidden) root node. It
+        // represents the / path, so the user would always have to expand it;
+        // let's do it ourselves
+        ExpandPath(wxT("/"));
+    }
+#endif
 
     SetBestSize(size);
     DoResize();
@@ -577,6 +584,11 @@ void wxGenericDirCtrl::Init()
     m_filterListCtrl = NULL;
 }
 
+wxTreeCtrl* wxGenericDirCtrl::CreateTreeCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long treeStyle)
+{
+    return new wxTreeCtrl(parent, id, pos, size, treeStyle);
+}
+
 void wxGenericDirCtrl::ShowHidden( bool show )
 {
     m_showHidden = show;
@@ -1545,7 +1557,11 @@ static wxBitmap CreateAntialiasedBitmap(const wxImage& img)
             if (smask > 2)
                 ps[0] = ps[1] = ps[2] = mr;
             else
-                ps[0] = sr >> 2, ps[1] = sg >> 2, ps[2] = sb >> 2;
+            {
+                ps[0] = (unsigned char)(sr >> 2);
+                ps[1] = (unsigned char)(sg >> 2);
+                ps[2] = (unsigned char)(sb >> 2);
+            }
             ps += 3;
         }
         p1 += size*2 * 3, p2 += size*2 * 3;