]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dirctrlg.cpp
new file added
[wxWidgets.git] / src / generic / dirctrlg.cpp
index a87c0812ca125709359c422f200bc2e8a1c6440a..7ccf0d36ddb635f50805e57d38590326ae5d76d1 100644 (file)
@@ -29,7 +29,6 @@
     #include "wx/icon.h"
     #include "wx/settings.h"
     #include "wx/msgdlg.h"
-    #include "wx/cmndata.h"
     #include "wx/choice.h"
     #include "wx/textctrl.h"
     #include "wx/layout.h"
@@ -56,7 +55,7 @@
     #include  "wx/osx/private.h"  // includes mac headers
 #endif
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__
 #include <windows.h>
 #include "wx/msw/winundef.h"
 #include "wx/volume.h"
@@ -72,7 +71,7 @@
     #include <ctype.h>
 #endif
 
-#endif
+#endif // __WINDOWS__
 
 #if defined(__OS2__) || defined(__DOS__)
     #ifdef __OS2__
@@ -251,7 +250,7 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI
         }
     }
 
-#elif defined(__UNIX__) || defined(__WXPALMOS__)
+#elif defined(__UNIX__)
     paths.Add(wxT("/"));
     names.Add(wxT("/"));
     icon_ids.Add(wxFileIconsTable::computer);
@@ -271,7 +270,7 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI
 
 bool wxIsDriveAvailable(const wxString& dirName)
 {
-    // FIXME_MGL - this method leads to hang up under Watcom for some reason
+    // FIXME: this method leads to hang up under Watcom for some reason
 #ifdef __WATCOMC__
     wxUnusedVar(dirName);
 #else
@@ -311,7 +310,7 @@ int setdrive(int WXUNUSED_IN_WINCE(drive))
 #else
     newdrive[2] = wxT('\0');
 #endif
-#if defined(__WXMSW__)
+#if defined(__WINDOWS__)
     if (::SetCurrentDirectory(newdrive))
 #else
     // VA doesn't know what LPSTR is and has its own set
@@ -437,64 +436,6 @@ bool wxDirItemData::HasFiles(const wxString& WXUNUSED(spec)) const
 // wxGenericDirCtrl
 //-----------------------------------------------------------------------------
 
-
-#if wxUSE_EXTENDED_RTTI
-WX_DEFINE_FLAGS( wxGenericDirCtrlStyle )
-
-wxBEGIN_FLAGS( wxGenericDirCtrlStyle )
-    // new style border flags, we put them first to
-    // use them for streaming out
-    wxFLAGS_MEMBER(wxBORDER_SIMPLE)
-    wxFLAGS_MEMBER(wxBORDER_SUNKEN)
-    wxFLAGS_MEMBER(wxBORDER_DOUBLE)
-    wxFLAGS_MEMBER(wxBORDER_RAISED)
-    wxFLAGS_MEMBER(wxBORDER_STATIC)
-    wxFLAGS_MEMBER(wxBORDER_NONE)
-
-    // old style border flags
-    wxFLAGS_MEMBER(wxSIMPLE_BORDER)
-    wxFLAGS_MEMBER(wxSUNKEN_BORDER)
-    wxFLAGS_MEMBER(wxDOUBLE_BORDER)
-    wxFLAGS_MEMBER(wxRAISED_BORDER)
-    wxFLAGS_MEMBER(wxSTATIC_BORDER)
-    wxFLAGS_MEMBER(wxBORDER)
-
-    // standard window styles
-    wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
-    wxFLAGS_MEMBER(wxCLIP_CHILDREN)
-    wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
-    wxFLAGS_MEMBER(wxWANTS_CHARS)
-    wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
-    wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
-    wxFLAGS_MEMBER(wxVSCROLL)
-    wxFLAGS_MEMBER(wxHSCROLL)
-
-    wxFLAGS_MEMBER(wxDIRCTRL_DIR_ONLY)
-    wxFLAGS_MEMBER(wxDIRCTRL_3D_INTERNAL)
-    wxFLAGS_MEMBER(wxDIRCTRL_SELECT_FIRST)
-    wxFLAGS_MEMBER(wxDIRCTRL_MULTIPLE)
-
-wxEND_FLAGS( wxGenericDirCtrlStyle )
-
-IMPLEMENT_DYNAMIC_CLASS_XTI(wxGenericDirCtrl, wxControl,"wx/dirctrl.h")
-
-wxBEGIN_PROPERTIES_TABLE(wxGenericDirCtrl)
-    wxHIDE_PROPERTY( Children )
-    wxPROPERTY( DefaultPath , wxString , SetDefaultPath , GetDefaultPath  , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
-    wxPROPERTY( Filter , wxString , SetFilter , GetFilter  , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
-    wxPROPERTY( DefaultFilter , int , SetFilterIndex, GetFilterIndex, EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
-    wxPROPERTY_FLAGS( WindowStyle, wxGenericDirCtrlStyle, long, SetWindowStyleFlag, GetWindowStyleFlag, EMPTY_MACROVALUE , 0, wxT("Helpstring"), wxT("group") )
-wxEND_PROPERTIES_TABLE()
-
-wxBEGIN_HANDLERS_TABLE(wxGenericDirCtrl)
-wxEND_HANDLERS_TABLE()
-
-wxCONSTRUCTOR_8( wxGenericDirCtrl , wxWindow* , Parent , wxWindowID , Id , wxString , DefaultPath ,
-                 wxPoint , Position , wxSize , Size , long , WindowStyle , wxString , Filter , int , DefaultFilter )
-#else
-IMPLEMENT_DYNAMIC_CLASS(wxGenericDirCtrl, wxControl)
-#endif
-
 BEGIN_EVENT_TABLE(wxGenericDirCtrl, wxControl)
   EVT_TREE_ITEM_EXPANDING     (wxID_TREECTRL, wxGenericDirCtrl::OnExpandItem)
   EVT_TREE_ITEM_COLLAPSED     (wxID_TREECTRL, wxGenericDirCtrl::OnCollapseItem)
@@ -529,7 +470,7 @@ void wxGenericDirCtrl::ExpandRoot()
 }
 
 bool wxGenericDirCtrl::Create(wxWindow *parent,
-                              const wxWindowID id,
+                              const wxWindowID treeid,
                               const wxString& dir,
                               const wxPoint& pos,
                               const wxSize& size,
@@ -538,7 +479,7 @@ bool wxGenericDirCtrl::Create(wxWindow *parent,
                               int defaultFilter,
                               const wxString& name)
 {
-    if (!wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name))
+    if (!wxControl::Create(parent, treeid, pos, size, style, wxDefaultValidator, name))
         return false;
 
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
@@ -621,9 +562,9 @@ void wxGenericDirCtrl::Init()
     m_filterListCtrl = NULL;
 }
 
-wxTreeCtrl* wxGenericDirCtrl::CreateTreeCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long treeStyle)
+wxTreeCtrl* wxGenericDirCtrl::CreateTreeCtrl(wxWindow *parent, wxWindowID treeid, const wxPoint& pos, const wxSize& size, long treeStyle)
 {
-    return new wxTreeCtrl(parent, id, pos, size, treeStyle);
+    return new wxTreeCtrl(parent, treeid, pos, size, treeStyle);
 }
 
 void wxGenericDirCtrl::ShowHidden( bool show )
@@ -656,11 +597,11 @@ wxGenericDirCtrl::AddSection(const wxString& path, const wxString& name, int ima
 {
     wxDirItemData *dir_item = new wxDirItemData(path,name,true);
 
-    wxTreeItemId id = AppendItem( m_rootId, name, imageId, -1, dir_item);
+    wxTreeItemId treeid = AppendItem( m_rootId, name, imageId, -1, dir_item);
 
-    m_treeCtrl->SetItemHasChildren(id);
+    m_treeCtrl->SetItemHasChildren(treeid);
 
-    return id;
+    return treeid;
 }
 
 void wxGenericDirCtrl::SetupSections()
@@ -724,8 +665,8 @@ void wxGenericDirCtrl::OnEndEditItem(wxTreeEvent &event)
         return;
     }
 
-    wxTreeItemId id = event.GetItem();
-    wxDirItemData *data = (wxDirItemData*)m_treeCtrl->GetItemData( id );
+    wxTreeItemId treeid = event.GetItem();
+    wxDirItemData *data = (wxDirItemData*)m_treeCtrl->GetItemData( treeid );
     wxASSERT( data );
 
     wxString new_name( wxPathOnly( data->m_path ) );
@@ -902,9 +843,9 @@ void wxGenericDirCtrl::PopulateNode(wxTreeItemId parentId)
         path += eachFilename;
 
         wxDirItemData *dir_item = new wxDirItemData(path,eachFilename,true);
-        wxTreeItemId id = AppendItem( parentId, eachFilename,
+        wxTreeItemId treeid = AppendItem( parentId, eachFilename,
                                       wxFileIconsTable::folder, -1, dir_item);
-        m_treeCtrl->SetItemImage( id, wxFileIconsTable::folder_open,
+        m_treeCtrl->SetItemImage( treeid, wxFileIconsTable::folder_open,
                                   wxTreeItemIcon_Expanded );
 
         // assume that it does have children by default as it can take a long
@@ -912,7 +853,7 @@ void wxGenericDirCtrl::PopulateNode(wxTreeItemId parentId)
         //
         // and if we're wrong, we'll correct the icon later if
         // the user really tries to open this item
-        m_treeCtrl->SetItemHasChildren(id);
+        m_treeCtrl->SetItemHasChildren(treeid);
     }
 
     // Add the sorted filenames
@@ -1019,15 +960,15 @@ wxTreeItemId wxGenericDirCtrl::FindChild(wxTreeItemId parentId, const wxString&
 bool wxGenericDirCtrl::ExpandPath(const wxString& path)
 {
     bool done = false;
-    wxTreeItemId id = FindChild(m_rootId, path, done);
-    wxTreeItemId lastId = id; // The last non-zero id
-    while (id.IsOk() && !done)
+    wxTreeItemId treeid = FindChild(m_rootId, path, done);
+    wxTreeItemId lastId = treeid; // The last non-zero treeid
+    while (treeid.IsOk() && !done)
     {
-        ExpandDir(id);
+        ExpandDir(treeid);
 
-        id = FindChild(id, path, done);
-        if (id.IsOk())
-            lastId = id;
+        treeid = FindChild(treeid, path, done);
+        if (treeid.IsOk())
+            lastId = treeid;
     }
     if (!lastId.IsOk())
         return false;
@@ -1075,17 +1016,17 @@ bool wxGenericDirCtrl::ExpandPath(const wxString& path)
 bool wxGenericDirCtrl::CollapsePath(const wxString& path)
 {
     bool done           = false;
-    wxTreeItemId id     = FindChild(m_rootId, path, done);
-    wxTreeItemId lastId = id; // The last non-zero id
+    wxTreeItemId treeid     = FindChild(m_rootId, path, done);
+    wxTreeItemId lastId = treeid; // The last non-zero treeid
 
-    while ( id.IsOk() && !done )
+    while ( treeid.IsOk() && !done )
     {
-        CollapseDir(id);
+        CollapseDir(treeid);
 
-        id = FindChild(id, path, done);
+        treeid = FindChild(treeid, path, done);
 
-        if ( id.IsOk() )
-            lastId = id;
+        if ( treeid.IsOk() )
+            lastId = treeid;
     }
 
     if ( !lastId.IsOk() )
@@ -1108,18 +1049,18 @@ wxString wxGenericDirCtrl::GetPath() const
         if (items.size() > 0)
         {
             // return first string only
-            wxTreeItemId id = items[0];
-            wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(id);
+            wxTreeItemId treeid = items[0];
+            wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(treeid);
             return data->m_path;
         }
 
         return wxEmptyString;
     }
 
-    wxTreeItemId id = m_treeCtrl->GetSelection();
-    if (id)
+    wxTreeItemId treeid = m_treeCtrl->GetSelection();
+    if (treeid)
     {
-        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(id);
+        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(treeid);
         return data->m_path;
     }
     else
@@ -1134,18 +1075,18 @@ void wxGenericDirCtrl::GetPaths(wxArrayString& paths) const
     m_treeCtrl->GetSelections(items);
     for ( unsigned n = 0; n < items.size(); n++ )
     {
-        wxTreeItemId id = items[n];
-        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(id);
+        wxTreeItemId treeid = items[n];
+        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(treeid);
         paths.Add(data->m_path);
     }
 }
 
 wxString wxGenericDirCtrl::GetFilePath() const
 {
-    wxTreeItemId id = m_treeCtrl->GetSelection();
-    if (id)
+    wxTreeItemId treeid = m_treeCtrl->GetSelection();
+    if (treeid)
     {
-        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(id);
+        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(treeid);
         if (data->m_isDir)
             return wxEmptyString;
         else
@@ -1163,8 +1104,8 @@ void wxGenericDirCtrl::GetFilePaths(wxArrayString& paths) const
     m_treeCtrl->GetSelections(items);
     for ( unsigned n = 0; n < items.size(); n++ )
     {
-        wxTreeItemId id = items[n];
-        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(id);
+        wxTreeItemId treeid = items[n];
+        wxDirItemData* data = (wxDirItemData*) m_treeCtrl->GetItemData(treeid);
         if ( !data->m_isDir )
             paths.Add(data->m_path);
     }
@@ -1180,20 +1121,20 @@ void wxGenericDirCtrl::SetPath(const wxString& path)
 void wxGenericDirCtrl::SelectPath(const wxString& path, bool select)
 {
     bool done = false;
-    wxTreeItemId id = FindChild(m_rootId, path, done);
-    wxTreeItemId lastId = id; // The last non-zero id
-    while ( id.IsOk() && !done )
+    wxTreeItemId treeid = FindChild(m_rootId, path, done);
+    wxTreeItemId lastId = treeid; // The last non-zero treeid
+    while ( treeid.IsOk() && !done )
     {
-        id = FindChild(id, path, done);
-        if ( id.IsOk() )
-            lastId = id;
+        treeid = FindChild(treeid, path, done);
+        if ( treeid.IsOk() )
+            lastId = treeid;
     }
     if ( !lastId.IsOk() )
         return;
 
     if ( done )
     {
-        m_treeCtrl->SelectItem(id, select);
+        m_treeCtrl->SelectItem(treeid, select);
     }
 }
 
@@ -1216,9 +1157,9 @@ void wxGenericDirCtrl::UnselectAll()
 
 // Not used
 #if 0
-void wxGenericDirCtrl::FindChildFiles(wxTreeItemId id, int dirFlags, wxArrayString& filenames)
+void wxGenericDirCtrl::FindChildFiles(wxTreeItemId treeid, int dirFlags, wxArrayString& filenames)
 {
-    wxDirItemData *data = (wxDirItemData *) m_treeCtrl->GetItemData(id);
+    wxDirItemData *data = (wxDirItemData *) m_treeCtrl->GetItemData(treeid);
 
     // This may take a longish time. Go to busy cursor
     wxBusyCursor busy;
@@ -1229,7 +1170,7 @@ void wxGenericDirCtrl::FindChildFiles(wxTreeItemId id, int dirFlags, wxArrayStri
 
     wxString dirName(data->m_path);
 
-#if defined(__WXMSW__) || defined(__OS2__)
+#if defined(__WINDOWS__) || defined(__OS2__)
     if (dirName.Last() == ':')
         dirName += wxString(wxFILE_SEP_PATH);
 #endif
@@ -1374,7 +1315,7 @@ BEGIN_EVENT_TABLE(wxDirFilterListCtrl, wxChoice)
 END_EVENT_TABLE()
 
 bool wxDirFilterListCtrl::Create(wxGenericDirCtrl* parent,
-                                 const wxWindowID id,
+                                 const wxWindowID treeid,
                                  const wxPoint& pos,
                                  const wxSize& size,
                                  long style)
@@ -1388,7 +1329,7 @@ bool wxDirFilterListCtrl::Create(wxGenericDirCtrl* parent,
                                                         : wxBORDER_NONE;
     }
 
-    return wxChoice::Create(parent, id, pos, size, 0, NULL, style);
+    return wxChoice::Create(parent, treeid, pos, size, 0, NULL, style);
 }
 
 void wxDirFilterListCtrl::Init()
@@ -1543,9 +1484,9 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileIconsTableModule, wxModule)
 class wxFileIconEntry : public wxObject
 {
 public:
-    wxFileIconEntry(int i) { id = i; }
+    wxFileIconEntry(int i) { iconid = i; }
 
-    int id;
+    int iconid;
 };
 
 wxFileIconsTable::wxFileIconsTable()
@@ -1631,7 +1572,7 @@ wxImageList *wxFileIconsTable::GetSmallImageList()
     return m_smallImageList;
 }
 
-#if wxUSE_MIMETYPE && wxUSE_IMAGE && (!defined(__WXMSW__) || wxUSE_WXDIB)
+#if wxUSE_MIMETYPE && wxUSE_IMAGE && (!defined(__WINDOWS__) || wxUSE_WXDIB)
 // VS: we don't need this function w/o wxMimeTypesManager because we'll only have
 //     one icon and we won't resize it
 
@@ -1747,7 +1688,7 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
     if (!extension.empty())
     {
         wxFileIconEntry *entry = (wxFileIconEntry*) m_HashTable->Get(extension);
-        if (entry) return (entry -> id);
+        if (entry) return (entry -> iconid);
     }
 
     wxFileType *ft = (mime.empty()) ?
@@ -1767,7 +1708,7 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
 
     delete ft;
 
-    if ( !ic.Ok() )
+    if ( !ic.IsOk() )
     {
         int newid = file;
         m_HashTable->Put(extension, new wxFileIconEntry(newid));
@@ -1777,7 +1718,7 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
     wxBitmap bmp;
     bmp.CopyFromIcon(ic);
 
-    if ( !bmp.Ok() )
+    if ( !bmp.IsOk() )
     {
         int newid = file;
         m_HashTable->Put(extension, new wxFileIconEntry(newid));
@@ -1786,12 +1727,12 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
 
     const unsigned int size = 16;
 
-    int id = m_smallImageList->GetImageCount();
+    int treeid = m_smallImageList->GetImageCount();
     if ((bmp.GetWidth() == (int) size) && (bmp.GetHeight() == (int) size))
     {
         m_smallImageList->Add(bmp);
     }
-#if wxUSE_IMAGE && (!defined(__WXMSW__) || wxUSE_WXDIB)
+#if wxUSE_IMAGE && (!defined(__WINDOWS__) || wxUSE_WXDIB)
     else
     {
         wxImage img = bmp.ConvertToImage();
@@ -1804,8 +1745,8 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime)
     }
 #endif // wxUSE_IMAGE
 
-    m_HashTable->Put(extension, new wxFileIconEntry(id));
-    return id;
+    m_HashTable->Put(extension, new wxFileIconEntry(treeid));
+    return treeid;
 
 #else // !wxUSE_MIMETYPE