]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/dirdlgg.h
Fixed bug that caused wrong block of cells to be selected if the
[wxWidgets.git] / include / wx / generic / dirdlgg.h
index 10fefdce310f3ec6cf971da203aeceb01457054d..7fd5768b02262fb1911ea81b086ebb3705d646df 100644 (file)
@@ -5,6 +5,7 @@
 // Modified by:
 // Created:     12/12/98
 // Copyright:   (c) Harm van der Heijden and Robert Roebling
+// RCS-ID:      $Id$
 // Licence:    wxWindows licence
 //
 // Notes:       wxDirDialog class written by Harm van der Heijden, 
 #pragma interface "dirdlgg.h"
 #endif
 
+#include "wx/defs.h"
+
+#if wxUSE_DIRDLG
+
 #include "wx/dialog.h"
-//#include "wx/checkbox.h"
+#include "wx/checkbox.h"
 #include "wx/treectrl.h"
 
 //-----------------------------------------------------------------------------
 // data
 //-----------------------------------------------------------------------------
 
-WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr;
+WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr;
+WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogDefaultFolderStr;
 
 //-----------------------------------------------------------------------------
 // classes
@@ -72,17 +78,65 @@ class wxDirItemData;
 class wxDirCtrl;
 class wxDirDialog;
 
+//-----------------------------------------------------------------------------
+// wxDirItemData
+//-----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDirItemData : public wxTreeItemData
+{
+public:
+  wxDirItemData(wxString& path, wxString& name);
+  ~wxDirItemData();
+  bool HasSubDirs();
+  void SetNewDirName( wxString path );
+  wxString m_path, m_name;
+  bool m_isHidden;
+  bool m_hasSubDirs;
+};
+
+//-----------------------------------------------------------------------------
+// wxDirCtrl
+//-----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxDirCtrl: public wxTreeCtrl
+{
+public:
+    bool           m_showHidden;
+    wxTreeItemId   m_rootId;
+  
+    wxDirCtrl();
+    wxDirCtrl(wxWindow *parent, const wxWindowID id = -1, 
+             const wxString &dir = wxDirDialogDefaultFolderStr,
+             const wxPoint& pos = wxDefaultPosition,
+             const wxSize& size = wxDefaultSize,
+             const long style = wxTR_HAS_BUTTONS,
+             const wxString& name = wxTreeCtrlNameStr );
+    void ShowHidden( const bool yesno );
+    void OnExpandItem(wxTreeEvent &event );
+    void OnCollapseItem(wxTreeEvent &event );
+    void OnBeginEditItem(wxTreeEvent &event );
+    void OnEndEditItem(wxTreeEvent &event );
+    
+protected:
+    void CreateItems(const wxTreeItemId &parent);
+    void SetupSections();
+    wxArrayString m_paths, m_names;
+    
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS(wxDirCtrl)
+};
+
 //-----------------------------------------------------------------------------
 // wxDirDialog
 //-----------------------------------------------------------------------------
 
 class WXDLLEXPORT wxDirDialog: public wxDialog
 {
-  DECLARE_DYNAMIC_CLASS(wxDirDialog)
- public:
+public:
     wxDirDialog(wxWindow *parent, 
                const wxString& message = wxFileSelectorPromptStr,
-               const wxString& defaultPath = "",
+               const wxString& defaultPath = wxEmptyString,
                long style = 0, const wxPoint& pos = wxDefaultPosition);
     inline void SetMessage(const wxString& message) { m_message = message; }
     inline void SetPath(const wxString& path) { m_path = path; }
@@ -96,26 +150,28 @@ class WXDLLEXPORT wxDirDialog: public wxDialog
 
     void OnTreeSelected( wxTreeEvent &event );
     void OnTreeKeyDown( wxTreeEvent &event );
-    void OnSize(wxSizeEvent& event);
     void OnOK(wxCommandEvent& event);
     void OnCancel(wxCommandEvent& event); 
     void OnNew(wxCommandEvent& event);
     // void OnCheck(wxCommandEvent& event);
-    DECLARE_EVENT_TABLE()
 
- protected:
+protected:
     // implementation
-    wxString    m_message;
-    long        m_dialogStyle;
-    wxWindow *  m_parent;
-    wxString    m_path;
-    wxDirCtrl  *m_dir;
-    wxTextCtrl *m_input;
-    // wxCheckBox *m_check;
-    wxButton   *m_ok, *m_cancel, *m_new;
-    void doSize();
+    wxString       m_message;
+    long           m_dialogStyle;
+    wxString       m_path;
+    wxDirCtrl     *m_dir;
+    wxTextCtrl    *m_input;
+    wxCheckBox    *m_check;  // not yet used
+    wxButton      *m_ok, *m_cancel, *m_new;
+    
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_DYNAMIC_CLASS(wxDirDialog)
 };
 
+#endif
+
 #endif
     // _WX_DIRDLGG_H_