1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/generic/dirdlgg.h
3 // Purpose:     wxGenericDirCtrl class
4 //              Builds on wxDirCtrl class written by Robert Roebling for the
5 //              wxFile application, modified by Harm van der Heijden.
6 //              Further modified for Windows.
7 // Author:      Robert Roebling, Harm van der Heijden, Julian Smart et al
8 // Modified by:
9 // Created:     21/3/2000
10 // RCS-ID:      $Id: dirdlgg.h 39402 2006-05-28 23:32:12Z VZ $
11 // Copyright:   (c) Robert Roebling, Harm van der Heijden, Julian Smart
12 // Licence:     wxWindows licence
13 /////////////////////////////////////////////////////////////////////////////
14 
15 #ifndef _WX_DIRDLGG_H_
16 #define _WX_DIRDLGG_H_
17 
18 class WXDLLEXPORT wxGenericDirCtrl;
19 class WXDLLEXPORT wxTextCtrl;
20 class WXDLLEXPORT wxTreeEvent;
21 
22 // we may be included directly as well as from wx/dirdlg.h (FIXME)
23 extern WXDLLEXPORT_DATA(const wxChar) wxDirDialogNameStr[];
24 extern WXDLLEXPORT_DATA(const wxChar) wxDirSelectorPromptStr[];
25 
26 #ifndef wxDD_DEFAULT_STYLE
27 #ifdef __WXWINCE__
28     #define wxDD_DEFAULT_STYLE      wxDEFAULT_DIALOG_STYLE
29 #else
30     #define wxDD_DEFAULT_STYLE      (wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
31 #endif
32 #endif
33 
34 #include "wx/dialog.h"
35 
36 //-----------------------------------------------------------------------------
37 // wxGenericDirDialog
38 //-----------------------------------------------------------------------------
39 
40 class WXDLLEXPORT wxGenericDirDialog : public wxDirDialogBase
41 {
42 public:
wxGenericDirDialog()43     wxGenericDirDialog() : wxDirDialogBase() { }
44 
45     wxGenericDirDialog(wxWindow* parent,
46                        const wxString& title = wxDirSelectorPromptStr,
47                        const wxString& defaultPath = wxEmptyString,
48                        long style = wxDD_DEFAULT_STYLE,
49                        const wxPoint& pos = wxDefaultPosition,
50                        const wxSize& sz = wxDefaultSize,//Size(450, 550),
51                        const wxString& name = wxDirDialogNameStr);
52 
53     bool Create(wxWindow* parent,
54                 const wxString& title = wxDirSelectorPromptStr,
55                 const wxString& defaultPath = wxEmptyString,
56                 long style = wxDD_DEFAULT_STYLE,
57                 const wxPoint& pos = wxDefaultPosition,
58                 const wxSize& sz = wxDefaultSize,//Size(450, 550),
59                        const wxString& name = wxDirDialogNameStr);
60 
61     //// Accessors
62     void SetPath(const wxString& path);
63     wxString GetPath() const;
64 
65     //// Overrides
66     virtual int ShowModal();
67     virtual void EndModal(int retCode);
68 
69     // this one is specific to wxGenericDirDialog
GetInputCtrl()70     wxTextCtrl* GetInputCtrl() const { return m_input; }
71 
72 protected:
73     //// Event handlers
74     void OnCloseWindow(wxCloseEvent& event);
75     void OnOK(wxCommandEvent& event);
76     void OnTreeSelected(wxTreeEvent &event);
77     void OnTreeKeyDown(wxTreeEvent &event);
78     void OnNew(wxCommandEvent& event);
79     void OnGoHome(wxCommandEvent& event);
80     void OnShowHidden(wxCommandEvent& event);
81 
82     wxGenericDirCtrl* m_dirCtrl;
83     wxTextCtrl*       m_input;
84 
85     DECLARE_EVENT_TABLE()
86     DECLARE_DYNAMIC_CLASS(wxGenericDirDialog)
87 };
88 
89 #endif // _WX_DIRDLGG_H_
90