X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d7a15103f7307a27c35a0c1cad095cda50d64aea..0b165ed6b209ea9f5ddd7bfb1813c6f0718a9a3d:/include/wx/generic/dirdlgg.h diff --git a/include/wx/generic/dirdlgg.h b/include/wx/generic/dirdlgg.h index 23b5997987..53135f57bb 100644 --- a/include/wx/generic/dirdlgg.h +++ b/include/wx/generic/dirdlgg.h @@ -5,31 +5,32 @@ // Modified by: // Created: 12/12/98 // Copyright: (c) Harm van der Heijden and Robert Roebling -// Licence: wxWindows licence +// RCS-ID: $Id$ +// 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 @@ -39,10 +40,10 @@ // 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) // ///////////////////////////////////////////////////////////////////////////// @@ -54,23 +55,41 @@ #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" -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; +//----------------------------------------------------------------------------- +// data +//----------------------------------------------------------------------------- + +WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr; +WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogDefaultFolderStr; + +//----------------------------------------------------------------------------- +// classes +//----------------------------------------------------------------------------- + +class wxDirItemData; +class wxDirCtrl; +class wxDirDialog; //----------------------------------------------------------------------------- // wxDirItemData //----------------------------------------------------------------------------- -class wxDirItemData : public wxTreeItemData +class WXDLLEXPORT wxDirItemData : public wxTreeItemData { public: wxDirItemData(wxString& path, wxString& name); ~wxDirItemData(); bool HasSubDirs(); - wxString *m_path, *m_name; + void SetNewDirName( wxString path ); + wxString m_path, m_name; bool m_isHidden; bool m_hasSubDirs; }; @@ -79,29 +98,35 @@ public: // wxDirCtrl //----------------------------------------------------------------------------- -class wxDirCtrl: public wxTreeCtrl +class WXDLLEXPORT wxDirCtrl: public wxTreeCtrl { - DECLARE_DYNAMIC_CLASS(wxDirCtrl) - - public: - bool m_showHidden; +public: + bool m_showHidden; wxTreeItemId m_rootId; - - wxDirCtrl(void); - 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" ); - void OnExpandItem( const wxTreeEvent &event ); - void OnCollapseItem( const wxTreeEvent &event ); + + 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 ); - DECLARE_EVENT_TABLE() - protected: + 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(void); + void SetupSections(); wxArrayString m_paths, m_names; + +private: + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxDirCtrl) }; //----------------------------------------------------------------------------- @@ -110,12 +135,12 @@ class wxDirCtrl: public wxTreeCtrl class WXDLLEXPORT wxDirDialog: public wxDialog { - DECLARE_DYNAMIC_CLASS(wxDirDialog) - public: - wxDirDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultPath = "", - long style = 0, const wxPoint& pos = wxDefaultPosition); +public: + 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; } @@ -127,27 +152,29 @@ class WXDLLEXPORT wxDirDialog: public wxDialog int ShowModal(); void OnTreeSelected( wxTreeEvent &event ); - void OnTreeKeyDown( wxKeyEvent &event ); - void OnSize(wxSizeEvent& 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); - 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_