]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/dirdlgg.h
fixed a canonical example of Stupid Bug(tm)
[wxWidgets.git] / include / wx / generic / dirdlgg.h
index 27ea3c4e69e8d4a9da1946ed0c6581df5f651807..53135f57bbdc061a8e9b728c23739e3fcf37a472 100644 (file)
@@ -6,31 +6,31 @@
 // Created:     12/12/98
 // Copyright:   (c) Harm van der Heijden and Robert Roebling
 // RCS-ID:      $Id$
-// Licence:    wxWindows licence
+// Licence:           wxWindows licence
 //
-// Notes:       wxDirDialog class written by Harm van der Heijden, 
+// Notes:       wxDirDialog class written by Harm van der Heijden,
 //              uses wxDirCtrl class written by Robert Roebling for the
 //              wxFile application, modified by Harm van der Heijden
 //
 // Description: This generic dirdialog implementation defines three classes:
 //              1) wxDirItemData(public wxTreeItemData) stores pathname and
 //              displayed name for each item in the directory tree
-//              2) wxDirCtrl(public wxTreeCtrl) is a tree widget that 
+//              2) wxDirCtrl(public wxTreeCtrl) is a tree widget that
 //              displays a directory tree. It is possible to define sections
-//              for fast access to parts of the file system (such as the 
+//              for fast access to parts of the file system (such as the
 //              user's homedir, /usr/local, /tmp ...etc), similar to
 //              Win95 Explorer's shortcuts to 'My Computer', 'Desktop', etc.
 //              3) wxDirDialog is the dialog box itself. The user can choose
 //              a directory by navigating the tree, or by typing a dir
 //              in an inputbox. The inputbox displays paths selected in the
 //              tree. It is possible to create new directories. The user
-//              will automatically be prompted for dir creation if he 
+//              will automatically be prompted for dir creation if he
 //              enters a non-existing dir.
 //
 // TODO/BUGS:   - standard sections only have reasonable defaults for Unix
 //                (but others are easily added in wxDirCtrl::SetupSections)
 //              - No direct support for "show hidden" toggle. Partly due
-//                to laziness on my part and partly because 
+//                to laziness on my part and partly because
 //                wxFindFirst/NextFile never seems to find hidden dirs
 //                anyway.
 //              - No automatic update of the tree (branch) after directory
 //                CDROM drive or something is involved) but that doesn't
 //                seem to do anything. Need to look into that.
 //              - Am still looking for an efficient way to delete wxTreeCtrl
-//                branches. DeleteChildren has disappeared and 
+//                branches. DeleteChildren has disappeared and
 //                CollapseAndReset( parent ) deletes the parent as well.
 //              - The dialog window layout is done using wxConstraints. It
-//                works, but it's not as simple as I'd like it to be (see 
+//                works, but it's not as simple as I'd like it to be (see
 //                comments in wxDirDialog::doSize)
 //
 /////////////////////////////////////////////////////////////////////////////
@@ -68,6 +68,7 @@
 //-----------------------------------------------------------------------------
 
 WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr;
+WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogDefaultFolderStr;
 
 //-----------------------------------------------------------------------------
 // classes
@@ -102,25 +103,27 @@ class WXDLLEXPORT wxDirCtrl: public wxTreeCtrl
 public:
     bool           m_showHidden;
     wxTreeItemId   m_rootId;
-  
+
     wxDirCtrl();
-    wxDirCtrl(wxWindow *parent, const wxWindowID id = -1, 
-             const wxString &dir = "/",
-             const wxPoint& pos = wxDefaultPosition,
-             const wxSize& size = wxDefaultSize,
-             const long style = wxTR_HAS_BUTTONS,
-             const wxString& name = "wxTreeCtrl" );
+    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:
+    friend class wxDirDialog;
+
     void CreateItems(const wxTreeItemId &parent);
     void SetupSections();
     wxArrayString m_paths, m_names;
-    
+
 private:
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxDirCtrl)
@@ -133,10 +136,11 @@ private:
 class WXDLLEXPORT wxDirDialog: public wxDialog
 {
 public:
-    wxDirDialog(wxWindow *parent, 
-               const wxString& message = wxFileSelectorPromptStr,
-               const wxString& defaultPath = wxEmptyString,
-               long style = 0, const wxPoint& pos = wxDefaultPosition);
+    wxDirDialog() {}
+    wxDirDialog(wxWindow *parent,
+                const wxString& message = wxFileSelectorPromptStr,
+                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; }
     inline void SetStyle(long style) { m_dialogStyle = style; }
@@ -150,7 +154,7 @@ public:
     void OnTreeSelected( wxTreeEvent &event );
     void OnTreeKeyDown( wxTreeEvent &event );
     void OnOK(wxCommandEvent& event);
-    void OnCancel(wxCommandEvent& event); 
+    void OnCancel(wxCommandEvent& event);
     void OnNew(wxCommandEvent& event);
     // void OnCheck(wxCommandEvent& event);
 
@@ -163,7 +167,7 @@ protected:
     wxTextCtrl    *m_input;
     wxCheckBox    *m_check;  // not yet used
     wxButton      *m_ok, *m_cancel, *m_new;
-    
+
 private:
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxDirDialog)